Tuesday, December 4, 2018

Cloud

PENGERTIAN

Secara umum, definisi cloud computing (komputasi awan) merupakan gabungan pemanfaatan teknologi komputer (komputasi) dalam suatu jaringan dengan pengembangan berbasis internet (awan)

Fungsi

Menjalankan program atau aplikasi melalui komputer – komputer yang terkoneksi pada waktu yang sama

Penerapan

Penerapan cloud computing banyak dilakukan di kegiatan sehari-hari kita Seperti
- Social Networking (Twitter,Line)
- Data Sharing (drive , github)
- Company Business

Model

Model yang bekerja pada cloud adalah:
Deployment model  yang dibagi menjadi:

    - Public cloud 
           Siapa saja dapat mengakses cloud sistem

    - Private cloud 
           Hanya pihak tertentu saja yang dapat mengakse cloud sistem misal dalam perusahaan terdapat             private cloud yang hanya dapat diakses pegawainya atau atasan yang bersangkutan.

    - Hybrid cloud 
           Gabungan antara public dan private cloud

Cloud memiliki 3 Service model  yaitu:

 - Software as a Service (SaaS) :  aplikasi terdapat di host cloud service dan penggunanya dapat  sesuka hati                                                           menggunakan aplikasi tersebut

 - Infrastructure as a Service (IaaS) : menyediakan resource dan infrastruktur seperti server atau storage

 - Platform as a Service (PaaS) : menyediakan alat pengembangan sebuah aplikasi

Keuntungan

Keuntungan yang didapat jika menggunakan cloud service

- biaya lebih murah

- bekerja nonstop atau 24 jam per hari

- storage yang hampir tak terhingga

- menaikkan performansi sebuah aplikasi dan server

Kerugian

Ada juga beberapa kekurangan yang didapat

- internet menentukan kelangsuan aplikasi jika internet bermasalah maka aplikasi juga bermasalah ,jika lambat maka aplikasi akan lambat dan seterusnya

- memperbatas fitur sebuah aplikasi

- data storage cloud bisa saja hilang dan bisa saja terancam diambil oleh saingan
    

Hubungan algo dengan cloud

Hubungan antara algoritma dengan cloud computing skearang dapat dilihat pada cloud yang umumnya dipakai sebagai datastorage pada beberapa aplikasi salah satunya adalah line.

Pada line terdapat sistem yang dinamakan timeline dimana kita dapat memposting sesuatu dan postingan tersebut itu akan tersambung pada cloud dan disimpan sebagai posting kita.

Lalu dalam sistem dalam si linenya akan memostingkan timeline tersebut kepada orang tertentu di line disebutnya friend untuk melihat postingan kita

Wednesday, October 24, 2018

Pointer dan Array


POINTER

Pointer merupakan sebuah variabel yang digunakan untuk menyimpan data alamat suatu variabel lain
Cara penulisan deklarasinya seperti ini :
 <var_name> *ptr_name;

Dalam pointer kita memakai 2 operator berikut :
 & : untuk menampilkan alamat dari variabel
  * : untuk menampilkan konten dari variabel
contoh:
int a=1;
int *ptr=&a;
ptr sama dengan alamat si a;
*ptr sama dengan isi si a =1.

POINTER TO POINTER
Pointer to pointer adalah variabel pointer yang gunanya untuk menyimpan alamat dari pointer lain dengan menambahakan bintang ke variabel tersebut misal :*ptr,**ptr_ptr,***ptr_ptr_ptr

Penentuan jumlah '*' sesuai kebutuhan.
Jika pointer ptr_ptr menunjuk pointer ptr saja maka jumlah '*' untuk pointer A = 2
Jika pointer ptr_ptr_ptr menunjuk pointer ptr_ptr yang menunjuk pointer ptr maka jumlah '*' untuk pointer A = 3

Contoh penggunaannya :
int nilai=5;
int *ptr;
int **ptr_ptr;
int ***ptr_ptr2;
ptr_ptr2 itu berisi alamat ptr_ptr
*ptr_ptr2 itu berisi alamat ptr
**ptr_ptr2 itu berisi alamt nilai
***ptr_ptr2 itu berisi nilai=5

ARRAY
Array merupakan kumpulan data berurutan yang bertipe sama
Cara penulisannya seperti ini :
      <var_type>array_name[index];

