Senin, 10 Juni 2019

Graf (Djikstra) dan Pohon (Kruskal)


Kali ini saya akan menjelaskan tentang Graf (Djikstra) dan Pohon (Kruskal)

Djikstra

    A.    Pengertian Djikstra
         Algoritma Djikstra, penemunya adalah seorang ilmuwan komputer, Edsger Djikstra, adalah sebuah algoritma yang dipakai dalam memecahkan permasalahan jarak terpendek untuk sebuah graph berarah dengan bobot-bobot sisi yang bernilai positif.  

   B. Tujuan Algoritma Djikstra  
      1.   Tujuan Algoritma Djikstra yaitu untuk menemukan jalur terpendek berdasarkan bobot terkecil dari satu titik ke titik lainnya. 
      2.   Kelemahan algoritma ini adalah semakin banyak titik akan semakin memakan waktu proses. 
     3.   Jumlah titik menentukan tingkat efektifitas dari algoritma djikstra. 

   C. Urutan Logika Algoritma Djikstra   

         1.   Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set nilai 0 pada node awal dan nilai tak hingga terhadap node lain (yang belum terisi). 
        2.   Set semua node “Belum terjamah” dan set node awal sebagai “Node keberangkatan”. 
       3.   Dari node keberangkatan, pertimbangkan node tetangga yang belum terjamah dan hitung jaraknya dari titik keberangkatan. 
       4.   Setelah selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang telah terjamah sebagai “Node terjamah”. Node terjamah tidak akan pernah di cek kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal bobotnya. 
      5.   Set “Node belum terjamah” dengan jarak terkecil (dari node keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan lanjutkan dengan kembali ke step 3.  
   
    Kruskal 
    A.    Pengertian Kruskal
           Algoritma kruskal adalah sebuah algoritma dalam teori graf yang mencari sebuah minimum spanning tree untuk sebuah graf berbobot yang terhubung. Ini berarti menemukan subset dari tepi yang membentuk sebuah pohon yang mencakup setiap titik , di mana berat total dari semua tepi di atas pohon diminimalkan.. Jika grafik tidak terhubung, maka menemukan hutan rentang minimum (pohon rentang minimum untuk setiap komponen terhubung).
      Algoritma Kruskal juga tergolong algoritma Greedy dalam teori graf yang digunakan untuk mencari minimum spanning tree. Algoritma ini pertama kali muncul pada tahun 1956 dalam sebuah tulisan yang ditulis oleh Joseph Kruskal. Algoritma Kruskal adalah contoh dari algoritma rakus. Algoritma ini pertama kali muncul dalam Prosiding American Mathematical Society, hal 1956.  
      Dasar pembentukan algoritma Kruskal berasal dari analogi growing forest. Growing forest maksudnya adalah untuk membentuk pohon merentang minimum T dari graf G adalah dengan cara mengambil satu per satu sisi dari graf G dan memasukkannya ke dalam pohon yang telah terbentuk sebelumnya. Seiring dengan berjalannya iterasi untuk setiap sisi, maka forest akan memiliki pohon yang semakin sedikit. Oleh sebab itu, maka analogi ini disebut dengan growing forest. Algoritma Kruskal akan terus menambahkan sisi – sisi ke dalam hutan yang sesuai hingga akhirnya tidak akan ada lagi forest dengan, melainkan hanyalah sebuah pohon yang merentang minimum.  
       Graph: kumpulan dua himpunan yaitu himpunan titik (vertex / simpul / node) dan kumpulan dari garis (edge). 
     Tree: graph tak berarah yang terhubung dan tidak mengandung sirkuit.   
      Sirkuit: simpul awal = simpul akhir. 
     Secara umum  Algoritma Kruskal ditulis :  
        1.    T masih kosong . 
        2.    pilih sisi (i,j) dengan bobot minimum.  
      3.    pilih sisi (i,j) dengan bobot minimum berikutnya yang tidak membentuk cycle di T, tambahkan (i,j) ke T. 
       4.    Ulangi langkah 3 sebanyak (n-2) kali. 
       5.    Total langkah (n-1) kali  

   B. Karakteristik Algoritma Kruskal Sifat Algoritma Kruskal ini:  
       1.    Ia bekerja tidak hanya dengan grafik diarahkan. 
      2.    Ia bekerja dengan bobot dan tidak grafik tertimbang. Tapi, yang lebih menarik, apabila tepi yang berbobot. 
       3.    Kruskal adalah jenis algoritma serakah yang menghasilkan solusi optimal MST.  

   C. Kelebihan dan Kekurangan Algoritma Kruskal  
       Terdapat dua macam algoritma tipe greedy yang dapat memenuhi pemecahan masalah pohon merentang ini. Yaitu algoritma Prim dan algoritma kruskal, berikut adalah kelebihan dan kekurangan algoritma Kruskal dibanding algoritma prim.
      a. Kelebihan Algoritma Kruskal Kelebihan algoritma Kruskal dibanding algoritma prim adalah sebagai berikut : 
    Sangat cocok diterapkan saat graf memiliki sisi berjumlah sedikit namun memiliki sangat banyak simpul, karena orientasi kerja algoritma ini adalah berdasarkan pada urutan bobot sisi, tidak berdasarkan simpul
           b.   Kekurangan Algoritma Kruskal 
           Beberapa hal yang menjadi kekurangan algoritma kruskal dibanding algoritma prim: 
       Kurang cocok digunakan saat graf lengkap atau yang mendekati lengkap, dimana setiap simpul terhubungkan dengan semua simpul yang lain. Karena algoritma Kruskal menitik beratkan pada pencarian sisi, dimana sisi-sisi tersebut harus diurutkan dan ini memakan waktu yang tidak sedikit. 
   Listing Djikstra (graf)
   

    
    Listing Kruskal (pohon)
    
   
    Hasil Running Djikstra
    
 
    Hasil Running Kruskal
    

  
   Sumber :
      

Sabtu, 08 Juni 2019

( Bubble sort dan Quick sort)

kali ini saya akan menjelaskan tentang Bubble sort dan Quick sort


   A.    Bubble sort 
Algoritma bubble sort ini merupakan proses pengurutan yang secara berangsur-angsur berpindah ke posisi yang tepat karena itulah dinamakan bubble yang artinya gelembung. 
Algoritma ini akan mengurutkan data dari yang terbesar ke yang kecil (ascending) atau sebaliknya (descending). Algoritma bubble sort ini mempunyai kelebihan dan kekurangan, untuk kelebihannya metode ini merupakan metode paling sederhana untuk mengurutkan data. Selain sederhana, algoritma bubble sort mudah dipahami. 
Sementara itu, kekurangannya terletak pada efisiensi. Bubble sort ini merupakan metode pengurutan yang tidak efisien karena ketika mengurutkan data yang sangat besar aakan sangat lambat prosesnya. Selain itu jumlah pengulangan akan tetap sama jumlahnya meskipun data sudah cukup terurut. 


   B.    Quick sort


Quick sort merupakan salahh satu dari ke enam metode pengurutan dimana ini merupakan metode tercepat bagi komputer untuk melakukan pengurutan data acak. Sesuai dengan sebutannya “quick” maka bisa  kita simpulkan ini merupakan metode yang cepat. 
Memang tercepat daripada metode lain tapi jika kita yang harus mengurutkannya secara manual mungkin ini lebih sulit tapi untuk mengurutkan data skala besar, quick lebih cepat dan efektif. quick sort menggunakan teknik sumbu acuan. Sumbu ini akan digunakan untuk menjadi suatu acuan dengan membandingkan data yang lain. 
Konsepnya tetap menggunakan perbandingan tetapi yang akan kita bandingkan adalah data dengan titik acuan. Sumbu acuan ini kita sebut dengan pivot. Selain pivot, nanti aka nada sumbu kanan dan sumbu kiri. Sumbu kiri digunakan untuk membandingkan data dari kiri dengan pivot, sedangkan sumbu kanan untuk membandingkan data dari kanan dengan pivot

Perbedaan Bubble sort dan Quick sort
1.      Bubble sort
Proses pengurutan sederhana yang bekerja dengan cara berulang kali membandingkan dua elemen data pada suatu saat dan menukar elemen data yang urutannya salah.
2.      Quick sort
Metode terdapat dalam proses pengurutan data dengan menggunakan prinsip rekursif. Metode ini menggunakan strategi “Pecah Belah“ dengan mekanisme

   C.    Algoritma (Kodingan) pada Bubble sort

        



           Hasil Running


    D.    Algoritma (Kodingan) pada Quick sort
          
         




    Hasil Running