Tuesday, December 18, 2018

Sorting and Searching

Aku akan menjelaskan tentang Sorting terlebih dahulu
Sorting : adalah cara mengurutkan suatu data agar jadi terurut dan gampang dicheck oleh program.
Sorting ini sendiri ada 4macam:
a. Bubble Sort
Bubble sort ini adalah cara pengurutan data yang paling lambat , karena dia mengurutkannya dengan membandingkan data disebelahnya.

Ini contoh codingan bubble sort:





















Contoh Bubble Sort:

Image result for contoh bubble sort
b. Insertion Sort
Insertion Sort merupakan metode pengurutan data dengan menempatkan setiap elemen data pada posisinya dengan cara melakukan perbandingan.

Ini contoh codingan Insertion sort:



















Contoh Insertion Sort:
Image result for contoh insertion sort

c. Selection Sort
Selection Sort merupakan kombinasi antara sorting dan searching. Metode ini sangat sederhana karena setiap proses akan dicari elemen-elemen yang belum diurutkan yang terkecil (ascending) atau terbesar (descending) yang akan ditukarkan ke posisi yang tepat di dalam array.

contoh codingan selection sort:




















d. Counting Sort
Counting sort adalah suatu metode pengurutan dimana dalam proses pengurutannya yaitu dengan menentukan posisi elemen suatu nilai. 
Counting sort ini tidak memakan waktu yang lama untuk compile. jadi sangat efisien untuk dipakai.

contoh codingan counting sort:




















ini saja penjelasan aku tentang sorting

Mari kita moveon ke SEARCHING!
Searching itu dalam bahasa english itu kan artinya mencari. jadi kita mencari data yg dibutuhkan atau diperlukan.
Searching ini punya dua macam yaitu :
  •  1. Sequential Search
  •  2. Binary Search
Sequential Seach
Sequential Search merupakan metode pencarian data dalam array dengan cara membandingkan data yang dicari dengan data yang ada di dalam array secara berurutan. Pencarian data dengan Metode Sequential Search efektif untuk mencari data yang dalam posisi yang tidak terurut atau acak.
Ilustrasi:

Binary Search
Metode pencarian Binary yaitu mencari data dengan melakukan mengelompokkan array menjadi bagian-bagian. Binary Search ini hanya dapat diimplementasikan pada data yang telah terurut baik ascending maupun descending dalam suatu array. 
Ilustrasi:

Inilah penjelasan saya tentang Searching.
Terimakasih.

Cloud Networking

Minggu-minggu kemarin kelas besar AlgoProg kita kedatangan tamu dosen yang menjelaskan tentang Cloud Networking.

Pertama-tama aku akan menjelaskan apa itu Cloud Networking.
Cloud Networking : Komputasi awan (bahasa Inggris: cloud computing) adalah gabungan pemanfaatan teknologi komputer ('komputasi') dan pengembangan berbasis Internet ('awan'). Awan (cloud) adalah metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer.

Gambaran mengenai Cloud Networking :
   Image result for cloud networking adalah   
Asosiasi Cloud Computing Indonesia ini terletak di Jl K.H. Zainul Arifin, Komplek Ketapang Indah Blok B2 No. 33 & 34, RT.8/RW.7, Krukut, Tamansari, Kota Jakarta Barat, Daerah Khusus Ibukota Jakarta 11140.

Image result for asosiasi cloud computing indonesia

Virtual Data Center (VDC) adalah sebuah teknologi komputasi awan yang digunakan untuk menyimpan data secara aman dan terjaga. Dengan Infrastruktur Cloudmatika, anda akan mendapatkan Virtual Data Center yang lengkap tanpa biaya bulanan yang tinggi. Anda bisa memiliki sebuah virtual server dengan ukuran kecil sampai dengan ratusan virtual server untuk menunjang infrastruktur yang lebih kompleks dengan fungsi, sistem operasi dan spesifikasi virtual mesin yang berbeda.

Mungkin hanya ini yang bisa aku jelaskan sedikit megenai Cloud Networking.
Terimakasih.


Recursive & Function , Structure & Union and Memory Allocation

Recursive & Function , Structure & Union and Memory Allocation 

Definisi Recursive

Recursive adalah proses pemanggilan dirinya sendiri (fungsi atau prosedur). Fungsi maupun prosedur yang memanggil dirinya disebut fungsi atau prosedur rekursif. Fungsi antuk suatu bagian program yang mengembalikan (menghasilkan) hanya satu nilai. Sebuah function call adalah suatu ekspresi jadi ia memberikan satu nilai.Procedure adalah suatu bagian program yang melakukan aksi/fungsi khusus, biasanya berdasarkan sekumpulan parameter. 

