100% menganggap dokumen ini bermanfaat (2 suara)
323 tayangan139 halaman

Ebook 77 Rahasia Pemrograman Python

E-book ini membahas 77 rahasia pemrograman Python untuk membantu developer dalam membuat aplikasi lebih cepat, dengan fokus pada kemudahan belajar dan fleksibilitas Python. Penyusun menggunakan ChatGPT untuk mengumpulkan informasi dan menyusun bab-bab yang sering menjadi kendala bagi developer. Selain itu, e-book ini juga mencakup langkah-langkah instalasi Python dan Visual Studio Code serta contoh kode untuk manipulasi video.

Diunggah oleh

arief.kurniawan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (2 suara)
323 tayangan139 halaman

Ebook 77 Rahasia Pemrograman Python

E-book ini membahas 77 rahasia pemrograman Python untuk membantu developer dalam membuat aplikasi lebih cepat, dengan fokus pada kemudahan belajar dan fleksibilitas Python. Penyusun menggunakan ChatGPT untuk mengumpulkan informasi dan menyusun bab-bab yang sering menjadi kendala bagi developer. Selain itu, e-book ini juga mencakup langkah-langkah instalasi Python dan Visual Studio Code serta contoh kode untuk manipulasi video.

Diunggah oleh

arief.kurniawan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 139

Penyusun : Stunning Vision AI Mentors

Penerbit : Stunning Vision AI Academy


Cetakan Pertama : April 2023 (v 1.4)
Cetakan Kedua : Februari 2024 (v 1.5)

Copyright © 2024 pada Stunning Vision AI Academy


Kata Pengantar

Bahasa pemrograman Python adalah bahasa pemrograman yang paling


terkenal saat ini, setelah Javascript. Bahasa pemrograman Python
memiliki beberapa kelebihan. Yang pertama adalah Python mudah
dipelajari termasuk oleh pemula. Yang kedua, terdapat banyak pustaka
yang bisa digunakan di dalam Python sehingga memungkinkan kita lebih
cepat dalam membangun aplikasi. Beberapa pustaka populer di Python
adalah NumPy, scikit-learn, dll. Yang ketiga, Python mendukung multi-
platform. Artinya program yang dibuat dalam bahasa Python dapat
digunakan di berbagai OS, seperti Windows, Linux, dan MacOS. Yang
keempat Python bersifat open-source, sehingga kita dapat memodifikasi
kode sumbernya. Dan yang terakhir adalah Python fleksibel. Python
dapat digunakan untuk berbagai jenis aplikasi mulai dari aplikasi desktop,
web sampai ke AI.

Pada e-book ini disampaikan 77 rahasia pemrograman Python dengan


tujuan membantu Anda, para developer, untuk membuat program
berbasis Python lebih cepat. Dari mana kami mendapatkan rahasianya?
Jawabannya adalah ChatGPT. ChatGPT yang di-training dengan data
yang super banyak dan kemampuannya menyimpulkan sesuatu
memberikan ide pada kami: apa rahasia pemrograman Python yang dia
ketahui. Maka hadirlah e-book ini kepada Anda.

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.

Terakhir, terima kasih penulis sampaikan kepada Allah SWT, kepada


OpenAI, dan semua pihak yang telah membantu menyelesaikan e-book
ini. Semoga kehadiran E-book ini membawa kebaikan untuk Indonesia
dan ummat manusia.

Cimahi, April 2023

Stunning Vision AI Mentors

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.1. Instalasi Python


Pada subbab ini akan dijelaskan tentang cara install Python pada
Operating System (OS) Windows 11. Berikut langkah-langkah instalasinya:
1. Download installer Python pada
https://www.python.org/downloads/windows/. Pada bagian Stable
Releases, pilih installer yang sesuai dengan arsitektur komputer yang
digunakan (32 atau 64 bit). Pada contoh ini, penulis memilih versi
Python 3.10.10.

Gambar 1.1 Website untuk men-download Python

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.

Gambar 1. 2 Instalasi Python

4. Tunggu sampai proses instalasi selesai. Setelah selesai akan muncul


seperti pada gambar di bawah, klik tombol Close.

2
Gambar 1. 3 Instalasi Python berhasil

5. Untuk memeriksa hasil instalasi buka command prompt dengan cara


menekan Windows + R, setelah itu ketikkan cmd, seperti pada
gambar di bawah ini.

Gambar 1. 4 Membuka Command Prompt

3
6. Pada command prompt eksekusi perintah python --version. Jika
muncul versi Python seperti pada gambar di bawah, proses instalasi
berhasil.

Gambar 1. 5 Memeriksa versi Python

1.2. Instalasi Visual Studio Code


Pada subbab ini akan dijelaskan tentang cara install Text Editor Visual
Studio Code. Visual Studio Code ini akan digunakan untuk menulis kode
program Python. Berikut langkah-langkah instalasinya.
1. Download installer Visual Studio Code pada
https://code.visualstudio.com/. Lalu klik Download for Windows.

Gambar 1. 6 Website untuk men-download Visual Studio Code

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.

Gambar 1. 7 License Agreement

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

6. Selanjutnya pilih Additional Tasks. Checklist pada Add “Open with


Code” agar bisa membuka Visual Studio Code dari suatu folder. Lalu
klik Next.

7
Gambar 1. 10 Pemilihan Additional Tasks

7. Klik Install untuk memulai instalasi.

8
Gambar 1. 11 Instalasi Visual Studio Code

8. Tunggu sampai proses instalasi selesai. Setelah selesai akan muncul


seperti pada gambar di bawah, klik tombol Finish.

9
Gambar 1. 12 Instalasi Visual Studio Code selesai

9. Berikut tampilan awal Visual Studio Code.

Gambar 1. 13 Tampilan awal Visual Studio Code

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.

Gambar 1. 14 Membuka Visual Studio Code dari suatu folder

Visual Studio Code akan terbuka 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.

Gambar 1. 16 Membuat file baru

12
3. Tuliskan kode program python. Pada contoh ini akan menulis kode
program untuk menampilkan Hello World.

Gambar 1. 17 Menulis Kode program Python

4. Pada Visual Studio Code sudah menyediakan terminal. Terminal


tersebut bisa digunakan untuk menjalankan kode program python.
Untuk membuka terminal, Klik Terminal > New Terminal.
Contohnya seperti pada gambar di bawah.

Gambar 1. 18 Membuka Terminal pada Visual Studio Code

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.

Gambar 1. 19 Menjalankan kode program Python

1.4. Install Package Python


Pada subbab ini akan dijelaskan tentang cara install beberapa package
yang diperlukan. Package tersebut adalah numpy dan opencv-python.
Numpy digunakan untuk memanipulasi array, sedangkan opencv-python
digunakan untuk manipulasi citra, video, dan webcam. Berikut langkah-
langkah instalasinya:

1. Buka command prompt dengan cara menekan Windows + R, setelah


itu ketikkan cmd, seperti pada gambar di bawah ini.

