Minggu, 21 Mei 2017

PRAKTIKUM_MODUL_7

MODUL VII POINTER

Praktikum

Studi Kasus  1

Buatlah program yang dapat memindahkan isi variable awal menuju ke variable tujuan yang ditunjuk serta menampilkan alamat alokasi memory sebelum di pindahkan kevariable tujuan.

#include<iostream.h>
#include<conio.h>
void main()
{
int x, y;
int *px;
clrscr();

x = 87;
px = &x;
y = *px;
cout<<" Alamat x Pada Memori  = "<<&x<<endl;
cout<<" Isi px = "<<px<<endl;
cout<<" Isi x = "<<x<<endl;

cout<<" Nilai Yang Ditunjuk Oleh px = "<<*px<<endl;
cout<<" Alamat y pd Memori = "<<&y<<endl;
cout<<" Nilai y = "<<y<<endl;
getch();
}

Hasil Running :


Pembahasan :
            Dari program diatas bisa dilihat itu memindahkan nilai dan mengetahi alokasi dengan x nya mempunyai nilai 87,kemudian px itu alokasi nya sama dengan x.Dan nilai y memiliki nilai y=*px bintang itu termasuk ke dalam reference nya.
           



Studi Kasus  2

Terdapat sebuah array yang memiliki hanya satu elemen yaitu 5 dan tempatkan 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 sains).

#include<iostream.h>
#include<conio.h>
int main()
{
int x[5], *p, k;
clrscr();
p = x;

x[0] = 5 ;//x[0] diisi dengan 5 sehingga x[0] = 5
x[1] = x[0]; // x[1] diisi dengan x[0] sehingga x[1] = 5

x[2] = *p + 2; // x[2] diisi dengan x[0] + 2 sehingga
x[2] = 7;
x[3] = *(p+1) - 3 ; // x[3] diisi dengan x[1] - 3 sehingga x[3] = 2;

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

cout<<" Array Setelah Diisi = "<<endl;
cout<<endl;

for(k=0; k<5; k++)
{
cout<<"x["<<k<<"] = "<<x[k]<<endl;
}
getch();
return 0;
}

Hasil Running :


Pembahasan :
        Program diatas yaitu cara mengisi indeks yang didalamnya terdapat variable pointer yang digunakan untuk memindahkan nilai indeks pertama sampai indeks terakhir.


Studi Kasus  3

#include<stdio.h>
#include<conio.h>
void tambahsepuluh(int *);
void ubahkarakter(char *);

int main()
{
int bilangan = 4;
char sesuatu = 's';
printf(" Bilangan Sebelum  fungsi di panggil : %d \n",bilangan);
printf(" Nilai sesuatu sebelum fungsi dipanggil : %c \n\n",sesuatu);

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

printf(" Bilangan Setelah Fungsi Dipanggil : %d \n",bilangan);
printf(" Nilai sesuatu setelah fungsi dipanggil : %c \n",sesuatu);
getch();
return 0;
}
void tambahsepuluh(int *bil){
*bil = *bil + 10;
}
void ubahkarakter(char *kar)
{
char karakter = 'H';
*kar = karakter;
}

Hasil Running :


Pembahasan :
            Dari program diatas digunakan untuk merubah suatu nilai dan karakter dengan menggunakan fungsi pointer.



Latihan 1

Dengan memasukan nilai integer 5 nilai dan melalui variable pointer bagaimana agar dapat mengetahui elemen tersebutakan menempati di lokasi memory berapa program berjalan secara setatis hanya sebanyak 5 buah nilai integer

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
int i;
int nilai[50];
int *trnilai;
trnilai = nilai;
for(i=0;i<5;i++)
{
cout<<" Masukan Nilai ke - "<<i<<": ";
cin>>nilai[i];
}
cout<<endl;
cout<<" Pengaksesan Elemen Array Lewat ";
cout<<" Pointer";
cout<<endl<<endl;
for(i=1;i<=5; i++)
{
cout<<" Elemen "<<i<<" Nilai "<<nilai[i]<<endl;
cout<<" Menempati Alamat Memory : "<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}


Hasil Running :


Pembahasan :
            Dari program diatas mencari suatu alokasi dengan menggunakan pointer yang telah diiputkan, kita inputkan 5 variabel terlebih dahulu , kemudian untuk mengetahui alokasinya  kita gunakan operasi pointer deference pada variabel nilainya karena memiliki nilai variabel yang sama.



Latihan 2

Dengan Memasukan Nilai integer N nilai dan melalui variable pointer bagaimana agar dapat mengetahui elemen tersebutakan menempati di lokasi memory berapa program berjalan secara setatis hanya sebanyak N buah nilai integer

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
int i, N;
int nilai[50];
int *trnilai;
trnilai = nilai;
cout<<" Masukan Batasan = ";
cin>>N;
cout<<endl<<endl;
for(i=0;i<N;i++)
{
cout<<" Masukan Nilai ke - "<<i<<": ";
cin>>nilai[i];
}
cout<<endl;
cout<<" Pengaksesan Elemen Array Lewat ";
cout<<"Pointer";
cout<<endl<<endl;
for(i=1;i<=N; i++)
{
cout<<" Elemen "<<i<<" Nilai "<<nilai[i]<<endl;
cout<<" Menempati Alamat Memory : "<<&trnilai[i];
cout<<endl;
}
getch();
return 0;
}


Hasil Running :
       



Pembahasan :
            Program diatas hampir sama dengan  program Latihan 1, pada program ini kita diharuskan  memasukan batasan pengulangannya,  pertama kita masukan batasan perulangannya baru setelah itu kita inputkan isi datanya.


Tidak ada komentar:

Posting Komentar