laporan8 pointer

21
LAPORAN PRAKTIKUM VIII POINTER disusun untuk memenuhi matakuliah praktikum Dasar Pemrograman Komputer yang dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto Oleh: Fariz Abu Rizal 120534431460 OFFERING A

Upload: widz-cyank-widy

Post on 25-Nov-2015

83 views

Category:

Documents


0 download

DESCRIPTION

laporan

TRANSCRIPT

LAPORANPRAKTIKUM VIII

POINTERdisusun untuk memenuhi matakuliah praktikum Dasar Pemrograman Komputer yang dibimbing oleh Bapak Wahyu Sakti Gunawan Irianto

Oleh:

Fariz Abu Rizal120534431460OFFERING A

FAKULTAS TEKNIKJURUSAN TEKNIK ELEKTROPRODI PENDIDIKAN TEKNIK ELEKTROUNIVERSITAS NEGERI MALANGApril 2014MODUL VIIIPOINTER

A. TUJUANSetelah mempelajari bab ini diharapkan mahasiswa akan mampu: 1. Mengenal dan memahami penggunaan pointer dalam listing program. 2. Membuat program sederhana dengan menerapkan konsep pointer.

B. DASAR TEORIKeunggulan menggunakan Pointer:1. Penanganan terhadap array dan string akan lebih singkat, dan efisien. 2. Memungkinkan suatu fungsi untuk menghasulkan lebih dari satu nilai. 3. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi yang lain. 4. Kemampuan berkerja dengan memori yang telah dialokasikan secara dinamik. 5. Memungkinkan untuk berhubungan langsung ke hardware. 6. Untuk menciptakan data structure yang kompleks. 7. Memungkinkan untuk berhubungan langsung dengan parameter command line.Dengan menggunakan pointer yang benar, anda dapat menyusun sebuah program yang berkemampuan tinggi. Sebaliknya sedikit saja kesalahan dalam menggunakan pointer akan mengakibatkan kesalahan fatal pada program anda. Karena pointer dapat langsung menunjukan pada lokasi memori, jika lokasi yang ditunjuk salah, berarti data yang diambil juga akan salah, dan sudah tentu program anda akan menjadi salah juga.Operator deference (&) ampersand sign Operator ini biasa disebut dengan address of atau operator alamat. Dengan menggunakan operator deference variable akan menghasilkan alamat lokasi memori.

Operator reference (*)Operator ini biasa disebut value pointed by. Dengan menggunakan operator ini akan dihasilkan nilai yang berada pada suatu alamat memori.Deklarasi Variabel Pointer Variabel pointer juga harus didelarasikan terlebih dahulu sebelum mulai digunakan bentuk umum cara mendeklarasikan variabel pointer adalah:Tipe *nama_var_pointer.Tipe variabel sama dengan tipe yang dikenal oleh variabel biasa, misalnya int, float, char dan sebagainya. Nama variabel pointer juga mengikuti ketentuan nama variabel biasa. Yang membedakan variabel pointer dengan variabel biasa dengan menggunakan tanda asterisk (*) didepan nama varibel pada waktu deklarasi.Contoh :Int *ptr_x;Ptr merupakan variabel pointer, karena pada deklarasi digunakan tanda (*) didepan nama variabelya.Pengertian dalam deklarasi variabel pointer memiliki perbedaan dengan variabel biasa, jika dalam deklarasi variabel biasa:Float x;Dalam deklarasi pointer:Float *ptr_x;Artinya variabel pointer ptr_x akan menunjukkan pada variabel yang bertipe float. Jadi disini bukan ptr_x-nya yang bertipe float, melainkan variabel lain yang ditunjuk yang bertipe float.Contoh dalam pendeklarasian yang salah:float y;Int *ptr_y;Benar:Float y;Float *ptr_y;Dan untuk mendeklarasikan sebuah variable y yang bertipe integer dengan variabel pointernya yy adalah:Int y;Int *yy;dapat disederhanakan int y,*yy;Ex: Mencetak Nama Alamat Dengan pointer

