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 dibuatUntuk 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.



Design UI/UX 





Informasi lainnya 

Sumber inspirasi yang digunakan:

https://youtu.be/Miydkti_QVE?si=cMpbs5LI7gBBQ4R6 (rencana untuk menggunakan Customtkinter)



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 

Komentar

  1. wih keren bang makasih bang. Jadi ndak perlu cari project lagi, pakai project nya abang aja

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Tugas 1 Konfigurasi dasar Mikrotik OS. XI_TKJ_3 Sean Finoe Rizqy_ No absen 28.

Tugas 2 Konfigurasi dasar Mikrotik Os dengan VMWARE dan Ip statis. XI_TKJ_3 Sean Finoe Rizqy_No absen 28.