Anda di halaman 1dari 18

LANDASAN TEORI

Python adalah bahasa pemrograman tingkat tinggi, interpretatif, dan general-purpose


yang diciptakan pada tahun 1991 oleh Guido van Rossum. Python memiliki sintaks yang
mudah dipahami, sangat ekspresif, dan mudah dibaca, sehingga menjadi bahasa yang populer
dan banyak digunakan dalam berbagai bidang seperti pengembangan web, ilmu data, dan
kecerdasan buatan.
Ada beberapa landasan teori yang menjadi dasar pengembangan Python, di antaranya:
(1) Bahasa pemrograman C: Python dibangun dengan menggunakan bahasa pemrograman C,
sehingga memiliki banyak fitur dan fungsionalitas yang sama dengan bahasa pemrograman C.
Bahasa pemrograman C juga digunakan untuk mengembangkan banyak pustaka dan modul di
Python. (2) Dinamis dan interpretatif: Python adalah bahasa pemrograman yang dinamis dan
interpretatif, artinya program yang ditulis dalam Python tidak perlu dikompilasi terlebih
dahulu seperti pada bahasa pemrograman C. Python juga dapat menjalankan kode secara
langsung, tanpa harus membuat file objek terlebih dahulu. (3) Orientasi objek: Python adalah
bahasa pemrograman yang berorientasi objek. Hal ini memungkinkan programmer untuk
membuat objek-objek dan metode-metode yang terkait dengan objek tersebut. Objek-objek
tersebut dapat dipanggil dalam program Python dan digunakan untuk melakukan tugas
tertentu. (4) Sintaks yang sederhana: Python memiliki sintaks yang sederhana dan mudah
dipahami. Hal ini membuat bahasa pemrograman ini sangat mudah untuk dipelajari oleh
pemula yang baru belajar pemrograman. (5) Pustaka standar yang lengkap: Python dilengkapi
dengan pustaka standar yang lengkap dan dapat digunakan untuk berbagai macam tugas.
Pustaka standar ini mencakup berbagai macam modul, seperti modul untuk pengolahan file,
jaringan, matematika, dan banyak lagi. (6) Komunitas yang besar: Python memiliki komunitas
pengembang yang besar dan aktif. Komunitas ini sangat membantu dalam pengembangan
Python dan juga menyediakan berbagai macam pustaka dan modul yang dapat digunakan oleh
para programmer Python. (7) Portabilitas: Python dapat dijalankan pada berbagai macam
sistem operasi, termasuk Windows, Linux, dan Mac OS. Hal ini membuat Python menjadi
bahasa pemrograman yang sangat fleksibel dan mudah digunakan di berbagai macam
platform. Dengan landasan teori ini, Python menjadi salah satu bahasa pemrograman yang
populer dan banyak digunakan oleh para programmer di seluruh dunia.
VS Code adalah perangkat lunak pengembangan terintegrasi (Integrated Development
Environment/IDE) yang dikembangkan oleh Microsoft dan dirilis pada tahun 2015. VS Code
dirancang untuk mendukung berbagai bahasa pemrograman dan dapat diinstal di berbagai
sistem operasi, termasuk Windows, macOS, dan Linux. Banyak programmer yang
menggunakan aplikasi ini karna terbilang lebih efisien dalam dunia coding.

Deva Marlina 1 G1A022039