indx adalah tempat kita ingin berapa macam data sesuai var_type.
Jika ingin menyediakan slot untuk 10 integer maka,
contoh penulisannya seperti ini :
      int a [10];
maka didalam int a dapat diisi 10 variabel int yang dimulai dalri index 0 sampai 9

untuk pengisian nilai dalam array tinggal dilakukan seperti ini:
contohnya kita ingin meletakkan angka 1 pada slot pertama yaitu index 0
maka penulisannya seperti berikut:
     a [0] = 1;
maka pada index ke 0 pada array a berisi angka 1

jika ingin memanggil slot 1 pada array maka tinggal dilakukan seperti berikut:
     printf ("%d", a [0] );
kita perlu mengisi kurung siku dengan index slot yang ingin kita panggil
kurung siku tersebut disebut juga dengan tempat mengisi dimensional value
terkecuali string atau array of char yang bisa tidak membutuhkan kurung siku.

Dalam array terdapat juga pointer .Namun pointer di array bersifat tetap atau constant sehingga kita hanya bisa memanggil alamat pada array tersebut dan tidak bisa mengubahnya

kita dapat juga menginisialisasi array langsung dengan isi-isinya seperti berikut:
kita dapat menginisialisasi tanpa mengisi index value yang akan otomatis menghitung jumlah index kita:
     int arr [ ] = {1,2,3,4,5};
kita juga dapat menginisialisasi dengan index value:
     int arr [6] = {1,2,3,4,5};
perlu diketahui jika kita menginialisasi isi array yang lebih dikit dari index value kita akan menyebabkan run time error,tetapi kadang-kadang tidak sehingga disarankan untuk untuk tidak dilakukan.
ARRAY 2 DIMENSI
syntaxnya sebagai berikut:
      <var_type> array_name [row][col];
contoh penulisannya seperti ini :
      int a [4][4];
jumlah barisnya 4 dan jumlah kolomnya 4
jadi kalau digambarkan  akan seperti ini:

          col 1   col 2   col 3   col 4
row 1  |__|     |__|     |__|     |__|
row 2  |__|     |__|     |__|     |__|
row 3  |__|     |__|     |__|     |__|
row 4  |__|     |__|     |__|     |__|

ketika kita ingin memanggil nilai yang ada pada kolom tertentudan baris tertetu maka tinggal menulis seperti ini:
      printf ("%d", a [baris][colom]);

untuk inisialisasi array 2 dimensi dapat ditulis sebagai berikut:
int a [2][2] = { 1,2,3,4 };
maka akan berisi dari row 0 dan col 0 sampe ke row 0 col 1dan dilanjutkan ke row 1 col 0 sampe ke row 1 col 1
ataupun kalo ingin rapi seperti ini,
int array_name [2][2] = { (1,2), (3,4) };

Selain itu ada juga array 3 dimensi, seperti 2 dimensi hanya saja ada dimensi tambahan yaitu kedalamannya
contoh:
      int arr[2][2][2];
maka deklarasinya akan terlihat seperti ini:
      int arr[2][2][2] = {(1,2),(3,4),(5,6),(7,8)};


ada library yang menyediakan function untuk memanipulasi string atau array of character dan ini tidak berlaku pada int maupun char.
nama headernya : string.h
beberapa nama fungsinya sebagai berikut :
- strlen()               : return nilai yang isinya panjang string
- strcpy (s1,s2)     : menyalin s2 ke s1
- strcpy (s1,s2,n)  : menyalin n karakter dari pertama dari s2 ke s1
- strcat (s1,s2)      : menambahkan s2 ke akhir dari s1
- strcat (s1,s2,n)   : menambahkan n karakter s2 ke akhir dari s1
- strcmp (s1,s2)    : mengcompare nilai dari string 1 dan string 2, jika sama maka return 0

Tuesday, October 16, 2018

LOOPING BAHASA C

Dalam koding, looping/repetisi salah satu operasi penting dalam semua bahasa yang seringkali dipakai untuk mempermudah suatu pengerjaan yang membutuhkan pengulangan.
Seperti saat seseorang ingin print kata 'hello world' sebanyak 10000 kali.
Tidak mungkin kalau seseorang membuat 10000 baris berisi 'hello world' tentu akan membuat seseorang lelah.
Untuk itu, kita perlu memakai looping untuk memudahkannya ,karena dengan looping kita hanya perlu sedikit baris .

