Silahkan ketik peritah berikut untuk menginstal modul mysql untuk Python.
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin"
)
if db.is_connected():
print("Berhasil terhubung ke database")
python3 connect.py
Ini artinya kode program kita berhasil terhubung dengan server MySQL yang berada
di localhost.
Page 1 of 12
Pertama-tama kita membutuhkan modul mysql.connector untuk membuat koneksi
ke MySQL.
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin"
)
Ada satu lagi parameter, yaitu database untuk menentukan nama database yang
akan digunakan.
if db.is_connected():
print("Berhasil terhubung ke database")
3. Membuat Database
Kita sudah berhasil membuat objek db yang akan bertugas sebagai konektor ke
MySQL.
Selain objek db, kita membutuhkan satu lagi objek yaitu cursor untuk mengeksekusi
perintah SQL atau query. Objek ini berada di dalam objek db.
Sehingga untuk membuat objek cursor kita tinggal buat seperti ini:
cursor = db.cursor()
cursor.execute(sql)
Baiklah, silahkan buat file baru bernama create_db.py. Kemudian isi dengan kode
berikut:
import mysql.connector
Page 2 of 12
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin"
)
cursor = db.cursor()
cursor.execute("CREATE DATABASE toko_mainan")
python3 create_db.py
Untuk mengecek, coba saja buka Phpmyadmin atau aplikasi MySQL Client lainnya.
4. Membuat Tabel
Cara membuat tabel sama seperti cara membuat database. Kita tinggal masukan
perintah SQL atau query ke dalam method execute().
Namun sebelum itu, pastikan kontektor sudah diberikan parameter database untuk
menentukan database mana yang akan digunakan.
db = mysql.connector.connect(
host="localhost",
Page 3 of 12
user="admin",
passwd="admin",
database="toko_mainan"
)
Silahkan buat file baru bernama create_table.py, kemudian isi dengan kode
berikut.
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = """CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
address Varchar(255)
)
"""
cursor.execute(sql)
python3 create_table.py
Page 4 of 12
Artinya kita sudah berhasil membuat tabel.
5. Insert Data
Setelah membuat tabel, berikutnya kita akan mencoba menambahkan data ke tabel.
Caranya sama, kita tinggal lakukan melalui perintah SQL atau query.
Biaklah, silahkan buat file baru bernama insert_one.py kemudian isi dengan kode
berikut:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Dian", "Mataram")
cursor.execute(sql, val)
db.commit()
maka hasilnya:
Page 5 of 12
Sekarang coba perhatikan kode yang kita gunakan untuk insert data:
db.commit()
Pada kode tersebut kita menggunakan %s sebagai placeholder untuk value atau data
yang akan kita tambahkan.
name = "Dian"
address = "Mataram"
sql = "INSERT INTO customers (name, address) VALUES ('"+ name +"', '" +
address +"')"
Tap ini kurang aman, karena bisa terkena SQL injection dan juga kurang rapi.
Terakhir kita harus lakukan db.commit() untuk menyimpan data. Method ini
biasanya dipanggil saat insert data, update data, dan hapus data.
Contoh: insert_many.py
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = [
("Doni", "Jakarta"),
("Ella", "Surabaya"),
("Fani", "Bandung"),
Page 6 of 12
("Galih", "Depok")
]
Hasilnya:
6. Menampilkan Data
Kita dapat menampilkan data dari MySQL dengan query SELECT. Kemudian kita
ambil datanya dengan method:
Buatlah file baru bernama select.py kemudia isi dengan kode berikut:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = "SELECT * FROM customers"
cursor.execute(sql)
Page 7 of 12
results = cursor.fetchall()
Berikutnya kita akan coba mengambil satu data saja dengan method fetchone().
Buatlah file baru bernama select_one.py, kemudian isi dengan kode berikut:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = "SELECT * FROM customers"
cursor.execute(sql)
result = cursor.fetchone()
print(result)
Nah untuk method fetchmany() kamu bisa coba sendiri, caranya sama
seperti fetchall().
7. Update Data
Berikutnya kita akan coba ubah data…
Baiklah, silahkan buat file baru bernama update.py. Kemudian isi dengan kode
berikut:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
Page 8 of 12
sql = "UPDATE customers SET name=%s, address=%s WHERE customer_id=%s"
val = ("Ardianta", "Lombok", 1)
cursor.execute(sql, val)
db.commit()
Pada kode program di atas, kita memberikan nilai baru untuk data
dengan custemer_id=1.
Maka hasilnya:
Sebelum di-update
Setelah di-update
8. Hapus Data
Hapus data sama seperti update data. Kita harus menggunakan query DELETE untuk
menghapus dan WHERE untuk menentukan data yang akan dihapus.
Buatlah file baru bernama delete.py, kemudian isi dengan kode berikut:
import mysql.connector
Page 9 of 12
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
cursor = db.cursor()
sql = "DELETE FROM customers WHERE customer_id=%s"
val = (1, )
cursor.execute(sql, val)
db.commit()
Maka hasilnya:
Sekarang kita akan membuat aplikasi berbasis teks atau CLI yang akan menerapkan
CRUDS.
Biklah….
Silahkan buat file baru bernama app_cruds.py, kemudian isi dengan kode berikut:
import mysql.connector
import os
Page 10 of 12
db = mysql.connector.connect(
host="localhost",
user="admin",
passwd="admin",
database="toko_mainan"
)
def insert_data(db):
name = input("Masukan nama: ")
address = input("Masukan alamat: ")
val = (name, address)
cursor = db.cursor()
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
cursor.execute(sql, val)
db.commit()
print("{} data berhasil disimpan".format(cursor.rowcount))
def show_data(db):
cursor = db.cursor()
sql = "SELECT * FROM customers"
cursor.execute(sql)
results = cursor.fetchall()
if cursor.rowcount < 0:
print("Tidak ada data")
else:
for data in results:
print(data)
def update_data(db):
cursor = db.cursor()
show_data(db)
customer_id = input("pilih id customer> ")
name = input("Nama baru: ")
address = input("Alamat baru: ")
def delete_data(db):
cursor = db.cursor()
show_data(db)
customer_id = input("pilih id customer> ")
sql = "DELETE FROM customers WHERE customer_id=%s"
val = (customer_id,)
cursor.execute(sql, val)
db.commit()
print("{} data berhasil dihapus".format(cursor.rowcount))
def search_data(db):
cursor = db.cursor()
keyword = input("Kata kunci: ")
Page 11 of 12
sql = "SELECT * FROM customers WHERE name LIKE %s OR address LIKE %s"
val = ("%{}%".format(keyword), "%{}%".format(keyword))
cursor.execute(sql, val)
results = cursor.fetchall()
if cursor.rowcount < 0:
print("Tidak ada data")
else:
for data in results:
print(data)
def show_menu(db):
print("=== APLIKASI DATABASE PYTHON ===")
print("1. Insert Data")
print("2. Tampilkan Data")
print("3. Update Data")
print("4. Hapus Data")
print("5. Cari Data")
print("0. Keluar")
print("------------------")
menu = input("Pilih menu> ")
#clear screen
os.system("clear")
if menu == "1":
insert_data(db)
elif menu == "2":
show_data(db)
elif menu == "3":
update_data(db)
elif menu == "4":
delete_data(db)
elif menu == "5":
search_data(db)
elif menu == "0":
exit()
else:
print("Menu salah!")
if __name__ == "__main__":
while(True):
show_menu(db)
Hasilnya:
Page 12 of 12