Terdapat banyak fitur dan fungsionalitas yang disediakan oleh VS Code sebagai
sebuah IDE. Berikut beberapa fitur dan fungsionalitas yang lebih detail: (1) Editor kode VS
Code menyediakan editor kode yang fleksibel dan berfitur lengkap, dengan dukungan penuh
untuk bahasa pemrograman seperti Python, C++, JavaScript, dan banyak lagi. (2) Integrasi
Version Control VS Code memiliki integrasi yang kuat dengan alat version control seperti
Git, Subversion, dan Mercurial. (3) Debugger VS Code menyediakan debugger untuk banyak
bahasa pemrograman seperti Python, JavaScript, C++, dan banyak lagi. (4) Terminal VS Code
memiliki terminal terintegrasi yang memungkinkan pengguna untuk menjalankan perintah
shell dari dalam IDE. (5) Ekstensi VS Code memiliki ribuan ekstensi yang tersedia untuk
diunduh dan dipasang. (6) Pemecahan masalah khusus VS Code menyediakan pemecahan
masalah khusus untuk banyak bahasa pemrograman, termasuk Python, JavaScript, dan C++.
Pemecahan masalah ini dapat membantu pengguna mengidentifikasi masalah dalam kode
mereka dan menawarkan saran untuk memperbaikinya. (7) Integritas Code VS Code memiliki
integrasi yang kuat dengan alat linting, seperti Pylint dan ESLint.
Kedua algoritma ini adalah metode pengurutan data dalam ilmu komputer. Berikut
adalah penjelasan tentang masing-masing metode: Bubble sort adalah algoritma pengurutan
sederhana yang bekerja dengan membandingkan setiap pasangan elemen yang bersebelahan
dalam daftar dan menukar posisinya jika perlu. Pada setiap iterasi, elemen terbesar akan
bergerak ke akhir daftar. Algoritma ini disebut bubble sort karena elemen-elemen yang lebih
besar "muncul ke permukaan" seperti gelembung di dalam air.
Langkah-langkah untuk Bubble Sort: (1) Bandingkan elemen pertama dan kedua
dalam daftar. Jika elemen pertama lebih besar dari elemen kedua, tukar posisinya. (2)
Lanjutkan dengan membandingkan elemen kedua dan ketiga dalam daftar, dan seterusnya,
sampai elemen terakhir. (3) Setelah iterasi pertama selesai, elemen terbesar berada di posisi
terakhir. (4) Ulangi proses ini dengan mengulang langkah-langkah 1-3 untuk seluruh elemen
dalam daftar, kecuali untuk elemen terakhir. Ulangi proses ini sampai seluruh daftar terurut.
Selection Sort Selection sort adalah algoritma pengurutan sederhana yang bekerja
dengan memilih elemen terkecil dari daftar dan menukar posisinya dengan elemen pertama.
Kemudian, ia memilih elemen terkecil dari sisa daftar dan menukar posisinya dengan elemen
kedua, dan seterusnya sampai daftar diurutkan secara lengkap.
Langkah-langkah untuk Selection Sort: (1) Pilih elemen terkecil dalam daftar. (2) Tukar
elemen terkecil dengan elemen pertama dalam daftar. (3) Pilih elemen terkecil dari sisa daftar.
(4) Tukar elemen terkecil dengan elemen kedua dalam daftar. (5) Lanjutkan proses ini sampai
seluruh daftar terurut. Selection Sort lebih efisien daripada Bubble sort dalam hal kecepatan
untuk jumlah data yang lebih besar.

Deva Marlina 2 G1A022039


SOAL DAN PEMBAHASAN
1. Jelaskan proses yang dilakukan oleh program dibawah ini!

Program tersebut merupakan implementasi dari algoritma Bubble Sort. Berikut


adalah penjelasan langkah-langkah yang dilakukan oleh program tersebut: (1) Pertama-
tama, loop for pertama akan dijalankan dimulai dari len(data)-1 dan akan terus berkurang
sebanyak satu pada setiap iterasi hingga mencapai 0. Loop for ini digunakan untuk
mengulang proses bubble sort dari akhir data ke awal data. (2) Setelah loop for pertama
dijalankan, loop for kedua akan dijalankan dimulai dari 0 hingga mencapai i. Loop for ini
digunakan untuk membandingkan pasangan elemen bersebelahan dari awal data hingga
indeks i. (3) Selanjutnya, jika elemen pada indeks ke-j lebih besar dari elemen pada
indeks ke-j+1, maka keduanya akan ditukar posisinya menggunakan fungsi swap.
Setelah itu, loop for kedua akan terus berulang untuk membandingkan pasangan
elemen bersebelahan hingga indeks i-1. (4) Setelah loop for kedua selesai, elemen terbesar
akan berada pada posisi terakhir yaitu pada indeks i. (5) Setelah itu, loop for pertama akan
berjalan kembali untuk mengulang proses bubble sort dari akhir data hingga indeks ke-i-1.
Loop for kedua akan dijalankan kembali untuk membandingkan pasangan elemen
bersebelahan hingga indeks i-2 dan seterusnya. Proses ini akan berulang hingga seluruh
data terurut secara ascending (dari nilai terkecil ke nilai terbesar).
Dalam algoritma Bubble Sort, setiap iterasi akan memindahkan elemen terbesar ke
posisi akhir dan memperkecil jangkauan pengurutan data. Algoritma ini cukup sederhana,
namun membutuhkan waktu yang cukup lama terutama pada data yang sangat besar.

