Monday, 22 October 2018

Array dan Pointer

Array adalah sebuah variabel tempat menyimpan data yang memiliki index-index yang berbeda untuk menyimpan nilai-nilai yang berbeda dalam satu variabel. Dalam bahasa C sendiri array dapat diinisialisasi dengan syntax sebagai berikut:
int angka[10];
Sama halnya dengan variabel yang memiliki tipe data, dalam deklarasi array juga harus ditulis apa tipe data dari array tersebut. Dalam hal ini tipe data array di atas adalah integer dengan nama angka dan memiliki index sebanyak 10 buah. Berarti array ini dapat menyimpan sebanyak 10 buah data mulai dari angka[0], angka[1], ... , angka[9].

Berbeda dengan bahasa pemrograman lainnya, bahasa C tidak mempunyai tipe data string yang memiliki guna untuk menyimpan string atau kata/kalimat. Bahasa C menggunakan array of char untuk menyimpan string. Contohnya:
char nama[20];
Cara kerjanya sama seperti array untuk menyimpan angka akan tetapi array of char menyimpan satu karakter ke dalam satu index dan seterusnya. Dan ketika kita menggabungkan semua index array tersebut, kita mendapatkan sebuah string/kata. Tetapi dalam array of char ada sedikit perbedaan dalam batas index penyimpanannya, dimana ketika array int angka[10] dapat menampung 10 angka, array char nama[20] hanya mampu menampung 19 huruf atau karakter. Mengapa demikian? Hal ini dikarenakan di dalam setiap array of char terdapat null terminator (\0) di belakang string kita. Misalnya:
Kita menyimpan nama seseorang yaitu : Budi, index array yang kita butuhkan sebanyak 5 buah karena di belakang kata "Budi" terdapat null terminator (\0) yang menandakan berakhirnya string. Jadi data yang disimpan adalah "Budi\0" yang membutuhkan 5 buah index.

Selain itu, terdapat array 2 dimensi yang cara kerjanya pada dasarnya sama dengan array 1 dimensi. Inisialisasi array 2 dimensi dilakukan dengan cara:
char nama[10][26];
Dalam hal ini berarti saya dapat menyimpan 10 buah nama dengan panjang sebanyak 25 huruf.



Pointer adalah sebuah variabel yang menyimpan alamat dari variabel lain. Pointer menyimpan alamat dari sebuah variabel dan kita dapat memanggil isi dari alamat yang disimpan di dalam pointer. Dengan menggunakan pointer, kita dapat menghubungkan berbagai variabel dimana ketika suatu variabel diubah, variabel lainnnya yang terhubung juga ikut berubah. Pointer dapat ditulis dengan syntax sebagai berikut:
int *pointer;
int x=1;
pointer = &x;
printf("%d", *pointer);
Dalam contoh diatas, inisialisasi pointer dapat ditulis dengan menambahkan * di depan variabel pointer. Dalam baris ke-3 pointer = &x; menunjukkan dalam variabel pointer disimpan alamat dari x
dan kemudian di baris ke-4 kita print *pointer yaitu isi dari alamat yang disimpan dalam variabel pointer yakni dalam hal ini 1.
& = alamat dari (address of)
* = isi dari (value of)
Kita juga dapat membuat pointer menunjuk pada variabel pointer lainnya caranya dengan menambahkan * sebanyak n+1 dari n * variabel pointer yang ditunjuk.
Contohnya:
int *pointer, **pointer2
int x=2;
pointer = &x;
pointer2 = &pointer;
printf("%d", **pointer);


Terimakasih telah membaca

2201791295
binus.ac.id
skyconnectiva.com
Schumacher Goldwin

Perulangan

