Anda di halaman 1dari 10

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.
Searching atau pencarian adalah proses untuk mencari data atau informasi yang cocok
dengan kriteria tertentu. Terdapat dua jenis searching yaitu linear search dan binary search.
Algoritma pencarian secara linear adalah algoritma untuk mencari sebuah nilai pada
table sembarang dengan cara melakukan pass atau traversal dari awal sampai akhir table.
Algoritma ini mempunyai dua jenis metode yaitu dengan Boolean dan tanpa Boolean.
Algoritma pencarian secara linear melakukan pengulangan sebanyak 1 kali untuk kasus
terbaik (value sama dengan elemen pertama dalam tabel) dan Nmax kali untuk kasus
terburuk. Sehingga algoritma ini mempunyai algoritma O(n). Misalnya kita ingin mencari
nilai 5 dalam array berikut: [1, 3, 7, 5, 9]. Proses pencarian akan dimulai dari awal array
(indeks ke-0) dan setiap elemen data akan diperiksa satu per satu hingga elemen ke-4
ditemukan, yaitu nilai 5.
Algoritma pencarian biner adalah algoritma untuk mencari sebuah nilai pada tabel
terurut dengan cara menghilangkan setengah data pada setiap langkah. Algoritma ini mencari
nilai yang dicari dengan tiga langkah, yaitu : mencari nilai tengah dari tabel (median),
melakukan perbandingan nilai tengah dengan nilai yang dicari untuk menentukan apakah nilai
yang dicari ada pada sebelum atau setengah nilai tengah, mencari setengah sisanya dengan
cara yang sama. Misalnya kita ingin mencari nilai 5 dalam array berikut: [1, 3, 5, 7, 9]. Proses
pencarian akan dimulai dengan membagi data menjadi dua bagian. Kita membandingkan nilai
yang dicari dengan nilai tengah data (yaitu 5). Jika nilai yang dicari lebih kecil dari nilai
tengah, maka pencarian akan dilanjutkan pada bagian kiri data. Jika nilai yang dicari lebih
besar dari nilai tengah , maka pencarian akan dilanjutkan pada bagian kanan data.

Deva Marlina 2 G1A022039


SOAL DAN PEMBAHASAN
1. Di sebuah desa terdapat data nama dan umur warga desa sebagai berikut : Rimaya,
Fanissa, Arif, Esti, Zabrila, Yulia, Rayhan. Masing masing memiliki umur : 28, 32, 45,
48, 52, 57, 60. Rose merupakan warga baru di desa tersebut yang berusia 45 tahun dan
dia ingin mengetahui umur warga desa yang sama dengannya. Buatlah program
penyelesaian masalah diatas menggunakan Algoritma Binary Search!
Source Code:
#mencari umur warga desa yang sama dengan Rose
nama = ["Rimaya", "Fanissa", "Arif", "Esti", "Zabrila", "Yulia", "Rayhan"]
umur = [28, 32, 45, 48, 52, 57, 60]

iterasi = 0
dicari = 45

print('Mencari umur yang sama ',dicari,'dengan binary search pada list')


found = False
batas_awal = 0
batas_akhir = len(umur) - 1
while not found and batas_awal <= batas_akhir:
pos_cari = (batas_awal+batas_akhir)//2
iterasi +=1
print("iterasi ke", iterasi, "posisi Pencarian :",umur[pos_cari], "indeks ke", pos_cari )
if umur[pos_cari] == dicari:
found = True
elif umur[pos_cari] > dicari:
batas_akhir = pos_cari-1
else:
batas_awal = pos_cari+1
if found:
print('Umur yang sama',dicari,'ditemukan pada indeks',pos_cari)
print("iterasi sebanyak:", iterasi, "kali")
print("Umur warga yang sama dengan umur Rose, bernama " ,nama[pos_cari])
else:
print('Umur warga yang sama',dicari,'tidak ditemukan')
print("iterasi sebanyak:", iterasi, "kali")

Deva Marlina 3 G1A022039


Printscreen Source Code:

G1A022039

Gambar 1. 1 Source Code Mencari Umur Warga yang sama dengan Rose

Printscreen Output:

G1A022039

Gambar 1. 2 Output Mencari Umur Warga yang sama dengan Rose

Penjelasan Source Code:


Program tersebut adalah implementasi dari algoritma binary search untuk
mencari nilai tertentu (dicari) pada list (umur) yang sudah terurut secara ascending.
Pertama, list nama dan umur diinisialisasi dengan nilai tertentu. Kemudian variabel iterasi
diinisialisasi dengan nilai 0 dan variabel dicari diisi dengan nilai 45. Selanjutnya,
program akan mencari nilai dicari pada list umur menggunakan algoritma binary search.

Deva Marlina 4 G1A022039