2. Buatlah program sorting dengan menggunakan metode bubble sort secara ascending dan
descending, dengan data diambil dari:

a) Tanggal Lahir
b) Bulan Lahir
c) NPM (contoh: 19)
d) Jam pembuatan program (contoh 17:12, maka yang diambil cukup 17)
e) Tanggal pembuatan program

Deva Marlina 3 G1A022039


Source Code:
#ascending dan descending
def BubbleSort(data):
for j in range(len(data)-1,0,-1):
for i in range (j):
if data[i]>data[i+1]:
data[i], data[i+1]=data[i+1],data[i]

#Tanggal Lahir = 19
#Bulan Lahir = 10
#NPM = 39
#Jam Pembuatan Program = 11.03
#Tanggal Pembuatan Program = 11
DaftarAngka=[19,10,39,11,11]
print("Metode Bubble Sort Secara Ascending")
print("Angka sebelum diurutkan :",DaftarAngka)
BubbleSort(DaftarAngka)
print("Angka sesudah diurutkan",DaftarAngka)

def BubbleSort(data):
for j in range(len(data)-1,0,-1):
for i in range (j):
if data[i]<data[i+1]:
data[i], data[i+1]=data[i+1],data[i]

#Tanggal Lahir = 19
#Bulan Lahir = 10
#NPM = 39
#Jam Pembuatan Program = 11.03
#Tanggal Pembuatan Program = 11
DaftarAngka=[19,10,39,11,11]
print("Metode Bubble Sort Secara Descending")
print("Angka sebelum diurutkan :",DaftarAngka)
BubbleSort(DaftarAngka)
print("Angka sesudah diurutkan",DaftarAngka)

Deva Marlina 4 G1A022039


Printscreen Source Code:

G1A022039

Gambar 2. 1 Source Code Bubble Sort Ascending dan Descending

Printscreen Output:

G1A022039

Gambar 2. 2 Output Bubble Sort Ascending dan Descending

Penjelasan Source Code:

Algoritma Bubble Sort dilakukan dengan cara membandingkan dua angka secara
berpasangan dan menukar posisi jika angka pertama lebih besar (atau lebih kecil,
tergantung pada mode pengurutan) dari angka kedua. Variabel j diinisialisasi dengan nilai
len(data)-1, yang merepresentasikan indeks elemen terakhir dari list, dan nilai decrement
1 digunakan untuk mengatur range iterasi untuk algoritma Bubble Sort. Variabel i
merepresentasikan indeks elemen saat ini yang sedang dibandingkan dengan elemen
berikutnya di list. Pada bagian if statement, jika elemen ke-i lebih besar (atau lebih kecil,
tergantung pada mode pengurutan) dari elemen berikutnya, maka posisi dua elemen
tersebut ditukar menggunakan teknik swapping dengan sintaksis data[i], data[i+1] =
data[i+1], data[i]. Pada bagian akhir program, list DaftarAngka diinisialisasi dengan
beberapa angka dan diurutkan menggunakan algoritma Bubble Sort.

Deva Marlina 5 G1A022039


3. Berdasarkan program yang telah dibuat pada soal nomor 2, jelaskan output dari setiap
iterasinya secara manual menggunakan tabel.
Iterasi Ascending = [19, 10, 39, 11, 11]
x n i j A[J] A[J+1] Perubahan
10 5 0 0 10 19 10, 19, 39, 11, 11
19 5 0 1 19 39 10, 19, 39, 11, 11
39 5 0 2 39 => 11 11 => 39 10, 19, 11, 39, 11
39 5 0 3 39 = > 11 11 => 39 10, 19, 11, 11, 39
19 5 1 0 10 19 10, 19, 11, 11, 39
19 5 1 1 11 19 10, 11, 19, 11, 39
11 5 1 2 19 => 11 11 => 19 10, 11, 11, 19, 39
39 5 1 3 19 39 10, 11, 11, 19, 39
11 5 2 0 10 11 10, 11, 11, 19, 39
11 5 2 1 11 11 10, 11, 11, 19, 39

Iterasi Descending = [19, 10, 39, 11, 11]


