Langsung ke konten utama

Learn How to Program 5 "Sorting and Searching" ( di bahasa pemrograman C )

Haalooooooooooo........., nah jadi hari ini kita akan belajar yang namanya sorting dan searching. sesuai dengan terjemahan indonesianya sorting adalah mengurutkan.

nah sorting itu banyak tapi yang akan saya bahas hari ini adalah bubble sort dan insertion sort.

A. Bubble Sort

nah apasih itu bubble sort, bubble sort adalah proses mengurutkan suatu kumpulan data dengan membandingkan setiap elemen kumpulan data tersebut.

contoh bubble sort adalah pengurutan angka, biasanya kita akan mengambil data dari awal dan membandingkannya dengan data berikutnya, kemudian jika data berikutnya lebih kecil dari data yang telah diambil maka keduanya akan ditukar.

Image result for gif bubble sort
visualisasi bubble sort

cara implementasi dalam bahasa C biasanya kita menggunakan dua looping for :

for( int i = 0  ;  i  <  (jumlah_data) ;  i++){
       for( int j = 0  ;  j < (jumlah_data)  ;  j++){
             if( data[i] > data[j]) {
                   int temp = data[i];  
                   data[i] = data[j];
                   data[j] = temp;
             }
       }
}

B. Insertion Sort

hampir sama dengan bubble sort, insertion sort disini kita tetap memabandingkan elemen di kumpulan data yang kita punya tetapi jika kita menemui data yang lebih kecil kita akan terus membawa data tersebut kedepan hingga data didepannya lebih kecil atau di awal data.

Image result for insertion sort gif
visualisasi insertion sort

implementasi dalam bahasa c :

for( int i = 0 ; i < (jumlah_data) ; i++){
          int temp = data[i];
          for( int j = i - 1 ; j >= 0 && temp < data[j] ; j--){
                    data[j+1] = data[j];
                    data[j] = temp;
          }
}

Kemudian pada searching saya akan membahas linear searching dan binary searching.

A. Linear Search

linear search adalah proses mencari data dengan melihat setiap data  dari kumpulan data yang kita punya.

contoh penggunaan :

int arr[5] = { 2,4,3,5,1 }, flag=0, n;

printf("Masukan data yang dicari : ");
scanf("%d",  &n);

for(int i = 0 ; i < 5 ; i++){
      if(n == arr[i]){
           flag==1; 
           break;
     }
}

if(flag==1){
      printf("Data tersedia");
}
else{
      printf("Data tidak ada");
}

jadi program diatas menjalankan linear searching jadi jika data telah ketemu maka akan mengeluarakan "Data tersedia" jika tiddak maka akan mengeluarkan "Data tidak ada".

B. Binary Search

jika tadi pada linear search kita mengecak semua data, di binary search kita cukup menggunakan rekursif untuk melihat posisi data. dengan membagi array menjadi dua bagian kemudian mengecek posisi data yang kita cari dimana dengan satu kondisi bahwa array yang kita mau cari datany harus sudah terurut.

int arr[10]={1,2,3,4,5,6,7,8,9,10}, flag=0;

int main(){
         printf("Masukan data yang dicari : ");
         scanf("%d",  &n);

         search(n,0,9);

        if(flag==1){
      printf("Data tersedia");
}
else{
      printf("Data tidak ada");
}
}

void search(int num, int L, int R){
          int mid=(L+R)/2;
          if(L<=R){
                    if(num<arr[mid]){
                              search(num,L,mid-1);
                    }
                    else if(num > arr[mid]){
                              search(num, mid+1,R);
                    }
                    else if(num == arr[mid]){
                              flag=1;
                    }       
          }
}

sekian materi ini semoga dari postingan ini dapat membantu untuk pembelajar  bahasa C.

Rafael Jonathan Patrick Tjoa
2201748486
Binus.ac.id
Skyconnectiva.com

Komentar

Postingan populer dari blog ini

Learn How to Program "REPETITION" ( di bahasa pemrograman C )

               Setelah sekian lama tidak posting akhirnya balik lagi, hari ini saya ada tugas kuliah merangkum materi algoritma dan program monggo nambah ilmu juga yakan!!! sesuai judulnya kita akan membahas tentang “Repetition”.                Pertama kita perlu tau lebih dulu apa itu “Repetition”, repertition atau looping dalam bahasa Indonesia artinya pengulangan atau dalam pemrograman yaitu pengulangan instruksi sebanyak 1 atau lebih dari 1 kali. Beberapa operasi repetition atau looping dalam bahasa pemrograman C : For While Do-while         A.      Repetition: FOR                Pengertian 'FOR' : instruksi menjalankan suatu proses dengan pengulangan tertentu yang telah ditetapkan.    Cara penulisan atau syntax dari FOR • ...

Jaman NOW ?, ya Jamannya ASUS VIVO BOOK PRO!!!!

     Sebagai anak yang mau menjadi mahasiswa teknik informatika aku ingin mempunyai laptop yang canggih untuk tugas-tugas nanti dan sudah seharusnya tau dong apasih keperluan laptop yang bakal dibutuhkan pada saat kuliah nanti, bagi kalian yang belum tau apapun mengenai laptop ataupun komputer yuk, kalian juga bisa kok belajar sedikit-sedikit dari blog ini. Nah yang bakalan aku omongin hari ini itu Notebook terbaru dari asus namanya " VIVO BOOK PRO ", dari namanya aja sudah keren apa lagi isinya ya kan dan bakal ku breakdown mengenai laptop ini step by step.      Dari speknya aja keliatannya laptop ini hebatnya bukan main dah, laptop ini dijalankan dengan Intel® Core™ i7 7700U Processor (4M Cache, up to 3.5GHz), nah kenapa sih mesti intel i7 yang ini kenapa ga yang lain padahal perasaan sama aja semua intel, eits tenang dulu intel i7 yang menjalankan laptop ini adalah generasi terbaru i7 dari intel yang dapat digunakan untuk performasi yang ting...