Variabel found diinisialisasi dengan nilai False dan batas_awal serta batas_akhir
diinisialisasi dengan nilai 0 dan len(umur)-1, secara berurutan. Kemudian, program akan
melakukan iterasi pada list umur menggunakan perulangan while hingga nilai found
menjadi True atau batas_awal lebih besar dari batas_akhir.
Pada setiap iterasi, posisi pencarian (pos_cari) dihitung dengan menggunakan
rumus (batas_awal+batas_akhir)//2. Kemudian, program akan mencetak iterasi ke berapa
dan posisi pencarian saat itu. Jika nilai umur[pos_cari] sama dengan dicari, maka variabel
found diubah menjadi True. Jika umur[pos_cari] lebih besar dari dicari, maka nilai
batas_akhir akan diubah menjadi pos_cari-1. Jika umur[pos_cari] lebih kecil dari dicari,
maka nilai batas_awal akan diubah menjadi pos_cari+1.
Jika nilai found bernilai True, program akan mencetak pesan bahwa umur yang
sama dengan dicari telah ditemukan pada indeks pos_cari, jumlah iterasi yang dilakukan,
dan nama orang yang memiliki umur yang sama dengan dicari. Jika nilai found bernilai
False, program akan mencetak pesan bahwa umur yang sama dengan dicari tidak
ditemukan dan jumlah iterasi yang dilakukan.
2. Diketahui sebuah list dengan nilai-nilai sebagai berikut (10,20,30,40,50,60,70,80,90,100).
Lakukanlah pencarian secara manual untuk nilai 30 dengan menggunakan binary search.
 Jika data acak, maka urutkan data terlebih dahulu (bubble, quick, selection, insert)
Data 10 20 30 40 50 60 70 80 90 100
Indeks 0 1 2 3 4 5 6 7 8 9
Key = 30
 Awal = 0 yaitu 10
 Akhir = len-1 (panjang data -1)
= 10-1 = 9 yaitu 100
 Tengah = (awal + akhir) // 2
=0+9
= 9/2
= 4 (indeks ke-4 yaitu 50)
 If key == tengah, maka break (berhenti mencari)
#cek apakah nilai key = nilai tengah
30 = 50 ? false, maka program akan menjalankan kode berikutnya. Dikarenakan 30 <
50, maka kode yang dijalankan adalah:
If key < tengah, maka akhir = tengah -1
#jadi panjang data menjadi:
List data : 10, 20, 30, 40

Deva Marlina 5 G1A022039


Indeks : 0 1 2 3
Awal = 0 (indeks 0 = 4)
Akhir = len-1 (panjang data -1)
=4–1=3
Tengah = (awal + akhir) // 2
= (0+3) // 2
= 1 (data pada indeks 1 = 20)
 If key == tengah, maka break (berhenti mencari dan mendapat hasil)
#cek apakah key = tengah
30 = 20 ? false, key ≠ nilai tengah, maka program akan menjalankan kode berikut
Kode binary search
Key = …
Awal = …
Akhir = len -1
(panjang data-1)
If key = tengah, maka program berhenti mencari
If key > tengah, maka awal = tengah +1
If key < tengah, maka akhir = tengah -1
 Dikarenakan nilai 30 > 20 maka kode yang akan dijalankan adalah:
If key > tengah, maka awal = tengah +1
#jadi urutan datanya menjadi:
List data : 30, 40
Indeks : 0 1
Awal = 0 (indeks 0 = 30)
Akhir = len-1 (panjang data-1)
= 2-1 = 1
Tengah = (awal + akhir) //2
= (0 + 1) // 2
= 0 (data pada indeks 0 = 30)
 If key == tengah, maka break
30=30?true, maka program berhenti mencari
 List data
Data 10 20 30 40 50 60 70 80 90 100
Indeks 0 1 2 3 4 5 6 7 8 9
Jadi, data 30 ada di indeks ke-2

Deva Marlina 6 G1A022039


3. Buatlah sebuah list dengan berisikan 5 elemen kemudian carilah salah satu elemen dari
list yang telah dibuat dengan nilai yang dicari terdapat pada indeks terakhir dengan
menggunakan linear search, dikerjakan menggunakan langkah manual bukan program !
Interaksi – 1 :
19 3 1 7 10

Δ 19 ≠ 10 ( tidak cocok.jadi lanjutkan…..)

Interaksi – 2 :
19 3 1 7 10

Δ 3 ≠ 10 ( tidak cocok.jadi lanjutkan…..)

Interaksi – 3 :
19 3 1 7 10

Δ 1 ≠ 10 ( tidak cocok.jadi lanjutkan…..)

Interaksi – 4 :
19 3 1 7 10

Δ 7 ≠ 10 ( tidak cocok, jadi lanjutkan…..)

Interaksi – 5 :
19 3 1 7 10