x n i j A[J] A[J+1] Perubahan
19 5 0 0 19 10 19, 10, 39, 11, 11
10 5 0 1 10 => 39 39 => 10 19, 39, 10, 11, 11
10 5 0 2 10 => 11 11 => 10 19, 39, 11, 10, 11
19 5 1 0 19 => 39 39 => 11 19, 39, 11, 11, 10
39 5 2 0 39 19 39, 19, 11, 11, 10
19 5 2 1 19 11 39, 19, 11, 11, 10
11 5 2 2 11 11 39, 19, 11, 11, 10
11 5 2 3 11 10 39, 19, 11, 11, 10
39 5 3 0 39 19 39, 19, 11, 11, 10
19 5 3 1 19 11 39, 19, 11, 11, 10
Penjelasan Tabel:
Pada iterasi bubble sort pengurutan dilakukan dengan membandingkan elemen
pertama dengan elemen kedua, apabila nilai elemen pertama lebih besar dari elemen
kedua maka akan terjadi pertukaran (swap) dan bila sudah benar maka akan dilanjutkan
dengan perbandingan elemen ke dua dan elemen ketiga hingga elemen seterusnya.
Apabila pada iterasi pertama memiliki perbandingan yang membuat elemen betukar maka
akan di lanjutkan dengan iterasi kedua hingga iterasi selanjutnya tidak ada pertukaran.

Deva Marlina 6 G1A022039


4. Urutkan data berikut ini dengan program yang menampilkan iterasi setiap langkah pada
pertukaran data.
Nilai= (8, 93, 26, 10, 15, 56)
Source Code:
def BubbleSort(data):
iterasi = 0
for i in range(len(data)-1,0, -1):
for j in range(i):
if data[j]>data[j+1]:
temp = data[j]
data[j] = data[j+1]
data[j+1] = temp
iterasi +=1
print("Iterasi ke-:", iterasi, Nilai)

Nilai = [8, 93, 26, 10, 15, 56]


print("Nilai yang belum diurutkan:", Nilai)
BubbleSort(Nilai)
print("Nilai yang sudah diurutkan:", Nilai)
Printscreen Source Code:

G1A022039

Gambar 4. 1 Source Code Iterasi Pertukaran Data

Deva Marlina 7 G1A022039


Printscreen Output:

G1A022039

Gambar 4. 2 Output Iterasi Pertukaran Data

Penjelasan Source Code:


Kode program tersebut merupakan implementasi algoritma Bubble Sort pada
bahasa pemrograman Python. Berikut adalah penjelasan setiap baris kode program: def
BubbleSort(data): Mendefinisikan fungsi bernama BubbleSort dengan parameter data,
yang berisi list of integer yang akan diurutkan menggunakan algoritma Bubble Sort.
iterasi = 0 Membuat variabel iterasi dengan nilai awal 0. Variabel ini digunakan untuk
menghitung jumlah iterasi atau langkah yang diperlukan untuk mengurutkan list. for i in
range(len(data)-1,0, -1): Melakukan iterasi secara terbalik mulai dari indeks terakhir
(len(data)-1) hingga indeks ke-1 dengan penurunan nilai sebanyak 1 setiap iterasinya.
Loop ini bertujuan untuk memastikan nilai terbesar berada di akhir list setelah satu
iterasi. for j in range(i): Melakukan iterasi dari indeks ke-0 hingga indeks i-1. Loop ini
digunakan untuk membandingkan dan menukar nilai antara pasangan nilai yang adjacent
pada setiap iterasi. if data[j]>data[j+1]: Membandingkan nilai pada indeks ke-j dengan
indeks ke-j+1. Jika nilai pada indeks ke-j lebih besar dari nilai pada indeks ke-j+1, maka
dilakukan pertukaran nilai. temp = data[j] data[j] = data[j+1] data[j+1] = temp
Melakukan pertukaran nilai antara data[j] dengan data[j+1] menggunakan variabel
sementara temp. iterasi +=1 print("Iterasi ke-:", iterasi, Nilai) Menambahkan 1 pada
variabel iterasi setiap kali dilakukan pertukaran nilai. Kemudian menampilkan pesan
berupa nomor iterasi dan nilai yang sedang diurutkan pada setiap iterasi. Nilai = [8, 93,
26, 10, 15, 56] Membuat list Nilai dengan nilai yang belum diurutkan. print("Nilai yang
belum diurutkan:", Nilai) Menampilkan nilai yang belum diurutkan. BubbleSort(Nilai)
Memanggil fungsi BubbleSort dengan menggunakan list Nilai sebagai parameter untuk
mengurutkan nilai pada list tersebut. print("Nilai yang sudah diurutkan:", Nilai)
Menampilkan nilai yang sudah diurutkan setelah proses pengurutan selesai dilakukan.

Deva Marlina 8 G1A022039


5. Urutkan data berikut sesuai abjad dengan menggunakan metode selection sort dan
tampilkan setiap iterasi programnya:
a) {’Jeruk’}
b) {’Pepaya’}
c) {’Rambutan’}
d) {’Melon’}
e) {’Semangka’}
f) {’Nangka’}
g) {’Nanas’}