14
Gambar 1. 20 Membuka Command Prompt

2. Install package python dengan perintah pip install <nama-


package>. Pada contoh ini pip install numpy opencv-python.

Gambar 1. 21 Install numpy dan opencv-python

3. Tunggu sampai proses install selesai.


4. Jika sudah selesai, periksa hasil instalasi dengan perintah pip show
<nama-package>.

15
Gambar 1. 22 Menampilkan versi numpy dan opencv-python

16
BAB 2
Video

2.1. Membuka dan Menampilkan Video


Berikut adalah contoh kode pemrograman Python untuk manipulasi
video dengan menggunakan OpenCV library:

import cv2

# membaca file video


video = cv2.VideoCapture('road.mp4')

# membuat objek video writer


fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 25.0, (640,
480))

while True:
# membaca frame demi frame
ret, frame = video.read()

# mengubah warna menjadi grayscale


gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# menambahkan teks ke frame


font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(frame,'Hello World!',(10,50), font,
1,(255,255,255),2,cv2.LINE_AA)

# menampilkan hasil manipulasi


cv2.imshow('frame', frame)

# menulis frame ke file video


out.write(frame)

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()

# keluar dari loop jika sudah mencapai akhir video


if not ret1 or not ret2:
break

# menggabungkan dua frame


combined_frame = np.concatenate((frame1, frame2),
axis=1)

# menulis frame yang telah digabungkan ke output video


output.write(combined_frame)

# menampilkan frame hasil gabungan


cv2.imshow('Combined Video', combined_frame)

# tekan 'q' untuk keluar


if cv2.waitKey(1) & 0xFF == ord('q'):
break

video1.release()
20
video2.release()
output.release()
cv2.destroyAllWindows()

Kode program di atas digunakan untuk menggabungkan dua video secara


horizontal menggunakan OpenCV. Langkah-langkah yang dilakukan
adalah:
1. Mengimport library OpenCV dan numpy.
2. Membaca dua video yang akan digabungkan menggunakan
VideoCapture.
3. Mendapatkan informasi ukuran frame dari video menggunakan
get().
4. Menentukan codec untuk output video dan membuat
VideoWriter object.
5. Looping setiap frame dari kedua video, menggabungkannya
menggunakan concatenate(), dan menuliskannya ke dalam output
video menggunakan write().
6. Menampilkan frame hasil gabungan menggunakan imshow() dan
keluar dari loop jika ditekan tombol 'q'.
7. Menghentikan proses dan membersihkan resources menggunakan
release() dan destroyAllWindows() [2].

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

gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('Grayscale Video', gray_frame)

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].

2.4. Motion Detection


Berikut ini adalah contoh kode pemrograman Python untuk melakukan
motion detection pada video menggunakan OpenCV:

import cv2

# Membuka file video


video = cv2.VideoCapture('road.mp4')

# Mengambil nilai awal frame


ret, frame1 = video.read()
# Mengubah frame awal menjadi grayscale
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)

# Mengatur ukuran frame


frame_size = (frame1.shape[1], frame1.shape[0])

# Membuat output video dengan format XVID


output_video =
cv2.VideoWriter('motion_detection_output.avi',
cv2.VideoWriter_fourcc(*'XVID'), 20, frame_size)

# Mengulang untuk setiap frame di video


while True:
# Membaca frame selanjutnya
ret, frame2 = video.read()

# Mengubah frame menjadi grayscale


gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)

# Menghitung selisih antara frame sekarang dan frame


sebelumnya
23
diff = cv2.absdiff(gray1, gray2)

# Mengaplikasikan thresholding pada perbedaan antar


frame
thresh = cv2.threshold(diff, 3, 255,
cv2.THRESH_BINARY)[1]

# Menghilangkan noise menggunakan operasi opening


thresh = cv2.morphologyEx(thresh, cv2.MORPH_OPEN,
cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5)))

# Mencari kontur pada frame


contours, _ = cv2.findContours(thresh,
cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# Menggambar kotak di sekitar area yang bergerak


for contour in contours:
if cv2.contourArea(contour) < 2000:
continue
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(frame2, (x, y), (x+w, y+h), (0, 255,
0), 2)

# Menambahkan frame yang sudah ditandai dengan kotak ke


dalam output video
output_video.write(frame2)

# Menampilkan video hasil motion detection


cv2.imshow("Motion Detection", frame2)

# Menyimpan grayscale frame terakhir sebagai frame awal


untuk frame berikutnya
gray1 = gray2.copy()

# Keluar dari loop jika tombol q ditekan


if cv2.waitKey(1) & 0xFF == ord('q'):
break

# 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

3.1. Membuka dan Menampilkan Webcam


Berikut adalah contoh kode Python untuk manipulasi webcam
menggunakan pustaka OpenCV:

import cv2

# Membuka kamera
cap = cv2.VideoCapture(0)

while True:
# Membaca frame dari kamera
ret, frame = cap.read()

# Menampilkan frame
cv2.imshow('frame', frame)

# Keluar dari loop jika tombol q ditekan


if cv2.waitKey(1) & 0xFF == ord('q'):
break

# Membersihkan semua objek yang digunakan


cap.release()
cv2.destroyAllWindows()

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].

3.2. Deteksi Wajah


Berikut adalah contoh kode Python untuk memanipulasi webcam dan
melakukan deteksi wajah menggunakan pustaka OpenCV:
import cv2

# Membuat objek cascade classifier untuk deteksi wajah


face_cascade =
cv2.CascadeClassifier('haarcascade_frontalface_default.xm
l')

# Membuka kamera

27
cap = cv2.VideoCapture(0)

while True:
# Membaca frame dari kamera
ret, frame = cap.read()

# Mengubah frame menjadi grayscale


gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Melakukan deteksi wajah pada frame grayscale


faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.1, minNeighbors=5)

# Menggambar kotak pada wajah yang terdeteksi


for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255,
0), 2)

# Menampilkan frame
cv2.imshow('frame', frame)

# Keluar dari loop jika tombol q ditekan


if cv2.waitKey(1) & 0xFF == ord('q'):
break

# Membersihkan semua objek yang digunakan


cap.release()
cv2.destroyAllWindows()

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

Variabel adalah nama yang digunakan untuk merepresentasikan suatu


nilai atau objek dalam program. Dalam Python, sebuah variabel dapat
diberi nilai dengan mengekspresikan suatu nilai atau objek pada bagian
kanan operator penugasan (=), lalu hasilnya akan disimpan pada variabel
pada bagian kiri operator penugasan tersebut.

Untuk mendefinisikan suatu variabel di Python, tidak perlu


mendeklarasikan tipe data secara eksplisit seperti pada bahasa
pemrograman lainnya. Tipe data akan secara otomatis ditentukan
berdasarkan nilai yang diisikan ke dalam variabel tersebut. Namun, kita
juga dapat melakukan konversi (casting) tipe data dengan menggunakan
fungsi bawaan Python seperti int(), float(), dan str() [10], [11].