Δ
10 = 10 ( cocok, jadi mengambilkan indeks 10 yaitu 4)
4. Buatlah array dimana berisikan tanggal pembuatan, jam pembuatan (contoh: 12:18) ambil
12 nya saja, npm, umur, angkatan, no absen kelas praktikum, tinggi badan, sisanya nilai
acak. Dengan total keseluruhan sebanyak 10 data. Buatlah program searching
menggunakan algoritma linear search untuk mencari indeks dari suatu bilangan x (key)
dimana bilangan x tersebut npm kalian masing-masing menggunakan inputan
user/scanner.
Source Code:
a = [18,39,20,22,2,157,19,10,24,4]
x= int(input("masukkan nilai"))
posisi = 0
akhir = len(a)-1
ditemukan = False
while posisi <= akhir and not ditemukan:
if a[posisi] == x:
ditemukan = True
else: posisi = posisi +1

Deva Marlina 7 G1A022039


if ditemukan :
print("angka yang dicari ditemukan pada indeks ke : ", posisi)
else:
print("angka yang dicari tidak ditemukan")

Printscreen Source Code:

G1A022039

Gambar 4. 1 Source Code Mencari Indeks dari Suatu Bilangan x (key)

Printscreen Output:

G1A022039

Gambar 4. 2 Output Mencari Indeks dari Suatu Bilangan x (key)

Penjelasan Source Code:


Menggunakan perulangan while untuk memeriksa setiap angka pada list a dari
indeks awal (posisi) hingga indeks terakhir (akhir) selama angka yang dicari belum
ditemukan (ditemukan = False). Jika angka pada posisi saat ini sama dengan angka yang
dicari (a[posisi] == x), maka variabel ditemukan akan diubah menjadi True, dan
perulangan akan dihentikan. Jika angka tidak ditemukan, posisi akan diincrement agar
bisa memeriksa indeks selanjutnya. Setelah perulangan selesai, program akan mengecek
apakah angka yang dicari (x) ditemukan pada list a atau tidak dengan memeriksa nilai
variabel ditemukan. Jika angka ditemukan (ditemukan = True), program akan
mencetak pesan dengan indeks dari angka tersebut ("angka yang dicari ditemukan
pada indeks ke : " + str(posisi)). Jika tidak ditemukan, program akan mencetak pesan
bahwa angka tidak ditemukan.

Deva Marlina 8 G1A022039


KESIMPULAN DAN SARAN
Kesimpulan
Algoritma searching adalah metode atau teknik yang digunakan untuk mencari
atau menemukan suatu data atau informasi tertentu dari kumpulan data atau informasi
yang lebih besar. Algoritma searching digunakan dalam banyak bidang seperti
komputasi, statistik, matematika, dan sains data. Terdapat dua jenis searching yaitu
linear search dan binary search. Algoritma pencarian secara linear adalah algoritma
untuk mencari sebuah nilai pada table sembarang dengan cara melakukan pass atau
traversal dari awal sampai akhir table. Algoritma ini mempunyai dua jenis metode
yaitu dengan Boolean dan tanpa Boolean. Algoritma pencarian secara linear
melakukan pengulangan sebanyak 1 kali untuk kasus terbaik (value sama dengan
elemen pertama dalam tabel) dan Nmax kali untuk kasus terburuk. Sehingga algoritma
ini mempunyai algoritma O(n). Misalnya kita ingin mencari nilai 5 dalam array
berikut: [1, 3, 7, 5, 9]. Proses pencarian akan dimulai dari awal array (indeks ke-0) dan
setiap elemen data akan diperiksa satu per satu hingga elemen ke-4 ditemukan, yaitu
nilai 5.
Algoritma pencarian biner adalah algoritma untuk mencari sebuah nilai pada tabel
terurut dengan cara menghilangkan setengah data pada setiap langkah. Algoritma ini
mencari nilai yang dicari dengan tiga langkah, yaitu : mencari nilai tengah dari tabel
(median), melakukan perbandingan nilai tengah dengan nilai yang dicari untuk
menentukan apakah nilai yang dicari ada pada sebelum atau setengah nilai tengah,
mencari setengah sisanya dengan cara yang sama. Misalnya kita ingin mencari nilai 5
dalam array berikut: [1, 3, 5, 7, 9]. Proses pencarian akan dimulai dengan membagi
data menjadi dua bagian. Kita membandingkan nilai yang dicari dengan nilai tengah
data (yaitu 5). Jika nilai yang dicari lebih kecil dari nilai tengah, maka pencarian akan
dilanjutkan pada bagian kiri data. Jika nilai yang dicari lebih besar dari nilai tengah ,
maka pencarian akan dilanjutkan pada bagian kanan data.
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 9 G1A022039


DAFTAR PUSTAKA
Kautsar, I. A. (2017). Algoritma & Pemrograman Python Series.

Lutfina, E., & Ramadhan, F. L. (2019, November). Perbandingan Kinerja Metode Iteratif dan
Metode Rekursif dalam Algoritma Binary Search. In SEMINAR NASIONAL APTIKOM
(SEMNASTIK) 2019 (pp. 53-60).

TABEL, P. N. S. P. ANALISIS KOMPLEKSITAS ALGORITMA UNTUK BERBAGAI


MACAM METODE PENCARIAN NILAI (SEARCHING) DAN.

Deva Marlina 10 G1A022039

Anda mungkin juga menyukai