Source Code:
def selection_sort(buah):
iterasi = 0
for i in range(len(buah)-1):
min_indx = i
for j in range(len(buah)-1,i,-1):
if(buah[j]<buah[min_indx]):
min_indx=j
if(min_indx != i):
buah[i], buah[min_indx] = buah[min_indx], buah[i]
iterasi += 1
print("iterasi ke :",iterasi,buah)

buah = ['Jeruk', 'Pepaya', 'Rambutan', 'Melon', 'Semangka', 'Nangka', 'Nanas']


selection_sort(buah)
print(buah)
Printscreen Source Code:

Gambar 5. 1 Source Code Urutan Nama Buah Sesuai Abjad

G1A022039
Deva Marlina 9 G1A022039
Printscreen Output:

G1A022039

Gambar 5. 2 Output Urutan Nama Buah Sesuai Abjad

Penjelasan Source Code:


Program di atas adalah implementasi algoritma Selection Sort untuk mengurutkan
elemen dalam sebuah list. Algoritma Selection Sort bekerja dengan cara mencari elemen
terkecil dalam list dan menukarnya dengan elemen di posisi awal. Kemudian, algoritma
ini mencari elemen terkecil pada sisa list (list yang belum diurutkan), lalu menukarnya
dengan elemen di posisi kedua, dan begitu seterusnya hingga seluruh elemen pada list
terurut. Pada kode program di atas, terdapat satu parameter input yaitu list 'buah'.
Variabel 'iterasi' digunakan untuk menghitung jumlah iterasi yang dilakukan oleh
algoritma Selection Sort. Baris ke-1: Mendefinisikan fungsi selection_sort dengan satu
parameter input yaitu 'buah'. Baris ke-2: Menginisialisasi variabel 'iterasi' dengan nilai 0.
Baris ke-3: Melakukan iterasi dengan range yang sama dengan panjang list 'buah'
dikurangi 1. Baris ke-4: Menginisialisasi variabel 'min_indx' dengan nilai i. Baris ke-5:
Melakukan iterasi kedua dengan range dari indeks len(buah)-1 hingga i (exclusive),
dengan langkah iterasi sebesar -1. Baris ke-6: Mengecek apakah elemen pada indeks j
lebih kecil dari elemen pada indeks min_indx pada list 'buah'. Jika ya, maka variabel
'min_indx' akan diupdate dengan nilai j. Baris ke-8: Mengecek apakah nilai variabel
'min_indx' tidak sama dengan i. Jika ya, maka dilakukan pertukaran nilai antara elemen
pada indeks i dan min_indx pada list 'buah'. Baris ke-9: Mengupdate nilai variabel 'iterasi'
dengan menambahkan nilai 1. Baris ke-10: Mencetak nilai iterasi dan list 'buah' pada
setiap iterasi. Baris ke-12: Menginisialisasi variabel 'buah' sebagai list berisi nama-nama
buah. Baris ke-13: Memanggil fungsi 'selection_sort' dengan parameter input 'buah'. Baris
ke-14: Mencetak list 'buah' yang sudah diurutkan setelah proses sorting selesai.

Deva Marlina 10 G1A022039


6. Buatlah program inputan data yang akan diurutkan dengan menggunakan metode
selection sort (angka bebas). Tampilkan hasil yang diurutkan beserta iterasi keberapa.
Source Code:
def selection_sort(Angka):
iterasi = 0
for i in range(len(Angka) - 1):
min_indx = i
for j in range(len(Angka)-1,i,-1):
if(Angka[j] < Angka[min_indx]):
min_indx = j
if(min_indx != i):
Angka[i], Angka[min_indx] = Angka[min_indx], Angka[i]
iterasi += 1
print ("langkah ke-", iterasi, Angka)

