Blog information
Category: Kuliah
Posted By: AglaBridgeMedia
Post date: 22 Apr 2020
Keywords: materi informatika hubungan pointer dengan array dasar pemrograman, hubungan pointer dengan array string fungsi pointer lain, hubungan pointer dengan array, pointer bahasa c
Views: 1985
Hubungan Pointer dengan Array, String, Fungsi dan Pointer Lain
Pada materi sebelumnya tentang pointer (baca disini) telah dijelaskan apa, bagaimana, dan contoh program dari pointer. Pada artikel kali ini akan membahas materi lanjutan dari pointer, yaitu hubungan antara pointer dengan array, string, fungsi dan juga dengan pointer lain. Simak uraiannya berikut ini ya teman-teman.
- Hubungan Pointer dan Array
Array secara internal sebenarnya diterjemahkan dalam bentuk pointer. Begitu juga pada bahasa C. Sehingga hubungan keduanya begitu dekat dan erat. Untuk memudahkan dalam memahami, akan saya berikan contoh sederhananya.
#includevoid main(){ static int tanggal_lahir[3] = {01, 01, 1999}; int *pointer_tgl; // memberi nilai ke variabel pointer_tgl pointer_tgl = tanggal_lahir; // atau // pointer_tgl = &tanggal_lahir[0]; printf("Nilai dari tanggal_lahir[0]: %d\n", tanggal_lahir[0]); printf("Nilai yang ditunjuk oleh variabel pointer_tgl: %d\n", *pointer_tgl); }
Pada kode yang dicetak tebal di atas diberikan variabel tanggal_lahir berupa array dengan tipe data char. Kemudian variabel pointer_tgl adalah variabel pointer. Variabel pointer_tgl akan menunjuk pada variabel tanggal_lahir. Bentuk penulisan seperti ini: pointer_tgl = tanggal_lahir memiliki arti bahwa variabel pointer_tgl akan memiliki nilai elemen pertama dari variabel array tanggal_lahir. Sama halnya jika dituliskan seperti ini: pointer_tgl = &tanggal_lahir[0]. Maka apabila kode di atas dijalankan akan menghasilkan seperti gambar berikut.
#includevoid main(){ static int tanggal_lahir[3] = {01, 01, 1999}; int *pointer_tgl, i; // memberi nilai ke variabel pointer_tgl pointer_tgl = tanggal_lahir; printf("Nilai yang ditunjuk oleh variabel pointer_tgl: %d\n", *pointer_tgl); for(i=0; i<3; i++){ //printf("Nilai dari tanggal_lahir[%d]: %d\n", i, *(pointer_tgl+i)); atau bisa juga printf("Nilai dari tanggal_lahir[%d]: %d\n", i, *pointer_tgl++); } }
- Hubungan Pointer dan String
Karena string pada dasarnya juga adalah array dengan dimensi satu, maka hubungan antara pointer dan string juga sangat erat. Sebagai contoh diberikan kode program berikut ini.
#includevoid main(){ char *pointer_kota = "PURWODADI"; printf("String yang ditunjuk oleh pointer_kota: %s\n", pointer_kota); }
#include#include void main(){ char *kota1= "GROBOGAN"; char *kota2= "SEMARANG"; char *kotax; printf("Data Awal: \n"); printf("\tKota1: %s\n", kota1); printf("\tKota2: %s\n", kota2); kotax = kota1; kota1 = kota2; kota2 = kotax; printf("Data Sekarang: \n"); printf("\tKota1: %s\n", kota1); printf("\tKota2: %s\n", kota2); }
- Hubungan Pointer dan Pointer Lain
Suatu pointer juga bisa menunjuk ke pointer lain. Sebagai contoh akan diberikan deklarasi variabel seperti berikut.
int x = 123;
int *pointer1;
int **pointer2;
Keterangan:- variabel x merupakan variabel dengan tipe data int.
- variabel pointer1 merupakan variabel pointer yang menunjuk variabel dengan tipe data int, dalam kasus ini menunjuk ke variabel x. Agar pointer1 menunjuk ke variabel x, diberikan perintah pointer1 = &x;
- variabel pointer2 merupakan variabel pointer yang menunjuk ke variabel pointer lain dengan tipe data int, dalam hal ini menunjuk ke variabel pointer1. Agar pointer2 menunjuk ke variabel ponter1, maka diberikan perintah pointer2 = &pointer1;
Untuk lebih jelasnya, silakan simak kode program berikut ini.
#includevoid main(){ int x = 123; int *pointer1; int **pointer2; pointer1 = &x; pointer2 = &pointer1; printf("Nilai dari pointer1: %d\n", *pointer1); printf("Nilai dari pointer2: %d\n", **pointer2); }
- Array dari Pointer
Satu array juga bisa digunakan sebagai penampung beberapa pointer. Sebagai contoh diberikan deklarasi nama kota sebagai berikut.
char *kota[5];
Array dari kota terdiri dari 5 buah elemen berupa pointer yang menunjuk ke data bertipe char. Array pointer juga bisa diinisialisasikan pada saat pendeklarasian variabelnya. Sebagai contoh.#include
void main(){
char *kota[5] = { "GROBOGAN", "SEMARANG", "KUDUS", "DEMAK", "PATI" };
int i;
for(i=0; i<5; i++){
printf("Kota dengan indeks ke %d adalah: %s\n", i, kota[i]);
}
}
Hasilnya bagaimana? Silakan teman-teman coba di tools masing-masing ya.
- Hubungan Pointer dan Fungsi
Hubungan pointer dengan fungsi juga erat, karena pointer juga bisa digunakan sebagai parameter pada fungsi (bisa juga prosedur), dan juga sebagai nilai kembalian atau return value dari sebuah fungsi. Berikut contoh kode program pointer sebagai parameter suatu fungsi.
#includevoid tambah_nilai(int *, int *); void tambah_nilai(int *a, int *b){ *a = *a+1; *b = *b+2; } void main(){ int a = 4, b = 6; printf("Data Awal:\n"); printf("\tNilai A: %d\n", a); printf("\tNilai B: %d\n", b); tambah_nilai(&a, &b); printf("Data Sekarang:\n"); printf("\tNilai A: %d\n", a); printf("\tNilai B: %d\n", b); }
#includechar *hari(int); char *hari(int a){ char *nama_hari[] = { "Kode Hari Tidak Dikenal", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu" }; return ((a < 1 || a > 7) ? nama_hari[0] : nama_hari[a]); } void main(){ printf("Hari Ini : %s\n", hari(3)); }
blog comments powered by Disqus
Popular Posts
- Binary Tree dan Contoh Program Sederhana Menggunakan Bahasa C
- SIngle Linked List dan Contoh Penerapan dalam Bahasa C
- Contoh Program Menghitung Faktorial Dengan Bahasa C
- Contoh Program Membuat Pola Bentuk Hati Dengan Bahasa C
- Hubungan Pointer dengan Array, String, Fungsi dan Pointer Lain