4.1. Inisialiasi dan Mengkonversi (casting)


Variabel
Berikut ini adalah contoh kode pemrograman Python tentang inisialiasi
dan casting variabel:

# membuat sebuah variabel integer


x = 10

30
# casting variabel integer ke float
y = float(x)

# memeriksa tipe variabel


print(type(x))
print(type(y))

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].

4.2. Menukar nilai dua Variabel


Berikut ini adalah contoh kode Python untuk menukar nilai dari dua
variabel:
# assign nilai variabel a dan b
a = 1
b = 2

# tampilkan nilai variabel sebelum ditukar


print("Sebelum ditukar:")
print("a =", a)
print("b =", b)

31
# tukar nilai a dan b
a, b = b, a

# tampilkan nilai variabel setelah ditukar


print("Setelah ditukar:")
print("a =", a)
print("b =", b)

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

5.1. Memotong String dengan Metode slicing()


Metode slicing pada Python memungkinkan kita untuk memotong string
sesuai dengan indeks tertentu. Kita dapat mengambil potongan substring
dari sebuah string dengan menggunakan tanda kurung siku ("[]") dan
menentukan indeks awal dan akhir dari substring yang diinginkan. Berikut
ini adalah contoh implementasinya:

text = "Hello, World!"


substring = text[0:5] # Memotong dari indeks 0 sampai 4
(indeks 5 tidak termasuk)
print(substring) # Output: "Hello"

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"

list_of_strings = ["Hello", "World"]


joined_str = " ".join(list_of_strings) # Menggabungkan
list_of_strings dengan spasi
print(joined_str) # Output: "Hello World"
Penjelasan:

1. kita mendefinisikan variabel "str1" dengan string "Hello".

2. kita mendefinisikan variabel "str2" dengan string "World".

3. kita menggunakan operator "+" untuk menggabungkan nilai dari


variabel "str1", spasi, dan nilai dari variabel "str2", dan hasilnya
disimpan dalam variabel "joined_str".

4. kita mencetak nilai dari variabel "joined_str" ke layar.

5. kita mendefinisikan sebuah list "list_of_strings" yang berisi dua


string yaitu "Hello" dan "World".
34
6. kita menggunakan metode join untuk menggabungkan semua
nilai dalam list "list_of_strings" dengan spasi sebagai pemisah, dan
hasilnya disimpan dalam variabel "joined_str".

7. kita mencetak nilai dari variabel "joined_str" ke layar [16].

5.3. Mencari dan mengganti substring dengan


replace()
Metode replace () pada Python memungkinkan kita untuk mencari dan
mengganti substring dalam sebuah string. Berikut ini adalah contoh
implementasinya:

text = "Hello, World!"


new_text = text.replace("World", "Python") # Mengganti
"World" dengan "Python"
print(new_text) # Output: "Hello, Python!"

Penjelasan:

1. Kita mendefinisikan variabel "text" dengan string "Hello, World!".

2. Kita menggunakan metode replace() untuk mencari substring


"World" dalam string "text" dan menggantinya dengan substring
"Python", dan hasilnya disimpan dalam variabel "new_text".

3. Kita mencetak nilai dari variabel "new_text" ke layar [17].

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].

5.5. Mengubah Huruf Kapital atau Kecil dengan


Metode upper() dan lower()
Metode upper() dan lower() pada Python digunakan untuk mengubah
huruf pada sebuah string menjadi huruf kapital atau huruf kecil. Berikut
ini adalah contoh implementasinya:

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].

5.8. Mencetak string sebanyak N kali


Untuk mencetak string sebanyak N kali di Python, Anda dapat
menggunakan operator pengulangan (*). Berikut adalah contoh kode
pemrograman Python yang mencetak string sebanyak N kali:

string = "Hello, World!"


N = 5

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].

5.9. Reverse String


Berikut ini contoh kode Python untuk membalikkan string:

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

6.1. Membuat, Menyalin, Memindahkan, dan


Menghapus Folder
Pada Python, terdapat 2 fungsi untuk membuat folder. Fungsi os.mkdir()
untuk membuat 1 folder baru dan fungsi os.makedirs() untuk membuat
seluruh path direktori dalam satu kali panggilan fungsi. Berikut contoh
penggunaannya:
import os

nama_folder = "folder_1"

# Memeriksa folder sudah ada atau belum


exists = os.path.exists(nama_folder)

# Membuat 1 folder baru


if(not exists):
os.mkdir(nama_folder)

# Membuat folder dengan sub foldernya


os.makedirs("folder_2/sub_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].

Untuk menyalin folder bisa menggunakan fungsi shutil.copytree().


Dengan fungsi tersebut, kita bisa menyalin folder beserta isinya. Berikut
contoh penggunaannya:

import os
import shutil

# Menyalin seluruh direktori beserta isinya dari src ke dst


shutil.copytree("folder_1", "folder_3")

# Membuat folder baru


os.mkdir("folder_4")

# Memindahkan folder dari src ke dst


shutil.move("folder_1", "folder_4")

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].

Untuk menghapus folder terdapat dua fungsi yaitu os.rmdir() dan


shutil.rmtree(). Berikut contoh penggunaannya.
import os
import shutil

# Menghapus direktori pada path yang diberikan (folder


harus kosong terlebih dahulu)
os.rmdir("folder_3")

# Menghapus direktori beserta isinya pada path yang


diberikan
shutil.rmtree("folder_2")

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].

6.2. Berinteraksi dengan Folder


Terdapat beberapa fungsi yang bisa digunakan untuk berinteraksi dengan
folder. Berikut contoh penggunaan fungsi tersebut:

import os

# Mendapatkan path dari working directory saat ini


current_directory = os.getcwd()
print("Working directory saat ini: ", current_directory)

# Mendapatkan daftar file dan direktori di path yang


ditentukan
folder_contents = os.listdir(current_directory)
print("Isi folder saat ini: ", folder_contents)

# Memeriksa apakah path yang diberikan adalah direktori


atau bukan
is_directory = os.path.isdir(current_directory)
44
if is_directory:
print(current_directory, "adalah sebuah direktori")
else:
print(current_directory, "bukan sebuah direktori")

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].

6.3. Membuat, Menyalin, Memindahkan, dan


Menghapus File
Terdapat beberapa fungsi yang bisa digunakan untuk membuat,
menyalin, memindahkan, dan menghapus file. Berikut contoh
penggunaan fungsi tersebut:

import os
import shutil

# Membuat file baru


with open("file_baru.txt", "w") as f:
f.write("Ini adalah isi file")

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

# Membuat file baru


with open("file_baru_2.txt", "w") as f:
f.write("Ini adalah isi file 2")

# Mengecek apakah file ada atau tidak


print(os.path.exists("file_baru_2.txt"))

# Mengganti nama file


os.rename("file_baru_2.txt", "file_baru_3.txt")

