Click here to load reader

11#Sorting Algorithm

  • View
    235

  • Download
    3

Embed Size (px)

DESCRIPTION

algoritma

Text of 11#Sorting Algorithm

  • ALGORITMAPENGURUTAN

    1

  • MACAM PENGURUTANPengurutan atau sorting adalah menyusundata berdasarkan rangking nilai yangdimiliki data tersebut

    Ascending atau pengurutan naik ,-2,-1,0,1,2, A,B,C,

    Descending atau pengurutan turun ,2,1,0,-1,-2, ,C,B,A 2

  • METODE PENGURUTANStraight SelectionStraight InsertionBinary InsertionBubble SortPartition Exchange Sort atau Quick SortDiminishing Increment atau Shell SortTwo Way Merge SortRadix Sort

    3

  • STRAIGHT SELECTIONMetode pengurutan seleksi langsung(straight selection) menggunakan caraiteratifmencari data terkecil/ terbesardan menempatkan pada posisi urutan awal

    4

  • CONTOH STRAIGHT SELECTIONContoh :Metode ASC ( Pengurutan dari kecil sampaiterbesar)

    Nilai terkecil diletakkan paling kiri. Bandingkan apakahurutan pertama lebih besar dari yang lainnya, jika ya makaditukar,

    Bandingkan apakah urutan ke-2 lebih besar dari yanglainnya, jika ya maka ditukar, hasilnya akan seperti dibawahini :5

    5 2 1 4 3

  • CONTOH STRAIGHT SELECTIONBandingkan apakah urutan ke-3 lebih besar dari yanglainnya, jika ya maka ditukar, hasilnya akan seperti dibawahini :

    Bandingkan apakah urutan ke-4 lebih besar dari yanglainnya, jika ya maka ditukar, maka dilanjutkan, hasilnyaakan seperti dibawah ini :

    Rumus banyaknya langkah = n -1 dimana n adalahbanyaknya data yang diurutkan.

    6

  • STRAIGHT SELECTION

    N

    i = 1

    i = i + 1

    i = N

    j = i + 1

    j > N

    Xi > Xjdummy = Xi

    Xi = XjXj = dummy

    j = j + 1

    N N

    Y

    YY

    735 2 1 4

  • STRAIGHT SELECTIONPrivate Sub SS_Sort()Dim I,J As IntegerDim Dummy As Single

    For I = 1 To (N-1)For J = I To N

    If X(I) > X(J) ThenDummy = X(I)X(I) = X(J)X(J) = Dummy

    End IfNext J

    Next I

    End Sub 8

  • STRAIGHT INSERTION Metode pengurutan penyisipan langsung(straight insertion) menggunakan cara iteratifmencari posisi data dengan dibandingkanterhadap data sebelumnya

    Data dicek satu per satu mulai dari yangpertama sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebutdisisipkan pada posisi yang sesuai.

    9

  • STRAIGHT INSERTIONAplikasinya lebih mudah apabila membayangkanpengurutan kartu.o Pertama-tama anda meletakkan kartu-kartutersebut di atas meja, kemudian melihatnya darikiri ke kanan.o Apabila kartu di sebelah kanan lebih kecildaripada kartu di sebelah kiri, maka ambil kartutersebut dan sisipkan di tempat yang sesuai.

    10

  • CONTOH STRAIGHT INSERTIONContoh :Metode ASC ( Pengurutan dari kecil sampai terbesar)

    Cek apakah angka 5 lebih besar dari angka di sebelah kanannya,jika ya, maka sisipkan ke tempat yang sesuai (antara 4 dan 1)

    Cek apakah apakah angka 2 lebih besar dari angka di sebelahkanannya, jika ya maka sisipkan ke tempat yang sesuai, jikatidak lanjutkan ke angka berikutnya. Cek apakah 4 lebih besar dari angka di sebelah kanannya, jikatidak lanjutkan ke angka berikutnya Cek apakah 5 lebih besar dari angka di sebelah kanannya, jikajika ya, maka sisipkan angka 1 ke tempat yang sesuai

    11

    2 4 5 1 3

    1 2 4 5 3

    5 2 4 1 3

  • CONTOH STRAIGHT INSERTION

    Cek apakah apakah angka 5 lebih besar dari angka di sebelahkanannya, jika ya maka sisipkan angka 3 pada posisi yangsesuai (antara 2 dan 4)

    12

    1 2 3 4 5

    1 2 4 5 3

  • STRAIGHT INSERTION

    N

    i = 2

    i = i + 1

    i > N

    j = i

    j = 1

    Xj < Xj-1

    j = j - 1

    N N

    Y

    YY

    dummy = XjXj = Xj-1

    Xj-1 = dummy

    1335 2 1 4

  • STRAIGHT INSERTIONPrivate Sub SI_Sort()Dim I,J As IntegerDim Dummy As Single

    For I = 2 To NFor J = I To 2 Step -1

    If X(J) < X(J-1) ThenDummy = X(J)X(J) = X(J-1)X(J-1) = Dummy

    End IfNext J

    Next I

    End Sub 14

  • BINARY INSERTIONMetode pengurutan penyisipan biner(binary insertion) menggunakan caraiteratif mencari posisi datadibandingkan dengan rangkaian datayang telah diurutkan sebelumnya,selanjutnya menggeser data-data yanglebih besar.

    15

  • BINERY INSERTION SORT Metode ini merupakan pengembangan darimetode penyisipan langsung. Dengan cara penyisipan langsung, perbandinganselalu dimulai dari angka/elemen pertama (i=0)sehingga untuk menyisipkan angka/elemen ke ikita harus melakukan perbandingan sebanyak i -1 kali. Ide dari metode ini didasarkan pada kenyataanbahwa pada saat menggeser data ke-i, data ke 0s/d i-1 sebenarnya sudah dalam keadaan terurut

    16

  • CONTOH BINERY INSERTION SORT Misalnya data yang akan dipindah adalah 15sedangkan data di sebelah kiri 15 adalah sebagaiberikut :

    Pertama-tama dicari data pada posisi palingtengah diantara data diatas. Data yang terletak di tengah adalah data ke-4,yaitu 12. Karena 12 < 15, berarti 15 harus disisipkan disebelah kanan 12. Oleh karena itu, prosespencarian dlanjutkan lagi untuk data berikut

  • BINERY INSERTION SORT

    Dari hasil ini, didapat data tengahnyaadalah data 23. Karena 15 < 23, berarti 15harus disisipkan di sebelah kiri 23. Prosesdilanjutkan kembali untuk data

    Karena 17 > 15, berarti 15 harus disisipkandi sebelah kiri 17

  • BINARY INSERTION

    N

    i = 2

    i = i + 1

    i > N

    j = 1

    j = i

    Xi < Xjdummy = Xi

    j = j + 1

    N N

    Y

    YYk = i

    k = j

    Xk = Xk-1k = k - 1

    Xj = dummyj = i

    N

    Y

    1935 2 1 4

  • BINARY INSERTIONPrivate Sub BI_Sort()Dim I,J,K As IntegerDim Dummy As SingleFor I = 2 To N

    J = 1Do

    If X(I) < X(J) ThenDummy = X(I)For K = I to (J+1) Step -1

    X(K) = X(K-1)Next KX(J) = DummyJ = I

    ElseJ = J + 1

    End IfLoop Until J = I

    Next I

    End Sub20

  • BUBBLE SORTMetode pengurutan gelembung (bubblesort) menggunakan cara iteratifmempertukarkan data yangberdampingan sesuai urutan nilai

    Dimetode bubble sort, proses pengurutandimulai dengan membandingkan elemenpertama untuk mendapatkan angkaterbesar. Lalu angka tersebutditempatkan pada elemen terakhir

    21

  • CONTOH BUBBLE SORTContoh :elemen pertama dibandingkan dengan elemen ke-2. Jika isielemen ke-2 lebih kecil dari elemen pertama, maka isi keduaelemen tersebut ditukar. Sehingga isi array berubah menjadi

    Elemen ke-2 dibandingkan dengan elemen ke-3. karenaelemen ke 3 lebih kecil dari elemen ke-2, maka ditukar.Sehingga menjadi

    Elemen ke-3 dan ke-4 dibandingkan. Karena elemen ke-4lebih kecil dari elemen ke-3, maka ditukar 22

    5 2 1 4 3

    2 5 1 4 3

    2 1 5 4 3

  • CONTOH BUBBLE SORTElemen ke-4 dan ke-5 dibandingkan. Karena elemen ke-5lebih kecil dari elemen ke-4, maka ditukar menjadi

    Proses perbandingan seperti diatas dilakukan secaraberulang sampai pada elemen terakhir. Sehingga padaakhirnya akan dihasilkan bilangan terbesar yangditempatkan pada posisi elemen terakhirProses diatas hanya mencari bilangan terbesar pertama.Ulangi proses tersebut untuk mencari bilangan terbesarlainnya setelah bilangan terbesar pertama tadi.Proses perbandingan hanya dilakukan mulai dari elemenpertama sampai elemen ke-4. 23

    2 1 4 5 3

    2 1 4 3 5

  • CONTOH BUBBLE SORT

    Elemen ke-1 dan ke-2 dibandingkan. Karena elemen ke-2lebih kecil dari elemen ke-1, maka ditukar menjadi

    Elemen ke-2 dan ke-3 dibandingkan. Karena elemen ke-3lebih besar dari elemen ke-2, maka tidak ditukar

    24

    2 1 4 3 5

    1 2 4 3 5

    1 2 4 3 5

  • CONTOH BUBBLE SORT

    Elemen ke-3 dan ke-4 dibandingkan. Karena elemen ke-4lebih kecil dari elemen ke-3, maka ditukar menjadi

    Proses diatas mencari bilangan terbesar kedua.Ulangi proses tersebut untuk mencari bilangan terbesarketiga, keempat sampai yang terkecil

    25

    1 2 4 3 5

    1 2 3 4 5

  • BUBBLE SORT

    N

    i = 1

    i = i + 1

    i = N

    j = 1

    j > N - i

    Xj > Xj+1

    j = j + 1

    N N

    Y

    YY

    dummy = XjXj = Xj+1

    Xj+1 = dummy

    2635 2 1 4

  • BUBBLE SORTPrivate Sub BS_Sort()Dim I,J As IntegerDim Dummy As Single

    For I = 1 To (N-1)For J = 1 To (N-I)

    If X(J) > X(J+1) ThenDummy = X(J)X(J) = X(J+1)X(J+1) = Dummy

    End IfNext J

    Next I

    End Sub 27

  • POPULAR SORTING ALGORITHM1 Simple sorts1.1 Insertion sort1.2 Selection sort

    2 Efficient sorts2.1 Merge sort2.2 Heapsort2.3 Quicksort

    3 Bubble sort and variants3.1 Bubble sort3.2 Shell sort3.3 Comb sort

    4 Distribution sort4.1 Counting sort4.2 Bucket sort4.3 Radix sort 28

  • TUGAS

    Buat powerpoint yang menjelaskan algoritmasorting yang ditentukan, lengkap denganflowchart dan VB Minggu depan presentasi

    29

    Kelompok 1 Efficient sortsKelompok 2Kelompok 3 Bubble sort and variantsKelompok 4Kelompok 5 Distribution sortKelompok 6

Search related