Monday, December 3, 2018

FUNCTION RECURTION & CLOUD STORAGE

Dalam pemrograman, sudah biasa kalau kita mendengar kata "function" sebenarnya apa function itu ?
function mrupakan sebuah module yang dibuat dan digunakan untuk memudahkan suatu proses. function sendiri biasanya dibuat untuk tujuan tertentu dengan nama yang spesifik, contoh : function untuk melakukan print data, atau function untuk melakukan enter sebanyak n kali.

Dalam pemrograman, biasa menggunakan function untuk mempermudah proses, contohnya seperti function untuk memprint sesuatu, kita tidak perlu lagi menuliskan printf(" ") berulang ulang kali, hanya cukup memanggil functionnya saja.

Dalama function, dikenal sebuah istilah parameter. apa itu parameter ? parameter adalah suatu data yang akan kita gunakan dalam sebuah function. Parameter dapat di pass melalui function lainnya. Contoh :

#include<stdio.h>

void printenter(int x){
    for(int i = 0; i < x; i++){
         printf("\n");
    }
}

int main(){
     int n;
     scanf("%d", &n);
     printenter(n);
     return 0;
}

nah, seperti contoh diatas, function diatas diperuntukkan untuk melakukan enter sebanyak jumlah inputan yang kita masukkan, didalam int main, kita melakukan scan pada integer n, lalu melakukan passing dengan cara memanggil function "printenter" dengan parameter berupa integer n. didalam int main, kita mengirimkan integer berupa integer n, dan akan ditangkap oleh function yang kita buat sebagai integer x, dan integer x tersebut akan digunakan dalam proses pengolahan yang kita lakukan didalam function tersebut.

Selanjutnya, apa itu rekursi ? Mudahnya, rekursi adalah proses pemanggilan suatu function didalam function itu sendiri, atau dapat disebut, memanggil dirinya sendiri. Dalam melakukan rekursif, dibutuhkan base case atau kondisi tertentu dimana rekursi akan diberhentikan. Contoh rekursif dalam mencari factorial :

int factorial(int n){
    if(n==1) return 1;
    else{
         return x = n * factorial(n-1);
    }
}

Nah, pada function diatas, rekursif akan berhenti apabila nilai n adalah 1 dan akan mengembalikan nilai 1. proses yang dilakukan adalah program akan melakukan rekursif terus terusan hingga mendapatkan nilai n = 1. Program diatas adalah contoh penggunaan rekursif untuk mencari bilangan faktorial dari n, return pada function itu berfungsi untuk mengembalikan nilai dari total factorialnya.

Topik ke 2 adalah Cloud Storage
Apa itu cloud ? ya, awan. Tapi, dalam dunia teknologi, cloud dikenal sebagai sebuah storage yang disediakan oleh server yang digunakan untuk menyimpan data didalam internet. Cloud dapat berupa Cloud private yang berarti hanya kita yang dapat mengakses data datanya, Cloud public yang berarti kita membuka akses kepada dunia luar untuk mengutak atik data yang kita simpan pada cloud storage.

Dalam proses pengiriman dalam Cloud, terdiri dari 3 model, yaitu :

1. SAAS ( Software as a Service) yaitu melakukan proses pengiriman melalui suatu software yang telah disediakan.

2. PAAS ( Platform as a Service ) yang artinya kita melakukan prosses pengiriman melalui suatu platform yang dikembangkan oleh developer.

3. IAAS ( Infrastructure as a Service ) yaitu layanan menggunakan infrastruktur yang telah disediakan


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).