Sebuah procedure call adalah suatu statemen, jadi ia melakukan aksi. Banyak obyek dalam matematika didefinisikan dengan menampilkan suatu proses untuk  menghasilkan obyek-obyek tsb.


Contoh :

n faktorial (n!)didefinisikan sebagai produk dari semua integer diantara n dan 1. Contoh lain adalah bilangan asli. 1 adalah bilangan asli.Successor dari 1 adalah bilangan asli.


Definisi Function

Function atau fungsi  adalah sebuah struktur, Pengelompokan yang mengandung sekelompok pernyataan yang akan dilaksanakan oleh CPU jika nama function tersebut dipanggil untuk dieksekusi, kecuali untuk function utama yaituint main() yang akan dieksekusi secara otomatis.


Perbedaan Recursive dengan Procedure(Function)

Recursive bisa memanggil dirinya sendiri sedangkan Procedure atau Function harus dipanggil lewat pemanggila function/procedure.
sa
Contoh masalah yang dapat diselesaikan dengan menggunakan Recursive adalah masalah tersebut dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil.

Definisi Structure
Structure bisa juga disebut sebagai struct.

Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang berada dalam satu nama yang sama dan memiliki kaitan satu sama lain. Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.

Struct berguna untuk mengelompokkan data. Contoh: struktur mahasiswa mungkin memiliki NIM, nama, dst. Rasanya ini mudah dimengerti.

Definisi Union
untuk memberi beberapa nama untuk satu lokasi memori. Ini yang biasanya yang sulit dimengerti oleh yang baru belajar C
Union adalah tipe data khusus yang tersedia di bahasa C yang memungkinkan untuk menyimpan berbagai jenis data di lokasi memori yang sama.
Sama seperti structunion juga dapat menampung beberapa item data yang sama maupun berbeda. Pada umumnya tipe union digunakan untuk menangani dua atau tiga variabel dengan tipe data yang mirip seperti int dan charfloat dan double, dll.

Format Penulisan Union :
union nama_union {
   tipe_data nama_variabel;
};

 Memory Allocation
memori dinamis ada istilah dasar yang kalian harus ketahui, yaitu Allocation dan Deallocation.

  • Allocation (Alokasi) adalah upaya yang dilakukan program dalam memesan memori kepada CPU.
  • Deallocation (Dealokasi) adalah upaya pelepasan memori yang sebelumnya telah dipesan, dipakai dan memori tersebut sudah tidak dibutuhkan lagi. Memori akan dilepaskan dan dikembalikan pada CPU, memori tersebut akan tersedia kembali pada CPU untuk permintaan alokasi.

Dynamic Memory atau dalam Bahasa Indonesia disebut Memori dinamis, adalah suatu teknik alokasi memori yang memungkinkan program memesan memori di saat program berjalan (runtime) bukan di saat eksekusi program.

Souces :

Sunday, October 14, 2018

Rangkuman Algorithm & Programming Tentang Selection and Repetition(Looping)

Di algopro kali ini kita akan membahas tentang selection dan repetition. Kita akan bahas selection terlebih dahulu.

1. Selection
Selection ini ada dua macam , yaitu :
a. If....Else
If merupakan Selection yang paling sering dipakai untuk codingan.Perintah If ini bisa digunakan tanpa mengunakan if else maupun else.Perintah If akan menguji kebenaran kondisi yang disebutkan di dalam tanda ( ) dan apabila kondisi tersebut bernilai benar maka program akan menjalankan perintah (atau beberapa perintah) yang ada dalam tanda { } , yang biasanya disebut dengan statement.

Syntax:
*Dengan If saja
If(kondisi){
statement;
}

*Dengan If else dan else.
If(kondisi_1){
Statement(s)_1;
}
else if(kondisi_2){
statement(s)_2;
}
else{
statement(s)_3;
}
b. Switch Case
Pernyataan atau statement ‘switch’ digunakan untuk melakukan pemilihan terhadap ekspresi atau kondisi yang memiliki nilai–nilai konstan. Oleh karena itu, ekspresi yang didefinisikan harus menghasilkan nilai yang bertipe bilangan bulat atau karakter. Untuk mendefinisikan nilai–nilai konstan tersebut adalah dengan menggunakan kata kunci ‘case’. Hal yang perlu diperhatikan juga adalah kita harus menambahkan statement ‘break’ pada setiap nilai yang kita definisikan. Kata kunci ‘break’ digunakan untuk keluar dari pernyataan ‘switch’. Kata kunci ‘default’ digunakan untuk menyimpan statement alternatif, yang akan dieksekusi apabila semua nilai yang didefinisikan tidak ada yang sesuai dengan ekspresi yang ada. Pernyataan alternatif ini keberadaannya merupakan pilihan (opsional) saja, sehingga boleh ada dan boleh juga tidak ada. 

