Saturday, 10 June 2017

Latihan 2 Modul 7

Dengan memasukan nilai integer sebanyak N nilai dan melalui variabel pointer bagaimana agar dapat mengetahui elemen tersebut akan menempati di lokasi memory berapa program berjalan secara dinamis hanya sebanyak N buah nilai integer

#include
#include
using namespace std;

main()
{
int i,N;
int nilai [50];
int *trnilai;

trnilai = nilai;
cout<<"  Masukan Jumlah Nilai yang Anda Inginkan : ";cin>>N;
for(i=0;i
{
cout<<"  Masukan Nilai ke- "<
cin>>nilai[i];
}

cout<
cout<<"  Pengaksesan Elemen Array Lewat Pointer";
cout<

for(i=0;i
{
cout<<"  Elemen "<
cout<<", Menempati Alamat Memory : "<<&trnilai[i];
cout<
}
getch();
return 0;
}


Hasil Running :




Keterangan :

Masih membahas mengenai pengaksesan elemen array lewat pointer namun kali ini nilai integer yang nanti diinput bernilai N atau unlimited sesuai keinginan kita ada N buah nilai integer yang tiap nilainya kita inputkan pada interface runing program nanti, hal ini dikarenakan ada sebuah looping program menggunakan fungsi for(i=0;i
Program di atas di deklarasikan menggunakan tipe data bilangan bulat positif (integer) dengan variabel i untuk looping perulangan for, ada variabel N yang digunakan untuk fungsi cin>>N sebagai penginput data sesuai keinginan kita, variabel array nilai [50] dengan indeksnya 50 yang berarti menginputkan nilai variabel tidak lebih dari 50, variabel ini digunakan untuk menginput data pada perulangan for menggunakan perintah cin>> nilai[i],sedangkan *trnilai (reference pointer) merupakan variabel yang digunakan untuk penunjuk dan penyimpanan alamat memory pada nilai variabel.
Pada permasalahan masih sama ada sebuah tujuan yang harus diselesaikan yaitu mengkases nilai  variabel dan mengetahui nilai variabel berada pada lokasi memory mana.! Oke jawaban sederhananya Kita dapat mengetahui lokasi memory nilai variabel sebuah data dengan memanggil perintah deferences (&trnilai[i]).

Latihan 1 Modul 7

Dengan memasukan nilai integer sebanyak 5 nilai dan melalui variabel pointer bagaimana agar dapat mengetahui elemen tersebut akan menempati di lokasi memory berapa program berjalan secara statis hanya sebanyak 5 buah nilai integer

#include
#include
using namespace std;

main()
{
int i, nilai [50];
int *trnilai;

trnilai = nilai;
for(i=0;i<5 i="" span="">
{
cout<<"Masukan Nilai ke- "<
cin>>nilai[i];
}

cout<
cout<<"Pengaksesan Elemen Array Lewat Pointer";
cout<

for(i=0;i<5 i="" span="">
{
cout<<"Elemen "<
cout<<", Menempati Alamat Memory : "<<&trnilai[i];
cout<
}
getch();
return 0;
}


Hasil Running :




Keterangan :


Syntaks pada program diatas membahas mengenai pengaksesan elemen array lewat pointer ada 5 buah nilai integer yang tiap nilainya kita inputkan pada interface runing program nanti, hal ini dikarenakan ada sebuah looping program menggunakan fungsi for(i=0;i<5 50="" atas="" berarti="" bilangan="" bulat="" cin="" dalam="" dari="" data="" deklarasikan="" dengan="" di="" digunakan="" for="" i="" indeksnya="" ini.="" ini="" integer="" lebih="" looping="" menggunakan="" menginput="" menginputkan="" nilai="" pada="" perintah="" perulangan="" positif="" program="" tidak="" tipe="" untuk="" variabel="" yang="">> nilai[i],sedangkan *trnilai (reference pointer) merupakan variabel yang digunakan untuk penunjuk dan penyimpanan alamat memory pada nilai variabel.

Pada permasalahan di atas ada sebuah tujuan yang harus diselesaikan yaitu mengkases nilai  variabel dan mengetahui nilai variabel berada pada lokasi memory mana.! Oke jawaban sederhananya Kita dapat mengetahui lokasi memory nilai variabel sebuah data dengan memanggil perintah deferences (&trnilai[i]).


Praktikum 3 Modul 7

#include

void tambahsepuluh (int *);
void ubahkarakter(char *);

int main ()
{
int bilangan = 4;
char sesuatu = 's';

printf("Bilangan sebelum fungsi dipanggil : %d\n",bilangan);
printf("Nilai sesuatu sebelum dipanggil   : %c\n\n",sesuatu);

tambahsepuluh(&bilangan);
ubahkarakter(&sesuatu);

printf("Bilangan setelah fungsi dipanggil :%d\n",bilangan);
printf("Nilai sesuatu setelah dipanggil   : %c\n\n",sesuatu);
return 0;
}

void tambahsepuluh(int *bil)
{
*bil = *bil + 10;
}
void ubahkarakter(char *kar)
{
char karakter = 'H';
*kar = karakter;
}

Hasil Running :



Keterangan :

Program diatas menggunakan parameter fungsi untuk menata script dan sebuah pointer untuk pemanggilan fungsi parameter.
Didalam in main() di deklarasikan variabel “bilangan dan sesuatu” berfungsi sebagai pemanggilan objek setelah dan sebelum fungsi dipanggil. Variabel ”bilangan” bertipe data integer dengan jumlah variabel yang ditetapkan berjumlah 5, sedangkan variabel “sesuatu“ bertipe data char atau karakter dengan nilai variabelnya ‘z’

Pada runing program ada sebuah perubahan jumlah bilangan dan nilai karakter hal ini dikarenakan ada bilangan awal yang ditambah 10 dengan menggunakan pointer refernce yang kemudian akan di tampilkan dengan tipe data integer memakai  format (%d)  dan perubahan nilai variabel awal ‘z’ yang sudah dideklarasikan. Perubahan ini terjadi ketika nilai variabel ‘H’ yang sudah di deklarasiakan pada fungsi void ubah karakater() dipindahkan kepada variabel pointer *kar. Yang kemudian akan di tampilkan pada runing program setelah fungsi dipanggil menggunakan tipe data char dengan format (%c) 





Praktikum 2 Modul 7

Terdapat sebuah array yang memiliki hanya satu elemen yaitu 5 dan tampilkan pada indeks ke 0 dalam array, sementara alamat indeks selebihnya bernilai 0, buatlah program yang dapat mengisi alamat indeks yang lain melalui nilai elemen indeks ke 0.
(contoh penyelesaian kasus di atas pada program dibawah ini bersifat statis)

#include
#include
using namespace std;

int main()
{
int x[5], *p, k;

p = x;

x [0] = 5; //
x [1] = x[0]; // x[1] di isi dengan x[0] sehingga x[1] = 5

x[2] = *p + 2; // x[2] di isi dengan x[0] + 2 sehingga x[2] = 7

x[3] = *(p+1)-3; // x[3] di isi dengan x[1] - 3 sehingga x[3] = 2

x[4] = *(x+2); // x[4] di isi dengan x[2] sehingga x[4] = 7

cout<<"Aray setelah diisi = "<
cout<

for(k=0; k<5 k="" span=""> // pemanggilan elemen aray yang baru
{
cout<<"x["<
}
getch ();
return 0;
}

Hasil Running :




Kerangan :

Pada program diatas menggunakan pointer array bersipat statis. Pendeklarasian menggunakan tipe data integer dengan variabel x array berindeks 5 sebagai looping program menggunakanan statmen for, *p (reference pointer) sebagai penunjuk atau penyimpanan alamat memory dan variabel k yang digunakan nanti untuk perulangan for.

Pada hasil runing tidak ada inputan data hal ini dikarenakan ada sebuah penetapan nilai variabel awal pada x[0] = 5.

untuk x[1] =x[0] yang artinya x[1] bernilai variabel  5, karena penetapan awalnya adalah 5.
x[2]=*p + 2 bernilai sama dengan 7 kenapa ? karena ada sebuah pointer *p yang menunjukan nilai ini berupa data x[0] + 2

x[3]= *(p+1) – 3 sama dengan 2, masih bingung? Pada *(p+1) bisa dikatakan x[1] hal ini dikarenakan ada sebuah penunjukan data ( reference) pada pendeklarasian awal p=x atau p adalah x
x[4] = *(x +2) bisa dikatakan nilai variabel ini sama dengan nilai variabel x[2].