# Mendapatkan ukuran file dalam byte


file_size = os.path.getsize("file_baru_3.txt")
print("Ukuran file: ", file_size, "byte")

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

7.1. Fungsi Matematika Trigonometri


Berikut adalah contoh kode Python untuk fungsi matematika
trigonometri:
import numpy as np

# Fungsi untuk menghitung sinus dari sebuah sudut


def hitung_sinus(sudut):
return np.sin(sudut)

# Fungsi untuk menghitung kosinus dari sebuah sudut


def hitung_kosinus(sudut):
return np.cos(sudut)

# Fungsi untuk menghitung tangen dari sebuah sudut


def hitung_tangen(sudut):
return np.tan(sudut)

# Fungsi untuk menghitung sudut dari sebuah sinus


def hitung_arcsinus(nilai):
return np.arcsin(nilai)

# Fungsi untuk menghitung sudut dari sebuah kosinus


def hitung_arccosinus(nilai):
return np.arccos(nilai)

# Fungsi untuk menghitung sudut dari sebuah tangen


def hitung_arctangen(nilai):
return np.arctan(nilai)

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].

7.2. Fungsi Matematika Eksponensial dan


Logaritma
Berikut adalah contoh kode Python untuk fungsi matematika
eksponensial dan logaritma:
import numpy as np

# Fungsi untuk menghitung e pangkat x


def hitung_exp(x):
return np.exp(x)

# Fungsi untuk menghitung logaritma natural dari x


def hitung_ln(x):
return np.log(x)

# Fungsi untuk menghitung logaritma basis 10 dari x


def hitung_log10(x):
return np.log10(x)

# Fungsi untuk menghitung logaritma basis 2 dari x


def hitung_log2(x):
return np.log2(x)

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].

7.3. Fungsi Matematika Kompleks


Contoh kode Python untuk beberapa fungsi matematika yang lebih
kompleks:

import numpy as np
52
# Fungsi untuk menghitung matriks identitas
def matriks_identitas(n):
return np.eye(n)

# Fungsi untuk menghitung determinan matriks


def hitung_determinan(matriks):
return np.linalg.det(matriks)

# Fungsi untuk menghitung eigenvalue dan eigenvector


matriks
def hitung_eigen(matriks):
return np.linalg.eig(matriks)

# Fungsi untuk menghitung integral dari suatu fungsi


def hitung_integral(fungsi, batas_bawah, batas_atas):
return np.trapz(fungsi, dx=0.1,
x=np.linspace(batas_bawah, batas_atas, 100))

# Fungsi untuk menghitung nilai maksimum dari suatu fungsi


def hitung_max(fungsi):
return np.max(fungsi)

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:

# Membuat program untuk menghitung diskon harga pada suatu


toko

total_pembelian = float(input("Total pembelian Anda: "))

if total_pembelian < 100000:


diskon = 0
elif total_pembelian >= 100000 and total_pembelian <
200000:
diskon = 0.05
elif total_pembelian >= 200000 and total_pembelian <
500000:
diskon = 0.1
elif total_pembelian >= 500000 and total_pembelian <
1000000:
diskon = 0.15
else:
diskon = 0.2

total_harga = total_pembelian - (total_pembelian * diskon)

print(f"Total harga yang harus dibayarkan adalah: Rp


{total_harga}")

Program di atas adalah program yang digunakan untuk menghitung


diskon harga pada suatu toko. Pengguna diminta memasukkan total
55
pembelian, kemudian program akan menentukan berapa diskon yang
diberikan berdasarkan jumlah total pembelian tersebut.

Program menggunakan percabangan dengan if-elif-else untuk


menentukan diskon yang diberikan. Jika total pembelian kurang dari
100000, maka tidak ada diskon yang diberikan. Jika total pembelian
antara 100000 dan kurang dari 200000, maka diskon sebesar 5%
diberikan. Jika total pembelian antara 200000 dan kurang dari 500000,
maka diskon sebesar 10% diberikan. Jika total pembelian antara 500000
dan kurang dari 1000000, maka diskon sebesar 15% diberikan. Jika total
pembelian lebih dari atau sama dengan 1000000, maka diskon sebesar
20% diberikan.

Setelah diskon ditentukan, program kemudian menghitung total harga


yang harus dibayarkan dengan mengurangi total pembelian dengan total
diskon [27], [28].

8.2. Short Hand If ... Else


Short Hand If ... Else adalah salah satu fitur dalam Python yang
memungkinkan kita menulis kondisi if ... else dengan singkat dan mudah
dibaca. Kode pemrograman Python berikut adalah contoh dari
penggunaan Short Hand If ... Else:
x = 5
print("Positive" if x > 0 else "Negative or Zero")

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

9.1. For Loop


Berikut ini adalah contoh kode pemrograman Python tentang for loop:

fruits = ["apple", "banana", "cherry"]


for x in fruits:
print(x)

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

print("The sum is", sum)

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.

Pada contoh kode di atas, while loop digunakan untuk menjumlahkan


atau mengurangi bilangan ganjil dan genap dari 1 hingga 10. Setiap iterasi
loop, variabel i ditambahkan dengan 1. Jika i habis dibagi 2, maka nilai i
59
akan ditambahkan ke dalam variabel sum. Jika tidak, maka nilai i akan
dikurangkan dari variabel sum. Setelah loop selesai, hasil penjumlahan
atau pengurangan bilangan ganjil dan genap akan dicetak ke layar [30].

9.3. Loop yang menggunakan statement break


Berikut ini adalah contoh kode pemrograman Python tentang loop
dengan break. Kode program berikut digunakan untuk mencari suatu
nama pada list :

names = ['Alice', 'Bob', 'Charlie', 'Dave', 'Eve', 'Fred']

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")

Penjelasan baris demi baris:


1. Membuat sebuah list names yang berisi beberapa nama.
2. Inisialisasi variabel exist dengan nilai False.
3. Menggunakan for loop untuk mengiterasi setiap elemen di dalam
list names.
4. Pada setiap iterasi, melakukan pemeriksaan kondisi apakah name
sama dengan string 'Dave'.
5. Jika benar, variabel exist akan bernilai True dan menggunakan
break untuk keluar dari loop secara keseluruhan.

60
6. Terakhir terdapat pemeriksaan variabel exist. Jika bernilai True,
maka akan menampilkan pesan [27].

9.4. Loop yang menggunakan statement


continue
Berikut adalah contoh kode pemrograman Python tentang penggunaan
continue pada loop:

nilai = [80, 70, 50, 75, 90]

jumlah = 0
for n in nilai:
if n <= 50:
continue
jumlah += 1

print(jumlah)

Kode program diatas digunakan untuk menghitung berapa jumlah nilai


yang lebih dari 50.
Penjelasan:
1. Membuat sebuah list nilai yang berisi beberapa nilai.
2. Inisialiasi variabel jumlah dengan nilai 0.
3. Memulai loop for dengan variabel iterasi n.
4. Pada setiap iterasi, melakukan pemeriksaan kondisi apakah n lebih
kecil sama dengan 50.

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:

# membuat sebuah list


fruits = ['apple', 'banana', 'cherry', 'durian']

# mengakses item pada list dengan indeks


print(fruits[1]) # output: banana

# mengubah item pada list


fruits[1] = 'orange'

# menambah item pada list


fruits.append('mango')

# menghapus item pada list


fruits.remove('cherry')

# mengurutkan list
fruits.sort()

# mengembalikan list terbalik


fruits.reverse()

# menghitung jumlah item pada list


print(len(fruits)) # output: 4

# loop melalui setiap item pada list


for fruit in fruits:
print(fruit)

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)