Dalam bahasa C, looping/repetisi pada umunya dibagi 3 yaitu FOR ,WHILE,dan DO.. WHILE dalam ketiga looping tersebut juga ad fungsi BREAK dan CONTINUE.


1. FOR

Syntax FOR pada umumnya adalah sebagai berikut:

           for ( inisialisasi ; kondisi ; increment/decrement ) 
           {
                     statement1;
                     statement2;
                     .....
           }

Bagian inisialisasi, kondisi, dan increment/decrement tersebut bersifat optional, artinya salah satu bisa dihilangkan (sesuai kebutuhan). dan di bagian increment/decrement tidak selalu increment /decrement melainkan fungsi matematika lainnya seperti kali bagi maupun modulus.

pada for expresi inisialisasi,konidisi maupun increment decrement dapat lebih dari 1 ekspresi akan tetapi harus dipisahkan dengan koma. Contohnya :
   
           int i, j;
           for ( i=10, j=0 ; i > j ; i--, j++ )


2. WHILE

Format WHILE adalah sebagai berikut:

            while ( kondisi ) {
                      statement;
             }

Pada WHILE dia akan mengecek apakah kondisinya TRUE /FALSE jika TRUE maka akan dijalankan statement tersebut sedangkan jika FALSE tidak

Contoh dari looping menggunakan WHILE untuk menampilkan angka 1 sampai 5

             int i = 1;              
             while ( i <= 3 ){
                       printf ("%d", i ); // Output : 123
                       i++;
             }


3. DO.. WHILE

Format DO.. WHILE adalah sebagai berikut:

             do {
                     statement1;
                     statement2;
                     ....
             }
             while ( kondisi);

DO..WHILE sekilas sama dengan WHILE ,namun memiliki perbedaan yaitu DO..WHILE menjalankan statement dulu baru mengecek jika kondisi benar apa salah/TRUE or FALSE.

Contoh dari DO.. WHILE sebagai berikut :

             int i = 0;               
             do {
                     printf ("%d" , i );  // Output : 0
                     i++;
             }
             while ( i < 0 );


4.BREAK AND CONTINUE

Dalam loop, ada yang fungsi yang bernama BREAK dan CONTINUE. BREAK berfungsi untuk looping hanya berhenti pada situ saja dan keluar dari looping tersebut.Sedangkan CONTINUE melewatkan statement yang ada dibawahnya dan melanjutkan ke looping selanjutnya
Contoh BREAK :

            int i = 0;
            while ( i < 100 ) {
                      if ( i > 10 ) {
                             break;
                      }
                      printf("%d",i);
                      i++;
             }
        
Output diatas akan menghasilkan angka '0123...10' karena ketika looping i = 10 maka ia akan memasuki kondisi if ( i > 10 ) dan melakukan fungsi BREAK sehingga berhenti looping dan keluar dari looping

Contoh CONTINUE:
           int i;
           for ( i=1; i <= 10; i++) {
                           printf ("hai");
                           continue;
                           printf ("hello");
           }

Output diatas akan menampilkan kata 'hai' sebanyak 10 kali sedangkan hello tidak disebutkan sama sekali karena ada fungsi continue yang membuat statement mengrint 'hello' tidak dilaksanakan.


5. INFINITE LOOP AND NESTED LOOP

Dalam loop ada juga yang disebut infinite loop. Infinite loop merupakan proses looping yang tidak memiliki batas dikarenakan kondisi yang tidak memenuhi sehingga berulang selamnya .

Contoh:
          int i;
          for (i=0 ; i<0 ;i++ ) {
                    printf ("Kami");  // akan menampilkan "Kami" terus menerus
          }

Selain itu, ada yang namanya nested loop. Nested loop artinya loop di dalam loop. Loop yang didalam akan mengulang lebih dulu daripada loop yang diluar. Contohnya :

         int i,j;
         for ( i=1 ; i <=3 ; i++ ){
                    for ( j=1 ; j <= 5 ; j++ ){
                            printf ("%d", j );
                    }
                    printf (" %d " , i );
         }