Mengenal Quick Sort dan Penyelesaiannya Menggunakan Python – pesonainformatika.com pada studi kasus kali ini kita akan belajar tentang salah satu sorting algoritm setelah kitta belajar tentang Merge Sort dan
Bubble Sort kali ini kita akan belajar tentang quick sort dan implemenrasinya menggunakan bahasa pemrograman python
Apa itu QuickSort
Quicksort adalah algoritma sorting yang cara kerjanya memilih pivot dari list dan memecah element lainya menjadi 2 bagian sublist
Ada beberapa versi quickSort yang memilih pivot dengan cara yang
berbeda.
- Selalu Mengambil element pertama sebagai pivot
- Selalu mengambil element terakhir sebagai pivot
- mengambil item secara acak sebagai pivot
- mengambil median (nilai tengah) sebagai pivot
kali ini kita akan menggunakan element terakhir yang akan kita gunakan sebagai pivot (elemen yang akan dihitung)
Membuat Program
kali ini kita akan membuat program untuk mengurutkan suatu list buat file misalnya quicksort.py
sebelum
membuat program kita perlu tau prosesnya untuk mengututkan dengan algoritma quicksort kita perlu memecah list nya menjadi beberapa bagian dan diurukan dahulu
disini kita perlu membuat fungsi untuk mengurutkanya misalkan namanya adalah partisi
def partisi(arr: list, low: int, high: int) -> int:
i = low - 1
pivot = arr[high]
for j in range(low, high):
if arr[j] <= pivot:
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return i + 1
disini akan mengurutkan array (list) yang akan kita input dan ada berbagai parameter
- arr adalah list yang akan diurutkan
- low adalah parameter untuk awal index
- high adalah parameter untuk akhir index
kemudian kita embuat fungsi untuk menerapkan algorima quicksort
def quicksort(arr: list, low: int, high: int):
if len(arr) == 1:
return arr
if low < high:
p1 = partisi(arr, low, high)
# mengurutkan dengan quicksort
quicksort(arr, low, p1 - 1)
quicksort(arr, p1 + 1, high)
disini kita menggunakan recursive function untuk mengurutkan setiap liat yang tadi kita pecah dan menyatukan kembali di akhir
kemudian kita coba hitung sebuah list contoh
array_list = [10, 7, 8, 9, 1, 5]
maka kita implementasi seperti ini
array_list = [10, 7, 8, 9, 1, 5]
n = len(array_list)
quicksort(array_list, 0, n - 1)
print(f'array yang sedang diurutkan')
for i in range(n):
print(f'{array_list[i]}')
naka hasilnya
array yang sedang diurutkan
1
5
7
8
9
10
hasilnyaoke itu dia pembahasan studi kasus kali ini semoga bermanfaat, ikuti terus pesonainformatika, dan dapatkan studi kasus bahasa pemrograman lainya seperti Java, Python C++ semoga bermanfaat dan selamat mencoba source code dapat dilihat github
Sebenarnya ini adalah adalah
bagian lanjutan dari artikel String Dalam Python. Dikarenakan pembahasan tentang string saya rasa masih banyak maka saya membuat bagian kedua berjudul String Method Dalam Python.
Ditutorial sebelumnya telah menyinggung tentang salah satu string method string yaitu format
. Lalu apa sih
method itu?.
Method adalah fungsi atau prosedur yang dibuat didalam suatu Class. Method dibagi dua kategori yaitu fungsi dan prosedur.
Kita akan mempelajari tentang method lebih dalam lagi diartikel lainnya, untuk sekarang kita hanya perlu fokus cara menggunakan string method yang sudah built-in di dalam python.
String Methods
Berikut adalah beberapa contoh string method yang
ada di python :
capitalize()
Mengubah karakter pertama pada huruf pertama menjadi huruf besar.
judul = "kami semua adalah sama"
print(judul.capitalize()) # Output : "Kami semua adalah sama"
title()
Mengubah karakter pertama pada setiap huruf pada kalimat menjadi kapital. Biasa digunakan untuk judul.
judul = "kami semua adalah sama"
print(judul.title()) # Output : "Kami Semua Adalah Sama"
upper()
Mengubah semua karakter pada string menjadi huruf besar.
judul = "kami semua marah"
print(judul.upper()) # Output : "KAMI SEMUA MARAH"
lower()
Mengubah semua karakter pada string menjadi huruf kecil.
judul = "KAMI SUDAH SABAR"
print(judul.lower()) # Output : "kami sudah sabar"
casefold()
Mengubah semua karakter pada string menjadi huruf kecil. Sama seperti lower()
tetapi lebih aggresive dan kuat, yang berarti mengubah karakter apapun menjadi huruf kecil.
judul = "AnbiDev For U"
print(judul.casefold()) # Output : 'anbidev for u'
swapcase()
Mengubah karakter dengan huruf besar menjadi huruf kecil dan sebaliknya (huruf kecil menjadi huruf besar).
judul = "AnbiDev For U"
print(judul.swapcase()) # Output : 'aNBIdEV fOR u'
center()
Membuat string berada ditengah sesuai dengan berapa panjang width serta dapat menginputkan karakter.
txt = "AnbiDev"
print(txt.center(20)) # Output : ' AnbiDev '
# Dengan parameter karakter
print(txt.center(20,'-')) # Output : '------AnbiDev-------'
replace()
Mengubah sebuah karakter dengan karakter lain yang diinginkan.
txt = "AnbiDev With Me"
print(txt.replace('i','a')) # Output : 'AnbaDev Wath Me'
print(txt.replace('Me','You')) # Output : 'AnbiDev With You'
split()
Membagi string ke substring(list) jika memiliki separator didalamnya. Separator dapat diganti
dengan karakter lain.
txt = "Aku, kamu + dia"
print(txt.split()) # Output : ['Aku' , 'kamu + dia']
# Ganti Separator menjadi spasi
print(txt.split('+')) # Output : ['Aku, kamu', 'dia']
partition()
Membagi string menjadi 3 bagian dan meletakannya ke tuple
. Bagian itu terdiri dari karakter sebelum parameter, parameter itu sendiri, dan karakter sesudah paramater.
txt = "saya menang dan anda kalah"
print(txt.partition("dan"))
# Output : ('saya menang ', 'dan', ' anda kalah')
count()
Menghitung berapa kali karakter pada paramater muncul di kalimat atau huruf string.
txt = "saya ingin menjadi diri saya sendiri"
print(txt.count("saya")) # Output : 2
encode()
Mengubah encode pada string yang memiliki encoding yang spesifik. Jika tidak ada karakter yang diencode maka UTF-8 akan digunakan.
txt = "ånbidev"
print(txt.encode()) # Output : b'\xc3\xa5nbidev'
endswith()
Mengecek apakah string di akhiri dengan karakter tertentu. Jika iya return True
, jika tidak maka False
.
txt = "tuntaskan kasus pencurian."
print(txt.endswith('.')) # Output : True
find()
Mencari karakter pada
string dan jika karakter ada, akan memberikan output letak posisi pada string. Jika karakter tidak ada maka return -1
.
txt = "makan mangga memang manis."
print(txt.find('mangga')) # Output : 6
print(txt.find('pedas')) # Output : -1
# Dengan parameter (start, end)
print(txt.find('mangga', 5, 20)) # Output : 6
index()
Mencari karakter pada string dan jika karakter ada, akan memberikan output letak posisi pada string. Jika karakter tidak ada maka return error
(raise an exception).
txt = "makan mangga memang manis."
print(txt.index('mangga')) # Output : 6
print(txt.index('pedas')) # Output : error
# Dengan parameter (start, end)
print(txt.index('mangga', 5, 20)) # Output : 6
strip()
Menghilangkan
spasi dikanan kiri karakter atau kalimat.
txt = " saya adalah mereka "
print(txt.strip()) # Output : "saya adalah mereka"
lstrip()
Menghilangkan spasi dikiri karakter atau kalimat.
txt = " saya adalah mereka "
print(txt.lstrip()) # Output : "saya adalah mereka "
rstrip()
Menghilangkan spasi dikanan karakter atau kalimat.
txt = " saya adalah mereka "
print(txt.rstrip()) # Output : " saya adalah mereka"
join()
Menggabungkan iterable data atau sequence data menjadi satu string.
buah = ("Mangga", "Apel", "Salak")
gabung = "--"
print(gabung.join(buah)) # Output : "Mangga--Apel--Salak"
isalnum()
Mengecek apakah string ini berisi text dan numeric atau keduanya. Jika iya True
.
var = "AnbiDev101"
print(var.isalnum()) # Output : True
isalpha()
Mengecek apakah string ini berisi text saja tanpa numeric atau simbol lain.
var = "AnbiDev"
print(var.isalpha()) # Output : True
isdecimal()
Mengecek apakah string ini berisi bilangan decimal tanpa text atau simbol lain.
var = "123"
print(var.isdecimal()) # Output : True
-
isdigit()
Mengecek apakah string ini berisi bilangan decimal serta simbol matematika seperti ²
dan sebagainya.
var = "5020120"
print(var.isdigit()) # Output : True
var = "varSum_1"
print(var.isidentifier()) # Output : True
islower()
Mengecek apakah string ini berisi karakter dengan huruf kecil semua.
var = "anbidev"
print(var.islower()) # Output : True
isupper()
Mengecek apakah string ini berisi karakter dengan huruf besar semua.
var = "ANBIDEV"
print(var.isupper()) # Output : True
isnumeric()
Mengecek apakah string ini berisi karakter numerik semua atau tidak.
var = "12345"
print(var.isnumeric()) # Output : True
isspace()
Mengecek apakah string ini hanya berisi spasi saja atau tidak.
var = " "
print(var.isspace()) # Output : True
istitle()
Mengecek apakah string ini sesuai dengan standar penamaan judul atau tidak.
var = "Harimau Sang Serigala Hutan"
print(var.istitle()) # Output : True
Karakter Escape
Karakter
Escape adalah sebuah karakter spesial yang membuat kita dapat memasukkan karakter - karakter illegal pada sebuah string. Contoh karakter illegal pada string :
txt = "Kami semua adalah "Pribumi" dari tanah air Indonesia"
print(txt) # Error
Kode diatas akan menghasilkan ERROR
Untuk memperbaiki kode diatas agar sesuai dengan apa yang kita inginkan, maka kita tambahkan karakter Escape berupa backslash (\
).
txt = "Kami semua adalah \"Pribumi\" dari tanah air Indonesia"
print(txt) # Output : "Kamu semua adalah "Pribumi" dari tanah air Indonesia"
Ada beberapa contoh karakter escape yang bisa anda gunakan di
python :
Simbol | Deskripsi |
---|
\'
| Untuk menyisipkan simbol ' (Single Quote)
|
\\
| Untuk menyisipkan simbol \ (Backslash)
|
\n
| Untuk membuat baris baru (New Line)
|
\r
| Untuk membuat Carriage Return
|
\t
| Untuk menyisipkan tab spasi (Tab)
|
\b
| Untuk menghapus satu karakter (Backspace).
|
\ooo
| Untuk menyisipkan karakter octal.
|
\xhh
| Untuk menyisipkan karakter hexa.
|