Monday, December 3, 2018

Cloud Computing

Cloud Computing


 Cloud:

Cloud mengacu kepada jaringan atau internet yang berada di tempat terntentu dan dapat diakses dari jaringan dimana saja. Sedangkan, cloud computing berarti mengatur, mengkonfigurasi dan mengakses aplikasi / data secara online. Cloud computing menawarkan penyimpanan data secara online, meng-compute, infrastruktur jaringan, serta aplikasi yang diberikan melalui jaringan.

Cloud computing memisahkan antara infrastruktur dan bisnis, dimana kata "infrastruktur" mengacu kepada hardware, jaringan dan software yang diatur sebagai 1 entitas. Sedangkan kata "bisnis" mengacu kepada aliran kerja yang prosedural ( step-by-step ), pelaksanaan strategis dan lain-lain.

Cloud Computing:

Cloud computing memisahkan infrastruktur IT dari sistem utama yang diatur oleh 1 pihak dan dapat diakses dimanapun melalui internet dan dapat disebarkan.

Cloud computing fokus pada efisiensi dari penyediaan, pemanfaatan dan pengelolaan infrastruktur yang berhubungan dengan pemakaian dari teknologi baru: Software Defined Data Center, Instant Application Framework dan lain-lain.

Contoh produk ( Cloud ):

Jaringan sosial:
  1. Facebook
  2. Instagram
  3. LinkedIn
  4. Twitter
Data sharing / kolaborasi:
  1. Email
  2. Dropbox
  3. One Drive
Edukasi:
  1. Quipper
  2. Smart Campus
  3. E-learning
  4. E-library
Bisnis / aplikasi kantor:
  1. Online shop portal
  2. Google docs
  3. Website pribadi / perusahaan
HPC untuk jangka waktu terbatas
  1. Efficiency for massive computing workload
Lainnya:
  1. Media streaming
  2. Hiburan
  3. Game
  4. Percetakan

Model produk ( Cloud ):

Model produk menyatakan tipe dari akses ke cloud. Terdapat 3 model:
  1. Private: Pribadi, tidak semua bisa akses
  2. Public: Dapat diakses secara umum
  3. Hybrid: Gabungan antara private dan public

Sunday, October 21, 2018

Pointer dan Array



Pointer

Pointer merupakan variabel yang menyimpan address suatu variabel.
Contoh: *ptr

Terdapat 2 jenis pointer:
  • * (Content of)
  • & (Address of)

Contoh * (Content of):
int a, *ptr -> (pointer);
ptr = &i;

Maka *ptr = 5, karena pointer akan menunjukkan value dari int a.

Contoh & (Address of):

int a, *ptr -> (pointer);
ptr = &i;

Jika address dari integer a adalah di 600x,
Maka &ptr = 600x, karena pointer akan menunjukkan address dari int a.

Pointer to Pointer

Pointer yang menunjuk kepada suatu pointer
Contoh: **ptr

int a, *ptr, **ptr2;
ptr = &a;
ptr2 = &ptr;

Bila ditulis
*ptr = 5;
**ptr2 = 9;

Maka, value dari a dan *ptr adalah 9

Array

Kumpulan data/variabel yang disimpan secara terstruktur sehingga dapat diakses secara kelompok / sendiri.
Contoh: int Array[50] -> [50] disini menyatakan size dari array tersebut.

Array 1 dimensi

Contoh: panjang[3] = {1,2,3};
Maka tersimpan data di dalam program bahwa variabel panjang[0] = 1, panjang[1] = 2 dan panjang [2] = 3. Array selalu diawali dari index ke 0. Pendaklarasian array harus dilakukan di awal program.

Misalnya, kita ingin menampilkan array panjang ke 2, maka kita jalankan:
printf("%d", panjang[2]);

Array 2 dimensi

Array 2 dimensi sama seperti array 1 dimensi, hanya saja, jika diibaratkan sebagai dimensi bentuk, array 1 dimensi hanya memiliki panjang, sedangkan array 2 dimensi memiliki panjang dan lebar.

Contoh:
Array[2][2] = {{1,2}, {3,4}}, artinya Array[1][1] memiliki nilai 1, Array[1][2] memiliki nilai 2 dan seterusnya.

Visualisasi:

Program Control: Repetition

Looping/ Pengulangan merupakan satu / beberapa instruksi yang diulang terus menerus dalam suatu waktu tertentu / sampai syarat untuk berhenti terpenuhi.

Dalam bahasa pemrograman C, terdapat 3 jenis looping / pengulangan:
  • for
  • while
  • do - while
1. Looping For:

for(A; B; C) statement;

atau

for(A; B; C)
{
statement1;
statement2;
...
}

Dimana contoh yang pertama digunakan untuk menjalankan 1 buah perintah / statement saja, sedangkan statement kedua digunakan untuk menjalankan beberapa perintah sekaligus.

Keterangan:
A= Initialization (Dimana suatu variabel diberi nilai awal)
B= Condition (Diberikan sautu syarat supaya looping dapat berhenti / dimana looping berhenti)
C= Counter (Dimana suatu variabel diberi nilai operasi matematika (+ / - / * / / ) agar looping dapat memenuhi condition (Kondisi) supaya berhenti

Tips: Bagian a dan c dalam suatu looping dapat berisi lebih dari 1 ekspresi, dipisahkan dengan tanda koma (,).

Contoh looping menggunakan for:

for( i = 1, j = 8; i <= j; i++, j--)
{
printf("Test looping");
}

Keterangan:
Dalam looping for, hal yang pertama kali dijalankan adalah bagian A (Initialization), dilanjutkan dengan B (Condition), lalu bagian statement (Dimana program akan print kata "Test looping") dan diakhiri dengan bagian C (Counter).

Dalam looping for, terdapat 2 looping turunan yang dapat dibuat:
- Infinite loop:
 Looping dimana pengulangan yang terjadi tidak terbatas. Looping ini dapat dibuat dengan tidak menggunakan seluruh ekspresi (Initialization, Condition, Counter). Looping dapat dihentikan dengan menggunakan break.

Contoh:

for(;;)
{
printf("Infinite");
}

- Nested loop:
 Loop di dalam loop / loop bertingkat, program akan dijalankan dari loop bagian dalam.

Contoh:

for(i = 1; i <= 5; i++)
{
  for(j = 1; j <= 3; j++)
   {
     printf("Nested");
   }
 }

2. Looping While:

while(Condition) statement; (Counter);

atau

while(Condition)
{
statement1;
statement2;
(Counter);
...
}

Dimana contoh yang pertama digunakan untuk menjalankan 1 buah perintah / statement saja, sedangkan statement kedua digunakan untuk menjalankan beberapa perintah sekaligus.

Contoh looping menggunakan while:

int i = 1

while(i <= 10)
{
printf("While");
i++;
}

Keterangan:
Yang pertama kali dibaca oleh program adalah deklarasi i = 1 yang merupakan Initialization, dilanjutkan dengan pengecekan Condition (i <= 10), menjalankan printf("While"), dan diakhiri dengan Counter i++.

3. Looping Do - While:

do
{
statement1;
statement2;
(Counter);
...
while(Condition);
}

Contoh looping menggunakan do-while:

int i = 1

do
{
printf("Do-While");
i++;
}
while(i <= 10);

Keterangan:
Yang pertama kali dibaca oleh program adalah deklarasi i = 1 yang merupakan Initialization, dilanjutkan dengan menjalankan printf("While"), menjalankan Counter i++, dan diakhiri dengan pengecekan Condition (i <= 10).

Dari sini, kita dapat mengetahui bahwa dalam looping do-while, suatu proses akan dijalankan minimal 1x karena proses dijalankan terlebih dahulu sebelum pengecekan, maka dari itu, dalam looping do-while, proses akan selalu kelebihan 1x.

Terdapat 2 cara untuk mengakhiri looping:
  • Question
  • Sentinel
1. Question
Looping akan berhenti bila kita memasukan perintah berhenti.

Contoh:

printf("Apakah mau melanjutkan? (Y/N): \n");
scanf("%c", lanjut);
while(lanjut == 'Y')
{
printf("Question");
printf("Apakah mau melanjutkan? (Y/N): \n");
scanf("%c", lanjut);
}

Keterangan: Dapat kita lihat bahwa looping akan terus berjalan bila kita memasukan huruf Y dan akan berhenti bila kita memasukan huruf selain Y.

2. Sentinel
Looping akan berhenti bila kita memasukan angka 0.

Contoh:

do
{
printf(” Masukan lebar : ”);
scanf(”%d”, &lebar);
printf(” Masukan tinggi: ”);
scanf(”%d”, &tinggi); 
area = lebar * tinggi;
printf(” Area = %d\n”, area);
}
while((lebar != 0) && (tinggi != 0));

Keterangan: Dapat kita lihat bahwa looping akan terus berjalan bila kita memasukan angka selain 0 kedalam lebar dan tinggi.

Terdapat 2 cara untuk menghentikan suatu loop secara paksa:
  • Break
  • Continue

1. Break
Break akan menghentikan seluruh proses loop ketika kondisi memenuhi.

Contoh:

int i
for(i = 1; i <= 8; i++)
{
if (i == 4) break;
printf("%d", i);
}

Maka output yang dikeluarkan adalah: 1 2 3

Hal ini terjadi karena setelah kondisi break memenuhi (i = 4), maka seluruh proses looping segera dihentikan.

1. Continue
Continue akan menghentikan proses loop yang sedang dikerjakan saat itu ketika kondisi memenuhi.

Contoh:

int i
for(i = 1; i <= 8; i++)
{
if (i == 4) continue;
printf("%d", i);
}

Maka output yang dikeluarkan adalah: 1 2 3 5 6 7 8

Hal ini terjadi karena setelah kondisi continue memenuhi (i = 4), maka proses looping yang terjadi pada saat itu juga dihentikan, dan dilanjutkan ke proses looping selanjutnya.