LAPORAN
PRAKTIKUM
MODUL 7
STUKTUR
DATA
POINTER
Diajukan
untuk memenuhi tugas sebagai bahan praktikum
Dosen :
Endra Suseno, M.Kom
Disusun
oleh :
Egi
Legitasari
20160910045
Sistem
informasi A 2016
FAKULTAS
ILMU KOMPUTER
UNIVERSITAS
KUNINGAN
2016
PRAKTIKUM
1
Study kasus
Buatlah program yang dapat memindahkan isi variabel awal menuju kevariabel
tujuan yang ditunjuk serta menampilkan alamat alokasi memory sebelum
dipindahkan kevariabel tujuan.
Script Program Menggunakan c++
#include<iostream.h>
#include<conio.h>
void main()
{
int
x, y; //x dan y bertipe int
int
*px; //px pointer yang menunjuk objek
clrscr();
x =
87;
px =
&x; //px beriisi alamat dari x
y =
*px; //y berisi nilai yang ditunjukan px
cout<<"Alamat
x pada memori = "<<&x<<endl;
cout<<"isi
px = "<<px<<endl;
cout<<"isi
x = "<<x<<endl;
cout<<"Nilai
yang ditujunkan oleh px = "<<*px<<endl;
cout<<"alamat
y pada memori = "<<&y<<endl;
cout<<"Nilai
y = "<<y<<endl;
getch();
}
|
Pembahasan
Program ini yaitu untuk menunjukan sebuah alamat memori dengan menggunakan
fungsi pointer. Didalam script program tertulis px=&x, yaitu diartikan
sebagai bahawa px bernilai alamat memori untuk sebuah nilai x. Nilai x tersebut
belum ditentukan, maka akan di panggil dengan nilai x=87, maka alamat pada px
akan ikut berubah. Begitupula dengan variabel y.
Hasil running
PRAKTIKUM 2
Study kasus
Terdapat sebuahy array yang memiliki hanya satu elemen yaitu 5 dan
tempatkan paada indeks ke 0 dalam arrar, sementara alamat indeks selebihnya
bernilai 0, beuatlah program yang dapat mengiosi alamat indeks yang lain
melalui nilai elemen indeks ke 0 (contoh penyelesaian kasus diatas program
dibawah ini bersifat statis)
Script Program Menggunakan c++
#include<iostream.h>
#include<conio.h>
int main()
{
int
x[5], *p, k;
clrscr();
p =
x;
x[0]
= 5;
x[1]
= x[0];
x[2]
= *p + 2;
x[2]
= 7;
x[3]
= *(p+1)-3;
x[3]
= 2;
x[4]
= *(x + 2);
x[4]
= 7;
cout<<"Array
setelah disi = "<<endl;
cout<<endl;
for(k=0;
k<5; k++)
{
cout<<"x["<<k<<"]
= "<<x[k]<<endl;
}
getch();
return 0;
}
|
Pembahasan
Pada program ini yaitu pada pointer *p, memiliki semua nilai dari x
yang berindex sebuah array [5]
x[0]=5;
x[1]=x[0];
x[2]=*p+2;
x[3]=*(p+1)-3;
x[4]=*(x+2);
Penggalan script program diatas merupakan penulisan array terbuka yang
nantinya akan di tampilkan di
cout<<"x["<<k<<"] =
"<<x[k]<<endl;
Hasil running
PRAKTIKUM 3
Script Program Menggunakan c++
#include<iostream.h>
#include<conio.h>
void tambahsepuluh(int *);
void ubahkarakter(char *);
int main()
{
int bilangan = 4;
char sesuatu = 's';
cout<<"Bilangan sebelum fungsi di Panggil
: "<<bilangan<<endl;
cout<<"Karakter sebelum fungsi di Panggil
: "<<sesuatu<<endl;
getch();
tambahsepuluh(&bilangan);
ubahkarakter(&sesuatu);
cout<<endl;
cout<<"Bilangan setelah fungsi di panggil
: "<<bilangan<<endl;
cout<<"Karakter setelah fungsi di panggil
: "<<sesuatu<<endl;
getch();
return 0;
}
void tambahsepuluh(int *bil)
{
*bil = *bil+10;
}
void ubahkarakter(char *kar)
{
char karakter = 'H';
*kar = karakter;
}
|
Pembahasan
Pada prorgram ini pada pemaggilan bilangan akan berubah sesuai dengan function. Yang berisikan peubah nilai yang di dalamnya terkandung dalam variabel.
Hasil running
LATIHAN
1
Study Kasus
Dengan memasukan nilai integer sebanyak 5 nilai dan
melalui variabel pointer bagaimana agar dapat mengetahui elemen tersebut akan
menempati dilokasi memori berapa program berjalan secara statis hanya sebanyak
5 buah integer.
Script Program Menggunakan c++
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
int i;
int nilai[50];
int *trnilai;
trnilai=nilai;
for(i=1;i<=5;i++)
{
cout<<"Masukan nilai
ke-"<<i<<" : ";
cin>>nilai[i];
}
cout<<endl;
cout<<"Pengaksesan elemen Array lewat
Pointer";
cout<<endl<<endl;
for(i=1;i<=5;i++)
{
cout<<"Elemen
"<<i<<" Nilai "<<nilai[i];
cout<<", Menempati Alamat Memory :
"<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}
|
Pembahasan
Pada program ini pointernya menggunakan ampersand untuk petunjuk alamat
variabel pada memorynya.
Pemanggilan nya dibatasi dengan fungsi for (i=1;i<5;i++). Yang berarti
data ang telah diinputkan akan otomatis berhenti di indeks yang ke 5.
Hasil running
LATIHAN 2
Study Kasus
Dengan memasukan nilai integer sebanyak N nilai dan
melalui variabel pointer bagaimana agar dapat mengetahui elemen tersebut akan
menempati dilokasi memori berapa program berjalan secara statis hanya sebanyak
N buah integer.
Script Program Menggunakan c++
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
int i,n;
int nilai[50];
int *trnilai;
trnilai=nilai;
cout<<"Masukan Jumlah Data :
";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Masukan nilai
ke-"<<i<<" : ";
cin>>nilai[i];
}
cout<<endl;
cout<<"Pengaksesan elemen Array lewat
Pointer";
cout<<endl<<endl;
for(i=1;i<=n;i++)
{
cout<<"Elemen
"<<i<<" Nilai "<<nilai[i];
cout<<", Menempati Alamat Memory :
"<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}
|
Pembahasan
Progrm ini yait untuk menampilkan alamat variabel pda memory. Tetapi di latihan 2 ini berbeda dengan latihan 1 tadi, jika latihan 1 dibatasi dengan fungsi for. tetapi latihan 2 memasukan data ya dibatasi tergantung kemauan usernya sendiri.
Hasil running
Tidak ada komentar:
Posting Komentar