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

Modul10 DBMS

Dokumen tersebut berisi ringkasan latihan praktikum modul 9 & 10 tentang sistem manajemen basis data MySQL dengan Python. Latihan-latihan tersebut meliputi pembuatan koneksi ke database, membuat database dan tabel, menyisipkan dan menampilkan data."

Diunggah oleh

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

Modul10 DBMS

Dokumen tersebut berisi ringkasan latihan praktikum modul 9 & 10 tentang sistem manajemen basis data MySQL dengan Python. Latihan-latihan tersebut meliputi pembuatan koneksi ke database, membuat database dan tabel, menyisipkan dan menampilkan data."

Diunggah oleh

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

JAWABAN MODUL 9 & 10

PRAKTIKUM
SISTEM MANAJEMEN BASIS DATA

Nama : Nelson Mandela R.l


NPM : 2140304003

LABORATORIUM SISTEM INFORMASI DAN KOMPUTASI CERDAS


JURUSAN TEKNIK KOMPUTER, UNIVERSITAS BORNEO TARAKAN |
Jalan Amal Lama No. 1, Tarakan, Kalimantan Utara
TAHUN 2023
MODU L 9
DATABASE MYSQL DENGAN PYTHON
MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

A. TUJUAN

 Mampu menciptakan database dengan python.


 Mampu menciptakan table database dengan python.
 Menyisipkan baris pada table dengan python
 Menampilkan baris data pada table database menggunakan python
 Menavigasi baris-baris pada table pada table database menggunakan python
 …

B. PETUNJUK

- Awali setiap praktikum dengan berdoa agar mendapatkan keberkahan dan kemudahan
dalam mengerjakan praktikum.
- Baca buku/panduan dengan seksama dan pahami tujuan dan dasar teori dengan baik.
- Kerjakan latihan-latihan dan tugas-tugas praktikum dengan baik, benar, sabar, teliti, dan
jujur.
- Tanyakan kepada asisten praktikum/dosen pengampu apabila ada hal dalam buku/panduan
yang kurang jelas.

C. DASAR TEORI
Silahkan membaca buku Pemrograman GUI: Python dan Database dari halaman 167.

D. LATIHAN PRAKTIKUM MODUL 7


1. Menciptakan Objek Cursor
 Hasil Eksekusi dan bukti Output :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 2


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

 Source code Program beserta penjelasan di dalamnya, letakkan di bawah ini:

Source Code :
import mysql.connector
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '')

kursorKu = koneksi.cursor()
kursorKu.execute("CREATE DATABASE databaseKU")
Penjelasan :
Agar bisa menjalankan perintah sql di python,langkah pertama yang harus dibuat adalah
melakukan koneksi ke mysql server, mysql connector digunakan sebagai penghubung
antara python dengan sql server.

2. Menciptakan ,Mengakses,dan Memeriksa Keberadaan Database


- Source code Program beserta penjelasan di dalamnya, letakkan di bawah ini:

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 3


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

user = 'root',
password = '')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("CREATE DATABASE databaseBuku")
print('database berhasil dibuat')
except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

Penjelasan :
perintah sql create digunakan untuk membuat database atau table di dbms mysql.

3. Menciptakan ,Mengakses,dan Memeriksa Keberadaan Database


- Source code Program beserta penjelasan di dalamnya, letakkan di bawah ini:

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("SHOW DATABASES")
for x in kursorKu:
print(x)

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 4


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

Penjelasan :
Perintah show database berfungsi untuk menampilkan database yang tersedia;

4. Menciptakan ,Mengakses,dan Memeriksa Keberadaan Database


- Source code Program beserta penjelasan di dalamnya, letakkan di bawah ini:

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databaseBuku')
if koneksi.is_connected():
print('Database berhasil diakses')

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 5


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

Penjelasan :
menambahkan parameter database pada variable koneksi dan mengakses database yang
ingin diakses

5. Menciptakan dan Memeriksa Table


- Menciptakan Table :

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("CREATE TABLE konsumen (nama VARCHAR(255),alamat
VARCHAR(255))")
except Error as e:
print(e)
finally:

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 6


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

koneksi.close()

if __name__=='__main__':
lakukanKoneksi()

