Python project (tugas PPLG untuk persiapan presentasi)
Python Project
Kata pengatar
Halo teman-teman TKJ SMKN 1 MOJOKERTO, pada blogger ini berisi penjelasan tentang project apa yang kita buat menggunakan python framework. Dan untuk isinya adalah sebagai berikut. Project yang dibuat, framework dan modul yang digunakan, penjelasan framework database mysql.connector dan openpyxl fitur aplikasi ini, cara kerja aplikasi beserta databasenya, laporan percobaan aplikasi, dan design UI/UX.
Project yang dibuat
Untuk project yang kita buat adalah aplikasi rekapan keuangan kas, dimana pada aplikasi ini kita hanya diharuskan untuk memasukkan data keuagan kas.
Framework dan modul yang digunakan
Untuk tampilan / front-end menggunakan:
- Tkinter "sebagai kerangka utama dari aplikasi ini (ibarat HTML)"
- Messagebox "modul dari tkinter untuk membuat tampilan pesan pemberitahuan"
- CustomTkinter "sebagai kustomisasi tambahan dari aplikasi ini (ibarat CSS)"
- PIL / pillow "framework pemuncul gambar dari python"
Untuk sistem / back-end menggunakan:
- ttk "modul dari tkinter yang digunakan untuk pemuncul table data yang bisa dilihat dan dirubah oleh user"
- tkcalendar "modul dari tkinter yang digunakan untuk membuat sistem kalendar secara real-time tanpa harus membuat values"
Bonus back-end: Python native logic
Untuk database menggunakan:
- mysql.connector "framework python untuk database mysql"
- openpyxl "framework python untuk database excel"
Penjelasan framework database
Sebelum masuk penjelasan perlu diketahui bahwa database ada yang hanya dapat diakses oleh sisi developer maupun bisa diakses oleh semuanya. Untuk framework database yang digunakan adalah mysql.connector dan openpyxl.
Penjelasan mysql.connector
framework python untuk menyambungkan antara aplikasi python ke database basis SQL jenis 'MySQL PHPMyAdmin' dimana data tersebut akan disusun sesuai dengan struktur apa yang sudah dibuat. Untuk database basis SQL ada beberapa jenis yang saya ketahui yaitu: MySQL, SQLite, PostgreSQL, MariaDB, sqlalchemy, dll. Untuk MySQL kita membutuhkan autenthikasi seperti ini:
<?php
$server= "localhost";
$user = "root";
$pass = "";
$database = "login baru 2";
$conn = mysqli_connect($server, $user, $pass, $database);
if (!$conn) {
die("<script>alert('Connection Failed.')</script>");
}
?>
authentikasi diatas untuk bahasa PHP
dan untuk Python membutuhkan autenthikasi seperti ini:
import mysql.connector
conn = mysql.connector.connect(
host ="localhost",
user = "root",
password = "",
database = "keuangan"
)
if conn.is_connected():
print("success Connected to MySQL Server")
authentikasi diatas untuk bahasa Python
Penjelasan openpyxl
framework python yang digunakan untuk memasukkan data pengguna ke dalam lembar kerja excel sesuai dengan apa yang diinginkan. Sebenarnya ini bukan framework database, hanya framework biasa dengan fungsionalitas untuk menyimpan suatu data dalam bentuk tabel excel (hampir mirip dengan MySQL dan lainnya), tetapi untuk kelebihan nya adalah mudah dioperasikan oleh semua kalangan, dapat kita print filenya untuk laporan keuangan,dikustomisasi tabel nya dalam hal warna tabel, lebar tabel, font tabel, border tabel, dll. Dan untuk kekurangan nya adalah tidak dapat dibuka apabila aplikasi belum ditutup, rentan corrupt apabila nama file excel diganti (kecuali file tersebut telah di duplikat, sehingga tidak terhubung dengan aplikasi)
Fitur aplikasi ini
Aplikasi ini memiliki beberapa fitur diantara yakni:
1a. fitur Utama
- table inputan
- submit
- select data
- update data
- delete data
- kalkulator
1b. fitur tambahan
- see the version
- about us
- appearance mode
- login history
- show table data
- hide table data
2. Penjelasan fitur utama
Dalam fitur Utama terdapat 6 fitur yang memiliki fungsi nya masing-masing diantaranya:
2a. table inputan: table data adalah salah satu fitur Utama yang dimana pada fitur ini User diharuskan mengisi data rekapan hari itu dengan isian data yang diminta adalah:
- id : memiliki range 1 hingga tak terbatas tergantung pada pemakaian.
- namapenginput : adalah nama user yang memasukkan data tersebut.
- tanggalinput : adalah tanggal hari itu data dimasukkan.
- pemasukkan : adalah nominal uang yang didapatkan user hari itu juga (misal pemasukan 200000).
- pengeluaran : adalah pengeluaran nominal uang yang digunakan untuk apapun (misal pengeluaran 50000).
- total : adalah total dari pemasukan dan pengeluaran hari dimana data dimasukkan (total adalah 150000).
2b. submit: tombol yang akan digunakan untuk mengirimkan semua data yang ada pada table inputan dengan catatan semua data tidak ada yang kosong / terlewat agar dapat menuju database.
2c. select data: tombol yang digunakan untuk memilih data yang ada dengan menulis id dari data tersebut baik untuk di update, di hapus. maupun sebagai data yang baru.
2d. update data: tombol yang digunakan sebagai pembaruan dari data yang ada, baik karena kesalahan input, maupun kesalahan nama user yang memasukkan dengan catatan hanya id yang tidak dapat di perbarui, maka apabila id terdapat kesalahan id maka diharuskan membuat data yang baru atau menghapus data yang salah.
2e. delete data: tombol yang digunakan untuk menghapus data yang ada, dengan hanya kita menulis id data tersebut ke dalam table inputan.
2f. kalkulator: digunakan untuk menghitung total dari pemasukan dan pengeluaran agar kita tidak salah dalam penghitungan.
3. penjelasan fitur tambahan
Dalam fitur tambahan terdapat 6 fitur yang memiliki fungsi nya masing-masing diantaranya:
3a. see the version: tombol yang memunculkan halaman berupa informasi versi aplikasi apa yang digunakan oleh user.
3b. about us: tombol yang memunculkan halaman informasi pengembang dari aplikasi ini.
3c. appearance mode: adalah sebuah switch yang digunakan untuk merubah tema aplikasi (terang, gelap).
3d. login history : tombol yang memunculkan halaman informasi login user dengan bentuk table data.
3e. show table : tombol yang digunakan untuk memunculkan table data inputan (table data tidak muncul secara default) dengan tujuan selain user tidak lupa pada id datanya ini juga memiliki tujuan agar data dapat terefresh secara berkala.
3f. hide table : tombol yang digunakan untuk menghilangkan table dengan tujuan data dapat terefresh dengan catatan table data muncul terlebih dahulu dan data tidak terefresh secara otomatis
Cara kerja aplikasi ini beserta databasenya
User akan diminta untuk login terlebih dahulu dengan memasukkan username dan password. Kemudian data tersebut akan masuk ke dalam database dan disimpan, sehingga user dapat masuk dan mengakses fitur dalam aplikasi ini seperti melihat login history, data rekapan, tabel rekapan, dll. Untuk merekap user akan diminta id, nama, tanggal, nominal masuk, dan keluar, beserta totalnya. Kemudian data tersebut akan masuk dan disimpan ke dalam database terpisah dengan login.
Laporan percobaan aplikasi
uji coba aplikasi
uji coba fungsi submit
masukkan 12 data valid dengan ketentuan sebagai berikut
id = 1 - 12
nama = egha(1, 5, 9, 13), sean(2, 6, 10, 14), nesa(3, 7, 11, 15), fira(4 ,8, 12, 16)
tanggal = 4/2/24 - 4/14/24
pemasukan = 100.000 - 2.000.000
pengeluaran = 0 - 500.000
total = (pemasukan - pengeluaran)
uji coba fungsi update
masukkan 2 data tidak valid dengan ketentuan sebagai berikut
data pertama:
id = 13
nama = sean (tidak valid)
tanggal = 4/16/24 (tidak valid)
pemasukan = 200.000
pengeluaran = 100.000 (tidak valid)
total = 500.000 (tidak valid)
data kedua:
id = 14
nama = fira (tidak valid)
tanggal = 4/18/24 (tidak valid)
pemasukan = 1.000.000 (tidak valid)
pengeluaran = 100.000 (tidak valid)
total = 200.000 (tidak valid)
kemudian update 2 data tidak valid dengan ketentuan sebagai berikut
data pertama:
id = 13
nama = egha
tanggal = 4/15/24
pemasukan = 200.000
pengeluaran = 150.000
total = 50.000
data kedua:
id = 14
nama = sean
tanggal = 4/16/24
pemasukan = 100.000
pengeluaran = 0
total = 100.000
uji coba fungsi delete
masukkan 1 data tidak valid dengan ketentuan sebagai berikut
id = 20 (tidak valid)
nama = egha (tidak valid)
tanggal = 4/6/24 (tidak valid)
pemasukan = 200.000 (tidak valid)
pengeluaran = 100.000 (tidak valid)
total = 500.000 (tidak valid)
kemudian pilih id yang salah (id 20) untuk dihapus
uji coba fungsi select
pilih 1 data (id 14) dengan menulis nya di table inputan, kemudian klik tombol select, dan isi dengan ketentuan sebagai berikut
id = 15
nama = nesa
tanggal = 4/17/24
pemasukan = 200.000
pengeluaran = 100.000
total = 100.000
setelah selesai bisa disubmit sebagai data baru
Hasil dari percobaan tersebut adalah berhasil. Karena fungsi sudah sesuai harapan developer agar para user tidak mengeluh karena masalah bug.
Informasi lainnya
Sumber inspirasi yang digunakan:
https://youtu.be/Miydkti_QVE?si=cMpbs5LI7gBBQ4R6 (rencana untuk menggunakan Customtkinter)
Official Documentation And Tutorial | CustomTkinter (tomschimansky.com) (dokumentasi penggunaan customtkinter)
GitHub - renzycode/inventory_system_python_tkinter: Inventory System using Python Tkinter SQLite Database (untuk bentuk sistem yang ingin diimplementasikan 'Sistem CRUD' )
https://youtu.be/b1g1vlpLQuM?si=lCB1C_wRZS_0pRdV (untuk sistem database excel)
https://youtu.be/QQM9Q1Cd5CA?si=pUSnQWRcFXrzywIr (video contoh bagaimana sistem CRUD diimplementasikan di aplikasi)
MySQL CRUD Operations In Python Using GUI Tkinter (codewithap.com) (untuk contoh bagaimana sistem CRUD diimplementasikan di aplikasi)
Source code:
https://github.com/tntmc/python-app
mohon untuk menunggu hingga aplikasi dinilai dan dinyatakan selesai. Apabila telah dilakukan maka source code akan saya bagikan melalui link github saya
wih keren bang makasih bang. Jadi ndak perlu cari project lagi, pakai project nya abang aja
BalasHapus