0% menganggap dokumen ini bermanfaat (0 suara)
21 tayangan

Apa Itu OpenCV Python Numpy Yolo

Diunggah oleh

prodiftsp2023
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
21 tayangan

Apa Itu OpenCV Python Numpy Yolo

Diunggah oleh

prodiftsp2023
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 47

Apa itu OpenCV?

OpenCV (Open Source Computer Vision Library) adalah


sebuah library pada bahasa pemrograman yang ditujukan
untuk pengolahan gambar (image processing) secara real-
time yang dibuat oleh Intel, dan sekarang didukung
oleh Willow Garage dan Itseez. Library ini
bersifat open source dengan lisensi BSD. Library ini
merupakan library lintas platform. Library ini digunakan
sebagian besar untuk pengolahan citra atau gambar
secara real-time. Secara teori OpenCV digunakan seperti
meniru cara kerja system visual manusia yaitu dengan
melihat objek melalui “penglihatan” dan citra pada objek
tersebut diteruskan ke otak untuk diproses sehingga
computer dapat mengerti objek apa yang tampak
sebagaimana dalam penglihatan mata manusia.

OpenCV pertama kali dibuat oleh Intel pada tahun 1999 oleh
Gary Bradsky dan mulai dirilis keluar pada tahun 2000. Saat
ini, OpenCV telah mendukung banyak algoritma yang terkait
dengan Computer Vision dan Machine Learning. Selain itu,
saat ini OpenCV juga dapat digunakan dalam berbagai
macam bahasa pemrograman, seperti C++, Python, Java,
dan lain sebagainya. Tidak hanya itu, OpenCV juga tersedia
dalam berbagai platform, seperti Windows, Linux, OSX,
Android, IOS, dan lain sebagainya. Kombinasi terbaik untuk
dapat melakukan operasi berkecepatan tinggi tersebut
adalah dengan perpaduan antara OpenCV, C++ API dan
bahasa pemrograman Python. Bahasa yang biasa digunakan
untuk membuat program OpenCV adalah Python, hal ini
dikarenakan Bahasa Python memiliki syntax yang sangat
lengkap namun simple dan mudah dipahami.
Penggunaan OpenCV

OpenCV juga banyak dipakai di dunia Industri, khususnya di


bagian Inspection atau pengecekan kualitas produk. Hampir
semua produk dapat dicek melalui OpenCV, mulai dari
makanan, minuman, part mesin dan lain-lain. Banyak aspek
yang bisa diperiksa OpenCV, misalnya kode kadaluwarsa
pada botol minuman atau kemasan makanan dapat dicek
apakah sudah sesuai dengan ketentuan dan tidak ada cacat
pada tulisan tersebut. Selain kode kadaluwarsa OpenCV juga
dapat digunakan untuk pengecekan warna, label dan lain-
lain. Pada part mesin, OpenCV biasa digunakan untuk
mengecek apakah lubang pada part tersebut sudah sesuai,
mengecek jumlah gerigi pada gear sesuai dengan ketentuan,
dan lain-lain. Pada intinya OpenCV dapat melihat dan
mengecek layaknya mata manusia namun dengan ketelitan
lebih besar dan eror yang lebih kecil.

Pada kehidupan sehari-hari OpenCV dapat diterapkan pada


berbagai macam aplikasi. Aplikasi umum OpenCV misalnya
pada system absensi. OpenCV dapat mengenali wajah dari
seseorang serta dapat mengetahui nama dari orang tersebut.
Sistem pengenalan wajah ini sangat membatu untuk
membuat system absensi menjadi lebih presisi dan efisien.
Sistem pengenalan wajah ini juga bis ditemuai pad face
unlock pada smarthphone. Selain pengenalan wajah,
OpenCV juga dapat digunakan untuk mengenali objek
sekitar seperti mobil, motor, pejalan kaki, bahkan benda-
benda seperti kursi, smartphone, keyboard dan lain-lain.
Sistem pengenalan objek ini dapat kita temui pada mobil
autonomus seperti Tesla.

Contoh pengenalan objek pada self driving car


Untuk membuat OpenCV dapat mengenali objek sekitar,
mengenali wajah seseorang ataupun melakukan inspeksi
pada proses industry diperlukan sebuah metode khusus.
Metode tersebut adalah melakukan training dengan
memanfaatkan Teknologi Machine Learning.
Teknologi machine learning (ML) adalah mesin yang
dikembangkan untuk bisa belajar dengan sendirinya tanpa
arahan dari penggunanya. Prosesnya adalah kita
mengumpulkan data sebanyak-banyaknya, data tersebut bisa
berupa foto dari wajah seseorang jika digunakan untuk
pengenalan wajah, ataupun foto dari objek yang akan
dikenali pada system deteksi objek, kumpulan dari data
tersebut disebut dengan dataset. Dataset lalu dijadikan input
pada proses training menggunakan Machine
Learning sehingga menghasilkan sebuah model yang
nantinya digunakan pada program. Selain
melakukan training sendiri, tersedia juga
banyak library yang dapat melakukan pengenalan objek
tanpa melakukan training misalnya YOLO dan Mediapipe
NumPy (Numerical Python) adalah library Python yang
fokus pada scientific computing. 1

Simpelnya:

Numpy menyediakan fungsi yang siap pakai untuk


memudahkan kita melakukan perhitungan saintifik seperti
matriks, aljabar, statistik, dan sebagainya.

Mengapa kita butuh Numpy?

Bukannya di Python sudah ada list dan modul math ya? 🤔

Betul, list dan math memang bisa kita pakai buat


perhitungan saintifik. Namun masih kurang lengkap,
karena beberapa operasi perhitungan harus kita buat
secara manual.

Contoh:

Kita ingin menghitung hasil penjumlahan tiap elemen di


list.
# kita punya list a dan b
a = [1, 2, 3]
b = [4, 5, 6]

# lalu kita jumlahkan


hasil = a + b

print(hasil) # [1, 2, 3, 4, 5, 6]

Hasilnya tidak sesui dengan yang kita harapkan.


Seharusnya tiap elemen dijumlahkan, tapi malah list-nya
digabungkan.

Jika ingin menjumlahkan, maka kita harus membuat rumus


atau fungsi secara manual seperti ini:
def add(list_a, list_b):
result = []
for first, second in zip(list_a, list_b):
result.append(first + second)
return result

Karena itu, biar gak repot buat secara manual dari nol..
sebaiknya pakai yang sudah ada dari Numpy.

Selain itu, performa Numpy juga lebih cepat dibandingkan


list. Soalnya library Numpy ditulis dengan bahasa C dan
sebagaian lagi Python.

Oke.. lalu gimana cara install dan pakai Numpy?

Mari kita lanjut pelajari:

Cara Menginstall Numpy


Numpy dapat kita install dengan package manager pip.

Jalankan perintah berikut di Terminal atau CMD untuk


menginstal Numpy:
pip install numpy

Cukup jalankan perintah ini sekali saja, maka Numpy akan


terinstal di komputermu.

Setelah berhasil menginstal, selanjutnya kita pelajari:

Cara Menggunakan Numpy


Numpy harus kita impor dulu agar bisa digunakan di
dalam program.

Contoh:
import numpy as np

Pada contoh ini, kita mengimpor numpy dan menggunakan


nama alias np biar nggak ngetik kepanjangan hehe.

Setelah itu, barulah kita bisa pakai fungsi-fungsi yang ada


di np (Numpy).
Contoh:

Membuat array dengan Numpy


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

Variabel my_array akan menjadi sebuah object array


(ndarray).

