Disusun oleh :
AKAKOM
YOGYAKARTA
2020
i
KATA PENGANTAR
ii
DAFTAR ISI
KATA PENGANTAR...................................................................................................... ii
DAFTAR ISI ................................................................................................................... iii
MODUL 1 NAMA POKOK BAHASAN...........................................................................1
iii
MODUL 6
EXPORTING IMPORTING DATA
CAPAIAN PEMBELAJARAN
1. Mampu melakukan Extract, Transform dan Load dari dokumen CSV dan Excel ke dalam
MySQL.
KEBUTUHAN ALAT/BAHAN/SOFTWARE
1. Python
2. Jupyter Notebook
3. Module xlrd
4. Modules pandas
5. Modules sqlalchemy
6. Modules pymsql
DASAR TEORI
Didefinisikan sebagai suatu proses yang yang mengExtract data dari berbagai
sumber, baik terstruktur maupun tidak terstruktur, kemudian melakukan Transformasi data
dan menyimpannya (Load) ke lokasi lain. Lokasi akhir penyimpanan biasanya adalah Data
Warehouse. ETL atau extract, transform, loading adalah fase pemrosesan data dari sumber
data masuk ke dalam data warehouse. Tujuan ETL adalah mengumpulkan, menyaring,
mengolah dan menggabungkan datadata yang relevan dari berbagai sumber untuk
disimpan ke dalam data warehouse. ETL juga dapat digunakan untuk mengintegrasikan data
dengan sistem yang sudah ada sebelumnya.
Flow dari ETL:
1
Tahapan :
Extract
Data diambil dan masuk ke staging Area. Data dapat berupa : Spreadsheet (Excell), database
OLTP, Dokumen Word, Web, Log yang dihasilkan oleh sistem, dll
Transform
Mengubah data sesuai dengan aturan dan standar bisnis yang telah ditetapkan. Beberapa
hal yang bisa dilakukan dalam proses transform :
• Filtering : Hanya memilih kolom tertentu saja untuk dimasukkan ke dalam data
warehouse.
• Melakukan perhitungan nilai-nilai baru (misal sale_amount = qty*unit_price).
• Menggabungkan data dari berbagai sumeber bersama-sama.
• Select, Join, Agregasi
Load
Fase load merupakan tahapan yang berfungsi untuk memasukkan data ke dalam
target akhir, yaitu ke dalam suatu data warehouse.
PRAKTIK
2
Type "help", "copyright", "credits" or "license" for more
information.
>>> import pandas
>>> import xlrd
>>> import sqlalchemy
>>> import pymysql
Jika tidak ada pesan Error, berarti installasi sukses.
4. Download file data-pert11.zip yang berisi pegawai_cab01.csv dan
pegawai_cab02.xlsx
5. Masuklah ke Database MySQL di komputer anda (anda dapat menggunakan
phpMyAdmin), kemudian buatlah database baru bernama bigdata6
6. Skenario untuk praktik ini: terdapat 2 buah dokumen dengan jenis berbeda yaitu
pegawai_cab01.csv berupa file CSV dan pegawai_cab02.xlsx berupa file Excell. Data
pegawai_cab01.csv terdiri dari :
nik,nama,gaji,tglmasuk,job_id,job_title, sedangkan file
pegawai_cab02.xlsx terdiri dari : nik,nama,job,status. Status berisi tulisan
“OUT” jika pegawai tersebut sudah keluar. Goalnya adalah, menggabungkan isi file
pegawai_cab01.csv dan pegawai_cab02.xlsx untuk field nik, nama, job_id ke tabel
pegawai, sedangkan job_id dan job_title akan masuk ke tabel Job.
Jalankan dan amati hasilnya! Jelaskan fungsi .text dan .strip()
7. Langkah awal buatlah file etl-1.py, untuk mengakses data CSV nya. Ketikkan script
berikut ini:
3
Jalankan dan amati hasilnya.
10. Modifikasilah script etl-2.py, agar data yang terambil hanya yang status bukan OUT,
kemudian kolom yang dibutuhkan disamakan dengan pegawai_cab01 di atas, yaitu
nik, nama, job
Jalankan dan amati hasilnya. Seharusnya data milik Siti sudah tidak muncul
11. Selanjutnya karena kedua hasil tersebut akan digabung maka nama kolom harus
sama. Sehingga langkah berikutnya adalah memodifikasi nama kolom “job” menjadi
“job_id”. Modifikasi script etl-2.py sebagai berikut :
4
Jalankan dan amati hasilnya!
13. Langkah berikutnya adalah koneksi ke MySQL, buatlah file baru bernama etl-4.py, dan
ketikkan script berikut ini:
Jalankan dan amati hasilnya. Apabila muncul daftar nama database yang terdapat di
MySQL server maka koneksi tersebut sudah berhasil
14. Modifikasilah program etl-4.py dengan menambahkan import pandas di baris 2
5
Df_gabung.to_sql menunjukkan bahwa data di dataframe df_gabung, disimpan ke
tabel bernama pegawai, menggunakan koneksi sql_engine. Jika sudah ada maka akan
ditimpa, serta tidak menyertakan index dari dataframe ini.
Jalankan dan amati hasilnya! Bukalah phpMyAdmin untuk melihat apakah proses Load
sudah berhasil atau belum
15. Untuk melakukan Load data Job, buatlah file baru bernama etl-5.py, ketikkan script
berikut:
Jalankan script tersebut kemudian cek melalui phpMyAdmin apakah proses Load tabel
job sudah berhasil
6
LATIHAN
TUGAS
REFERENSI