# Memisahkan satu list menjadi dua


original_list = [1, 2, 3, 4, 5, 6]
split_index = 3
split_list1 = original_list[:split_index]
split_list2 = original_list[split_index:]
print(split_list1)
print(split_list2)

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].

10.4.Mencari data Pada List


Berikut adalah contoh kode Python untuk mencari data pada list dan
mengembalikan indeksnya:

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].

10.5.Mencari Nilai Unik di antara Dua List


Berikut adalah contoh kode Python untuk mencari nilai unik di antara
dua list:

# Daftar pengguna yang terdaftar


registered_users = ["John", "Due", "James", "Angel"]

68
# Daftar pengguna yang telah melakukan pembayaran
users_with_payment = ["John", "James"]

# Menemukan pengguna yang terdaftar tetapi belum melakukan


pembayaran
users_without_payment = list(set(registered_users) ^
set(users_with_payment))

# Menampilkan pengguna yang belum melakukan pembayaran


print(f"Users without payment: {users_without_payment}")

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:

# Membuat sebuah set


my_set = {1, 2, 3, 4, 5}

# Menambahkan elemen ke dalam set


my_set.add(6)

# Menghapus elemen dari set


my_set.remove(2)

Penjelasan:

1. Pada baris pertama, kita membuat sebuah set bernama my_set


dengan menggunakan kurung kurawal dan memasukkan
beberapa bilangan bulat sebagai elemennya.

2. Pada baris kedua, kita menambahkan angka 6 ke dalam set


menggunakan method add().

3. Pada baris ketiga, kita menghapus elemen dengan nilai 2 dari set
menggunakan method remove() [33], [35].

10.7.Operasi pada Set


Berikut adalah contoh kode pemrograman Python tentang operasi pada
set:

70
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# Menggabungkan dua set


set3 = set1.union(set2)
print("Set gabungan:", set3)

# Mengambil elemen yang ada di kedua set


set4 = set1.intersection(set2)
print("Set irisan:", set4)

# Mengambil elemen yang hanya ada di salah satu set


set5 = set1.symmetric_difference(set2)
print("Set selisih simetris:", set5)

# Menghapus elemen dari set


set1.discard(5)
print("Set setelah menghapus elemen 5:", set1)

Penjelasan:

1. set1 dan set2 adalah dua set yang sudah didefinisikan dengan
beberapa elemen.

2. set3 adalah hasil penggabungan set1 dan set2 menggunakan


metode union().

3. set4 adalah hasil pengambilan elemen yang ada di kedua set


menggunakan metode intersection().

4. set5 adalah hasil pengambilan elemen yang hanya ada di salah


satu set menggunakan metode symmetric_difference().

5. set1.discard(5) digunakan untuk menghapus elemen 5 dari set1


[33], [36].

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)

# Mendefinisikan tuple dengan hanya satu nilai


tup3 = (50,)
tup4 = ('xyz',)

# Menggabungkan dua tuple


tup5 = tup1 + tup2
print(tup5)

# Mengakses elemen tuple menggunakan indeks


print(tup1[0])
print(tup2[1:4])

# Menampilkan panjang tuple


print(len(tup1))

# Menghapus tuple
del tup3

Penjelasan:

1. Baris 2: Mendefinisikan tuple tup1 dengan beberapa nilai.

2. Baris 3: Mendefinisikan tuple tup2 dengan beberapa nilai lainnya.

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.

4. Baris 7: Mendefinisikan tuple tup4 dengan hanya satu nilai


lainnya.

5. Baris 10: Menggabungkan dua tuple tup1 dan tup2 menggunakan


operator +.

6. Baris 11: Menampilkan hasil gabungan tuple dengan perintah


print.

7. Baris 14: Mengakses elemen pertama dari tuple tup1


menggunakan indeks 0.

8. Baris 15: Mengakses elemen kedua hingga keempat dari tuple tup2
menggunakan slicing.

9. Baris 18: Menampilkan panjang tuple tup1 menggunakan fungsi


len().

10. Baris 21: Menghapus tuple tup3 menggunakan perintah del [37].

10.9.Mencari dan Mengurutkan data pada


Tuple
Karena tuple adalah objek yang tidak dapat diubah setelah dibuat, tidak
ada metode built-in untuk mengurutkan tuple. Namun, kita dapat
mengurutkan data di dalam tuple dengan mengonversinya ke list,
73
mengurutkan list tersebut, dan kemudian mengonversi kembali ke tuple.
Berikut adalah contoh kode yang dapat melakukan pencarian dan
pengurutan pada tuple:

# membuat tuple
tup = (4, 2, 8, 1, 5, 9)

# mencari data pada tuple


if 2 in tup:
print("Data ditemukan pada index ke-", tup.index(2))
else:
print("Data tidak ditemukan")

# mengurutkan data pada tuple


tup_sorted = tuple(sorted(tup))

print("Tuple sebelum diurutkan:", tup)


print("Tuple setelah diurutkan:", tup_sorted)

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 = {}

# Menambahkan key-value pair ke dalam dictionary


my_dict['nama'] = 'John Doe'
my_dict['umur'] = 25
my_dict['alamat'] = 'Jakarta'

# Mengakses value berdasarkan key


print(my_dict['nama']) # Output: John Doe
print(my_dict['umur']) # Output: 25
print(my_dict['alamat']) # Output: Jakarta

# Mengubah value berdasarkan key


my_dict['umur'] = 26
print(my_dict['umur']) # Output: 26

# Menghapus key-value pair dari dictionary


del my_dict['alamat']

75
# Menampilkan semua key pada dictionary
print(my_dict.keys()) # Output: dict_keys(['nama',
'umur'])

# Menampilkan semua value pada dictionary


print(my_dict.values()) # Output: dict_values(['John Doe',
26])

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:

data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob',


'age': 20}, {'name': 'Charlie', 'age': 30}]

sorted_data = sorted(data, key=lambda x: x['age'])


print(sorted_data)

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

result = search_by_major("Computer Science")


if result:
print(f"Found student: {result['name']}, age
{result['age']}")
else:
print("Student not found")

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])

# menampilkan elemen array pada indeks ke-2


print(arr1[2])

# menambahkan elemen 6 pada akhir array


b = np.append(arr1, 6)