Perulangan merupakan suatu aksi yang dilakukan berulang-ulang. Ulang mengerjakan PR yang salah, mengulangi kegiatan sehari-hari, bahkan makan adalah sebuah perulangan.  Kita semua mengetahui itu. Tetapi apakah yang dimaksud dengan perulangan dalam algoritma dan pemrograman? Perulangan dilakukan dalam algoritma ketika kita hendak melakukan suatu pekerjaan/command secara berulang-ulang dengan kondisi tertentu. Dalam algoritma dan pemrograman, perulangan sering sekali membantu menyelesaikan masalah yang terlihat sangat sulit dan mustahil menjadi simpel. Perulangan dalam bahasa C sendiri terdiri dari 3 format: for, while-do, dan do-while.


Perulangan menggunakan for dapat ditulis dengan format :
for(inisialisasi variabel lokal ; kondisi ketika true ; perubahan nilai variabel)
{
       command;
}
Contohnya :
for(int a=1;a<=5;a++)
{
       command;
}
Dalam hal ini, kita menginisialisaikan a dengan nilai awal 1 dan for ini akan mengecek apakah nilai a lebih besar sama dengan 5, apabila benar bahwa a lebih kecil sama dengan 5, for akan menjalankan command dibawah. Kemudian, nilai a ditambah 1 karena pertambahan nilai variabel a++ dan for kembali akan mengecek apakah nilai a lebih besar sama dengan 5 dan seterusnya sampai for mendapatkan nilai a lebih besar dari 5 yakni 6, maka for akan keluar dari perulangan tersebut.
Setelah mengetahui hal ini, kita dapat mengerti bahwa command diulang secara 5 kali.


Perulangan menggunakan while-do dapat ditulis dengan format :
while (kondisi ketika true)
{
       command;
       perubahan nilai variabel;
}
Contohnya :
int a=1;
while (a<=10)
{
       command;
       a=a+2;
}
Dalam hal ini, dapat dilihat bahwa inisialisasi dilakukan di luar looping. Apa bedanya dengan inisialisasi lokal for? Bedanya inisialisasi dalam for bersifat lokal, artinya variabel a hanya berlaku di dalam looping for tersebut, di luar looping for, variabel a tidak berlaku. Berbeda dengan while-do yang inisialisasinya terletak di luar, yang berarti variabel a bersifat universal dalam kodingan tersebut dan ketika perulangannya selesai dijalankan, nilai a akan berubah sesuai dengan perubahan nilai variabel tersebut. Dari contoh diatas, nilai awal a adalah 1 dan while-do akan mengecek apabila a lebih kecil sama dengan 10, apabila true, while-do akan menjalankan command dan menambah nilai variabel a sebanyak 2. Berarti nilai variabel a sekarang menjadi 3, while-do kembali akan mengecek apabila a (tadinya 1 sekarang menjadi 3) lebih kecil sama dengan 10 dan apabila true, while-do akan menjalankan command dan seterusnya sampai didapati nilai a lebih besar dari 10 maka perulangan akan berhenti. Dalam hal ini, perulangan terjadi sebanyak 5 kali.


Perulangan menggunakan do-while dapat ditulis dengan format :
do
{
       command;
       perubahan nilai variabel;
}while (kondisi ketika true);
Contoh :
int a=5;
do
{
       command;
       a=a+2;
}while (a<=1);
Bukannya while-do dengan do-while sama, apa bedanya? Nah, bedanya adalah while-do mengecek kondisi ketika true terlebih dahulu, jadi apabila kondisi tidak terpenuhi, while-do tidak akan menjalankan command dan langsung keluar dari perulangan. Berbeda dengan do-while yang melakukan command dan perubahan nilai variabel terlebih dahulu lalu mengecek kondisi ketika true.
Jadi dapat disimpulkan bahwa do-while akan melakukan command minimal 1 kali terlebih dahulu baik kondisi true ataupun false, sedangkan while-do akan melihat apakah kondisi memenuhi lalu melakukan command. Seperti contoh di atas, maka command akan dijalankan 1 kali lalu perulangan dihentikan.

Terimakasih telah membaca 😁

2201791295
binus.ac.id
skyconnectiva.com
Schumacher Goldwin