Jangan bingung dengan istilah ndarray..

..ini artinya n dimension array.

Secara simpel, artinya: array multi dimensi.

Latihan: Membuat Array dengan Numpy


Buatlah file baru beranam array_numpy.py kemudian isi
dengan kode berikut:
import numpy as np

# membuat array
nilai_siswa = np.array([85, 55, 40, 90])

# mengakses data pada array


print(nilai_siswa[3])

Setelah itu, coba jalankan.

Maka hasilnya:

Pada latihan ini, kita bisa tau..

..kalau array di Numpy cara akses datanya sama seperti


list.

Membuat Matriks dengan Numpy


Matriks di dalam kode program biasanya dibuat dengan
array dua dimensi, ini karena matrik terdiri dari baris dan
kolom.
Dimensi pertama berperan sebagai kolom dan dimensi
kedua akan berperan seabgai baris.

Contoh:
matriks = [[1,2,3],
[4,5,6],
[7,8,9]]

Pada contoh ini kita membuat list dua dimensi dengan list.

Jika ingin membuat matriks dengan Numpy, maka kita bisa


pakai fungsi array() dan memasukan list matriksnya.

Contoh:
matrik_np = np.array([[1,2,3],
[4,5,6],
[7,8,9]])

Cara mengakses datanya juga sama seperti list.

Misal mau ngambil angka 5, maka kita bisa akses dengan:


print(matrik_np[1][1])

Ini karena angka 5 berada di kolom ke-1 dan baris ke-1.

Ingat, list atau array itu indeksnya selalu dimulai dari nol.

Jika mau ambil angka 3 gimana?

Gampang…

Tunggal tulis seperti ini:


print(matrik_np[0][2])

Ini karena angka 3 berada di kolom ke-0 dan baris ke-2.

Gampang kan?

Saya anggap kamu sudah paham.

Selanjutnya kita akan belajar operasi matriks dengan


Numpy.
Operasi Matriks dengan Numpy
Jika kamu menggunakan list di Python untuk operasi
matriks, maka kamu akan membaut operasinya secara
manual dengan perulangan.

Contohnya seperti ini:


# Program to add two matrices using nested loop

X = [[12,7,3],
[4,5,6],
[7,8,9]]

Y = [[5,8,1],
[6,7,3],
[4,5,9]]

result = [[0,0,0],
[0,0,0],
[0,0,0]]

# iterate through rows


for i in range(len(X)):
# iterate through columns
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]

for r in result:
print(r)

Ini tentu merepotkan, karena kita harus membuat sendiri


operasinya.

Tapi tenang saja..

..di Numpy kita bisa melakukan operasi matrik dengan


mudah, semudah melakan operasi pada bilangan.

Mari kita coba!

Penjumlahan matriks

Buat file baru dengan


nama penjumlahan_matrik.py kemudian isi dengan kode
berikut:

penjumlahan_matrik.py
import numpy as np

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

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

hasil = matrik_a + matrik_b

print(hasil)

Setelah itu, coba jalankan!

Maka hasilnya:

Pengurangan matriks

Buat file baru dengan


nama pengurangan_matrik.py kemudian isi dengan kode
berikut:

pengurangan_matrik.py
import numpy as np

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

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

hasil = matrik_a - matrik_b

print(hasil)

Setelah itu, coba jalankan!

Maka hasilnya:

Perkalian matriks
Buat file baru dengan nama perkalian_matrik.py kemudian
isi dengan kode berikut:

perkalian_matrik.py
import numpy as np

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

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

hasil = matrik_a * matrik_b

print(hasil)

Setelah itu, coba jalankan!

Maka hasilnya:

Pembagian matriks

Buat file baru dengan nama pembagian_matrik.py kemudian


isi dengan kode berikut:

pembagian_matrik.py
import numpy as np

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

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

hasil = matrik_a / matrik_b

print(hasil)

Setelah itu, coba jalankan!

Maka hasilnya:
Mantap! 👍

Cukup mudah bukan?

Berikutnya kita akan belajar tentang

Transformasi Matriks dengan Numpy


Transformasi Matrik artinya mengubah bentuk matrik ke
bentuk yang lain.

Ada tiga fungsi yang digunakan untuk transformasi matrik:

 transpose() untuk membalik matrik;


 reshape() untuk mengubah bentuk matrik ke ukuran
tertentu;
 flatten() dan ravel() untuk mengubah matrik menjadi list
atau vektor.

Mari kita coba!

Latihan: Transpose Matrik dengan Numpy


Buatlah file baru dengan nama balik_matrik.py, kemudian
isi dengan kode berikut:

balik_matrik.py
import numpy as np

# membuat matrik
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

print("Matrik awal: ")


print(matrik_a)

# membalik matrik
hasil = matrik_a.transpose()

print("Matrik kebalikan: ")


print(hasil)
Setelah itu, coba jalankan!

Maka hasilnya:

Selain menggunakan teknik di atas, kita juga bisa


membalik matrik seperti ini.
np.transpose(matrik_a)

# atau bisa juga

matrik_a.T # ini akan menghasilkan matrik hasil transpose

Latihan: Mengubah bentuk ukuran Matrik


Buatlah file baru dengan nama matrik_reshape.py,
kemudian isi dengan kode berikut:

matrik_reshape.py
import numpy as np

# membuat matrik
matrik_a = np.array([1, 2, 3, 4, 5, 6])

print("Matrik awal: ")


print(matrik_a)
print("Ukuran = ", matrik_a.shape)

# mengubah ukran ke 3x2


hasil = matrik_a.reshape(3, 2)

print("Mengubah ke 3x2: ")


print(hasil)
print("Ukuran = ", hasil.shape)

Setelah itu, coba jalankan!

Maka hasilnya:

Pada contoh ini, kita mengubah sebuah list menjadi matrik


2x3. Atribut .shape berfungsi untuk mengetahui ukuran
array.

Matrik yang sudah kita reshape, bisa juga kita kembalikan


lagi dengan fungsi reshape().
Contoh:
np.reshape(matrik_a, 6)

Angka 6 adalah ukuran matriknya.

Latihan: Mengubah Matrik ke List Vektor


Buatlah file baru dengan nama matrik_flat.py, kemudian
isi dengan kode berikut:

matrik_flat.py
import numpy as np

# membuat matrik
matrik_a = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

print("Matrik awal: ")


print(matrik_a)
print("Ukuran = ", matrik_a.shape)

hasil = matrik_a.flatten()

print("Matrik setelah di-flatten: ")


print(hasil)
print("Ukuran = ", hasil.shape)

Setelah itu, coba jalankan!

Maka hasilnya:

Sejauh ini kita sudah bisa menggunakan Numpy untuk


membuat list dan matrik.

Berikutnya kita akan coba fungsi-fungsi untuk pengolahan


data.

Fungsi Pengolahan Data di Numpy


Kalau kamu pernah belajar statistik, mungkin tidak akan
asing dengan mean (rata-rata), sum, min, max, dll.
Nah, di Numpy.. kita sudah disediakan fungsi-fungsi ini.
Sehingga pengolahan data akan jadi lebih mudah.

Mari kita langsung coba aja contohnya.

Buatlah file baru dengan


nama pengolahan_data.py kemudian isi dengan kode
berikut:
import numpy as np

nilai_siswa = np.array([55, 43, 98, 76 ,65 ,77 ,65, 90])


print("Nilai minimal = ", nilai_siswa.min())
print("Nilai maksimal = ", nilai_siswa.max())
print("Nilai rata-rata = ", nilai_siswa.mean())
print("Total nilai = ", nilai_siswa.sum())
print("Standar Deviasi = ", nilai_siswa.std())

