Pages

LAPORAN PRAKTIKUM STRUKTUR DATA MODUL 7

Senin, 29 Mei 2017

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



LINK POST TEST 



Tidak ada komentar:

Posting Komentar

 
FREE BLOGGER TEMPLATE BY DESIGNER BLOGS