6. Menciptakan dan Memeriksa Table


- Memeriksa Table :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("SHOW TABLES")
for x in kursorKu:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()
Output :

Penjelasan :
Perintah Show tables digunakan untuk menampilkan table yang tersedia pada database
yang diakses.

7. Menciptakan dan Memeriksa Table

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 7


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

- Menambahkan Auto Increment :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("ALTER TABLE Konsumen ADD COLUMN id INT
AUTO_INCREMENT PRIMARY KEY")
except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()

Penjelasan :
Field id diciptakan sebagai primary key atau data yang bersifat unik sebagai identitas
khusus pada tiap-tiap data, dan khusus pada field ini data tidak perlu diisikan secara
manual, dengan menggunakan perintah auto_increment field id akan ototmatis tertambah
setiap ada data yang masuk ke table.

8. Menyisipkan Rekaman Ke Dalam Table


- Menyisipkan satu rekaman ke dalam table :

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 8


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "insert into konsumen (nama,alamat) values (%s,%s)"
val = ("John Kristof","Jalan Medan Pem. Siantar")
kursorKu.execute(sql,val)
koneksi.commit()
print(kursorKu.rowcount,"Rekaman telah disisipkan")

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()
Output :

Penjelasan :
Perintah insert digunakan untuk memasukkan rekaman ke dalam table, dan data yang
dimasukkan harus memiliki beberapa parameter masukan yang sesuai dengan field id,
yaitu nama data,tipe data,dan Panjang data

9. Menyisipkan Rekaman Ke Dalam Table


- Menyisipkan beberapa rekaman ke dalam table :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 9


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

sql = "insert into konsumen (nama,alamat) values (%s,%s)"


val = [('Petrus','Medan 4'),
('Aminah','Siantar 652'),
('Hannah','Malang 21'),
('Mikael','Balige 345'),
('Sandi','Bandung 2'),
('Petrus','Medan 4'),
('Petrus','Medan 4'),
('Petrus','Medan 4'),
('Petrus','Medan 4'),
('Petrus','Medan 4'),]
kursorKu.executemany(sql,val)
koneksi.commit()
print(kursorKu.rowcount,"Rekaman telah disisipkan")

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()

Output :

10. Menyeleksi Kolom Dengan Select


- Menyeleksi sejumlah baris :

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 10


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

kursorKu.execute("select nama,alamat from konsumen")


hasilku = kursorKu.fetchall()
for x in hasilku:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

Penjelasan :
Perintah select digunakan untuk menampilkan data pada table database yang dituju.

11. Menyeleksi Kolom Dengan Select


- Menyeleksi Satu Baris :
Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("select * from konsumen")
hasilku = kursorKu.fetchone()
for x in hasilku:

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 11


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

12. Memfilter Hasil Query dengan WHERE


- Menggunakan klausa where :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("select * from konsumen where alamat = 'medan
4'")
hasilku = kursorKu.fetchall()
for x in hasilku:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()
Output :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 12


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

Penjelasan :
Dengan menambahkan klausa where pada perintah select membuat data yang ingin
ditampilkan menjadi lebih spesifik.

13. Memfilter Hasil Query dengan WHERE


- Menggunakan karakter wildcard :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("select * from konsumen where alamat like '%al%'
")
hasilku = kursorKu.fetchall()
for x in hasilku:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()
()

Output :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 13


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

14. Mengurutkan dengan ORDER BY


- Mengurutkan nama secara Ascending :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("select * from konsumen order by nama")
hasilku = kursorKu.fetchall()
for x in hasilku:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

Penjelasan :
Perintah order by berfungsi untuk mengurutkan data yang secara default diurutkan secara

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 14


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

ascending ( data terbesar ke terkecil )

15. Mengurutkan Dengan Order By


- Mengurutkan nama secara Descending :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("select * from konsumen order by nama desc")
hasilku = kursorKu.fetchall()
for x in hasilku:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 15


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

16. Menghapus Rekaman Dengan Delete From


- Menghapus rekaman :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "delete from konsumen where alamat = 'Medan 4' "
kursorKu.execute(sql)
koneksi.commit()
print(kursorKu.rowcount, "rekaman telah dihapus")

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 16


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

17. Menghapus Rekaman Dengan Delete From


- Mencegah SQL Injection :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "delete from konsumen where alamat = 'Medan 4' "
almt = ("Siantar 652", )
kursorKu.execute(sql,almt)
koneksi.commit()
print(kursorKu.rowcount, "rekaman telah dihapus")

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

18. Menghapus Table


- Menggunakan Drop Table :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 17


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "drop table if exists konsumen"
kursorKu.execute(sql)
print("Table telah dihapus")

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

Penjelasan :

19. Memperbarui Table


- Update Table :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 18


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "update konsumen set alamat = 'Balige123' where alamat =
'Balige 345' "
kursorKu.execute(sql)
koneksi.commit()
print(kursorKu.rowcount, "Rekaman diperbarui")

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output ;

20. Membatasi banyak hasil query


- Menggunakan statement limit :

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "select * from konsumen limit 5"
kursorKu.execute(sql)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 19


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

Output :

21. Membatasi Banyak Hasil Query


- Menggunakan Statement Offset :

Source Code
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "select * from konsumen limit 5"
kursorKu.execute(sql)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()
if __name__=='__main__':
lakukanKoneksi()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 20


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

Output :

22. Menggabungkan Dua Table


- Pertama Menciptakan table produk :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("CREATE table produk (id varchar (255), nama
varchar(255))")
print('Table berhasil diciptakan')
except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

- Mengisi data pada table produk :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 21


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

""" Koneksi ke server """


try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "insert into produk (id,nama) values (%s,%s)"
val = [('34','Coklat'),
('25','Teh Hijau'),
('11','Teh Hitam'),
('23','kopi Sidikalang'),
('32','Kopi Torabika'),
('24','Kopi Toraja'),
('45','Bakpia Patuk')]
kursorKu.executemany(sql,val)
koneksi.commit()
print(kursorKu.rowcount,"Rekaman telah disisipkan")
sql2 = "Select * from produk"
kursorKu.execute(sql2)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()
Output :

23. Menggabungkan dua buah Table


- Menciptakan table kedua :

Source Code :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 22


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("CREATE table konsumen (id int auto_increment
primary key,\
nama varchar(255),\
fav varchar(255))")
print('Table berhasil diciptakan')
except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

- Mengisi data table kedua :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "insert into konsumen (nama,fav) values (%s,%s)"

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 23


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

val = [('Petrus','25'),
('Aminah','32'),
('Hannah','24'),
('Mikael','25'),
('Sandi','45'),
('Beti','45'),
('Vivian','89'),
('Rico','89')]
kursorKu.executemany(sql,val)
koneksi.commit()
print(kursorKu.rowcount,"Rekaman telah disisipkan")
sql2 = "Select * from konsumen"
kursorKu.execute(sql2)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()

24. Menggabungkan dua buah Table


- Menciptakan table kedua :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("CREATE table konsumen (id int auto_increment
primary key,\
nama varchar(255),\

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 24


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

fav varchar(255))")
print('Table berhasil diciptakan')
except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

- Mengisi data table kedua :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi ke server """
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='',
database='databaseBuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "insert into konsumen (nama,fav) values (%s,%s)"
val = [('Petrus','25'),
('Aminah','32'),
('Hannah','24'),
('Mikael','25'),
('Sandi','45'),
('Beti','45'),
('Vivian','89'),
('Rico','89')]
kursorKu.executemany(sql,val)
koneksi.commit()
print(kursorKu.rowcount,"Rekaman telah disisipkan")
sql2 = "Select * from konsumen"
kursorKu.execute(sql2)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 25


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
print(e)
finally:
koneksi.close()

if __name__=='__main__':
lakukanKoneksi()

Output Code:

25. Menggabungkan dua buah Table


- Menggunakan INNER JOIN :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "select \
konsumen.nama as konsumen,\
produk.nama as favorit \
from konsumen \
inner join produk on konsumen.fav = produk.id"
kursorKu.execute(sql)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 26


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
print(e)

finally:
koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

Output :

- Menggunakan LEFT JOIN :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "select \
konsumen.nama as konsumen,\
produk.nama as favorit \
from konsumen \
left join produk on konsumen.fav = produk.id"
kursorKu.execute(sql)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)
except Error as e:
print(e)

finally:

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 27


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

koneksi.close()

if __name__=="__main__":
lakukanKoneksi()

Output :

- Menggunakan RIGHT JOIN :

Source Code :
import mysql.connector
from mysql.connector import Error

def lakukanKoneksi():
""" Koneksi Ke Server """
try:
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'databasebuku')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
sql = "select \
konsumen.nama as konsumen,\
produk.nama as favorit \
from konsumen \
right join produk on konsumen.fav = produk.id"
kursorKu.execute(sql)
hasilKu = kursorKu.fetchall()
for x in hasilKu:
print(x)
except Error as e:
print(e)

finally:
koneksi.close()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 28


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

if __name__=="__main__":
lakukanKoneksi()

Output :

26. Menciptakan Database MySQL Dengan GUI Python

Source Code :
import mysql.connector, sys
from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from design import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pb_ciptakanDB.clicked.connect(self.buatDB)
self.show()

def buatDB(self):
try:
koneksi = mysql.connector.connect(host='localhost',
user='root',
password='')
if koneksi.is_connected():
kursorKu = koneksi.cursor()
kursorKu.execute("Create database "+self.ui.le_namaDB.text())
self.ui.label_tanggapan.setText("Database berhasil
diciptakan")
except Error as e:
self.ui.label_tanggapan.setText("error telah terjadi")
finally:
koneksi.close()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 29


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

Tampilan Aplikasi :

27. Menciptakan Table Database MySQL dengan GUI Python

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 30


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

Source Code :
import mysql.connector, sys
from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from koneksi_database import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pb_ciptakanDB.clicked.connect(self.buatTB)
self.ui.buatTable.clicked.connect(self.buatTB)
self.show()

def buatTB(self):
try :

koneksi = mysql.connector.connect(host = 'localhost',


user = 'root',
password = '',
database =
self.ui.le_namaDB.text())
namaTable = self.ui.namaTB.text()
namaKolom = self.ui.namaKolom.text()
tipeData =
self.ui.tipeData.itemText(self.ui.tipeData.currentIndex())
panjangData = self.ui.panjangData.text()
panjangDataFix = "("+panjangData+")"
sql = "create table if not exists "+namaTable+"
"+"("+namaKolom+" "+tipeData+" "+panjangDataFix+");"

if koneksi.is_connected():
self.ui.label_tanggapan.setText("Database berhasil
dikoneksi")
kursor = koneksi.cursor()
kursor.execute(sql)
self.ui.label_tanggapan.setText("Table berhasil dibuat")

except Error as e:
self.ui.label_tanggapan.setText("Database gagal dikoneksi")
finally :
koneksi.close()

if __name__=="__main__":

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 31


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

Tampilan Program :

28. Menavigasi Baris-Baris pada Table


Source Code :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 32


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication, QTableWidgetItem
from mysql.connector import Error
from deign import *

NoBaris = 1
sql = "select email from ekomers, password from ekomers"

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbPertama.clicked.connect(self.barisPertama)
self.ui.pbSebelumnya.clicked.connect(self.barisSebelumnya)
self.ui.pbSelanjutnya.clicked.connect(self.barisSelanjutnya)
#self.ui.pbBarisTerakhir.clicked.connect(self.barisTerakhir)
self.show()

def koneksi(self):
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'demo')
cur = koneksi.cursor()
return [cur,koneksi]

def barisPertama(self):
self.ui.labelTanggapan.setText("")
try:
cur,koneksi = self.koneksi()
cur.execute(sql)
baris = cur.fetchone()
self.ui.leEmail.setText(baris[0])
self.ui.lePassword.setText(baris[1])
except Error as e:
self.ui.labelTanggapan.setText("Error saat mengakses table")
finally :
koneksi.close()

def barisSebelumnya(self):
global NoBaris
NoBaris -= 1
sql = "select email, password from ekomers where id="+str(NoBaris)

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 33


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

try :
cur,koneksi = self.koneksi()
cur = koneksi.cursor()
cur.execute(sql)
baris = cur.fetchone()
if baris is not None:
self.ui.labelTanggapan.setText("")
self.ui.leEmail.setText(baris[0])
self.ui.lePassword.setText(baris[1])
else :
NoBaris += 1
self.ui.labelTanggapan.setText("Ini adalah baris pertama")
except Error as e:
self.ui.labelTanggapan.setText("error mengakses tabel")
finally :
koneksi.close()

def barisSelanjutnya(self):
global NoBaris
NoBaris += 1
sql = "select email, password from ekomers where id="+str(NoBaris)
try :
cur,koneksi = self.koneksi()
cur = koneksi.cursor()
cur.execute(sql)
baris = cur.fetchone()
if baris is not None:
self.ui.labelTanggapan.setText("")
self.ui.leEmail.setText(baris[0])
self.ui.lePassword.setText(baris[1])
else :
NoBaris -= 1
self.ui.labelTanggapan.setText("Ini adalah baris terakhir")
except Error as e:
self.ui.labelTanggapan.setText("error mengakses tabel")
finally :
koneksi.close()

def barisSebelumnya(self):
global NoBaris
NoBaris -= 1
sql = "select email, password from ekomers where id="+str(NoBaris)
try :
cur,koneksi = self.koneksi()
cur = koneksi.cursor()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 34


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

cur.execute(sql)
baris = cur.fetchone()
if baris is not None:
self.ui.labelTanggapan.setText("")
self.ui.leEmail.setText(baris[0])
self.ui.lePassword.setText(baris[1])
else :
NoBaris += 1
self.ui.labelTanggapan.setText("Ini adalah baris pertama")
except Error as e:
self.ui.labelTanggapan.setText("error mengakses tabel")
finally :
koneksi.close()

def barisTerakhir(self):
try:
cur,koneksi = self.koneksi()
cur = koneksi.cursor()
cur.execute(sql)
self.ui.labelTanggapan.setText("")

for baris in cur.fetchall():


self.ui.leEmail.setText(baris[0])
self.ui.lePassword.setText(baris[1])

except Error as e:
self.ui.labelTanggapan.setText("Error saat mengakses table")
finally :
koneksi.close()

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

29. Menyeleksi Baris-Baris Pada Database


Source Code :

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 35


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication, QTableWidgetItem
from mysql.connector import Error
from design import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbTampilBaris.clicked.connect(self.tampilBaris)
self.show()

def tampilBaris(self):
sql = "select * from " + self.ui.leNamaTB.text()
try :
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database =
self.ui.lenNamaDB.text())
if koneksi.is_connected():
cur = koneksi.cursor()
cur.execute(sql)
baris = cur.fetchall()
noBaris = 0
for tuple in baris:
self.ui.labelTanggapan.setText("")
noKolom = 0
for kolom in tuple:
satuKolom = QTableWidgetItem(kolom)

self.ui.tableWidget.setItem(noBaris,noKolom,satuKolom)
noKolom+=1
noBaris+=1
except Error as e:
self.ui.tableWidget.clear()
self.ui.labelTanggapan.setText("Error mengakses tabel")
finally :
koneksi.close()

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 36


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

w.show()
sys.exit(app.exec_())

30. Menyisipkan Baris


Source Code :

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from design import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbSisipkanBaris.clicked.connect(self.sisipBaris)
self.show()

def sisipBaris(self):
email = self.ui.leEmail.text()
password = self.ui.lePassword.text()
namaTable = self.ui.leNamaTB.text()
sql = "insert into " + namaTable + " (email,password)" + " values ("+
"'" + email + "'" + "," + "'" + password + "'" + ");"

try :
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database =
self.ui.leNamaDB.text())
if koneksi.is_connected():
cur = koneksi.cursor()
cur.execute(sql)
koneksi.commit()
self.ui.labelTanggapan.setText("Data berhasil disisipkan")
self.ui.leEmail.clear()
self.ui.lePassword.clear()

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 37


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
self.ui.labelTanggapan.setText(sql)
print(sql)
finally :
koneksi.close()

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

31. Melakukan Otentikasi Data


Source Code :

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from design import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbCari.clicked.connect(self.cariBaris)
self.show()

def koneksi(self):
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'demo')
cur = koneksi.cursor()
return [cur,koneksi]

def cariBaris(self):
email = self.ui.leEmail.text()
password = self.ui.lePassword.text()
sql = "select email,password from ekomers where email like
'"+email+"' and password like '"+password+"'"

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 38


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

try :
cur,koneksi = self.koneksi()
cur = koneksi.cursor()
cur.execute(sql)
baris = cur.fetchone()
if baris == None:
self.ui.labelTanggapan.setText("Maaf, alamat email atau
password tidak salah")
else :
self.ui.labelTanggapan.setText("Selamat Datang "+ email)
except Error as e:
self.ui.labelTanggapan.setText("Error mengakses baris")
finally :
koneksi.close()

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

32. Melakukan Pencarian Data Pada Database


Source Code :

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from design import *

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbCari.clicked.connect(self.cariBaris)
self.show()

def koneksi(self):
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 39


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

database = 'demo')
cur = koneksi.cursor()
return [cur,koneksi]

def cariBaris(self):
namaTabel = self.ui.leNamaTB.text()
email = self.ui.leEmail.text()
sql = "select password from "+namaTabel+" where email like
'"+email+"'"
try :
cur,koneksi = self.koneksi()
cur.execute(sql)
baris = cur.fetchone()
if baris == None:
self.ui.labelTanggapan.setText(sql)
print(sql)
self.ui.lePassword.setText("")
else :
self.ui.labelTanggapan.setText("Alamat email ditemukan,
password dari user ini adalah :")
self.ui.lePassword.setText(baris[0])
except Error as e:
self.ui.labelTanggapan.setText("Error saat mengakses baris")
finally :
koneksi.close()

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

33. Melakukan Updata Data Pada Database


Source Code :

import mysql.connector, sys


from PyQt5.QtWidgets import QDialog, QApplication
from mysql.connector import Error
from design import *

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 40


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

class formKu(QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.pbUbah.clicked.connect(self.ubahPassword)
self.show()

def koneksi(self):
koneksi = mysql.connector.connect(host = 'localhost',
user = 'root',
password = '',
database = 'demo')
cur = koneksi.cursor()
return [cur,koneksi]

def ubahPassword(self):
email = self.ui.leEmail.text()
passwordLama = self.ui.lePassword.text()
passwordBaru = self.ui.lePasswordBaru.text()
konfirmasi = self.ui.leKonfirmasiPassword.text()
sql = "select email,password from ekomers where email like
'"+email+"' and password like '"+passwordLama+"'"

try :
cur,koneksi = self.koneksi()
cur = koneksi.cursor()
cur.execute(sql)
baris = cur.fetchone()
if baris is None:
self.ui.labelTanggapan.setText("Maaf, alamat email atau
password salah")
else :
if passwordBaru == konfirmasi :
sqlUpdate = "update ekomers set password =
'"+passwordBaru+"' where email like '"+email+"'"
if koneksi.is_connected():
cur.execute(sqlUpdate)
koneksi.commit()
self.ui.labelTanggapan.setText("Password berhasil
diubah")
else :
self.ui.labelTanggapan.setText("Kedua password tidak
cocok")

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 41


MODUL PRAKTIKUM SISTEM MANAJEMEN BASIS DATA

except Error as e:
self.ui.labelTanggapan.setText(sqlUpdate)
finally :
koneksi.close

if __name__=="__main__":
app = QApplication(sys.argv)
w = formKu()
w.show()
sys.exit(app.exec_())

E. KESIMPULAN
Kesimpulan apa yang telah diperoleh setelah melaksanakan praktikum ini:

Dalam menggunakan perintah sql dalam python perlu melakukan beberapa instalasi seperti :
mysql connector dan xampp,xampp disini berfungsi sebagai mysql server.

Penggunaan DBMS Mysql memungkinkan untuk membuat sebuah aplikasi yang lebih kompleks
dan terstruktur secara manajemen data.

F. DAFTAR PUSTAKA

Sianipar, R.H., Siahaan, V. (2022). Pemrograman GUI: Python dan Database.

© 2023 Jurusan Teknik Komputer, Fakultas Teknik, UBT 42

Anda mungkin juga menyukai