print("Metode Ascending")
Angka = [24,3,19,5,2,25]
selection_sort(Angka)
print("Data setelah di urutkan: ",(Angka))
def selection_sort(Angka):
iterasi = 0
for i in range(len(Angka) - 1):
min_indx = i
for j in range(len(Angka)-1,i,-1):
if(Angka[j] > Angka[min_indx]):
min_indx = j
if(min_indx != i):
Angka[i], Angka[min_indx] = Angka[min_indx], Angka[i]
iterasi += 1
print ("langkah ke-", iterasi, Angka)

print("Metode Descending")
Angka = [24,3,19,5,2,25]
selection_sort(Angka)
print("Data setelah di urutkan: ",(Angka))

Deva Marlina 11 G1A022039


Printscreen Source Code:

G1A022039

Gambar 6. 1 Source Code Inputan Data

G1A022039

Gambar 6. 2 Source Code Inputan Data

Printscreen Output:

G1A022039

Gambar 6. 3 Output Inputan Data

Deva Marlina 12 G1A022039


Penjelasan Source Code:
(1) Pertama-tama, kita mendefinisikan sebuah fungsi selection_sort yang
menerima sebuah parameter Angka. Parameter ini adalah array of integer yang akan
diurutkan dengan menggunakan algoritma selection sort. (2) Kemudian, kita membuat
sebuah variabel iterasi yang akan digunakan untuk menghitung jumlah iterasi yang
dilakukan oleh algoritma selection sort. Kita juga membuat sebuah loop pertama yang
akan melakukan iterasi sebanyak len(Angka) - 1 kali. Loop ini akan mengiterasi semua
elemen di dalam array kecuali elemen terakhir. (3) Pada setiap iterasi loop pertama, kita
menyimpan indeks dari elemen dengan nilai paling kecil yang berada di dalam array
mulai dari indeks ke-i sampai indeks terakhir dalam variabel min_indx. Loop kedua akan
mengiterasi semua elemen yang berada di dalam array dari indeks terakhir sampai indeks
ke-i+1, sehingga kita dapat menemukan elemen dengan nilai paling kecil di dalam array
mulai dari indeks ke-i sampai indeks terakhir. (4) Jika elemen dengan nilai paling kecil
tidak terletak pada indeks ke-i, kita lakukan pertukaran antara elemen yang terletak pada
indeks ke-i dengan elemen yang terletak pada indeks ke-min_indx. Variabel min_indx
menyimpan indeks dari elemen dengan nilai paling kecil yang kita cari di dalam array.
Setelah dilakukan pertukaran, elemen dengan nilai paling kecil akan berada pada indeks
ke-i. Kita juga menambahkan 1 pada variabel iterasi setiap kali terjadi pertukaran
elemen, dan menampilkan array pada setiap iterasi. (5) Setelah semua iterasi selesai, kita
menampilkan array Angka yang sudah diurutkan.

7. Gambarkan proses pengurutan data berikut dengan menggunakan metode selection sort
secara Ascending dengan penjelasan disetiap iterasinya.
a) A = [100,101,50,4,25,13,8]
b) B = [14, 5,15,3,10,18]
Source Code:
#Selection Sort Secara Ascending
def selection_sort(A):
iterasi = 0
for i in range(len(A) - 1):
min_indx = i
for j in range(len(A)-1,i,-1):
if(A[j] > A[min_indx]):
min_indx = j
if(min_indx != i):

Deva Marlina 13 G1A022039


A[i], A[min_indx] = A[min_indx], A[i]
iterasi += 1
print ("langkah ke-", iterasi, A)
A = [100,101,50,4,25,13,8]
selection_sort(A)
print("Data setelah di urutkan: ",(A))

def selection_sort(B):
iterasi = 0
for i in range(len(B) - 1):
min_indx = i
for j in range(len(B)-1,i,-1):
if(B[j] > B[min_indx]):
min_indx = j
if(min_indx != i):
B[i], B[min_indx] = B[min_indx], B[i]
iterasi += 1
print ("langkah ke-", iterasi, B)
B = [14, 5,15,3,10,18]
selection_sort(B)
print("Data setelah di urutkan: ",(B))
Printscreen Source Code:

G1A022039

Gambar 7. 1 Metode Selection Sort Secara Ascending

Deva Marlina 14 G1A022039


Printscreen Output:

G1A022039

Gambar 7. 2 Output Metode Selection Sort Secara Ascending

Penjelasan Source Code:


Berikut adalah penjelasan perbaris source code program tersebut : (1) Membuat
sebuah fungsi bernama selection_sort yang menerima satu parameter yaitu sebuah list
yang akan diurutkan. (2) Menginisialisasi variabel iterasi dengan nilai 0 yang akan
digunakan untuk menghitung jumlah iterasi yang terjadi pada proses pengurutan. (3)
Melakukan perulangan for untuk i dengan range mulai dari 0 hingga len(A)-1, artinya
mengulangi sebanyak panjang list dikurangi satu. (4) Menginisialisasi variabel min_indx
dengan nilai i. (5) Melakukan perulangan for untuk j dengan range mulai dari panjang
list dikurangi satu hingga i dengan langkah mundur (reverse), artinya mengulangi
sebanyak selisih panjang list dikurangi satu dengan i. (6) Memeriksa apakah nilai A pada
indeks j lebih besar dari nilai A pada indeks min_indx. Jika iya, maka variabel min_indx
diubah menjadi j. (7) Jika nilai min_indx tidak sama dengan i, maka nilai A pada indeks
i dan A pada indeks min_indx ditukar menggunakan teknik "swapping". (8) Menghitung
jumlah iterasi dan menampilkan langkah-langkah pengurutan beserta data setiap
langkahnya menggunakan fungsi print. (9) Menginisialisasi sebuah list A dengan
beberapa nilai angka. (10) Memanggil fungsi selection_sort dengan mengirimkan list A
sebagai parameter. (11) Menampilkan data setelah list A diurutkan.
(12) Membuat sebuah fungsi bernama selection_sort yang menerima satu parameter
yaitu sebuah list yang akan diurutkan. (13) Menginisialisasi variabel iterasi dengan nilai
0 yang akan digunakan untuk menghitung jumlah iterasi yang terjadi pada proses
pengurutan. (14) Melakukan perulangan for untuk i dengan range mulai dari 0 hingga
len(B)-1, artinya mengulangi sebanyak panjang list dikurangi satu. (15) Menginisialisasi

Deva Marlina 15 G1A022039


variabel min_indx dengan nilai i. (16) Melakukan perulangan for untuk j dengan range
mulai dari panjang list dikurangi satu hingga i dengan langkah mundur (reverse), artinya
mengulangi sebanyak selisih panjang list dikurangi satu dengan i. (17) Memeriksa apakah
nilai B pada indeks j lebih besar dari nilai B pada indeks min_indx. Jika iya, maka
variabel min_indx diubah menjadi j. (18) Jika nilai min_indx tidak sama dengan i, maka
nilai B pada indeks i dan B pada indeks min_indx ditukar menggunakan teknik
"swapping". (19) Menghitung jumlah iterasi dan menampilkan langkah-langkah
pengurutan beserta data setiap langkahnya menggunakan fungsi print. (20)
Menginisialisasi sebuah list B dengan beberapa nilai angka. (21) Memanggil fungsi
selection_sort dengan mengirimkan list B sebagai parameter. (22) Menampilkan data
setelah list B diurutkan.

8. Selain bubble sort dan selection sort, ilustrasikanlah salah satu metode sorting lainnya.
Salah satu metode sorting lainnya adalah merge sort. Metode sorting ini
menggunakan pendekatan divide and conquer yang berarti memecah masalah menjadi
submasalah yang lebih kecil, menyelesaikan submasalah secara rekursif, dan
menggabungkan solusi submasalah menjadi solusi untuk masalah asli. Pada merge sort,
data dibagi menjadi dua bagian yang sama besar hingga tidak dapat lagi dibagi.
Kemudian, setiap bagian diurutkan secara terpisah dan digabungkan kembali menjadi
satu kesatuan secara berurutan. Proses penggabungan ini dilakukan dengan
membandingkan elemen terkecil dari setiap bagian dan memasukkannya ke dalam array
sementara. Proses ini berlanjut hingga semua elemen terurut dan digabungkan kembali ke
dalam array asli.
Berikut adalah ilustrasi merge sort dengan array bilangan {38, 27, 43, 3, 9, 82, 10}:
Array dibagi menjadi dua bagian yang sama besar: {38, 27, 43, 3} dan {9, 82, 10}. (1)
Bagian pertama dipecah lagi menjadi dua bagian yang sama besar: {38, 27} dan {43, 3}.
(2) Setiap bagian dipecah lagi menjadi dua bagian yang sama besar: {38} dan {27}, {43}
dan {3}. (3) Setiap bagian diurutkan secara terpisah dan digabungkan kembali menjadi
satu kesatuan: {27, 38} dan {3, 43}. (4) Bagian kedua juga dipecah dan diurutkan seperti
pada langkah 3 dan 4. (5) Setiap bagian dipecah lagi menjadi dua bagian yang sama
besar: {9, 82} dan {10}. (6) Setiap bagian diurutkan secara terpisah dan digabungkan
kembali menjadi satu kesatuan: {9, 10, 82}. (7) Setiap bagian dari bagian pertama dan
kedua digabungkan kembali secara berurutan menjadi satu kesatuan: {3, 27, 38, 43} dan
{9, 10, 82}. (8) Setiap bagian dari kedua bagian yang diurutkan digabungkan kembali
secara berurut.

Deva Marlina 16 G1A022039


KESIMPULAN DAN SARAN
Kesimpulan
Sorting adalah proses mengurutkan sekumpulan data atau elemen dalam urutan
tertentu. Dalam proses sorting, data atau elemen diatur dalam urutan yang dapat
berupa urutan alfabet, urutan numerik, urutan tanggal, atau urutan yang ditentukan
oleh pengguna. Sorting sering digunakan dalam aplikasi seperti database, daftar
kontak, dan aplikasi pengolahan data lainnya.
Bubble Sort dan Selection Sort adalah dua algoritma sorting yang sering
digunakan dalam pengembangan perangkat lunak. Berikut adalah penjelasan tentang
masing-masing metode:
Bubble Sort adalah salah satu metode sorting yang paling sederhana dan mudah
dipahami. Algoritma ini bekerja dengan membandingkan setiap elemen dalam sebuah
array dengan elemen-elemen yang bersebelahan dan menukarnya jika diperlukan.
Metode ini dilakukan secara berulang hingga seluruh elemen dalam array terurut.
Bubble Sort memiliki kelebihan berupa implementasi yang mudah dipahami dan
diimplementasikan, namun memiliki kelemahan dalam hal performa. Bubble Sort
memiliki waktu eksekusi yang lama terutama pada array dengan jumlah data yang
besar.
Selection Sort adalah metode sorting lainnya yang bekerja dengan mencari elemen
terkecil dalam sebuah array dan menukar posisi dengan elemen pertama. Kemudian,
mencari elemen terkecil kedua dan menukar posisi dengan elemen kedua dan
seterusnya. Metode ini juga dilakukan secara berulang hingga seluruh elemen dalam
array terurut.
Selection Sort memiliki kelebihan dalam hal performa yang lebih baik
dibandingkan Bubble Sort pada array dengan jumlah data yang besar. Namun,
implementasinya lebih kompleks dibandingkan Bubble Sort dan sulit untuk digunakan
pada array dengan jumlah data yang sangat besar.
Saran
Menyadari bahwa penulis masih jauh dari kata sempurna, kedepannya penulis
akan lebih fokus dan detail dalam menjelaskan tentang laporan praktikum diatas
dengan sumber – sumber yang lebih banyak dan tentunya dapat lebih dipertanggung
jawabkan. Pada laporan ini penulis juga menyadari masih adanya beberapa kesalahan
di dalam laporan ini. Untuk laporan kedepannya penulis akan lebih fokus dalam
memberikan penjelasan terhadap soal – soal yang akan diberikan, agar laporan yang
dibuat lebih sempurna.

Deva Marlina 17 G1A022039


DAFTAR PUSTAKA
Al Rivan, M. E. (2017). Perbandingan Kecepatan Gabungan Algoritma Quick Sort dan
Merge Sort dengan Insertion Sort, Bubble Sort dan Selection Sort. Jurnal
Teknik Informatika dan Sistem Informasi, 3(2).
Sari, N., Gunawan, W. A., Sari, P. K., Zikri, I., & Syahputra, A. (2022). Analisis
Algoritma Bubble Sort Secara Ascending Dan Descending Serta
Implementasinya Dengan Menggunakan Bahasa Pemrograman Java. ADI
Bisnis Digital Interdisiplin Jurnal, 3(1), 16-23.
Sonita, A., & Nurtaneo, F. (2015). Analisis Perbandingan Algoritma Bubble Sort, Merge
Sort, Dan Quick Sort Dalam Proses Pengurutan Kombinasi Angka Dan
Huruf. Pseudocode, 2(2), 75-80.

Deva Marlina 18 G1A022039

Anda mungkin juga menyukai