Setelah itu coba jalankan!

Maka hasilnya:

Mantap! 👍

Dengan adanya fungsi-fungsi ini, kerjaan Data Science kita


akan jadi lebih mudah.

Apa Selanjutnya?
Sejauh ini kita sudah paham dan tahu apa itu Numpy dan
gimana cara pakainya.

Sebenarnya masih banyak lagi fungsi-fungsi yang belum


kita bahas. Tentu tidak akan cukup jika saya bahas semua
di sini.

Karena itu, kamu bisa lanjutkan dengan eksplorasi sendiri.

Coba lakukan ini di Shell Python:


>>> import numpy as np
>>> dir(np) # untuk ngeliat list semua fungsi di Numpy
>>> help(np) # untuk baca dokumentasi dan manual dari Numpy
Selain itu, kamu juga bisa pelajari Numpy
dari dokumentasi resminya.

YOLOv5: Merevolusi Deteksi Objek Real-Time

Januari 24, 2023 by İlke Candan Bengi Kategori: Kecerdasan Buatan,


Pembelajaran mesin

Teknologi deteksi objek visi komputer sangat penting untuk berbagai


aplikasi. Kami menggunakannya dalam robotika, peralatan
pengawasan, mobil self-driving, dan banyak lagi area lainnya.
Karenanya, kita dapat menemukan dan mengenali hal-hal tertentu
dalam gambar atau video.

Salah satu yang paling terkenal algoritma identifikasi objek adalah


YOLO (Anda Hanya Melihat Sekali) kumpulan model. Model-model ini
dibuat oleh Ultralytics LLC.

Versi terbaru dari seri ini adalah YOLOv5. Dan, ini adalah model
identifikasi objek tercepat dan paling tepat di pasaran. Kapasitas
model untuk menggeneralisasi data baru telah sangat ditingkatkan.
Juga, ini berisi banyak fitur yang membuatnya tampil lebih baik
daripada iterasi sebelumnya.
YOLOv5 sangat bagus untuk aplikasi waktu nyata karena dapat
memproses gambar dengan kecepatan hingga 1000 bingkai per
detik pada satu GPU.

Pada artikel ini, kami akan memperkenalkan YOLOv5 dan membahas


detail area aplikasinya.

Perjalanan YOLO: Dari YOLO Ke YOLOv5


Joseph Redmon dkk. awalnya memperkenalkan YOLO, satu set
model identifikasi objek, pada tahun 2016. Model awal YOLO dapat
mengidentifikasi objek secara real time. Namun, akurasinya rendah
jika dibandingkan dengan model lain pada masa itu.

Beberapa versi YOLO yang ditingkatkan dirilis sepanjang tahun. Dan


terakhir, Ultralytics LLC membuat edisi terbaru dari seri YOLO,
YOLOv5.

YOLOv5 adalah model identifikasi objek paling akurat dan tercepat


yang tersedia saat ini.

Fitur Penting

Kotak Jangkar

YOLOv5 memprediksi kotak pembatas untuk objek dalam gambar


menggunakan kotak jangkar. Model memprediksi mana dari banyak
kotak yang ditentukan sebelumnya dengan berbagai rasio aspek
yang paling cocok dengan item dalam gambar menggunakan kotak
jangkar. Ini adalah kotak yang telah ditentukan sebelumnya.

Dan, mereka memungkinkan YOLOv5 mengenali dan menemukan


item dalam gambar dengan akurat.

Augmentasi Data Mosaik

Saat pelatihan, YOLOv5 menggunakan metode yang dikenal sebagai


mosaik augmentasi data. Untuk mengembangkan gambar pelatihan
yang baru, model kami secara acak menggabungkan tambalan dari
beberapa foto. Akibatnya, model menjadi lebih tangguh dan dapat
diandalkan. Oleh karena itu, dapat menggeneralisasi data baru dan
mengurangi overfitting.

Jalur Pelatihan Yang Unik

Saluran pelatihan unik yang menggabungkan pengawasan


dan belajar tanpa pengawasan digunakan.

Dengan demikian, model belajar dari sampel yang lebih kecil dan
memanfaatkan masukan yang tidak berlabel secara efektif. Ini
meningkatkan kinerja model dan meningkatkan kapasitasnya untuk
menggeneralisasi input baru.
Lapisan Yang Bersifat Residual Dan Non-Residual

Arsitektur YOLOv5 menggabungkan lapisan yang bersifat residual


dan non-residual. Dengan membiarkan gradien mengalir melintasi
lapisan, lapisan sisa membantu model dalam mempelajari fitur yang
sulit. Selain itu, lapisan non-residual memberi model pemahaman
gambar input yang lebih komprehensif. Alhasil, YOLOv5 dapat
beroperasi lebih presisi dan efektif.

Cara Menggunakan YOLOv5


Instalasi

Instalasi YOLOv5 dapat diselesaikan dengan cepat menggunakan


pip. Pip adalah manajer paket Python. Prosedur umum untuk
menginstal YOLOv5 adalah sebagai berikut:

1- Instal PyTorch: Karena YOLOv5 didasarkan pada kerangka kerja


PyTorch, Anda harus menginstal PyTorch terlebih dahulu.

pip install torch torchvision

2. Instal CUDA: Anda harus menginstal CUDA jika ingin menjalankan


YOLOv5 pada GPU.

3. Instal YOLOv5: Setelah menyiapkan PyTorch dan CUDA, gunakan


perintah berikut untuk mengunduh YOLOv5.

pip install yolov5

4-Setelah penginstalan YOLOv5, Anda harus mengunduh bobot yang


telah dilatih sebelumnya. Bobot yang telah dilatih sebelumnya
tersedia di repo Ultralytics GitHub.

Buka bagian "bobot" situs web dengan menggulir ke bawah. Anda


dapat mengunduh bobot pra-latihan dari daftar yang dapat Anda
temukan di sini.

5. Pilih bobot yang sudah terlatih dan paling sesuai dengan kasus
penggunaan Anda. Kumpulan data atau versi YOLOv5 tertentu yang
dipelajari bobotnya dapat digunakan untuk mempersempit daftar.

6- Setelah memilih bobot yang tepat, pilih bobot dengan mengklik


tombol "Unduh" di sebelahnya. Bobot akan tersedia untuk diunduh
sebagai. file pt.

7- Transfer bobot yang diunduh ke direktori. Di sinilah skrip deteksi


Anda akan beroperasi.

8- Pada titik ini, Anda dapat menjalankan deteksi objek pada foto
atau video Anda menggunakan bobot yang telah dilatih sebelumnya
dalam skrip deteksi Anda.
Siapkan Datanya

Anda harus melakukan tindakan berikut untuk menyiapkan data


agar dapat digunakan dengan YOLOv5:

1. Kumpulkan data: Langkah pertama adalah mengumpulkan data


gambar atau video yang Anda perlukan deteksi objek. Hal-hal yang
ingin Anda deteksi harus ada di foto atau video.
2- Format data: Anda hanya dapat mengimpor foto ke dalam skrip
Anda jika Anda menggunakannya. Anda harus mengubah video
menjadi rangkaian foto jika berencana menggunakannya. Anda
dapat mengekstrak bingkai dari film menggunakan pustaka seperti
OpenCV.

import cv2

img = cv2.imread('path/to/image')

Dengan pustaka OpenCV, Anda dapat menggunakan perintah


berikut untuk mengubah video menjadi rangkaian gambar:

import cv2

cap = cv2.VideoCapture('path/to/video')

while True:

ret, frame = cap.read()

if not ret:

break

cv2.imshow('frame', frame)

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

break

cap.release()

cv2.destroyAllWindows()

3. Beri label pada data: Anda harus memberi label pada data jika
menggunakan kumpulan data. Menggambar kotak pembatas di
sekitar item yang ingin Anda identifikasi di setiap bingkai gambar. Ini
adalah proses pelabelan data. Anda dapat menggunakan beberapa
alat untuk membantu Anda dengan operasi ini, termasuk LabelImg
dan RectLabel.

4- Anda harus membagi data menjadi set pelatihan dan pengujian


setelah Anda menandainya. Ini penting untuk menilai seberapa baik
performa model Anda.

5. Terakhir, Anda mungkin perlu melakukan praproses data sebelum


pelatihan atau pengujian. Ini dapat memerlukan penskalaan gambar
atau video, standarisasi nilai piksel, atau menggunakan metode
untuk augmentasi data.

Setelah menyelesaikan langkah-langkah ini, data Anda sudah siap.


Jalankan Skrip Deteksi

Berikut adalah ilustrasi skrip deteksi yang menganalisis gambar dan


menemukan objek.

import yolov5

import cv2

# Pre-trained weights should be loaded.

weights = 'path/to/weights.pt'

# Set the detection confidence level


conf_thres = 0.5

# Set the Non-Maxima Suppression (NMS) threshold

nms_thres = 0.5

# Create the detector object

detector = yolov5.YOLOv5(weights, conf_thres, nms_thres)

# Load the image

img = cv2.imread('path/to/image')

# Perform object detection

detections = detector.detect(img)

# Print the detections

for x1, y1, x2, y2, conf, cls_conf, cls_pred in detections:

print("Object:", classes[int(cls_pred)])

print("Confidence:", conf)

print("Bounding box:", (x1, y1, x2, y2))

Pengolahan Pasca

Penekanan non-maksimum adalah salah satu teknik pasca-


pemrosesan yang paling sering digunakan dalam deteksi objek
(NMS). Kami menggunakan NMS untuk menghilangkan kotak
pembatas yang tumpang tindih untuk objek yang sama. Untuk
mengeksekusi NMS pada pendeteksian, kita dapat menggunakan
metode cv2.dnn.NMSBoxes() library OpenCV.

Berikut adalah contoh cara melakukan post-process detection


menggunakan NMS.

import cv2

# Perform Non-Maxima Suppression (NMS)

indeks = cv2.dnn.NMSBoxes(deteksi, rahasia, conf_thres, nms_thres)

Visualisasi

Dalam hal visualisasi, kita dapat kembali menggunakan pustaka


seperti OpenCV. Kami dapat menampilkan kotak pembatas di sekitar
objek yang ditemukan pada gambar atau video sumber. Untuk
menggambar kotak pembatas gambar, gunakan metode
cv2.rectangle(). Berikut cara melihat pendeteksian pada gambar
asli:

impor cv2

# Draw the bounding boxes on the image

untuk I dalam indeks:

i = i[0]

x1, y1, x2, y2 = detections[i][0], detections[i][1], detections[i][2], detections[i][3]

cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)

cv2.putText(img, classes[class_ids[i]], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,


255, 255), 2)

# Show the image

cv2.imshow("Object Detection", img)

cv2
Aplikasi

YOLOv5 adalah model identifikasi objek yang kuat. Oleh karena itu,
kita dapat memanfaatkannya dalam banyak skenario dunia nyata.
Salah satu kegunaan yang paling menonjol adalah pada mobil self-
driving. YOLOv5 dapat mengidentifikasi item secara real-time seperti
mobil dan lampu lalu lintas.

Dalam sistem pengawasan, kita dapat menggunakan YOLOv5 untuk


mengenali dan melacak objek dalam aliran video langsung. Selain
itu, YOLOv5 bisa menjadi aset besar dalam robotika. Ini dapat
membantu robot mendeteksi dan memahami lingkungan mereka. Ini
sangat penting untuk aktivitas seperti navigasi dan manipulasi.
YOLOv5 juga dapat digunakan dalam industri apa pun yang
membutuhkan deteksi objek, seperti ritel, olahraga, medis, dan
keamanan.

Kesimpulan

Terakhir, YOLOv5 adalah versi terbaru dan canggih dari keluarga


model deteksi objek YOLO

. Juga, wajar untuk mengatakan bahwa ini adalah model deteksi


objek paling akurat yang tersedia. Berkat akurasi dan kecepatannya
yang tinggi, Anda dapat memilihnya dengan aman untuk proyek
deteksi objek Anda
Sejak kemunculannya pada 2017, PyTorch yang dikembangkan oleh tim
Facebook AI Research telah menjadi framework yang sangat populer dan
efisien untuk membuat model deep learning. Pustaka machine
learning yang open-source (terbuka untuk umum) ini didasarkan pada
Torch dan dirancang untuk memberikan fleksibilitas lebih besar dan
peningkatan kecepatan untuk implementasi deep neural network.
Saat ini, PyTorch adalah pustaka yang paling disukai peneliti dan
praktisi aritificial intelligence (AI) di seluruh dunia dalam industri dan
akademisi. Dalam artikel ini, Anda akan mendapat informasi tentangnya,
bagaimana cara kerjanya, apa saja keuntungannya, hingga bagaimana
implementasinya. Marik simak selengkapnya di artikel berikut ini.

APA ITU PYTORCH?


PyTorch adalah pustaka tensor deep learning yang dioptimalkan
berdasarkan Python dan Torch. Library ini utamanya digunakan untuk
aplikasi yang menggunakan GPU dan CPU. Ia cenderung lebih disukai
daripada framework deep learning lainnya (seperti TensorFlow dan Keras)
karena menggunakan grafik komputasi dinamis dan sepenuhnya Pythonic.
Dengan menggunakan library ini, ilmuwan, pengembang, dan neural
network debugger bisa menjalankan dan menguji bagian dari kode
secara real-time. Jadi, user tidak perlu menunggu untuk memeriksa
apakah sebagian kode berfungsi atau tidak setelah seluruh kode
diimplementasikan.

CARA KERJA PYTORCH


PyTorch bekerja dengan memanfaat dua komponen inti, yaitu tensor dan
grafik. Berikut penjelasannya:
1. TENSOR
Tipe data inti PyTorch yang mirip dengan array multidimensi ini dipakai
untuk menyimpan dan memanipulasi input dan output model serta
parameter model. Tensor mirip dengan ndarray NumPy, bedanya tensor
dapat berjalan di GPU untuk mempercepat komputasi.
2. GRAFIK
Setiap framework modern untuk deep learning didasarkan pada konsep
grafik, di mana neural network direpresentasikan sebagai struktur grafik
perhitungan. Didasarkan pada grafik komputasi dinamis, grafik komputasi
library ini dibangun kembali saat runtime menggunakan kode yang sama
saat melakukan komputasi untuk forward pass, sehingga menciptakan
struktur data yang diperlukan untuk backpropagation.
Sebagai framework pertama yang cocok dengan kinerja grafik statis,
library ini cocok untuk jaringan konvolusi standar hingga neural
network berulang.
KEUNTUNGAN
MENGGUNAKAN
PYTORCH UNTUK
DATA SCIENTIST DAN
SOFTWARE
DEVELOPER
Bagi data scientist dan software developer, menggunakan PyTorch dapat
memberikan banyak keuntungan, di antaranya:
1. GRAFIK KOMPUTASI DINAMIS
PyTorch menghindari grafik statis yang digunakan
dalam framework seperti TensorFlow, sehingga memungkinkan data
scientist dan software developer mengubah jaringan dengan cepat.
PyTorch lebih disukai oleh pemula karena lebih intuitif untuk dipelajari jika
dibandingkan dengan TensorFlow.
2. DUKUNGAN BACK-END YANG BERBEDA
Bukan back-end tunggal, PyTorch menggunakan back-end yang berbeda
untuk CPU, GPU, dan berbagai fitur fungsional lainnya. PyTorch
menggunakan tensor back-end TH untuk CPU dan THC untuk GPU.
Penggunaan back-end terpisah membuat PyTorch sangat mudah untuk
diterapkan pada sistem terbatas.
3. GAYA IMPERATIF
Pustaka PyTorch dirancang khusus agar intuitif dan mudah digunakan.
Anda dapat melakukan pelacakan real-time tentang bagaimana
model neural network Anda dibangun. Arsitektur imperatifnya yang luar
biasa dan pendekatannya yang cepat dan ramping membuat PyTorch
banyak diadopsi oleh data scientist dan software developer.

