Ebook 77 Rahasia Pemrograman Python
Ebook 77 Rahasia Pemrograman Python
Kami memposisikan diri bukan sebagai penulis dari e-book ini, namun
sebagai penyusun. Kami pilihkan bab-bab yang biasanya menjadi kendala
para developer, kami query-kan ke ChatGPT dengan kata kunci semacam
“rahasia pemrograman python”, kami susun sedemikian rupa agar
terstruktur, kami tata penjelasan setiap baris kodenya sehingga siapapun
insyaAllah mudah mengerti kode tersebut, dan kami tuliskan juga
referensi yang digunakan ChatGPT di akhir setiap rahasia. Proses
i
dilakukan berkali-kali untuk memeras habis semua rahasia yang dimiliki
ChatGPT terkait pemrograman Python. Hasilnya, e-book yang sedang
Anda baca ini.
ii
Daftar Isi
Kata Pengantar ...................................................................................... i
Daftar Isi .............................................................................................. iii
BAB 1 Instalasi ...................................................................................... 1
1.1. Instalasi Python ....................................................................... 1
1.2. Instalasi Visual Studio Code .................................................... 4
1.3. Menjalankan Kode Program Python ...................................... 11
1.4. Install Package Python........................................................... 14
BAB 2 Video ....................................................................................... 17
2.1. Membuka dan Menampilkan Video ...................................... 17
2.2. Menggabungkan Dua Video ................................................. 20
2.3. Mengubah Warna Video menjadi Grayscale ......................... 22
2.4. Motion Detection ................................................................ 23
BAB 3 Webcam .................................................................................. 26
3.1. Membuka dan Menampilkan Webcam ................................. 26
3.2. Deteksi Wajah ...................................................................... 27
BAB 4 Variabel .................................................................................. 30
4.1. Inisialiasi dan Mengkonversi (casting) Variabel ..................... 30
4.2. Menukar nilai dua Variabel ................................................... 31
BAB 5 String ....................................................................................... 33
5.1. Memotong String dengan Metode slicing() ........................... 33
5.2. Menggabungkan String dengan Operator "+" atau Metode join()
34
5.3. Mencari dan mengganti substring dengan replace() .............. 35
5.4. Memisahkan String dengan Metode split() ............................ 36
iii
5.5. Mengubah Huruf Kapital atau Kecil dengan Metode upper() dan
lower() ........................................................................................... 36
5.6. Memeriksa Apakah String Berisi Substring dengan Metode in 38
5.7. Menghilangkan Whitespace dengan Metode strip() .............. 39
5.8. Mencetak string sebanyak N kali .......................................... 39
5.9. Reverse String ...................................................................... 40
BAB 6 Folder dan File ......................................................................... 41
6.1. Membuat, Menyalin, Memindahkan, dan Menghapus Folder 41
6.2. Berinteraksi dengan Folder ................................................... 44
6.3. Membuat, Menyalin, Memindahkan, dan Menghapus File ... 45
6.4. Berinteraksi dengan File ....................................................... 47
BAB 7 Fungsi Matematika .................................................................. 49
7.1. Fungsi Matematika Trigonometri.......................................... 49
7.2. Fungsi Matematika Eksponensial dan Logaritma .................... 51
7.3. Fungsi Matematika Kompleks ............................................... 52
BAB 8 Percabangan ............................................................................ 55
8.1. If-elif-else ............................................................................. 55
8.2. Short Hand If ... Else ............................................................ 56
BAB 9 Perulangan .............................................................................. 58
9.1. For Loop .............................................................................. 58
9.2. While ................................................................................... 59
9.3. Loop yang menggunakan statement break............................ 60
9.4. Loop yang menggunakan statement continue ........................ 61
BAB 10 Python Collection .................................................................. 63
10.1. List ................................................................................... 64
10.2. Menggabungkan dan Memisahkan List .............................. 66
iv
10.3. Menampilkan The Most Frequent Value Dalam list Python67
10.4. Mencari data Pada List ...................................................... 67
10.5. Mencari Nilai Unik di antara Dua List ............................... 68
10.6. Set .................................................................................... 69
10.7. Operasi pada Set .............................................................. 70
10.8. Tuple ................................................................................ 72
10.9. Mencari dan Mengurutkan data pada Tuple ..................... 73
10.10. Dictionary ........................................................................ 75
10.11. Mengurutkan data pada List Dictionary ............................ 77
10.12. Mencari data pada List Dictionary..................................... 78
BAB 11 Numpy Array ......................................................................... 80
11.1. Membuat Array ................................................................ 80
11.2. Mengubah Dimensi Array .................................................. 81
11.3. Menggabungkan dua atau lebih Array menjadi satu Array 82
11.4. Mengurutkan Elemen pada Array ..................................... 84
11.5. Mengambil Elemen Unik pada Array ................................ 85
11.6. Memfilter Array berdasarkan kondisi tertentu ................... 86
11.7. Memotong (slicing) Array ................................................. 87
11.8. Membagi Array menjadi beberapa bagian......................... 88
11.9. Fungsi Statistik dalam Numpy ........................................... 89
11.10. Mencari indeks suatu nilai tertentu.................................... 90
BAB 12 Matriks................................................................................... 92
12.1. Membuat Matriks ............................................................. 92
12.2. Operasi Matriks ................................................................ 93
12.3. Operasi Matriks Lanjutan .................................................. 94
12.4. Inverse Matriks ................................................................. 96
v
12.5. Rotasi Matriks................................................................... 96
12.6. Menyelesaikan Persamaan Linear ...................................... 98
12.7. Mengubah Bentuk Matriks ................................................ 99
BAB 13 Fungsi ................................................................................... 101
13.1. Fungsi Main ..................................................................... 101
13.2. Menggunakan argument default ...................................... 102
13.3. Fungsi Lambda................................................................. 103
13.4. Fungsi dengan jumlah argument yang fleksibel ................. 104
13.5. Fungsi dengan jumlah argumen keyword yang fleksibel ... 105
13.6. Menggunakan Decorator ................................................. 106
13.7. Mengembalikan beberapa nilai dari fungsi ....................... 107
13.8. Variabel Global ............................................................... 108
13.9. Variabel Lokal.................................................................. 109
13.10. Mengubah Variabel global pada fungsi ............................ 110
BAB 14 Queue ................................................................................... 112
14.1. Queue ............................................................................. 112
14.2. Stack (LIFO Queue) ......................................................... 114
BAB 15 Manipulasi Citra dengan OpenCV ......................................... 116
15.1. Membuka, Menampilkan, dan Menyimpan Citra ............. 116
15.2. Konversi Citra ke Citra Grayscale ..................................... 117
15.3. Konversi Citra ke Citra Biner ............................................ 118
15.4. Segmentasi Warna pada Citra .......................................... 120
15.5. Deteksi Tepi .................................................................... 121
15.6. Deteksi Wajah ................................................................. 123
Daftar Pustaka ................................................................................... 126
vi
BAB 1
Instalasi
1
2. Setelah proses download selesai, double click pada file installer hasil
download untuk memulai instalasi.
3. Checklist Add Python to Path. Hal tersebut dilakukan agar Python
dapat digunakan pada command prompt (cmd). Setelah itu klik Install
Now seperti pada gambar di bawah.
2
Gambar 1. 3 Instalasi Python berhasil
3
6. Pada command prompt eksekusi perintah python --version. Jika
muncul versi Python seperti pada gambar di bawah, proses instalasi
berhasil.
4
2. Setelah proses download selesai, double click pada file installer hasil
download untuk memulai instalasi.
3. Setelah itu akan muncul License Agreement. Baca agreement tersebut
jika setuju, klik I accept the agreement. Lalu klik Next.
4. Setelah itu pilih tempat untuk menyimpan hasil instalasi Visual Studio
Code. Biarkan secara default, lalu klik Next.
5
Gambar 1. 8 Pemilihan tempat untuk menyimpan hasil instalasi
5. Pilih Start Menu Folder. Biarkan secara default, lalu klik Next.
6
Gambar 1. 9 Pemilihan Start Menu Folder
7
Gambar 1. 10 Pemilihan Additional Tasks
8
Gambar 1. 11 Instalasi Visual Studio Code
9
Gambar 1. 12 Instalasi Visual Studio Code selesai
10
1.3. Menjalankan Kode Program Python
Pada subbab ini akan dijelaskan cara menulis kode program Python pada
Visual Studio Code dan menjalankan kode program tersebut. Pada
contoh ini kode program akan disimpan pada folder D:\kode_python.
Berikut langkah-langkahnya:
1. Buka Visual Studio Code dan masuk ke folder yang menyimpan kode
program python. Pada contoh ini pada folder D:\kode_python.
Untuk cara cepatnya, Klik kanan pada folder, setelah itu klik Open
with Code. Seperti pada gambar di bawah.
11
Gambar 1. 15 Tampilan Visual Studio Code
2. Buat file baru dengan cara klik Icon file, lalu beri nama file tersebut.
Tuliskan ekstensi .py seperti pada gambar di bawah.
12
3. Tuliskan kode program python. Pada contoh ini akan menulis kode
program untuk menampilkan Hello World.
13
5. Jalankan kode program Python pada terminal, dengan mengeksekusi
perintah python <nama-file>, Lalu tekan Enter. Pada contoh ini
python main.py. Setelah dijalankan akan menampilkan Hello World
seperti gambar di bawah.
14
Gambar 1. 20 Membuka Command Prompt
15
Gambar 1. 22 Menampilkan versi numpy dan opencv-python
16
BAB 2
Video
import cv2
while True:
# membaca frame demi frame
ret, frame = video.read()
17
# keluar dari loop jika tombol 'q' ditekan
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# membersihkan
video.release()
out.release()
cv2.destroyAllWindows()
Penjelasan:
1. kita mengimport library OpenCV dengan menggunakan
statement import cv2.
2. Selanjutnya, kita membaca file video menggunakan objek
VideoCapture dengan nama file 'road.mp4'.
3. kita membuat objek VideoWriter untuk menulis hasil manipulasi
ke dalam file video baru dengan nama file 'output.avi'. Parameter
fourcc digunakan untuk menentukan codec yang akan digunakan
untuk menulis video (di sini, kita menggunakan codec 'XVID').
Parameter 25.0 digunakan untuk menentukan frame rate dari
video output (di sini, kita menggunakan 25 fps), dan parameter
(640, 480) digunakan untuk menentukan ukuran frame dari video
output.
4. Kemudian,kita memulai loop while untuk membaca setiap frame
dari video yang telah dibaca sebelumnya.
5. kita membaca satu frame dari video menggunakan method read()
pada objek VideoCapture. Kita menyimpan nilai kembalian dari
method read() ke dalam variabel ret dan frame. Variabel ret akan
bernilai True jika pembacaan frame berhasil, dan False jika sudah
18
mencapai akhir dari video. Variabel frame akan berisi array
NumPy yang merepresentasikan satu frame dari video.
6. kita mengubah warna frame menjadi grayscale menggunakan
method cvtColor() dengan parameter cv2.COLOR_BGR2GRAY.
7. kita menambahkan teks pada frame menggunakan method
putText(). Parameter pertama adalah frame yang akan
ditambahkan teks, parameter kedua adalah teks yang akan
ditampilkan, parameter ketiga adalah koordinat letak teks pada
frame, parameter keempat adalah jenis font, parameter kelima
adalah ukuran font, parameter keenam adalah warna teks (dalam
format BGR), parameter ketujuh adalah ketebalan garis, dan
parameter terakhir adalah jenis garis yang digunakan.
8. kita menampilkan frame yang telah dimanipulasi menggunakan
method imshow() dengan parameter 'frame' untuk menampilkan
frame yang diambil dari objek VideoCapture.
9. kita menulis frame yang telah dimanipulasi ke dalam file video
menggunakan method write() pada objek VideoWriter.
10. kita menggunakan statement if untuk mengecek apakah tombol
'q' ditekan pada keyboard. Jika tombol 'q' ditekan, maka kita
keluar dari loop menggunakan statement break.
11. kita membersihkan memori dan menutup file video menggunakan
method release() pada objek VideoCapture dan VideoWriter [1].
19
2.2. Menggabungkan Dua Video
Berikut adalah contoh kode pemrograman Python tentang manipulasi
video dengan menggunakan OpenCV untuk menggabungkan dua video
secara horizontal:
import cv2
import numpy as np
video1 = cv2.VideoCapture('road.mp4')
video2 = cv2.VideoCapture('rain.mp4')
frame_width = int(video1.get(3))
frame_height = int(video1.get(4))
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
output = cv2.VideoWriter('output.mp4', fourcc, 30,
(frame_width*2, frame_height))
while True:
ret1, frame1 = video1.read()
ret2, frame2 = video2.read()
video1.release()
20
video2.release()
output.release()
cv2.destroyAllWindows()
21
2.3. Mengubah Warna Video menjadi Grayscale
Berikut adalah contoh kode pemrograman Python tentang manipulasi
video dengan menggunakan OpenCV untuk mengubah warna video
menjadi grayscale:
import cv2
video = cv2.VideoCapture('road.mp4')
while True:
ret, frame = video.read()
if not ret:
break
if cv2.waitKey(1) == ord('q'):
break
video.release()
cv2.destroyAllWindows()
Penjelasan:
1. import cv2 digunakan untuk mengimport library OpenCV.
2. Selanjutnya, kita membaca video yang ingin diubah dengan
menggunakan fungsi cv2.VideoCapture()
3. Kemudian, kita membuat loop untuk membaca setiap frame
pada video, dan mengubah warna setiap frame menjadi
grayscale dengan menggunakan fungsi cv2.cvtColor()
22
4. Terakhir, kita menampilkan hasil manipulasi video dengan
menggunakan fungsi cv2.imshow() dan menunggu input dari
keyboard untuk keluar dari loop dengan menggunakan fungsi
cv2.waitKey() [3].
import cv2
# Membersihkan variabel
video.release()
output_video.release()
cv2.destroyAllWindows()
24
Penjelasan:
1. Baris 1-2: Mengimpor modul yang dibutuhkan, yaitu OpenCV.
2. Baris 4: Membuka file video yang akan digunakan untuk motion
detection.
3. Baris 7: Mengambil frame pertama dari video dan mengubahnya
menjadi grayscale.
4. Baris 10: Mengatur ukuran frame output.
5. Baris 12: Membuat output video dengan format XVID.
6. Baris 15-35: Melakukan pengolahan untuk setiap frame pada
video, yaitu mengubahnya menjadi grayscale, menghitung
perbedaan antara frame sekarang dan sebelumnya,
mengaplikasikan thresholding pada perbedaan tersebut,
menghilangkan noise dengan operasi opening, mencari kontur
pada frame, dan menggambar kotak [4], [5], [6], [7].
25
BAB 3
Webcam
import cv2
# Membuka kamera
cap = cv2.VideoCapture(0)
while True:
# Membaca frame dari kamera
ret, frame = cap.read()
# Menampilkan frame
cv2.imshow('frame', frame)
Penjelasan:
1. Impor library OpenCV dengan code import cv2.
2. Fungsi cv2.VideoCapture() digunakan untuk membuat objek cap
yang merepresentasikan kamera. Angka 0 di dalam kurung
adalah indeks kamera yang akan digunakan. Jika terdapat lebih
26
dari satu kamera terhubung ke komputer, indeks kamera dapat
diubah untuk memilih kamera yang diinginkan.
3. Memulai loop untuk membaca dan menampilkan frame dari
kamera. Loop akan berjalan terus menerus selama kondisi True.
Setiap iterasi dari loop, cap.read() akan membaca frame terbaru
dari kamera dan menyimpannya ke dalam variabel frame.
Kemudian, frame tersebut ditampilkan menggunakan fungsi
cv2.imshow().
4. Fungsi cv2.waitKey() digunakan untuk menunggu selama
sejumlah milidetik untuk mendeteksi apakah ada tombol yang
ditekan. Jika tombol q ditekan, loop akan dihentikan dengan
menggunakan perintah break.
5. Setelah loop selesai, objek cap harus dilepaskan dengan
menggunakan fungsi cap.release(). Selain itu, semua jendela yang
ditampilkan menggunakan cv2.imshow() harus ditutup dengan
fungsi cv2.destroyAllWindows() [1].
# Membuka kamera
27
cap = cv2.VideoCapture(0)
while True:
# Membaca frame dari kamera
ret, frame = cap.read()
# Menampilkan frame
cv2.imshow('frame', frame)
Penjelasan:
1. Impor library OpenCV dengan code import cv2.
2. Membuat objek cascade classifier untuk deteksi wajah. Objek
face_cascade dibuat dengan menggunakan file XML yang berisi
informasi untuk melakukan deteksi wajah. File tersebut disebut
sebagai cascade classifier. File yang digunakan dalam contoh ini
28
adalah haarcascade_frontalface_default.xml, yang bisa di-
download pada link haarcascade_frontalface_default.xml.
3. Membuka kamera dengan code cap = cv2.VideoCapture(0).
4. Memulai loop untuk membaca, memproses, dan menampilkan
frame dari kamera. Loop akan berjalan terus menerus selama
kondisi True. Setiap iterasi dari loop, cap.read() akan membaca
frame terbaru dari kamera dan menyimpannya ke dalam
variabel frame. Kemudian, frame tersebut diubah menjadi
grayscale menggunakan fungsi cv2.cvtColor(). Setelah itu,
deteksi wajah dilakukan pada frame grayscale menggunakan
fungsi face_cascade.detectMultiScale(). Hasil deteksi wajah
berupa koordinat dari kotak yang mengelilingi wajah, dan
disimpan dalam variabel faces. Selanjutnya, kotak hijau
digambar pada wajah yang terdeteksi menggunakan fungsi
cv2.rectangle().
5. Fungsi cv2.imshow() digunakan untuk menampilkan frame.
6. Fungsi cv2.waitKey() menunggu selama 1 milidetik untuk
menangkap tombol yang ditekan. Jika tombol yang ditekan
adalah 'q', maka loop akan berhenti dan program akan keluar.
7. Fungsi cap.release() akan melepaskan kamera, sedangkan
cv2.destroyAllWindows() akan menutup semua jendela yang
dibuat oleh program [8], [9].
29
BAB 4
Variabel
30
# casting variabel integer ke float
y = float(x)
Output
<class 'int'>
<class 'float'>
Penjelasan:
1. Inisialiasi variabel integer x dengan nilai 0.
2. Variabel x dicasting ke float dengan menggunakan fungsi float().
Hasil casting disimpan ke dalam variabel y.
3. Fungsi type() digunakan untuk memeriksa tipe variabel x dan y
[12], [13].
31
# tukar nilai a dan b
a, b = b, a
Penjelasan:
1. Baris 2 dan 3: Mendefinisikan variabel a dan b.
2. Baris 6-9: Menampilkan nilai variabel a dan b sebelum ditukar.
3. Baris 12: Melakukan pertukaran nilai variabel a dan b
menggunakan teknik assignment yang dilakukan secara paralel.
4. Baris 15-18: Menampilkan nilai variabel a dan b setelah ditukar
[14].
32
BAB 5
String
Penjelasan:
1. Kita mendefinisikan variabel "text" dengan string "Hello, World!".
2. Kita menggunakan metode slicing untuk memotong string "text"
mulai dari indeks 0 hingga 4 (indeks 5 tidak termasuk) dan
hasilnya disimpan dalam variabel "substring".
3. Kita mencetak nilai dari variabel "substring" ke layar [15].
33
5.2. Menggabungkan String dengan Operator
"+" atau Metode join()
Kita dapat menggabungkan dua atau lebih string di Python dengan
menggunakan operator "+" atau metode join. Berikut ini adalah contoh
implementasinya:
str1 = "Hello"
str2 = "World"
joined_str = str1 + " " + str2 # Menggabungkan str1, spasi,
dan str2
print(joined_str) # Output: "Hello World"
Penjelasan:
35
5.4. Memisahkan String dengan Metode split()
Metode split () pada Python memungkinkan kita untuk memisahkan
string berdasarkan pemisah tertentu dan mengembalikan hasilnya dalam
bentuk list. Berikut ini adalah contoh implementasinya:
text = "apple,banana,orange"
list_of_fruits = text.split(",") # Memisahkan string
berdasarkan koma
print(list_of_fruits) # Output: ["apple", "banana",
"orange"]
Penjelasan:
1. Kita mendefinisikan variabel "text" dengan string
"apple,banana,orange".
2. Kita menggunakan metode split() untuk memisahkan nilai dari
variabel "text" berdasarkan koma dan mengembalikan hasilnya
dalam bentuk list, dan hasilnya disimpan dalam variabel
"list_of_fruits".
3. Kita mencetak nilai dari variabel "list_of_fruits" ke layar [18].
36
text = "Hello, World!"
uppercase_text = text.upper() # Mengubah huruf pada string
menjadi huruf kapital
lowercase_text = text.lower() # Mengubah huruf pada string
menjadi huruf kecil
print(uppercase_text) # Output: "HELLO, WORLD!"
print(lowercase_text) # Output: "hello, world!"
Penjelasan:
1. Kita mendefinisikan variabel "text" dengan string "Hello, World!".
2. Kita menggunakan metode upper() untuk mengubah semua huruf
pada string "text" menjadi huruf kapital, dan hasilnya disimpan
dalam variabel "uppercase_text".
3. Kita menggunakan metode lower() untuk mengubah semua huruf
pada string "text" menjadi huruf kecil, dan hasilnya disimpan
dalam variabel "lowercase_text".
4. Kita mencetak nilai dari variabel "uppercase_text" ke layar.
5. kita mencetak nilai dari variabel "lowercase_text" ke layar [19],
[20].
37
5.6. Memeriksa Apakah String Berisi Substring
dengan Metode in
Metode in pada Python digunakan untuk memeriksa apakah sebuah
substring terdapat pada sebuah string. Berikut ini adalah contoh
implementasinya:
text = "Hello, World!"
if "World" in text:
print("Substring ditemukan")
else:
print("Substring tidak ditemukan")
Penjelasan:
1. kita mendefinisikan variabel "text" dengan string "Hello, World!".
2. kita menggunakan kondisional if untuk memeriksa apakah
substring "World" terdapat pada string "text".
3. Jika substring "World" terdapat pada string "text", maka kita
mencetak "Substring ditemukan" ke layar.
4. Jika substring "World" tidak terdapat pada string "text", maka kita
mencetak "Substring tidak ditemukan" ke layar [21].
38
5.7. Menghilangkan Whitespace dengan
Metode strip()
Metode strip() pada Python digunakan untuk menghilangkan whitespace
pada awal dan akhir sebuah string. Berikut ini adalah contoh
implementasinya:
text = " Hello, World! "
stripped_text = text.strip() # Menghilangkan whitespace
pada awal dan akhir string
print(stripped_text) # Output: "Hello, World!"
Penjelasan:
1. Kita mendefinisikan variabel "text" dengan string " Hello, World!
".
2. Kita menggunakan metode strip() untuk menghilangkan
whitespace pada awal dan akhir string "text", dan hasilnya
disimpan dalam variabel "stripped_text".
3. Kita mencetak nilai dari variabel "stripped_text" ke layar [22].
39
print(string * N)
Dalam contoh ini, string "Hello, World!" akan dicetak sebanyak 5 kali
menggunakan operator pengulangan (*) dan hasilnya akan ditampilkan
di konsol.
Penjelasan:
1. Variabel string berisi string yang ingin dicetak sebanyak N kali.
2. Variabel N berisi jumlah pengulangan yang diinginkan.
3. Pada baris terakhir, operator pengulangan (*) digunakan untuk
mencetak string sebanyak N kali.
4. Hasil cetakan akan ditampilkan di konsol menggunakan fungsi
print() [23].
s = "hello world"
print(s[::-1])
Penjelasan:
1. s adalah string yang akan dibalik.
2. [::1] artinya mengambil seluruh karakter string, tetapi dengan
langkah mundur -1 (balik urutan karakter) [15].
40
BAB 6
Folder dan File
nama_folder = "folder_1"
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
41
2. Kita mendefinisikan variabel "nama_folder" dengan string
"folder_baru". Variabel ini digunakan untuk menyimpan nama
folder yang akan kita buat.
3. os.path.exists(nama_folder) - digunakan untuk memeriksa apakah
folder yang diberikan sudah ada atau tidak.
4. os.getcwd() - digunakan untuk mendapatkan path dari working
directory saat ini.
5. os.listdir(current_directory) - digunakan untuk mendapatkan
daftar file dan direktori di working directory saat ini.
6. Jika folder belum ada, maka akan membuat folder baru dengan
fungsi os.mkdir(nama_folder).
7. os.makedirs(“folder_baru_2/sub_folder”) - digunakan untuk
membuat folder beserta sub folder nya [24].
import os
import shutil
42
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
2. import shutil - mengimpor modul shutil, yang digunakan untuk
melakukan operasi pada file dan direktori seperti meng-copy,
memindahkan, menghapus, dan lain-lain.
3. os.path.exists(“folder_1”, “folder_3) - digunakan untuk menyalin
seluruh folder beserta isinya dari “folder_1” ke dalam “folder_3”.
Pastikan destination folder belum ada pada contoh ini folder_3.
Jika folder sudah ada, maka akan terdapat error.
4. shutil.move(“folder_1”, “folder_4”) - digunakan untuk
memindahkan folder “folder_1” ke dalam “folder_4” [24], [25].
43
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
2. import shutil - mengimpor modul shutil, yang digunakan untuk
melakukan operasi pada file dan direktori seperti meng-copy,
memindahkan, menghapus, dan lain-lain.
3. os.rmdir(“folder_3”) - digunakan untuk menghapus folder, pada
contoh ini folder_3. Pastikan destination folder belum ada pada
contoh ini folder_3. Pastikan folder kosong terlebih dahulu.
4. shutil.rmtree(“folder_2”) - digunakan untuk menghapus direktori
“folder_2” beserta seluruh isi di dalamnya [24], [25].
import os
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
2. os.getcwd() - digunakan untuk mendapatkan path dari working
directory saat ini.
3. os.listdir(current_directory) - digunakan untuk mendapatkan
daftar file dan direktori di working directory saat ini.
4. os.path.isdir(current_directory) - digunakan untuk memeriksa
apakah path yang diberikan adalah direktori atau bukan [24].
import os
import shutil
45
# Menyalin file dari src ke dst
shutil.copy("file_baru.txt", "file_baru_copy.txt")
# Memindahkan file
shutil.move("file_baru.txt", "folder_4")
# Menghapus file
os.remove("file_baru_copy.txt")
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
2. import shutil - mengimpor modul shutil, yang digunakan untuk
melakukan operasi pada file dan direktori seperti meng-copy,
memindahkan, menghapus, dan lain-lain.
3. with open("file_baru.txt", "w") as f: - membuat file baru dengan
nama "file_baru.txt" dan membukanya dalam mode "write".
4. shutil.copy(“file_baru.txt”, “file_baru_copy.txt”) – digunakan
untuk menyalin file “file_baru.txt” ke file dengan nama
“file_baru_copy.txt”.
5. shutil.move(“file_baru.txt”, “folder_4”) – digunakan untuk
memindahkan file “file_baru.txt” ke dalam direktori “folder_4”.
6. os.remove("file_baru_copy.txt") - menghapus file
“file_baru_copy.txt” [24], [25].
46
6.4. Berinteraksi dengan File
Terdapat beberapa fungsi yang bisa digunakan untuk berinteraksi dengan
file. Berikut contoh penggunaan fungsi tersebut:
import os
import shutil
Penjelasan:
1. import os - mengimpor modul OS, yang menyediakan fungsi-
fungsi yang digunakan untuk mengakses fungsionalitas sistem
operasi.
2. import shutil - mengimpor modul shutil, yang digunakan untuk
melakukan operasi pada file dan direktori seperti meng-copy,
memindahkan, menghapus, dan lain-lain.
3. with open("file_baru_2.txt", "w") as f: - membuat file baru dengan
nama "file_baru_2.txt" dan membukanya dalam mode "write".
4. os.path.exists(“file_baru_2.txt”) - digunakan untuk memeriksa
apakah file “file_baru_2.txt” sudah ada atau belum.
47
5. os.rename(“file_baru_2.txt”, “file_baru_3.txt”) – digunakan
untuk mengganti nama file “file_baru_2.txt” menjadi
“file_baru_3.txt”.
6. os.path.getsize(“file_baru_3.txt”) – digunakan untuk
mendapatkan ukuran file “file_baru_3.txt” dalam byte [24], [25].
48
BAB 7
Fungsi Matematika
radian = np.radians(90)
print(hitung_sinus(radian))
49
Penjelasan baris demi baris dari kode di atas adalah sebagai berikut:
1. import numpy as np - Mengimpor modul numpy dengan alias np
yang berisi fungsi matematika yang lebih kompleks.
2. def hitung_sinus(sudut): - Membuat fungsi hitung_sinus dengan
satu parameter sudut.
3. return np.sin(sudut) - Mengembalikan nilai sinus dari sudut
menggunakan fungsi sin dari modul numpy.
4. def hitung_kosinus(sudut): - Membuat fungsi hitung_kosinus
dengan satu parameter sudut.
5. return np.cos(sudut) - Mengembalikan nilai kosinus dari sudut
menggunakan fungsi cos dari modul numpy.
6. def hitung_tangen(sudut): - Membuat fungsi hitung_tangen
dengan satu parameter sudut.
7. return np.tan(sudut) - Mengembalikan nilai tangen dari sudut
menggunakan fungsi tan dari modul numpy.
8. def hitung_arcsinus(nilai): - Membuat fungsi hitung_arcsinus
dengan satu parameter nilai.
9. return np.arcsin(nilai) - Mengembalikan sudut dari nilai yang
merupakan hasil sinus menggunakan fungsi arcsin dari modul
numpy.
10. def hitung_arccosinus(nilai): - Membuat fungsi hitung_arccosinus
dengan satu parameter nilai.
11. return np.arccos(nilai) - Mengembalikan sudut dari nilai yang
merupakan hasil kosinus menggunakan fungsi arccos dari modul
numpy.
50
12. def hitung_arctangen(nilai): - Membuat fungsi hitung_arctangen
dengan satu parameter nilai.
13. return np.arctan(nilai) - Mengembalikan sudut dari nilai yang
merupakan hasil tangen menggunakan fungsi arctan dari modul
numpy.
14. np.radians() – digunakan untuk mengonversi sudut dalam derajat
ke radian [26].
print(hitung_log10(100))
51
Penjelasan baris demi baris dari kode di atas adalah sebagai berikut:
1. import numpy as np - Mengimpor modul numpy dengan alias np
yang berisi fungsi matematika yang lebih kompleks.
2. def hitung_exp(x): - Membuat fungsi hitung_exp dengan satu
parameter x.
3. return np.exp(x) - Mengembalikan nilai e pangkat x menggunakan
fungsi exp dari modul numpy.
4. def hitung_ln(x): - Membuat fungsi hitung_ln dengan satu
parameter x.
5. return np.log(x) - Mengembalikan nilai logaritma natural dari x
menggunakan fungsi log dari modul numpy.
6. def hitung_log10(x): - Membuat fungsi hitung_log10 dengan satu
parameter x.
7. return np.log10(x) - Mengembalikan nilai logaritma basis 10 dari
x menggunakan fungsi log10 dari modul numpy.
8. def hitung_log2(x): - Membuat fungsi hitung_log2 dengan satu
parameter x.
9. return np.log2(x) - Mengembalikan nilai logaritma basis 2 dari x
menggunakan fungsi log2 dari modul numpy [26].
import numpy as np
52
# Fungsi untuk menghitung matriks identitas
def matriks_identitas(n):
return np.eye(n)
Penjelasan baris demi baris dari kode di atas adalah sebagai berikut:
1. import numpy as np - Mengimpor modul numpy dengan alias np
yang berisi fungsi matematika yang lebih kompleks.
2. def matriks_identitas(n): - Membuat fungsi matriks_identitas
dengan satu parameter n.
3. return np.eye(n) - Mengembalikan matriks identitas berukuran n
x n menggunakan fungsi eye dari modul numpy.
4. def hitung_determinan(matriks): - Membuat fungsi
hitung_determinan dengan satu parameter matriks.
5. return np.linalg.det(matriks) - Mengembalikan determinan dari
matriks menggunakan fungsi det dari modul numpy.linalg.
53
6. def hitung_eigen(matriks): - Membuat fungsi hitung_eigen dengan
satu parameter matriks.
7. return np.linalg.eig(matriks) - Mengembalikan eigenvalue dan
eigenvector dari matriks menggunakan fungsi eig dari modul
numpy.linalg.
8. def hitung_integral(fungsi, batas_bawah, batas_atas): - Membuat
fungsi hitung_integral dengan tiga parameter fungsi,
batas_bawah, dan batas_atas.
9. return np.trapz(fungsi, dx=0.1, x=np.linspace(batas_bawah,
batas_atas, 100)) - Mengembalikan hasil integral dari fungsi
dengan batas bawah batas_bawah dan batas atas batas_atas
menggunakan fungsi trapz dari modul numpy. Fungsi linspace
digunakan untuk membuat 100 titik yang sama jaraknya di antara
batas_bawah dan batas_atas.
10. def hitung_max(fungsi): - Membuat fungsi hitung_max dengan
satu parameter fungsi.
11. return np.max(fungsi) - Mengembalikan nilai maksimum dari
fungsi menggunakan fungsi max dari modul numpy [26].
54
BAB 8
Percabangan
8.1. If-elif-else
Berikut ini adalah contoh kode program Python yang cukup kompleks
menggunakan percabangan dengan if-elif-else:
56
Pada contoh di atas, nilai variabel x diuji apakah lebih besar dari 0 atau
tidak. Jika nilai variabel x lebih besar dari 0, maka akan mencetak string
"Positive", dan jika nilai variabel x tidak lebih besar dari 0, maka akan
mencetak string "Negative or Zero".
Penjelasan:
1. Variabel x diberi nilai 5.
2. Kondisi if ... else dituliskan dengan cara singkat menggunakan
Short Hand If ... Else.
3. Jika nilai x lebih besar dari 0, maka akan mencetak string
"Positive".
4. Jika nilai x tidak lebih besar dari 0, maka akan mencetak string
"Negative or Zero" [23].
57
BAB 9
Perulangan
Penjelasan:
1. Baris pertama mendefinisikan sebuah list fruits yang berisi
beberapa buah.
2. Pada baris kedua, dilakukan loop dengan menggunakan sintaks
for in dan variabel x. Variabel x akan diisi dengan nilai dari list
fruits satu per satu pada setiap iterasi.
3. Pada baris ketiga, dijalankan perintah untuk mencetak nilai dari
variabel x.
4. Loop akan terus berjalan sampai semua nilai pada list fruits telah
diproses [27], [29].
58
9.2. While
Berikut adalah contoh kode program Python yang menggunakan while
loop:
n = 10
i = 1
sum = 0
while i <= n:
if i % 2 == 0:
sum += i
else:
sum -= i
i += 1
Penjelasan:
1. Inisialisasi variabel n dengan nilai 10.
2. Inisialisasi variabel i dengan nilai 1.
3. Inisialisasi variabel sum dengan nilai 0.
4. Mulai loop while dengan syarat bahwa i harus kurang dari atau
sama dengan n.
5. Pada setiap iterasi, cek apakah i habis dibagi 2. Jika ya, maka
tambahkan i ke sum. Jika tidak, kurangkan i dari sum.
6. Tambahkan nilai i dengan 1.
7. Cetak hasil penjumlahan yang tersimpan di variabel sum.
exist = False
# Looping over the names list
for name in names:
if name == 'Dave':
exist = True
break
if exist:
print("Nama Dave terdapat pada List")
60
6. Terakhir terdapat pemeriksaan variabel exist. Jika bernilai True,
maka akan menampilkan pesan [27].
jumlah = 0
for n in nilai:
if n <= 50:
continue
jumlah += 1
print(jumlah)
61
5. Jika benar, menggunakan continue untuk melompati sisa kode di
dalam loop dan langsung melanjutkan ke iterasi berikutnya.
6. jumlah += 1 digunakan untuk menambahkan variabel jumlah
dengan nilai 1.
7. print(jumlah) digunakan untuk menampilkan jumlah nilai [31].
62
BAB 10
Python Collection
Python Collection adalah struktur data built-in pada Python yang dapat
menyimpan dan mengelola beberapa item sekaligus. Ada empat jenis
koleksi built-in di Python: list, tuple, set, dan dictionary.
• List: adalah koleksi yang terurut dan dapat diubah, yang
memungkinkan item duplikat. List ditulis dengan tanda kurung
siku ([]), dan item di dalamnya dipisahkan dengan koma.
• Tuple: adalah koleksi yang terurut dan tidak dapat diubah, yang
memungkinkan item duplikat. Tuple ditulis dengan tanda kurung
biasa (()), dan item di dalamnya dipisahkan dengan koma.
• Set: adalah koleksi yang tidak terurut dan tidak diindeks. Tidak
diperbolehkan ada item duplikat di dalam set. Set ditulis dengan
tanda kurung kurawal ({}) atau dengan menggunakan fungsi built-
in set().
• Dictionary: adalah koleksi yang tidak terurut, dapat diubah, dan
diindeks. Dictionary ditulis dengan kurung kurawal, dan item di
dalamnya ditulis dalam bentuk pasangan key:value, dipisahkan
dengan koma.
63
10.1.List
List pada Python adalah salah satu tipe data yang paling umum dan
fleksibel. List adalah kumpulan nilai atau objek, seperti angka, string, atau
bahkan objek lain, yang diatur secara terurut dengan indeks yang dimulai
dari 0. Setiap nilai dalam list disebut elemen, dan elemen-elemen tersebut
dapat diakses, dimodifikasi, atau dihapus dengan menggunakan indeks
yang sesuai. Berikut ini adalah contoh kode pemrograman Python
tentang list:
# mengurutkan list
fruits.sort()
64
Penjelasan:
1. Pertama-tama, kita membuat sebuah list dengan nama fruits yang
berisi beberapa item buah.
2. Kita dapat mengakses item pada list menggunakan indeks. Pada
contoh kode di atas, kita mencetak item pada indeks ke-1, yaitu
'banana'.
3. Kita juga dapat mengubah item pada list dengan mengaksesnya
melalui indeks dan kemudian memberikan nilai baru.
4. Untuk menambah item pada list, kita dapat menggunakan
metode append() yang akan menambahkan item baru ke akhir
list.
5. Sedangkan untuk menghapus item pada list, kita dapat
menggunakan metode remove() dengan memberikan nilai item
yang ingin dihapus.
6. Untuk mengurutkan list, kita dapat menggunakan metode sort()
yang akan mengurutkan item pada list secara ascending.
7. Sedangkan untuk mengembalikan list terbalik, kita dapat
menggunakan metode reverse().
8. Untuk menghitung jumlah item pada list, kita dapat menggunakan
fungsi bawaan Python len().
9. Untuk melakukan loop pada setiap item pada list, kita dapat
menggunakan perulangan for dan menuliskan variabel yang
merepresentasikan setiap item [32], [33].
65
10.2.Menggabungkan dan Memisahkan List
Berikut adalah contoh kode pemrograman Python untuk
menggabungkan dan memisahkan data pada list:
# Menggabungkan dua list menjadi satu
list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list)
Penjelasan:
1. Pada baris pertama dan kedua, kita membuat dua buah list list1
dan list2 yang masing-masing berisi angka. Kemudian, kita
menggabungkan kedua list tersebut menjadi satu dengan operator
+ dan menyimpan hasilnya pada variabel merged_list.
2. Pada baris kelima, kita membuat sebuah list original_list yang
berisi angka. Kemudian, kita menentukan indeks pada list tersebut
dimana list akan dipisahkan. Dalam contoh ini, kita memilih
indeks ke-3 untuk memisahkan list menjadi dua. Kita kemudian
menggunakan slicing untuk memisahkan list tersebut menjadi dua
list terpisah yaitu split_list1 dan split_list2 [33].
66
10.3.Menampilkan The Most Frequent Value
Dalam list Python
Untuk menemukan nilai yang paling sering muncul dalam sebuah list
menggunakan fungsi max pada Python, kita dapat menggunakan fungsi
max dengan parameter key yang berupa fungsi list.count. Berikut adalah
contoh kode:
my_list = [1, 2, 3, 4, 5, 5, 5, 6, 7, 7, 8, 9, 9, 9, 9, 9]
most_frequent = max(set(my_list), key = my_list.count)
print("Nilai paling sering muncul adalah:", most_frequent)
Pada contoh kode di atas, kita memiliki list my_list yang terdiri dari
beberapa nilai. Untuk menemukan nilai yang paling sering muncul dalam
list tersebut, kita menggunakan fungsi max dengan parameter key yang
berupa fungsi list.count. Fungsi set digunakan untuk mengubah list
menjadi set agar nilai-nilai unik dan kemudian kita dapat mencari nilai
yang paling sering muncul dengan fungsi max dengan parameter key yang
berupa fungsi list.count. Hasilnya disimpan pada variabel most_frequent
dan dicetak ke layar [12].
my_list = [3, 5, 2, 8, 4]
67
val = 8
if val in my_list:
index = my_list.index(val)
else:
index = -1
if index != -1:
print(f'Nilai {val} ditemukan di indeks ke-{index}
dalam list')
else:
print(f'Nilai {val} tidak ditemukan dalam list')
Penjelasan:
1. Pertama-tama, kita membuat sebuah list dengan nama my_list
yang berisi beberapa nilai.
2. Variabel val adalah variabel yang menyimpan nilai yang akan
dicari pada list.
3. fungsi in digunakan untuk memeriksa apakah nilai yang dicari
(val) ada dalam list my_list. Jika iya, maka variabel index akan
berisi index dari nilai tersebut dalam list. Jika tidak ditemukan,
maka variabel index bernilai -1 [23], [33].
68
# Daftar pengguna yang telah melakukan pembayaran
users_with_payment = ["John", "James"]
Penjelasan:
1. List registered_users adalah list yang menyimpan daftar pengguna
yang terdaftar.
2. List users_with_payment adalah list yang menyimpan daftar
penggunakan yang telah melakukan pembayaran.
3. Operator XOR (^) pada dua list menghasilkan list baru yang
berisi elemen-elemen yang ada di salah satu list. Pada contoh ini
digunakan untuk mendapatkan data pengguna yang terdaftar
tetapi belum melakukan pembayaran. Hasilnya akan disimpan
pada list users_without_payment.
4. Menampilkan daftar pengguna yang belum melakukan
pembayaran dengan fungsi print() [34].
10.6.Set
Set pada Python adalah tipe data yang dapat menyimpan sekumpulan
elemen dengan sifat yang sama seperti himpunan matematika, yaitu
69
elemen-elemennya unik dan tidak terurut. Artinya, tidak ada duplikat
dalam set, dan elemen-elemennya tidak memiliki posisi yang tetap dalam
set. Berikut adalah contoh kode pemrograman Python tentang set:
Penjelasan:
3. Pada baris ketiga, kita menghapus elemen dengan nilai 2 dari set
menggunakan method remove() [33], [35].
70
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
Penjelasan:
1. set1 dan set2 adalah dua set yang sudah didefinisikan dengan
beberapa elemen.
71
10.8.Tuple
Tuple pada Python adalah jenis struktur data yang tidak dapat diubah
setelah dideklarasikan. Tuple bersifat ordered, artinya urutan elemen
dalam tuple tetap sama seperti saat dideklarasikan. Setiap elemen dalam
tuple dapat diakses menggunakan indeksnya. Tuple dideklarasikan
dengan tanda kurung (). Berikut contoh kode pemrograman Python
tentang tuple:
# Mendefinisikan tuple dengan beberapa nilai
tup1 = ('a', 'b', 'c', 'd', 'e')
tup2 = (1, 2, 3, 4, 5)
# Menghapus tuple
del tup3
Penjelasan:
72
3. Baris 6: Mendefinisikan tuple tup3 dengan hanya satu nilai.
Perhatikan bahwa untuk mendefinisikan tuple dengan satu nilai,
kita harus menambahkan tanda koma setelah nilai tersebut.
8. Baris 15: Mengakses elemen kedua hingga keempat dari tuple tup2
menggunakan slicing.
10. Baris 21: Menghapus tuple tup3 menggunakan perintah del [37].
# membuat tuple
tup = (4, 2, 8, 1, 5, 9)
Penjelasan:
1. Membuat tuple dengan nama tup yang berisi beberapa angka
acak.
2. Melakukan pencarian data pada tuple tup. Dalam contoh ini, kita
mencari apakah angka 2 ada dalam tuple. Fungsi in digunakan
untuk memeriksa apakah sebuah nilai ada dalam tuple, dan fungsi
index digunakan untuk mencari indeks dari nilai tersebut dalam
tuple.
3. Jika angka 2 ditemukan dalam tuple, maka indeksnya akan
dicetak. Jika tidak ditemukan, maka pesan "Data tidak ditemukan"
akan dicetak.
74
4. Mengurutkan data pada tuple tup dengan cara mengonversi tuple
ke list, melakukan pengurutan pada list tersebut menggunakan
fungsi sorted, dan mengonversi kembali ke tuple.
5. Mencetak tuple sebelum diurutkan dan setelah diurutkan [12],
[33].
10.10. Dictionary
Dictionary adalah tipe data yang digunakan untuk menyimpan kumpulan
data dengan format key-value pairs. Dalam dictionary, setiap elemen
terdiri dari sebuah key dan sebuah value yang terkait. Key pada dictionary
haruslah unik dan immutable, sementara value bisa berupa objek Python
apa pun. Berikut adalah contoh kode pemrograman Python tentang
dictionary:
# Membuat dictionary kosong
my_dict = {}
75
# Menampilkan semua key pada dictionary
print(my_dict.keys()) # Output: dict_keys(['nama',
'umur'])
Penjelasan:
1. Membuat dictionary kosong dengan menggunakan tanda kurung
kurawal ({}) atau fungsi dict().
2. Menambahkan key-value pair ke dalam dictionary dengan
menggunakan operator penugasan (=).
3. Mengakses value pada dictionary dengan menggunakan operator
penunjuk ([]) dan menyebutkan key yang bersesuaian.
4. Mengubah value pada dictionary dengan menggunakan operator
penugasan (=) dan menyebutkan key yang bersesuaian.
5. Menghapus key-value pair dari dictionary dengan menggunakan
perintah del dan menyebutkan key yang bersesuaian.
6. Menampilkan semua key pada dictionary dengan menggunakan
fungsi keys().
7. Menampilkan semua value pada dictionary dengan menggunakan
fungsi values() [33], [38].
76
10.11. Mengurutkan data pada List
Dictionary
Berikut adalah contoh kode Python untuk mengurutkan list dictionary
berdasarkan salah satu key menggunakan fungsi sorted dan lambda:
Penjesalan:
1. Pertama, kita buat sebuah list dictionary data yang berisi data
nama dan umur.
2. Kemudian, kita gunakan fungsi sorted untuk mengurutkan data
pada list data. Fungsi ini menerima dua argumen: pertama adalah
iterable yang ingin diurutkan (dalam hal ini, list data), dan yang
kedua adalah key atau kunci untuk mengurutkan data (dalam hal
ini, key=lambda x: x['age']).
3. Fungsi lambda digunakan untuk membuat sebuah fungsi anonim
yang mengambil satu argumen (dalam hal ini, x) dan
mengembalikan nilai dari x['age']. Dalam hal ini, kita mengambil
nilai dari key 'age' pada setiap dictionary dalam list data.
4. Hasil pengurutan disimpan pada variabel sorted_data dan
kemudian dicetak menggunakan fungsi print [12].
77
10.12. Mencari data pada List Dictionary
Berikut ini adalah contoh kode Python untuk mencari data pada list
dictionary berdasarkan salah satu key:
students = [
{"name": "John", "age": 20, "major": "Computer
Science"},
{"name": "Jane", "age": 19, "major": "Mathematics"},
{"name": "Bob", "age": 21, "major": "English"}
]
def search_by_major(major):
for student in students:
if student["major"] == major:
return student
return None
Penjelasan:
1. Pertama, kita definisikan sebuah list dictionary bernama students,
yang berisi data mahasiswa dengan atribut name, age, dan major.
2. Kemudian, kita buat sebuah fungsi bernama search_by_major
yang menerima satu parameter major. Fungsi ini akan mencari
mahasiswa yang memiliki nilai atribut major sama dengan nilai
parameter major. Jika ditemukan, maka fungsi akan
78
mengembalikan dictionary mahasiswa tersebut. Jika tidak
ditemukan, maka fungsi akan mengembalikan nilai None.
3. Setelah itu, kita panggil fungsi search_by_major dengan parameter
"Computer Science" untuk mencari mahasiswa yang memiliki
jurusan Computer Science.
4. Jika ditemukan mahasiswa dengan jurusan Computer Science,
maka kita tampilkan nama dan usianya. Jika tidak ditemukan,
maka kita tampilkan pesan bahwa mahasiswa tidak ditemukan
[33], [38].
79
BAB 11
Numpy Array
11.1.Membuat Array
# import library numpy
import numpy as np
# membuat array
arr1 = np.array([3, 1, 4, 2, 5])
print(b)
print(c)
print(d)
Penjelasan:
1. import numpy as np – digunakan untuk Import library numpy.
2. Kita membuat array bernama arr1 dengan isi [3, 1, 4, 2, 5].
3. Kita menampilkan elemen pada indeks ke-2 array arr1.
80
4. Kita menambahkan elemen 6 pada akhir array arr1 dengan
menggunakan fungsi np.append(), dan hasilnya disimpan ke
variabel b.
5. Kita menyisipkan elemen 0 pada indeks ke-2 pada array arr1
dengan menggunakan fungsi np.insert(), dan hasilnya disimpan ke
variabel c.
6. Kita menghapus elemen pada indeks ke-1 pada array arr1 dengan
menggunakan fungsi np.delete(), dan hasilnya disimpan ke
variabel d.
7. Hasil akhir dari masing-masing manipulasi array tersebut dicetak
menggunakan fungsi print() [26].
import numpy as np
print(b)
print(c)
81
Penjelasan:
1. Mengimport NumPy library dan menamainya np
2. Membuat sebuah array 1D dengan nama a yang berisi angka 1
hingga 6
3. Mengubah dimensi dari array a menjadi 2D dengan menggunakan
method reshape() dan menyimpannya pada variabel b. reshape()
menerima argumen bentuk baru dari array yang diinginkan,
dalam hal ini kita ingin mengubah menjadi bentuk (3, 2), artinya
array yang baru terdiri dari 3 baris dan 2 kolom.
4. Mengubah dimensi dari array a menjadi 3D dengan menggunakan
method reshape() dan menyimpannya pada variabel c. Kali ini
kita ingin mengubah menjadi bentuk (2, 3, 1), artinya array yang
baru terdiri dari 2 blok, masing-masing blok terdiri dari 3 baris
dan 1 kolom.
5. Mencetak hasil dari kedua array yang telah diubah dimensinya
[39].
82
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
print(c)
print(d)
Output :
[[1 2]
[3 4]
[5 6]]
[[1 2 5]
[3 4 6]]
Penjelasan:
1. import numpy as np : mengimport library numpy dan
memberikan alias np.
2. a = np.array([[1, 2], [3, 4]]) : membuat array numpy 2 dimensi
a.
3. b = np.array([[5, 6]]) : membuat array numpy 2 dimensi b.
4. c = np.concatenate((a, b), axis=0) : menggabungkan array a dan
b secara vertikal dengan fungsi np.concatenate(). Hasilnya
disimpan pada variabel c.
5. d = np.hstack((a, b.T)) : menggabungkan array a dan transpose
dari array b secara horizontal dengan fungsi np.hstack(). Hasilnya
disimpan pada variabel d.
6. print(c) : menampilkan isi variabel c.
83
7. print(d) : menampilkan isi variabel d [40], [41], [42].
a = np.array([3, 1, 4, 2, 5])
print(b)
print(c)
Output:
[1 2 3 4 5]
[5 4 3 2 1]
Penjelasan:
1. Mengimpor library NumPy dan memberikan alias "np" agar
memudahkan penggunaan.
2. Membuat sebuah array "a" dengan elemen [3, 1, 4, 2, 5].
3. Membuat sebuah array "b" dengan mengurutkan array "a" secara
ascending menggunakan fungsi np.sort().
4. Membuat sebuah array "c" dengan mengurutkan array "a" secara
descending menggunakan slicing pada array "b" dengan notation
"[::-1]".
84
5. Mencetak array "b" dan "c" yang sudah terurut [43].
a = np.array([1, 2, 3, 2, 4, 3, 5])
print(b)
Output:
[1 2 3 4 5]
Penjelasan:
1. Baris pertama merupakan import module numpy dengan alias np.
2. Pada baris kedua, kita mendefinisikan sebuah array dengan nama
a yang berisi beberapa bilangan bulat.
3. Baris ketiga, np.unique(a), adalah fungsi yang digunakan untuk
mengambil elemen unik dari a. Hasil dari fungsi ini disimpan
dalam variabel b.
4. Pada baris terakhir, kita mencetak nilai b yang berisi elemen-
elemen unik dari array a [44].
85
11.6.Memfilter Array berdasarkan kondisi
tertentu
Dalam NumPy, array dapat difilter menggunakan kondisi tertentu dengan
menggunakan teknik Boolean Indexing. Berikut contoh penggunaannya:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(b)
Output:
[4 5]
Penjelasan:
1. Import library NumPy dan menginisialisasi array a dengan nilai [1,
2, 3, 4, 5].
2. Menggunakan indexing dengan kondisi a > 3 untuk menghasilkan
array b yang berisi elemen yang memenuhi kondisi tersebut, yaitu
elemen yang lebih besar dari 3.
3. Mencetak array b.
Dalam contoh ini, fitur indexing dengan kondisi pada NumPy digunakan
untuk memfilter nilai yang lebih besar dari 3 pada array a dan
mengembalikan hasilnya dalam array baru b [45].
86
11.7.Memotong (slicing) Array
Dalam Python, kita dapat memotong (slicing) array menggunakan tanda
:. Dengan cara ini, kita dapat memilih bagian tertentu dari array dan
memanipulasinya sesuai kebutuhan. Berikut contoh penggunaannya:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(b)
Output:
[2 3 4]
Penjelasan:
1. Impor library NumPy dan beri alias np.
2. Buat array a yang berisi elemen [1, 2, 3, 4, 5].
3. Gunakan slicing untuk memotong array a mulai dari index ke-1
(elemen ke-2) hingga index ke-4 (elemen ke-4), dengan sintaks
a[start:end]. Kita simpan hasilnya ke dalam variabel b.
4. Cetak variabel b.
Hasil dari kode di atas adalah [2 3 4], yang merupakan potongan array a
dari index ke-1 sampai ke-3 (elemen ke-2 sampai ke-4) [45].
87
11.8.Membagi Array menjadi beberapa bagian
Dalam NumPy, kita dapat membagi array menjadi beberapa bagian
menggunakan method split. Method ini membutuhkan tiga parameter,
yaitu array yang ingin dibagi, jumlah bagian yang diinginkan, dan sumbu
yang ingin digunakan untuk membagi array. Berikut contoh
penggunaannya:
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
print(b)
Output:
Penjelasan:
1. import numpy as np: Mengimport NumPy sebagai np.
2. a = np.array([1, 2, 3, 4, 5, 6]): Membuat array a dengan nilai [1,
2, 3, 4, 5, 6].
3. b = np.split(a, 3): Memotong array a menjadi tiga bagian yang
sama besar menggunakan fungsi np.split(). Hasilnya adalah daftar
berisi tiga array dengan ukuran yang sama [46].
88
11.9.Fungsi Statistik dalam Numpy
Berikut contoh penggunaan beberapa fungsi statistik dalam NumPy untuk
menghitung nilai maksimum, minimum, modus, rata-rata, dan standar
deviasi dari sebuah array:
import numpy as np
# buat array
arr = np.array([1, 2, 3, 4, 5, 3, 2, 3, 2, 1])
# maksimum
arr_max = np.max(arr)
print("Nilai maksimum:", arr_max)
# minimum
arr_min = np.min(arr)
print("Nilai minimum:", arr_min)
# modus
arr_mode = np.argmax(np.bincount(arr))
print("Modus:", arr_mode)
# rata-rata
arr_mean = np.mean(arr)
print("Nilai rata-rata:", arr_mean)
# standar deviasi
arr_std = np.std(arr)
print("Nilai standar deviasi:", arr_std)
Penjelasan:
1. Pertama-tama, kita membuat sebuah array dengan menggunakan
np.array().
2. Fungsi np.max() digunakan untuk mencari nilai maksimum dari
array.
89
3. Fungsi np.min() digunakan untuk mencari nilai minimum.
4. Fungsi np.argmax() digunakan untuk mencari indeks dari elemen
array yang memiliki nilai paling sering muncul, sedangkan
np.bincount() digunakan untuk menghitung frekuensi kemunculan
setiap nilai pada array. Nilai modus dapat dihitung dengan
mencari argumen yang menghasilkan frekuensi kemunculan
terbanyak dari array.
5. Fungsi np.mean() digunakan untuk menghitung rata-rata dari
array.
6. Fungsi np.std() digunakan untuk menghitung standar deviasi dari
array [26], [47].
import numpy as np
# buat array
arr = np.array([1, 2, 3, 4, 5])
# mencetak indeks
print(idx)
Outputnya adalah:
[2]
90
Penjelasan:
1. Pertama-tama, kita mengimport library NumPy.
2. Kemudian, kita membuat array arr dengan elemen [1, 2, 3, 4, 5].
3. Kita menggunakan fungsi np.where untuk mencari indeks dari
elemen array yang bernilai 3. Fungsi np.where mengembalikan
sebuah tuple dengan satu elemen atau lebih, tergantung pada
berapa banyak elemen yang memenuhi kondisi yang diberikan.
Dalam contoh ini, kita menempatkan [0] setelah pemanggilan
np.where untuk memilih elemen pertama dari tuple, yang berisi
array indeks.
4. Hasil pencarian indeks ditampung dalam variabel idx.
5. Hasil pencarian indeks kemudian dicetak [48].
91
BAB 12
Matriks
12.1.Membuat Matriks
Berikut contoh kode untuk membuat matriks 2D menggunakan library
numpy pada Python.
import numpy as np
# menampilkan matriks
print(matrix)
print(matrix)
Penjelasan:
1. Pada baris pertama, library numpy diimpor dan diberi alias np.
2. Sebuah matriks 2D dengan nilai [1, 2] dan [3, 4] dibuat dengan
menggunakan fungsi array() dari library numpy. Matriks tersebut
disimpan ke dalam variabel matrix.
3. Program menampilkan matriks dengan memanggil print(matrix).
92
4. Program mengakses elemen ke baris ke-0 dan kolom ke-1 dari
matriks dengan menuliskan matrix[0, 1] dan menampilkannya di
layar dengan menggunakan fungsi print().
5. Program mengganti elemen ke baris ke-0 dan kolom ke-0 dengan
nilai 2 dengan menuliskan matrix[0, 0] = 2. Dan menampilkan
hasilnya dengan memanggil print(matrix) [49], [50].
12.2.Operasi Matriks
Berikut contoh penggunaan operasi dasar pada matriks dengan
menggunakan NumPy di Python.
import numpy as np
# pengurangan matriks
matrix_subtract = matrix1 - matrix2
# pertambahan matriks
matrix_add = matrix1 + matrix2
# perkalian matriks
matrix_dot = np.dot(matrix1, matrix2)
93
print("Hasil perkalian matriks dengan skalar:\n",
matrix_skalar)
Penjelasan:
1. import numpy as np: Mengimpor library Numpy sebagai np.
2. Dua matriks diinisialisasi dengan menggunakan fungsi np.array().
3. Dilakukan operasi pengurangan (-) antara matrix1 dan matrix2,
dan hasilnya disimpan dalam variabel matrix_subtract.
4. Dilakukan operasi penjumlahan (+) antara matrix1 dan matrix2,
dan hasilnya disimpan dalam variabel matrix_add.
5. Dilakukan operasi perkalian dot antara matrix1 dan matrix2, dan
hasilnya disimpan dalam variabel matrix_dot. Perlu diingat bahwa
dalam perkalian matriks, ukuran kolom matriks pertama harus
sama dengan ukuran baris matriks kedua.
6. Dilakukan operasi perkalian skalar (*) antara matrix1 dan bilangan
bulat 2, dan hasilnya disimpan dalam variabel matrix_skalar.
7. Terakhir, kedua matriks dan semua hasil operasi matriks akan
ditampilkan dengan fungsi print() [26].
# transpose matriks
matrix_transpose = np.transpose(matrix_acak)
print(matrix_transpose)
nilai_min = np.min(matrix_acak)
print(nilai_min)
Penjelasan:
1. Membuat matriks identitas dengan ukuran 3x3 menggunakan
fungsi np.eye(3).
2. Membuat matriks dengan ukuran 3x2 yang diisi dengan angka
acak antara 1 dan 10 menggunakan fungsi np.random.randint(1,
10, size=(3, 2)).
3. Melakukan transpose pada matriks acak yang telah dibuat
menggunakan fungsi np.transpose(matrix_acak).
4. Mencari nilai maksimum pada matriks acak menggunakan fungsi
np.max(matrix_acak).
5. Mencari nilai minimum pada matriks acak menggunakan fungsi
np.min(matrix_acak) [26].
95
12.4.Inverse Matriks
Berikut contoh kode Python untuk melakukan invers matriks dengan
Numpy:
import numpy as np
# membuat matriks
matrix = np.array([[1, 2], [3, 4]])
print("Matriks:\n", matrix)
print("Invers matriks:\n", inv_matrix)
12.5.Rotasi Matriks
Berikut contoh kode Python untuk melakukan operasi matriks rotasi
dengan Numpy:
import numpy as np
# membuat matriks
matrix = np.array([[1, 2], [3, 4]])
96
# membuat matriks rotasi
angle = np.pi/4
rotation_matrix = np.array([[np.cos(angle), -
np.sin(angle)], [np.sin(angle), np.cos(angle)]])
97
12.6.Menyelesaikan Persamaan Linear
Berikut contoh kode Python untuk menyelesaikan sistem persamaan
linear dengan Numpy:
import numpy as np
# koefisien matriks
a = np.array([[2, 1], [1, 1]])
# hasil matriks
b = np.array([3, 2])
print("Koefisien matriks:\n", a)
print("Hasil matriks:\n", b)
print("Solusi sistem persamaan linear:", x)
98
12.7.Mengubah Bentuk Matriks
Berikut contoh kode Python untuk mengubah bentuk matriks dengan
Numpy:
import numpy as np
100
BAB 13
Fungsi
13.1.Fungsi Main
Dalam pemrograman Python, fungsi main() sering digunakan sebagai
entry point atau titik awal program. Fungsi ini biasanya berisi instruksi
atau kode yang akan dieksekusi ketika program dijalankan.
def fungsi1():
# isikan instruksi di dalam fungsi1
def fungsi2():
# isikan instruksi di dalam fungsi2
def main():
# isikan instruksi yang ingin dieksekusi saat program
dijalankan
# bisa memanggil fungsi-fungsi yang telah dibuat
sebelumnya
fungsi1()
fungsi2()
if __name__ == "__main__":
main()
101
Pada contoh di atas, terdapat tiga fungsi yaitu fungsi1(), fungsi2(), dan
main(). Fungsi fungsi1() dan fungsi2() berisi instruksi-instruksi tertentu.
Sedangkan fungsi main() berisi instruksi yang ingin dieksekusi ketika
program dijalankan.
102
Penjelasan:
1. kita mendefinisikan fungsi greeting dengan argumen default
name='John'. Jika argumen name tidak diberikan saat memanggil
fungsi, maka nilai default John akan digunakan.
2. greeting() digunakan untuk memanggil fungsi tanpa argument
name.
3. greeting(‘Sarah’) digunakan untuk memanggil fungsi dengan
argument name [52].
13.3.Fungsi Lambda
Berikut contoh kode program menggunakan Fungsi lambda untuk
membuat fungsi sederhana.
Penjelasan:
1. Kita menggunakan fungsi lambda untuk membuat fungsi
sederhana addition yang melakukan penjumlahan dua bilangan.
2. addition(2,3) digunakan untuk memanggil fungsi addition dengan
dua parameter [52].
103
13.4.Fungsi dengan jumlah argument yang
fleksibel
Berikut contoh kode program Membuat fungsi dengan jumlah argumen
yang fleksibel.
Penjelasan:
1. Kita mendefinisikan fungsi calculate_sum dengan argumen
fleksibel *args. Dengan menggunakan tanda * sebelum nama
argumen, kita bisa memberikan jumlah argumen yang tidak
terbatas saat memanggil fungsi.
2. Didalam fungsi, inisialiasi variabal result dengan nilai 0.
3. Didalam fungsi juga dilakukan loop dengan menggunakan sintaks
for in dan variabel number. Variabel number akan diisi dengan
nilai dari argument satu per satu pada setiap iterasi.
4. Pada setiap iterasi, akan menjumlahkan nilai dari variabel result
dengan nilai dari argument.
5. return result digunakan untuk mengembalikan nilai dari variabel
result.
104
6. Kita memanggil fungsi tersebut dengan memberikan tiga angka
sebagai argumen, dan hasilnya adalah penjumlahan ketiga angka
tersebut [52].
Penjelasan:
1. kita mendefinisikan fungsi person_details dengan argumen
keyword fleksibel **kwargs. Dengan menggunakan tanda **
sebelum nama argumen, kita bisa memberikan jumlah argumen
keyword yang tidak terbatas saat memanggil fungsi.
2. Didalam fungsi juga dilakukan loop dengan menggunakan sintaks
for in, variabel key dan value. Variabel key akan diisi dengan key
dari argumen keyword dan variabel value akan diisi dengan value
dari argumen keyword satu per satu pada setiap iterasi.
105
3. Pada setiap iterasi, akan menampilkan key dan value dari
argumen keyword.
4. kita memanggil fungsi tersebut dengan memberikan tiga argumen
keyword name, age, dan city [52].
13.6.Menggunakan Decorator
Berikut contoh kode program menggunakan decorator untuk
memodifikasi fungsi.
@uppercase_decorator
def greet():
return 'Hello World!'
Penjelasan:
1. kita mendefinisikan decorator uppercase_decorator, yang
mengubah teks hasil output fungsi menjadi huruf kapital.
2. kita menggunakan decorator tersebut pada fungsi greet dengan
menambahkan @uppercase_decorator sebelum mendefinisikan
fungsi. Hasil dari pemanggilan fungsi greet kemudian akan
menjadi huruf kapital [52].
106
13.7.Mengembalikan beberapa nilai dari fungsi
Berikut ini adalah contoh kode untuk membuat sebuah fungsi yang
mengembalikan beberapa nilai:
Penjelasan:
1. def hitung(a, b): - mendefinisikan sebuah fungsi dengan nama
hitung yang memiliki dua parameter a dan b.
2. jumlah = a + b - membuat variabel jumlah yang berisi hasil
penjumlahan dari a dan b.
3. kurang = a - b - membuat variabel kurang yang berisi hasil
pengurangan a dan b.
4. kali = a * b - membuat variabel kali yang berisi hasil perkalian a
dan b.
5. bagi = a / b - membuat variabel bagi yang berisi hasil pembagian
a dan b.
107
6. return jumlah, kurang, kali, bagi - mengembalikan keempat nilai
tersebut secara bersamaan sebagai sebuah tuple
7. hasil_jumlah, hasil_kurang, hasil_kali, hasil_bagi = hitung(10, 5) -
memanggil fungsi hitung dan menyimpan hasilnya ke dalam
empat variabel yang berbeda.
8. print("Hasil penjumlahan: ", hasil_jumlah) - mencetak hasil
penjumlahan ke layar.
9. print("Hasil pengurangan: ", hasil_kurang) - mencetak hasil
pengurangan ke layar.
10. print("Hasil perkalian: ", hasil_kali) - mencetak hasil perkalian ke
layar.
11. print("Hasil pembagian: ", hasil_bagi) - mencetak hasil pembagian
ke layar [27].
13.8.Variabel Global
Berikut ini adalah contoh kode untuk variabel global pada Python:
x = 10 # variabel global
def fungsi():
print("Nilai x di dalam fungsi: ", x)
fungsi()
print("Nilai x di luar fungsi: ", x)
Penjelasan:
1. Deklarasi variabel global x dengan nilai 10.
108
2. Definisi fungsi fungsi(). Pada fungsi ini akan mencetak nilai
variabel x.
3. Memanggil fungsi fungsi().
4. Mencetak nilai x yang berada di luar fungsi.
13.9.Variabel Lokal
Berikut adalah contoh kode pemrograman Python tentang variabel lokal:
def my_function():
x = 5
print("Nilai x di dalam fungsi: ", x)
my_function()
Penjelasan:
1. Pada kode di atas, kita membuat sebuah fungsi bernama
my_function().
2. Di dalam fungsi tersebut, kita mendefinisikan variabel x dan
memberinya nilai 5.
3. Kemudian, kita mencetak nilai dari x di dalam fungsi
menggunakan perintah print.
4. Kita memanggil fungsi tersebut menggunakan perintah
my_function().
109
Variabel lokal adalah variabel yang didefinisikan di dalam sebuah fungsi
dan hanya dapat diakses di dalam fungsi tersebut. Jika kita mencoba
untuk mengakses variabel lokal di luar fungsi, Python akan menghasilkan
error [53].
x = "global"
def foo():
global x
y = "local"
x = y
print("x di dalam fungsi: ", x)
foo()
print("x di luar fungsi: ", x)
Penjelasan:
1. Variabel x didefinisikan sebagai variabel global dengan nilai
"global".
2. Fungsi foo() didefinisikan.
3. Variabel x di dalam fungsi foo() dideklarasikan sebagai variabel
global menggunakan perintah global x.
4. Variabel y didefinisikan sebagai variabel lokal dengan nilai "local".
110
5. Variabel x di dalam fungsi foo() diubah nilainya menjadi nilai
variabel y.
6. Nilai variabel x di dalam fungsi foo() dicetak.
7. Fungsi foo() dipanggil.
8. Nilai variabel x di luar fungsi foo() dicetak.
111
BAB 14
Queue
14.1. Queue
Berikut adalah contoh kode pemrograman Python tentang Queue:
from queue import Queue
113
10. while not q.empty():: melakukan perulangan selama Queue q
tidak kosong.
11. print(q.get()): mengambil elemen pertama dari dalam Queue q
dan mencetaknya [56].
Penjelasan:
1. from queue import LifoQueue: mengimpor modul queue dan
kelas LifoQueue dari modul tersebut.
114
2. lq = LifoQueue(): membuat objek LifoQueue baru dengan nama
lq.
3. lq.put("Mobil"): menambahkan elemen "Boy" ke dalam
LifoQueue lq.
4. lq.put("Sepeda"): menambahkan elemen "Andrew" ke dalam
LifoQueue lq.
5. lq.put("Motor"): menambahkan elemen "John" ke dalam
LifoQueue lq.
6. lq.get(): menghapus elemen terakhir dari LifoQueue lq.
7. print(q.qsize()): mencetak ukuran dari LifoQueue lq.
8. print(q.empty()): mengecek apakah LifoQueue q kosong atau
tidak. Karena LifoQueue lq tidak kosong, maka akan mencetak
False.
9. while not lq.empty():: melakukan perulangan selama LifoQueue
lq tidak kosong.
10. print(lq.get()): mengambil elemen terakhir dari dalam LifoQueue
lq dan mencetaknya [56].
115
BAB 15
Manipulasi Citra dengan OpenCV
import cv2
# Membaca citra
img = cv2.imread('football.png', cv2.IMREAD_COLOR)
# Menampilkan citra
cv2.imshow('Football', img)
Penjesalan:
1. import cv2 mengimport library OpenCV.
116
2. img = cv2.imread('football.png', cv2.IMREAD_COLOR)
membaca citra dari file football.png dan menyimpannya ke dalam
variabel img. cv2.IMREAD_COLOR digunakan untuk membaca
citra dalam format RGB.
3. cv2.imshow('Football', img) menampilkan citra dengan judul
Football pada jendela.
4. cv2.waitKey(0) menunggu tombol keyboard ditekan, jika 0
berarti menunggu tak terbatas.
5. cv2.destroyAllWindows() menutup jendela citra.
6. cv2.imwrite('football_copy.jpg', img) menyimpan citra yang telah
diolah ke dalam file baru dengan nama football_copy.jpg [8].
import cv2
117
Penjelasan:
1. Impor library OpenCV dengan sintaks import cv2.
2. img = cv2.imread('football.png') - Membaca citra dengan nama
file "football.png".
3. Menggunakan fungsi cv2.cvtColor() untuk mengkonversi citra asli
ke grayscale. Sintaks fungsinya adalah sebagai berikut:
cv2.cvtColor(input_image, flag). input_image adalah citra asli dan
flag adalah konstanta yang menentukan tipe konversi. Pada
contoh kode di atas, kita menggunakan konstanta
cv2.COLOR_BGR2GRAY untuk mengkonversi citra ke grayscale.
4. Menampilkan citra asli dan grayscale menggunakan fungsi
cv2.imshow(). cv2.imshow() menerima dua argumen: judul
jendela dan citra yang ingin ditampilkan.
5. Menunggu hingga pengguna menekan tombol apapun pada
keyboard dengan menggunakan fungsi cv2.waitKey(0). Hal ini
akan membuat jendela citra ditutup hanya setelah pengguna
menekan tombol pada keyboard [57].
import cv2
# membaca citra
img = cv2.imread('football.png')
118
# konversi ke citra grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# ambang Otsu
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY
+ cv2.THRESH_OTSU)
Penjelasan
1. Mengimport modul OpenCV dengan menggunakan perintah
import cv2.
2. Membaca citra menggunakan fungsi cv2.imread('football.png')
dan disimpan ke dalam variabel img.
3. Mengkonversi citra img ke dalam citra grayscale dengan
menggunakan fungsi cv2.cvtColor(img,
cv2.COLOR_BGR2GRAY) dan disimpan ke dalam variabel gray.
4. Menggunakan teknik ambang Otsu untuk menghasilkan citra
biner menggunakan fungsi cv2.threshold(gray, 0, 255,
cv2.THRESH_BINARY + cv2.THRESH_OTSU) yang disimpan ke
dalam variabel binary.
5. Menampilkan citra biner menggunakan fungsi cv2.imshow('binary
image', binary).
6. Menunggu pengguna menekan tombol apapun pada keyboard
dengan menggunakan perintah cv2.waitKey(0).
119
7. Menutup semua jendela gambar yang terbuka menggunakan
fungsi cv2.destroyAllWindows() [58].
import cv2
import numpy as np
# membaca citra
image = cv2.imread('football.png')
15.5.Deteksi Tepi
Berikut contoh kode Python untuk melakukan deteksi tepi pada citra
menggunakan operator Sobel pada pustaka OpenCV:
121
import cv2
# membaca citra
image = cv2.imread('football.png')
122
4. sobelx = cv2.Sobel(gray_image, cv2.CV_64F, 1, 0, ksize=5) -
Menerapkan operator Sobel pada citra untuk mendeteksi tepi
secara horizontal.
5. sobely = cv2.Sobel(gray_image, cv2.CV_64F, 0, 1, ksize=5) -
Menerapkan operator Sobel pada citra untuk mendeteksi tepi
secara vertikal.
6. edges = cv2.bitwise_or(sobelx, sobely) - Menggabungkan hasil
deteksi tepi secara horizontal dan vertikal menggunakan operasi
bitwise OR.
7. cv2.imshow('Edges', edges), cv2.waitKey(0) - Menampilkan citra
hasil deteksi tepi dan menunggu tombol keyboard ditekan.
8. cv2.imwrite('edges.jpg', edges) - Menyimpan citra hasil deteksi
tepi dengan nama file "edges.jpg" [60].
15.6.Deteksi Wajah
Berikut contoh kode Python untuk melakukan operasi deteksi wajah pada
citra menggunakan pustaka OpenCV:
import cv2
# membaca citra
image = cv2.imread('football.png')
123
face_cascade =
cv2.CascadeClassifier('haarcascade_frontalface_default.xm
l')
faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.1, minNeighbors=5)
124
5. faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1,
minNeighbors=5) - Melakukan deteksi wajah pada citra
menggunakan classifier Haar Cascade dengan nilai scaleFactor=1.1
dan minNeighbors=5.
6. for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x + w, y +
h), (0, 255, 0), 2) - Menandai wajah yang terdeteksi pada citra
dengan membuat persegi panjang berwarna hijau.
7. cv2.imshow('Detected Faces', image), cv2.waitKey(0) -
Menampilkan citra hasil deteksi wajah dan menunggu tombol
keyboard ditekan.
8. cv2.imwrite('detected_faces.jpg', image) - Menyimpan citra hasil
deteksi wajah dengan nama file "detected_faces.jpg" [9].
125
Daftar Pustaka
[1] “Video.” Diakses: 30 Maret 2023. [Daring]. Tersedia pada:
https://opencv-python-
tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_displ
ay/py_video_display.html
[2] “OpenCV: OpenCV modules.” Diakses: 6 April 2023. [Daring].
Tersedia pada: https://docs.opencv.org/4.x/
[3] “OpenCV: Getting Started with Videos.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.opencv.org/4.x/dd/d43/tutorial_py_video_display.html
[4] “Medium,” Medium. Diakses: 5 April 2023. [Daring]. Tersedia pada:
https://towardsdatascience.com/image-and-video-processing-in-
python-81a1b66ca6c8
[5] “Medium,” Medium. Diakses: 5 April 2023. [Daring]. Tersedia pada:
https://towardsdatascience.com/video-processing-with-python-
c3a7f6f214f0
[6] “Medium,” Medium. Diakses: 5 April 2023. [Daring]. Tersedia pada:
https://towardsdatascience.com/python-for-video-processing-
getting-started-with-opencv-13e6c1d72125
[7] “Practical Python and OpenCV: Learn Computer Vision in a Single
Weekend.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://pyimagesearch.com/practical-python-opencv/
[8] “OpenCV: OpenCV-Python Tutorials.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html
[9] “OpenCV: Cascade Classifier.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://docs.opencv.org/4.5.4/db/d28/tutorial_cascade_classifier.ht
ml
[10] “3. An Informal Introduction to Python,” Python documentation.
Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/tutorial/introduction.html
[11] “Python Tutorial.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://www.tutorialspoint.com/python/index.htm
126
[12] “Built-in Functions,” Python documentation. Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.python.org/3/library/functions.html
[13] “Python Casting.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://www.w3schools.com/python/python_casting.asp
[14] “Python Variables.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://www.w3schools.com/python/python_variables.asp
[15] “Python - Slicing Strings.” Diakses: 6 April 2023. [Daring]. Tersedia
pada:
https://www.w3schools.com/python/python_strings_slicing.asp
[16] “Python String join() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_join.asp
[17] “Python String replace() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_replace.asp
[18] “Python String split() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_split.asp
[19] “Python String upper() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_upper.asp
[20] “Python String lower() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_lower.asp
[21] “Python in Keyword.” Diakses: 6 April 2023. [Daring]. Tersedia
pada: https://www.w3schools.com/python/ref_keyword_in.asp
[22] “Python String strip() Method.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_string_strip.asp
[23] “6. Expressions,” Python documentation. Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.python.org/3/reference/expressions.html
[24] “os — Miscellaneous operating system interfaces,” Python
documentation. Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/library/os.html
127
[25] “shutil — High-level file operations,” Python documentation.
Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/library/shutil.html
[26] “NumPy documentation — NumPy v1.24 Manual.” Diakses: 6
April 2023. [Daring]. Tersedia pada: https://numpy.org/doc/stable/
[27] “4. More Control Flow Tools,” Python documentation. Diakses:
6 April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/tutorial/controlflow.html
[28] “Python - Decision Making.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.tutorialspoint.com/python/python_decision_making.ht
m
[29] “Python For Loops.” Diakses: 6 April 2023. [Daring]. Tersedia
pada: https://www.w3schools.com/python/python_for_loops.asp
[30] “8. Compound statements,” Python documentation. Diakses: 6
April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/reference/compound_stmts.html
[31] “Python continue Keyword.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/ref_keyword_continue.asp
[32] “Python Lists.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://www.w3schools.com/python/python_lists.asp
[33] “5. Data Structures,” Python documentation. Diakses: 6 April
2023. [Daring]. Tersedia pada:
https://docs.python.org/3/tutorial/datastructures.html
[34] “30 Cool Python Tricks For Better Code With Examples.” Diakses:
15 Februari 2024. [Daring]. Tersedia pada:
https://www.datacamp.com/tutorial/python-tips-examples
[35] R. Python, “Sets in Python – Real Python.” Diakses: 6 April 2023.
[Daring]. Tersedia pada: https://realpython.com/python-sets/
[36] “Built-in Types,” Python documentation. Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.python.org/3/library/stdtypes.html
[37] “Python Tuples.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://www.w3schools.com/python/python_tuples.asp
[38] “Python Dictionaries.” Diakses: 6 April 2023. [Daring]. Tersedia
pada: https://www.w3schools.com/python/python_dictionaries.asp
128
[39] “numpy.reshape — NumPy v1.24 Manual.” Diakses: 6 April
2023. [Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.reshape.h
tml
[40] “numpy.array — NumPy v1.24 Manual.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.array.htm
l
[41] “numpy.concatenate — NumPy v1.24 Manual.” Diakses: 6 April
2023. [Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.concaten
ate.html
[42] “numpy.hstack — NumPy v1.24 Manual.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.hstack.ht
ml
[43] “Sorting, searching, and counting — NumPy v1.24 Manual.”
Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/routines.sort.html
[44] “numpy.unique — NumPy v1.24 Manual.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.unique.ht
ml
[45] “Indexing on ndarrays — NumPy v1.24 Manual.” Diakses: 6 April
2023. [Daring]. Tersedia pada:
https://numpy.org/doc/stable/user/basics.indexing.html
[46] “numpy.split — NumPy v1.24 Manual.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.split.html
[47] “Python NumPy Array Tutorial.” Diakses: 6 April 2023. [Daring].
Tersedia pada: https://www.datacamp.com/tutorial/python-numpy-
tutorial
[48] “numpy.where — NumPy v1.24 Manual.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://numpy.org/doc/stable/reference/generated/numpy.where.ht
ml
129
[49] “NumPy Tutorial.” Diakses: 6 April 2023. [Daring]. Tersedia
pada: https://www.w3schools.com/python/numpy/default.asp
[50] “NumPy quickstart — NumPy v1.24 Manual.” Diakses: 6 April
2023. [Daring]. Tersedia pada:
https://numpy.org/doc/stable/user/quickstart.html
[51] “2. Using the Python Interpreter,” Python documentation. Diakses: 6
April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/tutorial/interpreter.html
[52] R. Python, “Defining Your Own Python Function – Real Python.”
Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://realpython.com/defining-your-own-python-function/
[53] “Python - Global Variables.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/python_variables_global.asp
[54] “Global and Local Variables in Python,” GeeksforGeeks. Diakses:
6 April 2023. [Daring]. Tersedia pada:
https://www.geeksforgeeks.org/global-local-variables-python/
[55] “Python Global Variables.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://www.w3schools.com/python/gloss_python_global_variables
.asp
[56] “queue — A synchronized queue class,” Python documentation.
Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://docs.python.org/3/library/queue.html
[57] “Colorspaces.” Diakses: 6 April 2023. [Daring]. Tersedia pada:
https://opencv-python-
tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_colors
paces/py_colorspaces.html
[58] “OpenCV: Image Thresholding.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
https://docs.opencv.org/4.x/d7/d4d/tutorial_py_thresholding.html
[59] “OpenCV: Changing Colorspaces.” Diakses: 6 April 2023.
[Daring]. Tersedia pada:
https://docs.opencv.org/4.5.4/df/d9d/tutorial_py_colorspaces.html
[60] “OpenCV: Sobel Derivatives.” Diakses: 6 April 2023. [Daring].
Tersedia pada:
130
https://docs.opencv.org/4.5.4/d2/d2c/tutorial_sobel_derivatives.ht
ml
131