# menyisipkan elemen 0 pada indeks ke-2


c = np.insert(arr1, 2, 0)

# menghapus elemen pada indeks ke-1


d = np.delete(arr1, 1)

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].

11.2.Mengubah Dimensi Array


Berikut contoh kode pemrograman Python tentang mengubah dimensi
dari sebuah NumPy array:

import numpy as np

# membuat sebuah NumPy array 1D


a = np.array([1, 2, 3, 4, 5, 6])

# mengubah dimensi array menjadi 2D dengan bentuk (3, 2)


b = a.reshape(3, 2)

# mengubah dimensi array menjadi 3D dengan bentuk (2,3,1)


c = a.reshape(2, 3, 1)

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].

11.3.Menggabungkan dua atau lebih Array


menjadi satu Array
Dalam NumPy, array dapat digabungkan menggunakan method
concatenate atau vstack untuk menggabungkan secara vertikal dan hstack
untuk menggabungkan secara horizontal. Berikut contoh
penggunaannya:
import numpy as np

82
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])

# gabungkan secara vertikal


c = np.concatenate((a, b), axis=0)

# gabungkan secara horizontal


d = np.hstack((a, b.T))

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].

11.4.Mengurutkan Elemen pada Array


Dalam NumPy, array dapat diurutkan menggunakan method sort. Berikut
contoh penggunaannya:
import numpy as np

a = np.array([3, 1, 4, 2, 5])

# mengurutkan secara ascending


b = np.sort(a)

# mengurutkan secara descending


c = np.sort(a)[::-1]

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].

11.5.Mengambil Elemen Unik pada Array


Dalam NumPy, elemen unik pada array dapat diambil menggunakan
method unique. Berikut contoh penggunaannya:
import numpy as np

a = np.array([1, 2, 3, 2, 4, 3, 5])

# mengambil elemen unik


b = np.unique(a)

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])

# filter nilai yang lebih besar dari 3


b = a[a > 3]

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])

# memotong array a dari index ke-1 sampai index ke-3


b = a[1:4]

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])

# membagi array a menjadi tiga bagian dengan ukuran yang


sama
b = np.split(a, 3)

print(b)

Output:

[array([1, 2]), array([3, 4]), array([5, 6])]

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].

11.10. Mencari indeks suatu nilai tertentu


Berikut ini adalah contoh kode untuk mencari indeks suatu nilai tertentu
pada numpy array:

import numpy as np

# buat array
arr = np.array([1, 2, 3, 4, 5])

# mencari indeks elemen 3


idx = np.where(arr == 3)[0]

# 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

# membuat matriks 2D dengan numpy


matrix = np.array([[1, 2], [3, 4]])

# menampilkan matriks
print(matrix)

# mengakses elemen tertentu dari matriks


print(matrix[0, 1])

# mengganti elemen tertentu


matrix[0, 0] = 2

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

# membuat dua matriks


matrix1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrix2 = np.array([[2, 2, 2], [2, 2, 2], [2, 2, 2]])

# pengurangan matriks
matrix_subtract = matrix1 - matrix2

# pertambahan matriks
matrix_add = matrix1 + matrix2

# perkalian matriks
matrix_dot = np.dot(matrix1, matrix2)

# perkalian matriks dengan skalar


matrix_skalar = matrix1 * 2

print("Matriks 1:\n", matrix1)


print("Matriks 2:\n", matrix2)
print("Hasil pengurangan matriks:\n", matrix_subtract)
print("Hasil pertambahan matriks:\n", matrix_add)
print("Hasil perkalian matriks:\n", matrix_dot)

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].

12.3.Operasi Matriks Lanjutan


Berikut contoh penggunaan operasi dasar pada matriks dengan
menggunakan NumPy di Python.
import numpy as np

# membuat matriks identitas


matrix_identitas = np.eye(3)
print(matrix_identitas)

# membuat matriks dengan angka acak


94
matrix_acak = np.random.randint(1, 10, size=(3, 2))
print(matrix_acak)

# transpose matriks
matrix_transpose = np.transpose(matrix_acak)
print(matrix_transpose)

# menemukan nilai maksimum dan minimum dari matriks


nilai_max = np.max(matrix_acak)
print(nilai_max)

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]])

# melakukan invers matriks


inv_matrix = np.linalg.inv(matrix)

print("Matriks:\n", matrix)
print("Invers matriks:\n", inv_matrix)

Penjelasan baris demi baris:


1. import numpy as np: Mengimpor library Numpy sebagai np.
2. matrix = np.array([[1, 2], [3, 4]]): Membuat matriks.
3. inv_matrix = np.linalg.inv(matrix): Melakukan invers matriks
menggunakan fungsi np.linalg.inv().
4. print("Matriks:\n", matrix): Menampilkan matriks.
5. print("Invers matriks:\n", inv_matrix): Menampilkan invers
matriks [26].

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)]])

# melakukan rotasi matriks


rotated_matrix = rotation_matrix @ matrix

print("Matriks awal:\n", matrix)


print("Matriks rotasi:\n", rotation_matrix)
print("Matriks hasil rotasi:\n", rotated_matrix)

Penjelasan baris demi baris:


1. import numpy as np: Mengimpor library Numpy sebagai np.
2. matrix = np.array([[1, 2], [3, 4]]): Membuat matriks dengan
ukuran 2x2.
3. angle = np.pi/4: Menentukan sudut rotasi, dalam hal ini adalah
45 derajat.
4. rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)],
[np.sin(angle), np.cos(angle)]]): Membuat matriks rotasi dengan
menggunakan fungsi trigonometri Numpy.
5. rotated_matrix = rotation_matrix @ matrix: Melakukan rotasi
matriks dengan mengalikan matriks rotasi dan matriks awal
menggunakan operator @.
6. print("Matriks awal:\n", matrix): Menampilkan matriks awal.
7. print("Matriks rotasi:\n", rotation_matrix): Menampilkan matriks
rotasi.
8. print("Matriks hasil rotasi:\n", rotated_matrix): Menampilkan
matriks hasil rotasi [26].

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])

# menyelesaikan sistem persamaan linear


x = np.linalg.solve(a, b)

print("Koefisien matriks:\n", a)
print("Hasil matriks:\n", b)
print("Solusi sistem persamaan linear:", x)

Penjelasan baris demi baris:


1. import numpy as np: Mengimpor library Numpy sebagai np.
2. a = np.array([[2, 1], [1, 1]]): Membuat matriks koefisien.
3. b = np.array([3, 2]): Membuat matriks hasil.
4. x = np.linalg.solve(a, b): Menyelesaikan sistem persamaan linear
menggunakan fungsi np.linalg.solve().
5. print("Koefisien matriks:\n", a): Menampilkan matriks koefisien.
6. print("Hasil matriks:\n", b): Menampilkan matriks hasil.
7. print("Solusi sistem persamaan linear:", x): Menampilkan solusi
sistem persamaan linear [26].