PENGGUNAAN
PYTORCH UNTUK
BISNIS, RISET, DAN
EDUKASI
Implementasi Pytorch dapat ditemukan pada berbagai sektor, termasuk
bisnis, riset, dan edukasi. Berikut contoh penggunaan PyTorch pada ketiga
sektor tersebut:
1. BISNIS
Banyak bisnis telah menggunakan Pytorch untuk penelitian dan produksi,
contohnya Airbnb. Airbnb mengandalkan Pytorch sebagai inti dari
departemen layanan pelanggannya. Bisnis ini membangun asisten dialog
untuk mengintegrasikan balasan cerdas dan meningkatkan pengalaman
layanan pelanggan.
2. RISET
PyTorch adalah pilihan populer untuk penelitian karena kemudahan
penggunaan, fleksibilitas, dan pembuatan prototipe yang cepat.
Contohnya, Universitas Stanford menggunakan fleksibilitas PyTorch untuk
meneliti pendekatan algoritmik baru secara efisien.
3. EDUKASI
Jika ingin mempelajari dasar-dasar deep learning dan membangun deep
neural network Anda sendiri menggunakan PyTorch, Anda bisa mengakses
Udacity. Udacity mendidik inovator AI menggunakan PyTorch yang relatif
mudah dipelajari untuk programmer yang akrab dengan Python.
Saat ini python merupakan bahasa pemrograman yang paling banyak
digunakan dalam data science dan machine learning. Python memiliki fitur
yang lengkap dan platform untuk melakukan riset. Salah satu hal penting
dalam bahasa pemrograman python adalah library. Apa yang ada di
benakmu ketika mendengar kata library.
Bayangkan ketika kita masuk ke sebuah perpustakaan, kita akan melihat
rak-rak yang berjejer rapi dan berisi buku yang siap kita baca. Sama
halnya dengan perpustakaan buku, library python berisi "rak-rak" modul
yang dapat kita gunakan untuk penulisan kode kita. Library merupakan
sumber berbagai fungsi yang dapat digunakan tanpa harus menulis
keseluruhan skrip kode. Dengan memanfaatkan library python, kita hanya
perlu bekerja cerdas tanpa harus bekerja keras. Dua library yang sering
digunakan oleh programmer untuk machine learning adalah PyTorch dan
TensorFlow. Kali ini, DQLab akan menjelaskan dua library populer ini. Baca
artikelnya sampai selesai ya!

1. TensorFlow dan PyTorch


TensorFlow merupakan library open source untuk menghitung komputasi
numerik secara mudah dan cepat. TensorFlow dirancang untuk penelitian
dan pengembangan sistem produksi. Dengan library TensorFlow,
programmer dapat membuat grafik dari data terstruktur yang
mendeskripsikan bagaimana data bergerak melalui grafik, atau
serangkaian node pemrosesan. Setiap node dalam grafik mewakili operasi
matematika, dan setiap koneksi atau tepi antar node adalah baris data
multidimensi atau disebut tensor. Library ini pertama dikenalkan oleh
Jason Brownlee pada 5 Mei 2016 dan terakhir diperbarui pada 20
Desember 2019. TensorFlow berfungsi pada Python 2.7 dan Python 3.3+.
Sama halnya dengan TensorFlow, PyTorch merupakan library open source
yang digunakan untuk mengembangkan dan melatih neural network.
Berbeda dengan TensorFlow yang menggunakan grafik komputasi statis,
PyTorch menggunakan komputasi dinamis sehingga lebih fleksibel untuk
data yang lebih kompleks. Library yang dirilis pada tahun 2016 ini
dirancang sedemikian rupa sehingga programmer tidak perlu
mengkategorikan data menjadi "int", "short", atau "double".
Baca Juga: 3 Metode Numpy Array Python Sebagai Dasar Proses
Manipulasi Data

2. Pembuat Library TensorFlow dan PyTorch


Persamaan lain dari kedua library ini adalah sama-sama dibuat oleh
perusahaan raksasa dunia, yaitu Facebook dan Google. TensorFlow adalah
library yang dibuat oleh Google yang berbasis Theano dan PyTorch dibuat
oleh Facebook yang berbasis Torch. Tensorflow memiliki komunitas yang
jauh lebih besar daripada PyTorch. Hal ini karena PyTorch adalah
framework yang relatif baru jika dibandingkan dengan Tensorflow. Jadi,
kita akan lebih banyak menemukan konten tentang TensorFlow daripada
PyTorch.

3. Mana yang Lebih Baik, TensorFlow atau


PyTorch
Jawaban terbaik adalah tidak ada yang lebih baik. Beberapa programmer
lebih suka menggunakan TensorFlow, namun beberapa programmer lain
lebih nyaman menggunakan PyTorch. TensorFlow lebih direkomendasikan
oleh programmer profesional untuk mengerjakan project yang
berhubungan dengan artificial intelligent, sedangkan PyTorch lebih
direkomendasikan untuk pengembangan penelitian karena mendukung
pelatihan yang cepat dan dinamis. Seorang programmer harus
menentukan library sesuai kebutuhannya dan tidak menutup
kemungkinan seorang programmer akan menggunakan keduanya untuk
menghasilkan output yang lebih impactfull. Jadi, Library mana yang lebih
tepat dengan bidangmu?

KESIMPULAN
Pytorch adalah framework yang lebih nyaman untuk dipelajari dan
memiliki pertumbuhan yang lebih cepat. API dan kinerjanya yang sangat
baik membuat pustaka tensor deep learning yang dioptimalkan
berdasarkan Python dan Torch ini cocok digunakan untuk data
scientist dan software developer. Manfaatnya begitu besar untuk berbagai
bidang, mulai dari bisnis, riset, hingga edukasi.

Excel dan Python


Xls merupakan salah satu format penyimpanan populer yang banyak digunakan
oleh perusahaan ataupun amatir. Kemudahan yang dirasakan oleh user saat
penggunaan menggunakan perangkat lunak yang berafiliasi menjadi alasan
utama populernya format ini. Karena hal tersebut kemampuan untuk bisa
menangani format xls menjadi nilai lebih bagi para developer python. Python
sendiri memiliki banyak sekali library yang berhubungan dengan kegiatan
manipulasi data xls, diantaranya:

 Xlsxwriter
 xlrd
 xlwings
 xlwt
 pyexcel, dan
 openpyxl

Pada kesempatan kali ini kita akan library openpyxl beserta penggunaannya.
Openpyxl
Openpyxl adalah library python yang digunakan untuk melakukan baca/tulis file
Excel 2010 baik itu format xlsx atau lainnya. Openpyxl memiliki basis awal dari
PHPExcel. Meinstall library openpyxl sangatlah mudah, kita bisa memanfaatkan
pip disini,
pip install openpyxl

Manipulasi workbook
import library openpyxl lalu import class workbook dari library openpyxl
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
wb.active digunakan untuk memastikan bahwa kita bekerja pada workbook yang
sedang aktif (default = 0). Untuk menambahkan sheet yang kita inginkan kita
bisa menggunakan wb.create_sheet(). Jika kita memiliki nama sheet yang sama,
maka sistem akan melakukan penambahan index secara otomatis. Secara
default sheet yang kita tambahkan akan ditambahkan ke akhir list. Tambahkan
parameter 0 untuk menambahkan sheet ke awal dan -1 untuk menambahkan
sheet ke urutan kedua dari akhir.
ws1 = wb.create_sheet("kerja")
ws2 = wb.create_sheet("kerja", 0)
ws3 = wb.create_sheet("kerja", -1)

print(wb.sheetnames)
untuk melakukan melihat semua nama sheet yang ditambahkan kita bisa
melakukan print(wb.sheetnames) dan akan mendapatkan hasil,
['kerja1', 'Sheet', 'kerja2', 'kerja']
kita dapat mengganti namanya secara manual dengan menggunakan .title .
Misalkan kita ingin mengganti nama dari sheet 2, maka yang kita lakukan
ws.title = 'kerjabaru'
dan jika kita print ulang akan mendapatkan hasil,
['kerja1', 'kerjabaru', 'kerja2', 'kerja']
Setelah memberikan nama pada sheetmu, kamu bisa melakukan akses langsung
dengan menggunakan nama tersebut.
workaktif = wb['kerjabaru']
print (workaktif)

#<Worksheet "kerjabaru">
Kita bisa melakukan penyimpanan dengan menggunakan
wb.save('namafile.xlsx')

Manipulasi Sel
Untuk mengakses sel terdapat dua cara, yang pertama adalah akses langsung
dengan menggunakan nama selnya atau dengan menggunakan index.
ws['B4'] = 4
#atau
ws.cell(row=4, column=2).value = 4
untuk melakukan akses banyak sel kita bisa memanfaatkan for loop. misalkan
kita punya sebuah list a dan ingin kita masukkan pertama pada baris pertama
dan kedua pada kolom pertama.
a = ['aku', 'suka', 'makan', 'bakso']

for row in range(0,len(a)):


ws.cell(row=row+1, column=1).value= a[row]

for column in range(0,len(a)):