Input data Melalui PointerAnda dapat juga mengimputkan suatu data kedalam variabel dengan dengan menggunankan pointernya, sebagai contoh tinjaulah program dibawah ini:Int x;Int *ptr_x;Ptr_x=&x;Printf(inputkan nilai x : );Scanf(%d,ptr_x);Ingat! Menginputkan data dengan scanf() membutuhkan alamat dari variabel yang bersangkutan. Karena ptr_x merupakan alamat dari variabel x, maka ptr_x dapat digunakan dalam scanf(). Jadi pernyataan:Scanf(%d,ptr_x);Sama dengan:Scanf(%d,&x);Dimana &x juga menunjukkan alamat dari variabel x.Memberikan suatu nilai pada suatu variabel lewat pointerNilai suatu variabel dapat juga diberikan lewat pointernya, nilai yang diberikan ini dapat berbentuk kostanta ataupun ekspresi aritmatika.Contoh:

Contoh: Memberikan suatu variabel melalui pointer

Pointer dan fungsiPengiriman data dari sebuah fungsi kefungsi lain dapat juga dilakukan dengan bantuan pointer, bila pointer digunakan, maka data yang dikirim harus berupa alamat variabel, bukan lagi nama variabel.Contoh_1: Mengirimkan data kesuatu fungsi dengan menggunakan pointer.

Ket: *alm_c=*alm_a**alm_b;Disini turbo c langsung mengetahui bahwa tanda (*) mana yang berarti pointer dan mana yang berarti tanda kali.

Contoh_2: Kombinasi antara pengguna variabel biasa dan pointer

Contoh: dua dimensi (pointer)

Contoh 1:

Hasil Kompilasi:

Contoh 2:

Mula mula variabel tglahir di isi dengan tanggal, bulan, tahun melalui pengaksessan. Variable pointer yang menunjuk alamat array tglahir. Untuk menampilkan tglahir [ ]. Melalui variable pointer digunakan cara * (tgl +i) atau bisa juga dengan *tgl++. Setelah itu dijalankan maka hasil eksekusi akan ditampilkan:

C. LATIHAN Praktikum 1Nama Program : Input Nama BulanBahasa Pemrograman : C++ Compiler : MinGWStudioAlgoritma1. Mulai2. Input angka 1-123. Baca angka4. Static nama bulan5. Tampilkan nama bulan6. SelesaiScript Program#include #include

char *nama_bulan(int n);int main (){int bl;printf("Bulan (1-12) : ");scanf("%d",&bl);printf("%s\n",nama_bulan(bl));getch();}char *nama_bulan(int n){static char*bulan[]={"Kode Bulan Salah","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"};return ((n12)? bulan[0]:bulan[n]);getch();}

Output Program

Praktikum 2Nama Program : Program Menghitung Banyak KarakterBahasa Pemrograman : C++ Compiler : MinGWStudioAlgoritma1. mulai2. baca integer3. baca char4. input string5. proses kata yang di input6. masuk ke perulangan for7. tampilkan hasil perlungan berupa angka8. selesai

Script Program#include #include int misteri3(char*s);main(){char string[80];printf("Ketikan sebuah string: ");scanf("%s", &string);printf("%d\n", misteri3(string));getch();return 0;}int misteri3(char*s){int x=0;for (;*s!='\0';s++){++x;}return x;}

Output Program

Praktikum 3Nama Program : Program NilaiBahasa Pemrograman : C++ Compiler : MinGWStudioAlgoritma1. Mulai2. Baca data integer3. Input nilai aziz,defa,dewi4. Proses aziz=aziz, defa=&aziz, dewi=defa+15. Tampilkan nilai6. SelesaiScript Program#include #include #include main (){int Aziz, Defa, Dewi, *def;Aziz = 57082;Defa = Aziz;Dewi = 1+Defa;cout