98
12.7.Mengubah Bentuk Matriks
Berikut contoh kode Python untuk mengubah bentuk matriks dengan
Numpy:

import numpy as np

# membuat matriks dengan angka acak


matrix_acak = np.random.rand(3, 6)
print(matrix_acak)

# mengubah bentuk matriks menjadi 2x9


matrix_baru = matrix_acak.reshape(2, 9)
print(matrix_baru)

# mengubah bentuk matriks menjadi 9x2


matrix_baru2 = matrix_acak.reshape(9, 2)
print(matrix_baru2)

# mengubah urutan baris pada matriks


matrix_flip = np.flip(matrix_acak, axis=0)
print(matrix_flip)

# mengubah urutan kolom pada matriks


matrix_flip2 = np.flip(matrix_acak, axis=1)
print(matrix_flip2)

Penjelasan baris demi baris:


1. import numpy as np: Mengimpor library Numpy sebagai np.
2. matrix_acak = np.random.rand(3, 6): Membuat matriks 3x6
dengan angka acak.
3. print(matrix_acak): Menampilkan matriks acak.
4. matrix_baru = matrix_acak.reshape(2, 9): Mengubah bentuk
matriks menjadi 2x9.
5. print(matrix_baru): Menampilkan matriks baru.
99
6. matrix_baru2 = matrix_acak.reshape(9, 2): Mengubah bentuk
matriks menjadi 9x2.
7. print(matrix_baru2): Menampilkan matriks baru.
8. matrix_flip = np.flip(matrix_acak, axis=0): Mengubah urutan
baris pada matriks.
9. print(matrix_flip): Menampilkan hasil flip baris.
10. matrix_flip2 = np.flip(matrix_acak, axis=1): Mengubah urutan
kolom pada matriks.
11. print(matrix_flip2): Menampilkan hasil flip kolom [26].

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.

Berikut ini adalah contoh kode program Python yang menggunakan


fungsi main():

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.

Kode if __name__ == "__main__": digunakan untuk mengecek apakah


program dijalankan sebagai program utama atau sebagai modul yang
diimpor ke dalam program lain. Jika program dijalankan sebagai program
utama, maka fungsi main() akan dijalankan. Jika program dijalankan
sebagai modul yang diimpor ke dalam program lain, maka fungsi main()
tidak akan dijalankan.

Dengan menggunakan fungsi main(), kita dapat memisahkan logika


program ke dalam fungsi-fungsi yang terpisah dan memastikan bahwa
hanya instruksi yang diperlukan yang dieksekusi saat program dijalankan
[51].

13.2.Menggunakan argument default


Berikut contoh kode program menggunakan argument default pada
fungsi.

# Menggunakan argumen default pada fungsi


def greeting(name='John'):
print(f'Hello, {name}!')

greeting() # Output: Hello, John!


greeting('Sarah') # Output: Hello, Sarah!

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.

# Fungsi lambda untuk membuat fungsi sederhana


addition = lambda x, y: x + y
print(addition(2, 3)) # Output: 5

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.

# Membuat fungsi dengan jumlah argumen yang fleksibel


def calculate_sum(*args):
result = 0
for number in args:
result += number
return result

print(calculate_sum(1, 2, 3)) # Output: 6

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].

13.5.Fungsi dengan jumlah argumen keyword


yang fleksibel
Berikut contoh kode program Membuat fungsi dengan jumlah argumen
keyword yang fleksibel.

# Membuat fungsi dengan jumlah argumen keyword yang


fleksibel
def person_details(**kwargs):
for key, value in kwargs.items():
print(f'{key}: {value}')

person_details(name='John', age=30, city='New York')

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.

# Menggunakan decorator untuk memodifikasi fungsi


def uppercase_decorator(func):
def wrapper():
result = func().upper()
return result
return wrapper

@uppercase_decorator
def greet():
return 'Hello World!'

print(greet()) # Output: 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:

def hitung(a, b):


jumlah = a + b
kurang = a - b
kali = a * b
bagi = a / b
return jumlah, kurang, kali, bagi

hasil_jumlah, hasil_kurang, hasil_kali, hasil_bagi =


hitung(10, 5)
print("Hasil penjumlahan: ", hasil_jumlah)
print("Hasil pengurangan: ", hasil_kurang)
print("Hasil perkalian: ", hasil_kali)
print("Hasil pembagian: ", hasil_bagi)

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.

Dalam contoh ini, variabel x didefinisikan sebagai variabel global dan


dapat diakses dari mana saja dalam program [53], [54].

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()

# mencoba mencetak x di luar fungsi, akan menghasilkan error


karena x adalah variabel lokal

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].

13.10. Mengubah Variabel global pada


fungsi
Berikut adalah contoh kode pemrograman Python untuk mengubah
variabel global pada suatu fungsi:

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.

Dalam contoh di atas, variabel x di dalam fungsi foo() dideklarasikan


sebagai variabel global dengan menggunakan perintah global x. Dengan
demikian, ketika nilai variabel x diubah di dalam fungsi, perubahan
tersebut berlaku juga di luar fungsi [55].

111
BAB 14
Queue

Queue atau antrian adalah struktur data yang memungkinkan


pengambilan data dilakukan secara urut berdasarkan prinsip FIFO (First-
In, First-Out). Prinsip ini berarti data pertama yang dimasukkan ke dalam
queue akan menjadi data pertama yang keluar.

Pada Python, queue dapat diimplementasikan menggunakan modul


queue. Terdapat beberapa tipe queue yang dapat digunakan, di
antaranya:
- queue.Queue: implementasi sederhana dari queue, yang dapat
digunakan untuk keperluan umum.
- queue.LifoQueue: implementasi queue yang berprinsip LIFO (Last-
In, First-Out), yang sering disebut sebagai stack [56].

14.1. Queue
Berikut adalah contoh kode pemrograman Python tentang Queue:
from queue import Queue

# membuat objek Queue baru


q = Queue()

# menambahkan beberapa elemen ke dalam Queue


q.put("Boy")
q.put("Andrew")
112
q.put("John")

# mencetak elemen Queue berdasarkan indeks


print(q.queue[0]) # akan mencetak 'Boy'

# menghapus elemen pertama dari Queue


q.get()

# mencetak ukuran Queue


print(q.qsize()) # akan mencetak 2

# mengecek apakah Queue kosong atau tidak


print(q.empty()) # akan mencetak False

# mencetak semua elemen yang ada di dalam Queue


while not q.empty():
print(q.get())

Penjelasan baris demi baris:


1. from queue import Queue: mengimpor modul queue dan kelas
Queue dari modul tersebut.
2. q = Queue(): membuat objek Queue baru dengan nama q.
3. q.put("Mobil"): menambahkan elemen "Boy" ke dalam Queue q.
4. q.put("Sepeda"): menambahkan elemen "Andrew" ke dalam
Queue q.
5. q.put("Motor"): menambahkan elemen "John" ke dalam Queue q.
6. print(q.queue[0]): mencetak elemen pertama dari Queue q.
Karena elemen pertama adalah "Boy", maka akan mencetak "Boy".
7. q.get(): menghapus elemen pertama dari Queue q.
8. print(q.qsize()): mencetak ukuran dari Queue q.
9. print(q.empty()): mengecek apakah Queue q kosong atau tidak.
Karena Queue q tidak kosong, maka akan mencetak False.

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].

14.2. Stack (LIFO Queue)


Berikut adalah contoh kode pemrograman Python tentang Queue:
from queue import LifoQueue

# membuat objek Queue baru


lq = LifoQueue()

# menambahkan beberapa elemen ke dalam Queue


lq.put("Boy")
lq.put("Andrew")
lq.put("John")

# menghapus elemen pertama dari Queue


lq.get()

# mencetak ukuran Queue


print(lq.qsize()) # akan mencetak 2

# mengecek apakah Queue kosong atau tidak


print(lq.empty()) # akan mencetak False

# mencetak semua elemen yang ada di dalam Queue


while not lq.empty():
print(lq.get())

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

15.1.Membuka, Menampilkan, dan Menyimpan


Citra
Berikut ini adalah contoh kode untuk membuka, menampilkan, dan
menyimpan citra dengan menggunakan library OpenCV pada Python.
Citra yang digunakan pada bab ini, dapat di-download pada link berikut
football.png.

import cv2

# Membaca citra
img = cv2.imread('football.png', cv2.IMREAD_COLOR)

# Menampilkan citra
cv2.imshow('Football', img)

# Menunggu tombol keyboard ditekan


cv2.waitKey(0)

# Menutup jendela citra


cv2.destroyAllWindows()

# Menyimpan citra ke dalam file baru


cv2.imwrite('footbal_copy.jpg', 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].

15.2.Konversi Citra ke Citra Grayscale


Berikut ini adalah contoh kode untuk mengkonversi citra ke grayscale
menggunakan library OpenCV di Python:

import cv2

# membaca citra asli


img = cv2.imread('football.png')

# mengkonversi citra ke grayscale


gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# menampilkan citra asli dan grayscale


cv2.imshow('Original Image', img)
cv2.imshow('Grayscale Image', gray_img)
cv2.waitKey(0)

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].

15.3.Konversi Citra ke Citra Biner


Berikut adalah contoh kode dalam Python untuk mengkonversi citra ke
biner dengan menggunakan OpenCV:

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)

# menampilkan citra biner


cv2.imshow('binary image', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()

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].

15.4.Segmentasi Warna pada Citra


Berikut contoh kode Python untuk melakukan operasi segmentasi warna
pada citra menggunakan pustaka OpenCV:

import cv2
import numpy as np

# membaca citra
image = cv2.imread('football.png')

# mengubah citra menjadi skala HSV


hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# menentukan range warna kuning dalam HSV


lower_yellow = np.array([20, 100, 100])
upper_yellow = np.array([30, 255, 255])

# membuat mask untuk warna kuning


mask = cv2.inRange(hsv_image, lower_yellow, upper_yellow)

# mengaplikasikan mask pada citra asli


result = cv2.bitwise_and(image, image, mask=mask)

# menampilkan citra hasil segmentasi


cv2.imshow('Segmented Image', result)
cv2.waitKey(0)

# menyimpan citra hasil segmentasi


cv2.imwrite('segmented_image.jpg', result)

Penjelasan baris demi baris:


1. import cv2 dan import numpy as np - Mengimpor pustaka
OpenCV dan NumPy untuk memproses citra.
120
2. image = cv2.imread('football.png') - Membaca citra dengan nama
file "football.png".
3. hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) -
Mengubah citra menjadi skala HSV untuk mempermudah
segmentasi warna.
4. lower_yellow = np.array([20, 100, 100]) dan upper_yellow =
np.array([30, 255, 255]) - Menentukan range warna kuning
dalam format HSV.
5. mask = cv2.inRange(hsv_image, lower_yellow, upper_yellow) -
Membuat mask untuk warna kuning berdasarkan range warna
yang telah ditentukan.
6. result = cv2.bitwise_and(image, image, mask=mask) -
Mengaplikasikan mask pada citra asli menggunakan operasi
bitwise AND.
7. cv2.imshow('Segmented Image', result), cv2.waitKey(0) -
Menampilkan citra hasil segmentasi warna dan menunggu tombol
keyboard ditekan.
8. cv2.imwrite('segmented_image.jpg', result) - Menyimpan citra
hasil segmentasi warna dengan nama file "segmented_image.jpg"
[59].

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')

# mengubah citra menjadi skala abu-abu


gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# menerapkan operator Sobel untuk mendeteksi tepi secara


horizontal
sobelx = cv2.Sobel(gray_image, cv2.CV_64F, 1, 0, ksize=5)

# menerapkan operator Sobel untuk mendeteksi tepi secara


vertikal
sobely = cv2.Sobel(gray_image, cv2.CV_64F, 0, 1, ksize=5)

# menggabungkan hasil deteksi tepi secara horizontal dan


vertikal
edges = cv2.bitwise_or(sobelx, sobely)

# menampilkan citra hasil deteksi tepi


cv2.imshow('Edges', edges)
cv2.waitKey(0)

# menyimpan citra hasil deteksi tepi


cv2.imwrite('edges.jpg', edges)

Penjelasan baris demi baris:


1. import cv2 - Mengimpor pustaka OpenCV untuk memproses
citra.
2. image = cv2.imread('football.png') - Membaca citra dengan nama
file "football.png".
3. gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) -
Mengubah citra menjadi skala abu-abu untuk mempermudah
deteksi tepi.

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')

# mengubah citra menjadi skala abu-abu


gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# melakukan deteksi wajah menggunakan classifier Haar


Cascade

123
face_cascade =
cv2.CascadeClassifier('haarcascade_frontalface_default.xm
l')
faces = face_cascade.detectMultiScale(gray,
scaleFactor=1.1, minNeighbors=5)

# menandai wajah yang terdeteksi pada citra


for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255,
0), 2)

# menampilkan citra hasil deteksi wajah


cv2.imshow('Detected Faces', image)
cv2.waitKey(0)

# menyimpan citra hasil deteksi wajah


cv2.imwrite('detected_faces.jpg', image)

Penjelasan baris demi baris:


1. import cv2 - Mengimpor pustaka OpenCV untuk memproses
citra.
2. image = cv2.imread('football.png') - Membaca citra dengan nama
file "football.png".
3. gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) -
Mengubah citra menjadi skala abu-abu untuk mempermudah
deteksi wajah.
4. face_cascade =
cv2.CascadeClassifier('haarcascade_frontalface_default.xml') -
Menginisialisasi classifier Haar Cascade untuk deteksi wajah. File
ini dapat di-download pada link berikut
haarcascade_frontalface_default.xml.

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

Anda mungkin juga menyukai