Wednesday, 27 May 2020

BubbleSort dengan Python

Prerequisites

  • Python 3.7.3

BubbleSort

Membuat sorting algorithm bubblesort dengan python.

Dengan bahasa sederhana yang saya pahami Bubblesort adalah mengurutkan baris angka / string dari urutan terkecil sampai yang terbesar atau sebaliknya.

Misal kita memiliki list / baris angka sebagai berikut: [ 5, 8, 3, 1 ].

Dengan bubblesort kita ingin mengubah baris angka kita menjadi berurutan dari angka yang terkecil ke angka terbesar seperti berikut: [ 1, 3, 5, 8 ].

Sebelum kita membuat program python untuk bubblesort, kita akan membahas algoritma yang akan kita tulis dengan bahasa pemrograman python.

Kita memiliki 4 angka dalam baris, langkah pertama adalah membandingkan angka pertama dengan angka kedua dan apabila angka pertama lebih besar dari angka kedua, tukar posisi angka pertama menjadi angka kedua dan angka kedua menjadi angka pertama "swap".

Lalu kita bandingkan angka kedua dengan angka ke tiga, jika angka kedua lebih besar dari angka ketiga swap.

Bandingkan angka ketiga dengan angka keempat, jika angka ketiga lebih besar dari angka keempat, swap.

Langkah ini akan terus berulang sampai baris angka berurutan dari yang terkecil ke terbesar. Lihat gambar di bawah.

Tanda panah pada gambar mengartikan bahwa setiap angka dibandingkan dengan angka setelahnya. Dengan kondisi "jika angka pertama lebih besar dari angka setelahnya"

Python code

Dari algoritma di atas, kita bisa tulis code python-nya sebagai berikut:

Pertama kita membuat function bubblesort dengan 1 parameter (list), yang akan mengembalikan list yang sudah berurutan dari yang terkecil sampai terbesar.

Di dalam function kita looping list menggunakan for dan fungsi range. Perhatikan ada 3 parameter yang digunakan pada fungsi range, yang pertama adalah start, kedua adalah batas stop dan parameter ketiga adalah nilai step.

Outer loop akan loop list dari index terbesar (belakang) dengan memberikan jumlah list dikurang satu (dikurang satu karena index dimulai dari angka 0). Lalu kita memberikan nilai 0 pada parameter stop (kedua). Dan pada parameter ketiga kita memberikan nilai minus 1, yang akan membuat loop dimulai dari index terakhir pada list.

Lalu pada inner loop, kita akan melakukan loop berdasarkan jumlah outer looping dan melakukan swap nilai list. Dengan memanfaatkan variable temp untuk menyimpan sementara nilai yang akan kita tukar.

Dan terakhir adalah function mengembalikan list yang telah diubah.

Teknik bubbleSort ini tidak pas jika digunakan untuk melakukan sort pada data yang jumlahnya sangat banyak, dikarenakan teknik ini menggunakan nested loop.

No comments:

Post a comment