Anda di halaman 1dari 4

PRAKTIKUM PEMROGRAMAN TERSTRUKTUR MODUL KE - 6 POINTER

LABORATORIUM DMAG DAN RPL PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2008/2009

I. TUJUAN
Mahasiswa memahami konsep dasar pointer Mahasiswa memahami dan mampu memenggunakan pointer sederhana Mahasiswa memahami dan mampu menggunakan pointer bersama array

II. ALAT YANG DIGUNAKAN


Computer Turbo C++ 45

III. DASAR TEORI


Gunakan materi kelas sebagai dasar teori.

IV. PROSEDUR PELAKSANAAN


Mahasiswa mengerjakan kegiatan praktikum, kemudian mengumpulkan hasilnya di akhir sesi Mahasiswa mengerjakan tugas praktikum Mahasiswa mendemokan hasil praktikum kepada asisten dan menulis laporan

V. KEGIATAN PRAKTIKUM
Kegiatan A: Konsep Dasar Pointer 1. Jalankan program berikut ! #include <stdio.h> void main(void) { int i = 7, j = 11; printf("i = %d, j = %d\n", i, j); printf("&i = %p, &j = %p\n", &i, &j); } 2. Apa yang ditampilkan oleh program di atas? 3. Berapa nilai i, &i, j, &j ? 4. Ketikkan perintah &j = 4; setelah baris printf("&i = %p, &j = %p\n", &i, &j); lalu jalankan lagi program ! 5. Apa yang terjadi ? Mengapa ? 6. Jalankan program berikut ! #include <stdio.h> void main(void) { int i = 7; // Statement 1 int *pOne; // Statement 2 float x = 0.00; printf("&i = %p \n", &i); pOne = &i; // Statement 3 printf("pOne = %p\n", pOne); } 7. Berapa nilai i dan &i ? 8. Setelah Statement 3 dieksekusi, berapa nilai pOne ? 9. Ketikkan perintah pOne = 4; setelah baris printf("pOne = %p\n", pOne); lalu jalankan lagi

program ! 10.Apa yang terjadi ? Mengapa ? 11.Apa perbedaan antara langkah 4 dan langkah 9 ? 12.Coba tambahkan perintah berikut pOne = &x; ! Jalankan program ! 13.Apa yang terjadi ? Mengapa ? Kegiatan B: Pointer dan Array 1. Jalankan program berikut ini ! #include <stdio.h> void main(void) { char a[4] = "Cup"; printf("a = %p\n&a[0] = %p\n&a[1] = %p\n&a[2] = %p\n", a, &a[0], &a[1], &a[2]); } 2. Berapa nilai a ? Nilai a tersebut mewakili nilai apa ? 3. Apakah nilai a dan &a[0] sama ? Buktikan dengan program ! 4. Berapa byte perbedaan antara a[0] dan a[1] ? 5. Berapa byte yang dibutuhkan untuk menyimpan karakter di array tersebut ? 6. Perhatikan kode berikut ini: printf("a + 1 = %p\n&a[1] = %p\n", a + 1, &a[1]); Apakah a + 1 nilainya sama dengan &a[1] ? 7. Perhatikan kode berikut ini: printf("a + 1 = %p\n&a[1] = %p\n", a + 2, &a[2]); Apakah a + 2 nilainya sama dengan &a[2] ? 8. Sebagai kesimpulan, manakah yang benar dari pernyataan berikut ? a == &a? a == &a[0]? a + 1 == &a[1]?

Kegiatan C: Pemahaman lanjut


Untuk pertanyaan - pertanyaan di bawah, gunakan deklarasi variabel berikut. int i, j[5] = {4, 5, 6, 7, 8}, *ptr1 = &j[0], *ptr3; float x[5] = {4.0, 5.0, 6.0, 7.0, 8.0}, *ptr2; Anda bisa mmbuat program sederhana untuk mengetahui hasil pertanyaan: 1. Untuk statement berikut manakah yang benar dan manakah yang salah: a. ptr1 = ptr1 + 3; b. j = j + 1; c. ptr1 = j + 1; d. ptr2 = ptr1; e. ptr1 = j[1]; f. ptr1 = 2; g. i = ptr1; h. ptr3 = ptr1; i. i = j[2]; j. ptr2 = x; k. ptr1 = ptr1[2]; l. x = &ptr2[2];

m. j = ptr1 + 3; n. ptr1 = &j[1]; 2. Berapakah nilai alamat untuk ekspresi di bawah ini, jika alamat array j[ ] adalah A008 dan array x[ ] adalah 9008 (ingat bahwa alamat ini menggunakan basis hexadesimal): a. &j[0] b. j c. j 2 d. j + 4 e. &x[4] f. x + 3 g. x 3 h. &x[2] + 3

VI.TUGAS PRAKTIKUM
1. [Poin:5]Buatlah sebuah array bertipe char yang berisi huruf A-Z. Dengan menggunakan perulangan tampilkan seluruh elemennya menggunakan pointer. 2. [Poin:5]Buatlah array bertipe int yang berisi bilangan genap antara 0-100. Tampilkan seluruh elemennya menggunakan pointer. 3. [Poin:6]Buatlah program untuk membaca 5 angka dari user dan disimpan ke array. Gunakan pointer untuk menyimpan tiap nilainya. 4. [Poin:6]Buatlah program untuk membaca sebuah string dari user. Tampilkan per-karakter menggunakan pointer. 5. [Poin:6] Buatlah program yang akan menerima masukan berupa string dari user. Tanpa menggunakan fungsi strlen, hitunglah berapa panjang string tersebut dengan menggunakan pointer. 6. [Poin:6] Tanpa menggunakan fungsi strcpy, salinlah isi sebuah string ke variabel string lainnya 7. [Poin:6] Dengan menggunakan pointer, buatlah program yang akan menggabungkan 2 buah string (tanpa menggunakan strcpy dan turunannya). 8. Dengan menggunakan pointer, buatlah array untuk menyimpan dan menampilkan data berikut : Tahun Jumlah 2009 1750 2008 1345 2007 950 2006 657 9. Gunakanlah malloc untuk membuat array dari pointer dengan spesikasi sbb: No. Tipe Elemen Ukuran Nama array 1 2 3 int oat char 100 50 1000 tabelNilai rata_rata essay

Anda mungkin juga menyukai