ws.cell(row=1, column=column+1).value= a[column]
row + 1 dan column +1 digunakan karena baris dan kolom tidak bisa dimulai dari
0. Jika kita memiliki data ke dalam banyak baris dan kolom kita bisa
mengubahnya ke dalam bentuk matriks (list dalam list) lalu kita manfaatkan
fungsi append. Misalkan kita mempunyai data list makanan terhadapat hari dan
ingin memasukkan pada bari dan kolom excel maka yang kita lakukan adalah,
menu = [['hari'],['senin', 'nasi', 'ayam'],['selasa', 'susu'],['rabu','nasi
goreng', 'ati ampela', 'jus apel'],['kamis','capcay','telur mata sapi']]
for item in menu:
ws.append(item)

Membaca Excel
Pada kesempatan kali ini kita akan mencoba untuk melakukan penulisan dan
pembacaan file excel yang berasal dari basis data sqlite. Untuk melakukan
pembacaan data pada file excel, kita bisa memanfaatkan modul load_workbook
pada library openpyxl.
from openpyxl import load_workbook

data = load_workbook(filename="namafile.xlsx")
Kode di atas akan membuka file namafile.xlsx. Beberapa fungsi yang kita
jalankan saat akan menulis data pada excel bisa kita jalankan juga pada bagian
ini untuk mengecek data kita.
print(data.sheetnames)
sheet = data.actve
print(sheet)
data.sheetnames akan memberikan kita nama-nama dari worksheet yang dimiliki
oleh file tersebut. Untuk memasangkan variabel pada sheet active kita bisa
menggunakan data.active atau gunakan sheet[‘namasheet’] untuk menginisiasi.
print(sheet["A1"])
#<Cell 'Sheet'.A1>

print(sheet["A1"].value)
#'First Name'
print(sheet[“A1”]) digunakan untuk mengecek sel kita, dan
print(sheet[“A1”].value) digunakan untuk mengambil nilai dari sel yang kita pilih.
selain menggunakan cara di atas kita juga bisa menggunakan .cell() untuk
melakukan pengambilan data.
sheet.cell(row=1, column=1)
#<Cell 'Sheet1'.A1>

>>> sheet.cell(row=1, column=1).value


#'First Name'
Untuk menggunakan mengambil data dalam range maka kita bisa menggunakan
query,
sheet["A3:D4"]
sheet["A"]
sheet[1]
sheet["A:B"]
sheet[1:4]

 sheet[“A3:D4”] akan mengambil data pada kota di dalam A3 sampai D4


 sheet[“A”] akan mengambil semua data pada kolom A
 sheet[1] akan mengambil semua data pada baris pertama
 sheet[“A:B”] akan mengambil semua data pada kolom A sampai kolom B
 sheet[1:4] akan mengambil semua data pada baris pertama sampai bari
keempat.

Selain menggunakan cara di atas untuk melakukan banyak pengambilan kita


dapat memanfaatkan iter_rows() dan iter_cols()
#digunakan untuk mengambil semua kolom dengan range disebutkan
sheet.iter_cols(min_row=1, max_row=4, min_col=1, max_col=4)
#digunakan untuk mengambil semua baris dengan range disebutkan
sheet.iter_row(min_row=1, max_row=4, min_col=1, max_col=4)

Pandas & Excel


Karena dalam melakukan Data Mining dan Machine Learning penggunaan pandas
cukup sering dilakukan oleh bebebrapa user, jadi kemampuan untuk
mengkonversikan dataframe kedalam excel menjadi penting. Untuk melakukan
konversi dari dataframe ke dalam excel yang disimpan kita dapat menggunakan.
df.to_excel("namafile.xlsx") #df bisa diganti nama dataframe
Jika kita perlu memasukkan ke dalam sheet tertentu, bisa kita gunakan
df.to_excel("namafile.xlsx",
sheet_name='nama_sheet')
Memasukkan beberapa dataframe kedalam sheet yang berbeda dapat kita
lakukan dengan memanfaatkan fungsi ExcelWriter
with pd.ExcelWriter('namafile.xlsx') as writer:
hasil1.to_excel(writer, sheet_name='nama_sheet_1')
hasil2.to_excel(writer, sheet_name='nama_sheet_2')

Visualisasi
Excel tidak hanya digunakan untuk menyimpan data, pada umumnya seseorang
akan menggunakan juga sebagai media untuk memvisualisasikan data yang
telah diolah. Bisa untuk kebutuhan presentasi atau juga laporan. Menariknya
adalah openpyxl sendiri sudah memiliki kemampuan untuk melakukan visualisasi
dari IDE kita tanpa harus membuka file excel tersebut.
pulau_indonesiaUnduh
Pertama kita import semua library yang dibutuhkan
from openpyxl import Workbook
from openpyxl.chart import BarChart, Series, Reference
import csv
Lalu kita akan buka data dari file csv yang kita miliki dan inisiasi file excel kita
#inisiasi excel
wb = Workbook()
ws = wb.active

#open file
data = open('pulau_indonesia.csv')
rows = csv.reader(data, delimiter=',')
Dengan memanfaatkan looping kita coba untuk membaca perbaris file csv kita
dan memasukkannya ke dalam file excel
index = 0
for row in rows:
data_clean = []
for i in row:
try:
i = int(i)
except:
pass
data_clean.append(i)
ws.append(data_clean)
index +=1
len_row = len(data_clean)
Agar data tersebut dapat diolah maka kita perlu mengubah semua data kita yang
terlihat seperti angka tapi masih string (misal: “76”) menjadi integer (76). itulah
guna dari kode ‘for i in row()’. variabel index digunakan untuk mengetahui jumlah
row maksimum dan variabel len_row digunakan untuk mengetahui berapa
banyak data kita. kedua variabel tersebut akan kita gunakan pada langkah
selanjutnya. Sekarang saatnya kita menginisiasi chart kita, chart yang akan kita
gunakan adalah jenis bar.
chart1 = BarChart()
chart1.type = "col"
chart1.style = 3
chart1.title = "Bar Chart"
chart1.y_axis.title = 'Jumlah Pulau'
chart1.x_axis.title = 'Nama Provinsi'

 chart.type digunakan untuk menentukan jenis bar chart kita, apakah


secara horizontal atau vertikal.
 chart style digunakan untuk mengubah style atau warna dari chart kita
 chart.title digunakan untuk mengganti Judul chart kita
 axis.title digunakan untuk memberi judul axis kita

data = Reference(ws, min_col=3, min_row=1, max_row=index, max_col=len_row-


1)
cats = Reference(ws, min_col=2, min_row=2, max_row=index)
chart1.height = 10 # default is 7.5
chart1.width = 30 # default is 15
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(cats)
ws.add_chart(chart1, "G2")

 chart.heigt untuk mengatur tinggi chart


 chart.width untuk mengatur lebar chart
 chart.add_data untuk memasukkan data untuk dipakai chart kita,
title_from_data jika ingin data kita langsung memasukkan legenda dari
judul kolom.
 chart.set_categories digunakan untuk memberi nilai axis x

Lalu setelah semua itu kita masukkan chart kita ke dalam workspaces dengan
menggunakan add_chart(), dimana ‘G2’ adalah dimana saya ingin menempatkan
chart saya. terakhir kita save file excel kita
wb.save("bar.xlsx")
Saat kita buka file excel tersebut akan terlihat seperti gambar di bawah.

Kode lengkap nya menjadi,


from openpyxl import Workbook
from openpyxl.chart import BarChart, Series, Reference
import csv

#inisiasi excel
wb = Workbook()
ws = wb.active

#open file
data = open('pulau_indonesia.csv')
rows = csv.reader(data, delimiter=',')

index = 0
for row in rows:
data_clean = []
for i in row:
try:
i = int(i)
except:
pass
data_clean.append(i)
ws.append(data_clean)
index +=1
len_row = len(data_clean)

chart1 = BarChart()
chart1.type = "col"
chart1.style = 3
chart1.title = "Bar Chart"
chart1.y_axis.title = 'Jumlah Pulau'
chart1.x_axis.title = 'Nama Provinsi'

data = Reference(ws, min_col=3, min_row=1, max_row=index, max_col=len_row-


1)
cats = Reference(ws, min_col=2, min_row=2, max_row=index)
chart1.height = 10 # default is 7.5
chart1.width = 30 # default is 15
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(cats)
ws.add_chart(chart1, "G2")

wb.save("bar.xlsx")
Kalian bisa mencoba mengubah-ubah chart kalian dengan meilhat dokumentasi,
terdapat hampir semua jenis chart yang bisa kalian implementasikan sesuai
kebutuhan

PASTIKAN ANDA
SUDAH MEMASANG
OPENPYXL
Pertama-tama, pastikan Anda sudah memasang OpenPyXL. OpenPyXL
adalah library yang dipakai untuk membaca, menulis, dan
memodifikasi file Excel dengan ekstensi xlsx/xlsm/xltx/xltm. Library yang
cepat, andal, dan open source ini bekerja dengan dokumen Excel.
Untuk meng-install OpenPyXL, Anda bisa pakai pip, yaitu sistem
manajemen paket yang digunakan untuk meng-install dan mengelola
paket software yang ditulis dengan Python. Ada banyak paket yang dapat
ditemukan di Python Package Index (PyPI).
Anda dapat mengikuti langkah-langkah yang disebutkan dalam Panduan
Pengguna Kemasan Python untuk menginstal pip. Namun, jika Anda
minimal sudah menggunakan Python 2.7.9 atau Python 3.4, maka Anda
sudah memiliki pip. Jika demikian, Anda bisa dengan mudah meng-
install OpenPyXL dengan mengetikkan perintah “pip instal openpyxl” di
Terminal Mac OS X atau menggunakan perintah “sudo pip3 instal
openpyxl”.

CARA COPY-PASTE
DATA PYTHON KE
EXCEL
Untuk menyalin satu file Excel ke file Excel lainnya, ikuti langkah berikut
ini:
1. Pertama-tama, buka file Excel sumber dan tujuan.
2. Hitung jumlah baris dan kolom dalam file Excel sumber dan baca
nilai sel tunggal.
3. Kemudian, simpan dalam variabel.
4. Tulis nilai tersebut ke file Excel tujuan pada posisi sel yang mirip
dengan sel dalam file sumber.
5. File tujuan disimpan dan selesai.

PEKERJAAN EXCEL
LAIN YANG BISA
DILAKUKAN DENGAN
PYTHON
Tak hanya copy paste data, masih ada beberapa pekerjaan Excel lain
yang bisa dilakukan dengan Python, di antaranya:
1. MENAMBAH DATA KE SPREADSHEET
Dengan menggunakan OpenPyXL, akan lebih mudah bagi Anda untuk
menambah data ke spreadsheet Excel. Proses
membaca spreadsheet terlebih dahulu, kemudian mengulangi setiap
baris dan mengambil jumlah total yang dihabiskan dari database, hingga
menulisnya kembali ke spreadsheet, bisa disederhanakan apabila Anda
menggunakan OpenPyXL.
2. IMPORT DATA BARU KE DATABASE
Katakanlah Anda bekerja di perusahaan toko online. Saat ingin
menambahkan produk baru ke toko online, Anda
membuat spreadsheet Excel dengan ratusan baris yang berisi nama
produk, deskripsi, harga, dan beberapa informasi dasar lainnya.
Jika Anda ingin mengimpor data khusus ini secara manual, Anda perlu
mengulangi setiap baris spreadsheet dan kemudian menambahkan setiap
produk ke dalam database toko online. Pekerjaan ini akan menjadi
lebih simple jika Anda menggunakan OpenPyXL yang mempermudah
proses import data baru ke database.
3. EXPORT DATABASE KE SPREADSHEET
Misalnya, Anda sudah memiliki tabel database. Dalam tabel khusus ini,
Anda telah mengumpulkan informasi semua pengguna yang mencakup
nama, nomor kontak, alamat email, dan sebagainya. Jika tim pemasaran
ingin secara kolektif menghubungi semua pengguna dan mempromosikan
produk baru perusahaan, mungkin ada masalah karena mereka tidak
memiliki akses ke database dan tidak mengerti cara menggunakan SQL
untuk mengekstrak informasi.
Dalam situasi ini, OpenPyXL bisa jadi solusi. Anda dapat menggunakannya
secara efektif untuk mengulangi setiap catatan pengguna dan mengubah
informasi yang diperlukan menjadi spreadsheet Excel.

OpenPyXL
OpenPyXL adalah librari yang digunakan untuk membaca dan menulis file
Excel 2010 xlsx/xlsm/xltk/xltm . Ini adalah librari yang akan kita gunakan
dalam tutorial ini untuk berkerja dengan dokumen Excel.

Hal pertama yang perlu kita lakukan untuk memanfaatkan librari ini adalah
menginstal OpenPyXL .

Menginstal OpenPyXL
Untuk menginstal OpenPyXL , kita akan menggunakan pip, yaitu (berdasarkan
Wikipedia):

Sistem manajemen package yang digunakan untuk


menginstal dan mengelola paket software yang ditulis
dalam Python. Banyak paket dapat ditemukan
dalam Python Package Index (PyPI).
Kamu dapat mengikuti tahap-tahap yang disebutkan dalam Panduan
Pemakai Python Packaging untuk menginstal pip , namun jika kamu
memiliki Python 2.7.9 dan lebih tinggi, atau Python 3.4 dan lebih tinggi,
kamu sudah memiliki pip !

OpenPyXL sekarang dapat dengan mudah diinstal dengan mengetikkan


perintah berikut (dalam Terminal Mac OS X):

pip install openpyxl

Membuka Sebuah Dokumen Excel


Setelah menginstal OpenPyXL , kita siap untuk mulai berkerja dengan
dokumen Excel. Tugas normal pertama yang akan kita lakukan pada
dokumen Excel adalah membuka dokumen itu. Lanjutkan dan download file
Excel sample.xlsx untuk mengikuti tutorial ini, atau kamu dapat
menggunakan file Excel apapun yang kamu suka.

Sebelum kita dapat menggunakan OpenPyXL , kita perlu melakukan import ,


seperti berikut:

import openpyxl

Metode yang kita perlukan untuk membuka dokumen Excel


adalah load_workbook() . Jika kamu bertanya-tanya apa maksud dari sebuah
workbook, itu merupakan dokumen spreadsheet Excel. Script yang kita
butuhkan untuk membuka sebuah dokumen Excel adalah sebagai berikut:

import openpyxl
1

excel_document = openpyxl.load_workbook('sample.xlsx')
2

Mari sekarang kita lihat type yang dikembalikan dari


metode load_workbook() . Ini dapat dilakukan sebagai berikut:

print type(excel_document)

Ini akan menampilkan hasil berikut:


<class 'openpyxl.workbook.workbook.Workbook'>
1

Seperti yang dapat kita lihat, obyek yang dikembalikan adalah Workbook ,
pada jenis data workbook . Obyek Workbook di sini mewakili file Excel.

Nama Sheet
Sheet dalam Excel terdiri dari kolom (dengan huruf dimulai dari A, B, C, dll.)
dan baris (mulai dari 1, 2, 3, dll.) Untuk memeriksa sheet apa yang kita
punya dalam dokumen Excel kita, kita menggunakan
metode get_sheet_names() sebagai berikut:

excel_document.get_sheet_names()

Jika kita melakukan print pada perintah di atas, kita mendapatkan hasil
berikut:

[u'Sheet1']

Sehingga menunjukkan bahwa kita memiliki satu sheet, bernama Sheet1 .

Jika kamu memiliki banyak sheet, kamu dapat mengakses sheet tertentu
berdasarkan namanya menggunakan metode ini: get_sheet_by_name() .

Advertisement

Mengakses Cell
Sekarang setelah kita mempelajari bagaimana membuka sebuah file Excel
dan mendapatkan sheet, mari kita lihat betapa mudahnya untuk mengakses
sebuah cell dalam sheet tersebut. Yang harus kamu lakukan adalah
menarik sheet tersebut, dan kemudian menentukan lokasi (koordinat) cell
itu. Mari katakan bahwa kita ingin mengakses kolom A baris 2 dalam
dokumen Excel yang kita punya, yaitu A2 . Ini dapat diterapkan sebagai
berikut:
sheet = excel_document.get_sheet_by_name('Sheet1')
1

print sheet['A2'].value
2

Dalam hal ini, kamu akan memiliki nilai berikut yang dikembalikan: Abder .

Kita dapat juga menggunakan notasi baris-kolom. Sebagai contoh, jika kita
ingin mengakses cell pada baris 5 dan kolom 2 , kita mengetikkan berikut:

sheet.cell(row = 5, column = 2).value

Hasil dalam hal ini akan menjadi: programmer .

Jika kita ingin melihat jenis obyek yang mewakili cell, kita dapat
mengetikkan:

print type(sheet['A2'])

atau:

print sheet.cell(row = 5, column = 2)

Dalam hal ini, kamu akan mendapatkan output berikut:

<class 'openpyxl.cell.cell.Cell'>

yang berarti bahwa obyek adalah jenis Cell .

Mengakses Rentang Cell


Bagaimana jika kamu tertarik dalam mengakses rentang cell daripada
hanya satu cell? Mari katakan kita ingin mengakses cell dari A1 ke B3 ,
yang tampak seperti ini dalam dokumen Excel kita?
Ini dapat dilakukan menggunakan script berikut:

multiple_cells = sheet['A1':'B3']
1

for row in multiple_cells:


2

for cell in row:


3

print cell.value
4

Dalam hal ini, kamu akan mendapatkan output berikut:

Name
1

Profession
2

Abder
3

Student
4

Bob
5

6 Engineer
Mengakses Semua Baris dan Kolom
OpenPyXL membolehkanmu untuk mengakses semua baris dan kolom
dalam dokumen Excel, menggunakan metode rows() dan columns() ,
secara berturut-turut.

Untuk mengakses semua baris, kita dapat melakukan sebagai berikut:

all_rows = sheet.rows
1

print all_rows[:]
2

Perhatikan bahwa kita menggunakan notasi [:] untuk mengakses


semua baris. Ini karena jenis obyek yang dikembalikan
dari whole_document adalah tuple.

Output dari script di atas akan menjadi seperti berikut:

((<Cell Sheet1.A1>, <Cell Sheet1.B1>), (<Cell Sheet1.A2>, <Cell Sheet1.B2>),


1 Sheet1.A5>, <Cell Sheet1.B5>), (<Cell Sheet1.A6>, <Cell Sheet1.B6>), (<Cell S

Di sisi lain, jika kita ingin mengakses semua kolom, kita cukup melakukan
sebagai berikut:

all_columns = sheet.columns
1

print all_columns[:]
2

Dalam hal ini, kamu akan mendapatkan output berikut:

((<Cell Sheet1.A1>, <Cell Sheet1.A2>, <Cell Sheet1.A3>, <Cell Sheet1.A4>, <Ce


1 <Cell Sheet1.B3>, <Cell Sheet1.B4>, <Cell Sheet1.B5>, <Cell Sheet1.B6>, <Cell
Tentu saja ada lebih banyak yang dapat kamu lakukan dengan dokumen
Excel, seperti yang dapat kamu lihat dalam dokumentasi OpenPyXL.

Advertisement

KESIMPULAN
Coba luangkan waktu untuk memikirkan berapa banyak waktu yang
terbuang jika Anda harus melakukan tugas-tugas membosankan
seperti copy paste hanya karena Anda perlu melacak beberapa data.
Tugas copy paste dan berbagai hal merepotkan lainnya bisa dikurangi
secara drastis hanya dengan beberapa baris kode Phyton yang bisa
melakukan ini secara otomatis

Anda mungkin juga menyukai