Wednesday, October 17, 2018

POINTER DAN ARRAY

1. Pointer
      Pointer adalah suatu variabel yang digunakan untuk menyimpan nilai dari suatu variabel lain atau variabel yang digunakan untuk menginisialisasikan suatu nilai untuk dimasukkan kedalam suatu variabel tertentu.
      Pointer umumnya terbagi menjadi 2 macam yaitu : * (nilai dari), dan &(alamat dari). contoh :

int i, *ptr;
ptr = &i;

dalam penggalan inisialisasi diatas, kita telah menghubungkan nilai dari pada integer i dan integer * ptr. jadi apabila kita memberikan nilai kepada i, maka integer *ptr akan memiliki nilai yang sama dengan integer i. apabila kita memberi nilai i=5, maka *ptr juga akan bernilai 5.

definisi pointer : sederhananya, suatu integer yang kita beri * didepannya lalu memberi nilai dengan &(integer) akan memiliki nilai dari address dari integer tersebut. apabila kita melakukan printf pada ptr pada penggalan codingan diats, maka system akan menghasilkan output berupa alamat yang dipakai integer i untuk menyimpan nilainya.

dalam pointer *, juga ad yg namanya double pointer, triple pointer dan seterusnya. double pointer hanya dapat mengacu pada single pointer, double pointer tidak dapat mengacu pada nilai suatu integer langsung dan begitu seterusnya.

2. Array
       Singkatnya, array adalah kumpulan dari suatu jenis variabel, dapat berupa kumpulan char yang kemudian disebut "string" atau kumpulan dari integer-integer. bentuk umum array :

(jenis variabel) (nama variabel)[panjang array]
Ex : int A[10];

mudahnya, kita telah memesan tempat sebanyak 10 buah didalam memory RAM kita dengan address yang "RANDOM". didalam array terdapat yang namanya index dan elemen.

       Index adalah angka yang merujuk ke nilai kesekian dari suatu array dan elemen adalah jumlah dari index keseluruhan. Contoh :

int A[5] = {1,2,3,4,5}

       Didalam array, penghitungan index dimulai dari angka 0 hingga angka n-1, jadi dalam kasus diatas, index A[0]=1, A[1]=2, A[2]=3, A[3]=4, A[4]=5. kita hanya dapat menggunakan index dari suatu array dari 0 samapai n-1 karena pada dasarnya apabila kita memesan suatu array dengan panjang tertentu, index terakhirnya akan berisi '\0' yang berarti NULL atau kosong. sehingga penghitungan index dimulai dari angka 0 hingga n-1

       Untuk menginisialisasi nilai dari index-index sebuah array dapat dilakukan seperti dibawah ini :

int A[5] = {0,1,2,3,4}, dan bukan
int A[5];
A[5] = {0,1,2,3,4}

inisialisasi kedua akan menghasilkan error karena apabila kita menuliskan A[5] = {0,1,2,3,4} berarti kita ingin memberikan nilai 0,1,2,3,dan 4 kedalam 1 index array[5] dan hal tersebut tidak dapat dilakukan, karena nilai dari A[5] hanya dapat diisi oleh 1 integer atau 1 char saja, tidak lebih. di codingan diatas kita berusaha memberikan 5 nilai sekaligus kedalam array A index ke-5 yang membuatnya menjadi error. Nilai index-index yang tidak diinisialisasikan nilainya akan berupa 0.
       
          Untuk mengakses array dapat dilakukan dengan 2 cara, contohnya :

int A[3] = {1,2,3}
//Cara 1 : printf("%d", A[1]);   //output = 2
//Cara 2 : printf("%d", *(A+1)) //output = 2

cara ke 2 dapat dilakukan karena nilai *(A) mengarah kepada nilai dari index array A index ke 0, sehingga ditambahkan dengan angka 1 yang berarti nilai dari array A index ke-1.

ARRAY 2 DIMENSI
        Sama dengan array 1 dimensi, hanya bedanya, Array 2 dimensi menggunakan beberapa baris dan beberapa kolom, untuk inisialisasi dapat dilakukan seperti contoh :

int A[(jumlah baris)][(jumlah kolom)]
Ex : int A[3][3]

bayangkan saja bentuk matriks, kita telah memesan tempat berukuran 3 x 3 dimemori RAM kita.


pemanggilan nilai dari index arraay 2 dimensi sama saja dengan array 1 dimensi, namun bedanya ada tambahan jumlah baris dan jumlah kolom dalam pemanggilannya

int A[1][2] = {{1,2,3},{1,2,3}}
printf("%d", A[1][1]) //output = 2

Begitulah mengenai array, dan pointer. Semoga bermanfaat

REPETITION

REPETITION

Dalam dunia percodingan, REPETITION biasa lebih dikenal dengan kata "looping". jadi apa itu REPETITION ? Repetition atau looping adalah suatu kegiatan yang dilakukan oleh sistem untuk melakukan beberapa block statement secara berulang kali hingga mencapai kondisi tertentu.

REPETITION FOR
For merupakan salah satu bentuk dari repetition. Repetition For memiliki bentuk umum sbb :

for(inisialisasi ; kondisi ; increment atau decrement)
pada bagian inisialisasi dapat dimasukkan inisialisasi nilai suatu variabel. dalam bagian kondisi, diisi dengan suatu kondisi dimana pengulangan akan diberhentikan. increment atau decrement adalah suatu action yang dilakukan sistem untuk membantu mencapai kondisi dimana pengulangan akan diberhentikan. contohnya :

for (x=0;x<5;x++){

}

dalam penggalan repetition for diatas, dapat dilihat bahwa nilai x diinisialisasikan nilainya sebagai 0, repetition for akan berhenti apabila nilai x sudah melebihi 5 atau sama dengan 5, dan increment dilakukan agar nilai x dapat terus bertambah dan mencapai kondisi, sehingga looping dapat dihentikan.

dalam repetition for, bagian inisialisasi dan increment/decrement dapat dikosongkan namun tidak untuk bagian condition, karena semua bentuk looping membutuhkan suatu kondisi dimana looping dapat berhenti.

REPETITION WHILE DAN DO-WHILE

repetition while dengan repetition for tidak berbeda jauh, hanya berbeda pada bentuk umumnya saja, jika for memiliki 3 bagian, while hanya menggunakan condition dalam bentuknya.

while(condition) {
           //Statements
}

namun tetap saja, dalam repetition while tetap membutuh kan yang namanya increment/decrement atau dapat menggunakan perubahan nilai pada condition. contohnya :

int x=10;

while(x>0){
        printf("Hello World!\n");
        x--;
}

dalam penggalan codingan diatas, program akan mengprint "Hello World!" sebanyak 9 kali menurun kebawah. INTINYA, while dan for tidak berbeda jauh dan bebas ingin menggunakan yang mana, namun dalam beberapa case ada yang mengharuskan atau "memaksa" para programmer untuk menggunakan while atau for


REPETITION DO-WHILE

bedanya reptition do-while dengan repetition while adalah REPETITION DO-WHILE SETIDAKNYA MELAKUKAN STATEMENT SEBANYAK 1 KALI. Bentuk umum do-while adalah :

do{
       //statements
}
while(condition)

dalam kasus ini, karena pemrogramman C merupakan pemrograman terstructure, sehingga system akan membaca codingan dari atas kebawah. sehingga bagian statememnt akan dibaca dan dilakukan terlebih dahulu oleh system baru mengcek apakah condition masih berlaku. contoh :

int x=0;
do{
       printf("Hello World!\n");
}
while(x>0);

dalam penggalan codingan diatas, "Hello World!" akan terprint sebanyak 1 kali. karena nilai x=0 dan conditionnya false, maka system hanya akan menjalankan printf sebanyak 1 kali.

KESIMPULAN :
Repetition merupakan suatu kegiatan pengulangan statement yang dilakukan hingga suatu "kondisi" tercapai. apabila kondisi tidak tercapai atau tidak diterapkan maka akan terjadi "INFINITE LOOP" atau "LOOPING FOREVER", maka karena itu setiap kegiatan looping wajib menggunakan condition apapun bentuk loopingnya (for, while, do-while).