Syntax :
switch(expression) {

   case constant-expression  :statement(s);
      break;
   case constant-expression  :statement(s);
      break;
   default : statement(s);

}

2.Repetition
Repetiiton ini ada tiga macam, yaitu :
a. For
Pengulangan For digunakan untuk menuliskan jenis pengulangan yang banyaknya sudah pasti atau telah diketahui sebelumnya. Oleh karena itu, kita harus melakukan inisialisasi nilai untuk kondisi awal pengulangan dan juga harus menuliskan kondisi untuk menghentikan proses pengulangan.

syntax:
for (start; parameter; increment)
{
statement;}


Cara kerja perulangan for adalah :

  1. Melaksanakan nilai awal terlebih dahulu (batas awal perulangan).
  2. Laksanakan tes kondisi nilai, jika bernilai benar (TRUE) maka jalankan barisan kode.
  3. Laksanakan operasi perubahan nilai yang dapat berupa penambahan atau pengurangan.
Syntax(untuk Nested-For):
for (startparameterincrement) //perintah for 1{
for (startparameterincrement) //perintah for 2
{
statement_2;}
statament_1;
}


Cara kerja perulangan Nested For adalah :
  1. Melaksanakan nilai awal pada Perintah For 1 terlebih dahulu (batas awal perulangan)
  2. Laksanakan tes kondisi nilai 1, jika bernilai benar (TRUE) maka jalankan Nilai Awal ke 2 pada Perintah For 2, jika bernilai benar (TRUE) maka jalankan barisan kode 2.
  3. Laksanakan operasi perubahan nilai 2 yang dapat berupa penambahan atau pengurangan sampai tes kondisi nilai 2 menghasilkan nilai salah (FALSE) yang mengakhiri Perintah For 2.
  4. Setelah mengakhiri Perintah For 2, program akan menjalankan barisan kode 1 (jika ada) sebelum melaksanakan operasi perubahan nilai 1yang dapat berupa penambahan atau pengurangan.
b. While
Pada struktur pengulangan “while“, kondisi akan diperiksa di bagian awal. Hal ini tentu menyebabkan kemungkinan bahwa apabila ternyata kondisi yang kita definisikan tidak terpenuhi (bernilai salah), maka proses pengulangan pun tidak akan pernah dilakukan. 

Syntax :
while (tes kondisi nilai){  statement_1 diulang jika bernilai benar;  statement_2 diulang jika bernilai benar;  dst…}
Cara kerja perulangan while :
  1. Melaksanakan tes kondisi nilai
  2. Jika bernilai benar, jalankan barisan kode
  3. Lakukan perulangan sepanjang tes kondisi nilai menghasilkan nilai benar
c. Do..While
Pengulangan Do..While ini berbeda dengan pengulangan while.
Pada struktur Do-While kondisi diletakkan di akhir blok pengulangan. Hal ini menyebabkan bahwa statement yang terdapat di dalam blok perulangan ini pasti akan dieksekusi minimal satu kali, walaupun kondisinya bernilai salah sekalipun.

Syntax :
do {
kode yang dijalankan ;
}
while( tes nilai kondisi );
Cara kerja perulangan Do While :
  1. Laksanakan kode yang dijalankan.
  2. Laksanakan tes nilai kondisi, jika bernilai benar lakukan perulangan ke langkah 1.
 PERBEDAAN DO..WHILE , WHILE , DAN FOR.
No.
DO..WHILE
WHILE
FOR
1.
Tipe variable bisa number atau string.
Tipe variable bisa number atau string.
Tipe variable hanya number.
2.
Batas pengulangan bisa terbatas maupun tak terhingga.
Batas pengulangan bisa terbatas maupun tak terhingga.
Batas pengulangannya terbatas.
3.
Variable yang dipakai tidak harus diberi nilai awal.
Variable yang dipakai tidak harus diberi nilai awal.
Variable yang dipakai harus diberi nilai awal.
source:
https://bukupanduansite.wordpress.com/2017/04/09/bahasa-c-program-control-selection-repetition/

https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm

Michelle william tanoto
2201792871
michelle.tanoto@binus.ac.id