Mengintegrasikan Python dengan MySQL (Part 1)

“With data collection, ‘the sooner the better’ is always the best answer.”

~ Marissa Mayer

Pada artikel sebelumnya, kita sudah melakukan scraping data pada HTML table, lalu menyimpan hasilnya pada format file CSV. Cukupkah itu?

Relatif, bergantung tujuan kita dalam menyimpan data. Jika kita hanya membutuhkannya untuk satu kali penggunaan, misalnya cukup untuk diedit dan dirapikan tabelnya, lalu dibuat laporan atau presentasi, ataupun penyimpanan datanya untuk satu kali analisis data, bisa jadi cukup.

Namun, apabila kita ingin menyimpan data yang tidak hanya berjumlah banyak, data juga akan terus ditambahkan secara kontinu (contoh: perekaman data customer), perlu dianalisis secara berkala, perlu manipulasi data dengan mudah dan cepat, perlu relasi antar data atau tabel, penyimpanan data perlu secara aman; tidak volatile; dan mudah diakses kapanpun oleh kita sendiri maupun rekan kerja, dan bahkan data tersebut ingin kita tampilkan realtime pada website, maka cobalah simpan data anda pada database MySQL. 🙂

MySQL adalah open source relational database management system (RDBMS) terpopuler saat ini. Dengan pesaing kepopulerannya adalah dua closed source database systems, yaitu Microsoft’s SQL Server dan Oracle’s DBMS.

 

1. Membuat Database “scrapedwiki”

Oke, let’s practice! 🙂

Sebelumnya, terlebih dahulu kita buat MySQL database untuk menyimpan hasil scraping dengan mengetikkan perintah di bawah ini pada MySQL Command Line Client:

CREATE DATABASE scrapedwiki;

USE scrapedwiki;

CREATE TABLE tables (id BIGINT(7) NOT NULL AUTO_INCREMENT, name VARCHAR(200), creator VARCHAR(200), first_public_release VARCHAR(200), latest_stable_version VARCHAR(200), latest_release_date VARCHAR(200), programming_language VARCHAR(200), cost_USD VARCHAR(200), software_license VARCHAR(200), open_source VARCHAR(200), CLI_available VARCHAR(200), minimum_installed_size VARCHAR(200), created TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(id));

DESCRIBE tables;

Di sini, database untuk menyimpan data hasil scraping, saya beri nama “scrapedwiki”. Dengan tabel tempat menyimpan data saya beri nama “tables”.

Dengan kolom-kolom sebagai berikut (menyesuaikan dengan kolom-kolom pada tabel pertama di artikel Comparison of Text Editors):

  • name,
  • creator,
  • first_public_release,
  • latest_stable_version,
  • latest_release_date,
  • programming_language,
  • cost_USD,
  • software_license,
  • open_source,
  • CLI_available,
  • minimum_installed_size

