Pemrograman Dasar pt 14

Hufh. . . Pada pertemuan sebelumnya kan kita ada quiz tuh, , nah minggu kemaren itu, quiz tersebut dijadikan tugas. . .

Namun, Pak Bondhan sedikit kecewa, karena tidak ada yang menggunakan pointer 2 tingkat. (waw! seperti apakah itu??). Sebelum kesana mari kita bahas hubungan pointer dan array.

Misal:

int array[3];

array[0] artinya *(array+0)/*array
array[1] artinya *(array+1)
array[2] artinya *(array+2)

jika ditulis dalam fungsi scanf() dan printf() jadi seperti dibawah ini:

scanf(“%d”, &array[0]); printf(“%d”, array[0]);
scanf(“%d”, array); printf(“%d”, *array);

scanf(“%d”, &array[1]); printf(“%d”, array[1]);
scanf(“%d”, (array+1)); printf(“%d”, *(array+1));

scanf(“%d”, &array[2]); printf(“%d”, array[2]);
scanf(“%d”, (array+2)); printf(“%d”, *(array+2));

Gimana? Ngerti gak??

Nah, sama halnya dengan

int array[2][2];

array[0][0] artinya *(*(array+0)+0)/**array
array[0][1] artinya *(*(array+0)+1)/*(*(array+0)+1)/*(*array+1)
array[1][0] artinya *(*(array+1)+0)/**(array+1)
array[1][1] artinya *(*(array+1)+1)

jika ditulis dalam fungsi scanf() dan printf() jadi seperti dibawah ini:

scanf(“%d”, &array[0][0]); printf(“%d”, array[0][0]);
scanf(“%d”, *array); printf(“%d”, **array);

scanf(“%d”, &array[0][1]); printf(“%d”, array[0][1]);
scanf(“%d”, *array+1); printf(“%d”, *(*array+1));

scanf(“%d”, &array[1][0]); printf(“%d”, array[1][0]);
scanf(“%d”, *(array+1)+1); printf(“%d”, **(array+1));

scanf(“%d”, &array[1][0]); printf(“%d”, array[1][1]);
scanf(“%d“, *(array+1)+1); printf(“%d”, *(*(array+1)+1));

Nah sekarang bagaimana kalo dibalik?? Dari pointer, dibuat menjadi array! (langsung dengan contoh Array 2 dimensi ya! Misal pointer[3][3])

int **pointer;

pointer = (int **) malloc(3*sizeof(int *));

hingga langkah ini tercipta int *pointer[3];

for(i=0; i<3; i++)

{

pointer[i] = (int *)malloc(3*sizeof(int));

}

setelah langkah tersebut, jadilah int pointer [3][3]; dan itu artinya kalo pake scanf() harus pake &, misal: scanf(“%d”, &pointer[0][1]);

Sekian pelajaran Hari ini!! Rate it!🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: