Tuesday, October 23, 2018

Pointers and Array


Pointer and Arrays


Pointer Definition


Pointer is a variable that store the address of another variable
Syntax :
<type> *ptr_name;
Two operators mostly used in pointer : * (content of) and & (address of)
Example: 
Initialize an integer pointer into a data variable: 
int i, *ptr;
ptr = &i;
To assign a new value to the variable pointed by the pointer:

*ptr = 5;  /* means i=5 */ 

   Pointer Concept

   Pointer To Pointer

•Pointer to pointer is a variable that saves another address of a pointer or is a form of multiple indirection, or a chain of pointers. Normally, a pointer contains the address of a variable. When we define a pointer to a pointer, the first pointer contains the address of the second pointer, which points to the location that contains the actual value as shown below.
Syntax:
  <type> **ptr_ptr ;
Example:
  int i, *ptr, **ptr_ptr;
  ptr = &i;
  ptr_ptr = &ptr;
  To assign new value to i:
  *ptr = 5;  // means i=5 ;
  **ptr_ptr = 9;   // means i=9; or *ptr=9;



2201766173

binus.ac.id
skyconnectiva.com
Aviel Leonardo Wijaya

Thursday, October 11, 2018

Repetition in C Programming

Repetition atau looping adalah satu atau lebih instruksi pengulangan beberapa kali, atau sampai memenuhi suatu syarat. Operasi-operasi yang termasuk dalam repetition/looping yaitu :
  1. For loop
  2. While loop
  3. Do-while loop
  4. Goto
Goto termasuk dalam jenis looping yang melompat dari goto menuju ke statement yang dituju dalam function yang sama. Penggunaan goto sangat tidak disarankan dalam semua jenis bahasa program karena akan menyebabkan kita sulit membaca alur jalan sebuah program. Looping yang sering digunakan dalam program adalah for loop, while loop, dan do-while loop. Perbedaan dari while dan do-while adalah dimana while loop akan melihat dari kondisi sebelum menjalankan statement di dalamnya, sedangkan do-while loop akan melihat kondisi setelah statement di dalamnya telah dijalankan satu kali. Contoh sederhana yang menggunakan looping yaitu mesin ATM. Mesin ATM menggunakan operasi looping do-while, karena kita harus memasukkan sesuatu (PIN ATM) terlebih dahulu baru hasilnya akan keluar. Repetition sangat banyak gunanya karena segala sesuatu dihidup ini pasti ada yang namanya pengulangan. Contoh lain yang menggunakan repetition yaitu mencetak angka genap dalam jumlah yang banyak.

1. For Loop

For memiliki 3 hal yang perlu diisi yaitu expression 1, expression2, dan expression3. Expression 1 isinya berupa inisialisasi, expression 2 berisi kondisi yang perlu dipenuhi, dan expression 3 berisi increment atau decrement. Contoh syntaxnya:
for(exp1;exp2;exp3) {
              statement1;
              statement2;
              ........
}

Flowchart dari statement for loop:


Repetition for terbagi atas 2 yaitu:
  •  Infinite Loop
            Infinite loop adalah loop dimana tidak ada kondisi untuk berhentinya, loop ini dapat digunakan di for-loop dengan menghilangkan semua parameter (exp1, exp2, exp3). Untuk menghentikan loop ini dapat dengan menggunakan break. Apabila di .exe terjadi endless loop/infinite loop dapat diakhiri dengan menekan Ctrl + C.
  • Nested Loop
          Nested loop yaitu loop didalam loop. Operasi repetition ini akan dimulai dari loop yang paling dalam.


Contoh-contoh bentuk kodingan menggunakan for-loop :
1. Membuat bintang sebanyak 5 

#include <stdio.h>
int main(){
    int i;
    for(i=0; i<5;i++){
        printf("*");
    }
    return 0;
}

2. Membuat bintang sebanyak 8 apabila diketahui i-nya sama dengan 180

#include <stdio.h>
int main(){
    int i;
    int x=188;
    for(i=180; i<x;i++){
        printf("*");
    }
    return 0;
}

3. Mencetak angka 1,2,3,.. dst secara berurutan sebanyak n

#include <stdio.h>
int main(){
    int i;
    int x;
    printf("Masukkan jumlah angka = ");
    scanf("%d",&x); fflush(stdin);
    for(i=0; i<=x;i++){
        printf("%d",i+1);    }
    return 0;
}

4. Hanya mencetak angka genap saja sebanyak n

#include <stdio.h>
int main(){
    int i;
    int x;
    printf("Masukkan jumlah angka = ");
    scanf("%d",&x); fflush(stdin);
    for(i=1; i<=x;i++){
        printf("%d\n",(i+1)*2);
    }
    return 0;
}

5. Membuat kotak yang terbuat dari simbol "*"

#include <stdio.h>
int main(){
    int i,j;
    int x;
    printf("Masukkan jumlah : ");
    scanf("%d",&x);
    for(i=0; i<x; i++){
        for(j=0; j<x;j++){
        printf("*");
    }printf("\n");
    }printf("\n");
    return 0;
}

6. Membuat segitiga siku-siku

#include <stdio.h>
int main(){
    int i,j;
    int x;
    printf("Masukkan jumlah : ");
    scanf("%d",&x);
    for(i=0; i<x; i++){
        for(j=0; j<=i;j++){
        printf("*");
    }printf("\n");
    }
    return 0;
}

2201766173
Binus.ac.id
skyconnectiva.com
Aviel Leonardo Wijaya