Melihat ada 2 kolom asing? “id” dan “created”?

  • id = nomor id data, yang diset auto increment (dinomori otomatis ketika menambahkan (INSERT) data baru, dan juga saya set sebagai PRIMARY KEY. Primary key atau table’s key pada SQL berfungsi untuk mengorganisasikan isi tabel untuk lookup data dengan mudah.
  • created = waktu ketika data ditambahkan (TIMESTAMP). Diset DEFAULT CURRENT_TIMESTAMP, atau waktu tepat ketika data tersebut ditambahkan ke database.

Dengan penampakan MySQL 8.0 Command Line Client pada Windows OS, sebagai berikut:

sql1

Sumber Gambar: Pengalaman Pribadi.

sql2

Sumber Gambar: Pengalaman Pribadi

sql3

Sumber Gambar: Pengalaman Pribadi.

Selamat! Anda berhasil membuat database bernama ‘scrapedwiki’, dengan tabel bernama ‘tables’, sebagai tempat anda menyimpan data hasil scraping. 🙂

 

2. Insert Data

Selanjutnya, mari kira coba input data ke tabel database baru kita, dengan perintah INSERT, seperti tertulis di bawah. Di sini, untuk setiap kolom, kita input data sesuai dengan yang tercantum pada data pertama di tabel pertama di artikel Comparison of Text Editors (karena saya malas mengarang data baru, maka salin saja sesuai data yang ada, hahaha :D).

INSERT INTO tables (name, creator, first_public_release, latest_stable_version, latest_release_date, programming_language, cost_USD, software_license, open_source, CLI_available, minimum_installed_size) VALUES ("Acme", "Rob Pike", "1993", "Plan 9 and Inferno", "", "C", "Free", "LPL (OSI approved)", "Yes", "", "");

SELECT * FROM tables;

Selanjutnya, mari gunakan perintah SELECT, untuk melihat apakah datanya telah terinput dengan benar, seperti tertulis di atas. 🙂

Penampakkan pada MySQL 8.0 Command Line Client pada Windows OS:

sql5

Sumber Gambar: Pengalaman Pribadi.

Atau, jika dicopy ke text editor dan dirapikan, akan nampak tabel seperti ini:

Data Scientist, Data Science, Machine Learning, Statistics, Data Science Indonesia, Data Analytics, Data Analysis, Data Analyst, Data, Astronomy, Astronomer, Science, Python, iPython, Jupyter Notebook, R, RStudio, Excel, Coding, Koding, Cara Mengolah Data, Mengolah Data, Olah Data, Programming, Pemrograman, Sains, Teknologi, Ilmu Data, Teknologi Informasi, Tech in Asia, Teknologi, Technology, Sains, Bisnis, Business, Business Analyst, Business Analysis, Social Media Mining, Movie Review, Muhammad Azizul Hakim, Aziz, Indonesia, ID, Singapore, Asia, Southeast Asia

Sumber Gambar: Pengalaman Pribadi.

Selamat! Sekarang anda berhasil input data ke tabel “tables” pada database “scrapedwiki”! Sempurna! 😀

 

3. Mengintegrasikan Python dengan MySQL

Integrasi python dan MySQL, dapat dilakukan dengan script python di bawah ini (running scriptnya di Anaconda Prompt, Spyder, atau Windows Command Prompt yaa, jangan keliru running di MySQL 8.0 Command Line Client :D):

import pymysql

#Connecting to MySQL in Windows
conn = pymysql.connect(host = "127.0.0.1", port = 3306, user = "root", passwd = "root", database = "mysql", charset = "utf8")
cur = conn.cursor()
cur.execute("USE scrapedwiki")

#Read 'tables' table from 'scrapedwiki' database
cur.execute("SELECT * FROM tables WHERE id = 1")
print(cur.fetchone())

cur.close()
conn.close()

Hati-hati! Untuk bagian #Connecting to MySQL in Windows seperti tertulis di atas adalah cara connect ke database, apabila anda menggunakan Windows.

Namun, apabila anda adalah pengguna Linux/Unix, gantilah variabel “conn” menjadi seperti tertulis di bawah ini:

#Connecting to MySQL in Unix/Linux
conn = pymysql.connect(host = '127.0.0.1', unix_socket = '/tmp/mysql.sock', user = 'root', passwd = None, db = 'mysql', charset = 'utf8')
cur = conn.cursor() cur.execute("USE scrapedwiki")

Penampakkan di Anaconda Prompt:

pySQLConnect

Sumber Gambar: Pengalaman Pribadi

Apa artinya itu? Artinya, selamat!

Anda berhasil menghubungkan python dengan database “scrapedwiki” anda, sehingga anda berhasil mengakses data anda melalui terminal/console Windows, dengan bantuan script python. Yaay! 😀

 

4. What Next?

Bagian terseru. Secara sekaligus akan kita input 72 baris data dalam hitungan detik, ke database “scrapedwiki” yang telah kita buat, yang akan di bahas di Part 2.

Stay tuned! 🙂

 

References & Further Reading

Comparison of Text Editors.

Download MySQL Installer (for Windows).

Microsoft’s SQL Server.

Mitchell R. (2015): Web Scraping with Python, 2nd Edition: Collecting Data from Modern Web, O’Reilly Media Inc.

Oracle’s DBMS.

Scraping Data Tabel HTML Wikipedia (with Python).

Follow and like us:

4 tanggapan pada “Mengintegrasikan Python dengan MySQL (Part 1)”

  1. Pingback: Mengintegrasikan Python dengan MySQL (Part 2) – Menyimpan Data Hasil Scraping ke Database MySQL – Just Type and Run

  2. Pingback: Mengintegrasikan Python dengan MySQL (Part 2) - Menyimpan Data Hasil Scraping ke Database MySQL - hakim-azizul.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *