Selamat datang di blog pribadi Hari. Pada artikel kali ini saya akan membagikan kode aplikasi to-do list sederhana menggunakan python. Aplikasi sederhana ini bertujuan untuk menguji alur pikir atau logika dalam menggunakan suatu bahasa pemrograman, seperti python.
Saya akan menjelaskan bagian per bagian dari aplikasi ini dengan sesederhana mungkin. Fitur aplikasi cukup umum yang mana terdapat fungsi lihat, tambah, hapus list; keluar dari aplikasi.
Gambaran Keseluruhan Aplikasi To-Do List Python Sederhana
Gambaran keseluruhan dari hal atau fungsi yang dibutuhkan oleh aplikasi to-do list, yakni:
- Halaman depan/1: menampilkan kalimat yang akan pengguna lihat pertama kali. Selain itu ada opsi lanjut atau tidaknya pengguna ke tampilan berikutnya, di sini cukup menggunakan ‘Yes/No’.
- Halaman utama/2: jika pengguna melanjutkan proses dengan memilih ‘Yes’, maka tampilan kedua akan muncul. Halaman ini adalah kumpulan fungsi utama yang dibutuhkan, yakni terdiri dari lihat, tambah, hapus list; keluar dari aplikasi.
Berikut adalah seluruh blok dari kode aplikasi to-do list ini, yang terdiri dari 69 baris kode. ‘Perluas’ untuk melihat semua baris; ‘Ciutkan’ untuk mengecilkan tampilan. Anda bisa langsung menyalin kode dan menggunakannya dengan menekan ikon ‘salin’ di pojok kanan baris.
#Import modul
import sys #untuk exit() dari program
#Variabel
tugas = []
#Def
def halaman_depan():
pilihan = input("Lanjut ke aplikasi? (Yes/No): ").lower()
if pilihan == "no":
print("Keluar dari aplikasi. Sampai jumpa!")
sys.exit()
elif pilihan == "yes":
print("Memasuki aplikasi...")
else:
print("Pilihan tidak valid.")
halaman_depan()
def lihat_list():
if not tugas:
print("Belum ada list nih...")
else:
for nomor, item_tugas in enumerate(tugas, start=1):
print(f"No-{nomor}. {item_tugas}")
def tambah_list():
list_baru = input("Ketik tugas baru yang ingin ditambahkan: ")
tugas.append(list_baru)
print(f"'{list_baru}' berhasil ditambahkan ke dalam list!")
def hapus_tugas(index):
if 0 <= index < len(tugas):
removed = tugas.pop(index)
print(f"Tugas '{removed}' dihapus.")
else:
print("Nomor tugas tidak valid.")
def halaman_utama():
Pilih = int(input("Masukan angka:"))
if Pilih == 1:
lihat_list()
elif Pilih == 2:
tambah_list()
elif Pilih == 3:
lihat_list()
if len(tugas) > 0:
try:
nomor_tugas = int(input("Masukkan nomor tugas yang ingin dihapus: "))
index_hapus = nomor_tugas - 1 # Ubah ke index list (mulai dari 0)
hapus_tugas(index_hapus)
except ValueError:
print("Input tidak valid. Harap masukkan angka.")
elif Pilih == 4:
sys.exit()
#Main code
print("_____\nSelamat datang di\nSAGMA\nAplikasi to-do-list paling populer\n_____")
halaman_depan()
#Baris ini akan dijalankan jika pengguna pilih Yes
print("Mohon ketik angka sesuai fungsi yang diinginkan:")
print("1 = Lihat list\n2 = Nambah list\n3 = Hapus list\n4 = Keluar")
halaman_utama()
#Loop untuk kemudahan
while True:
print("\nMohon ketik angka sesuai fungsi yang diinginkan:")
print("1 = Lihat list\n2 = Nambah list\n3 = Hapus list\n4 = Keluar")
halaman_utama()Output dari kode python di atas adalah sebagai berikut.
_____
Selamat datang di
SAGMA
Aplikasi to-do-list paling populer
_____
Lanjut ke aplikasi? (Yes/No):
Jika pengguna memilih Yes akan menampilkan output lanjutan berikut.
Memasuki aplikasi...
Mohon ketik angka sesuai fungsi yang diinginkan:
1 = Lihat list
2 = Nambah list
3 = Hapus list
4 = Keluar
Masukan angka:
Penjelasan Per Bagian
Untuk lebih memahami fungsi dari setiap bagian kode (potongan kode), saya akan menjelaskan di bagian ini.
1. Blok import
#Import modul
import sys #untuk exit() dari programPada blok ini, kita melakukan import modul sys untuk menghentikan program apabila pengguna memilih nomor ‘4 = Keluar’. Cara memanggil modul sys adalah dengan sintaks ‘sys.exit()’.
2. Blok Variabel
#Variabel
tugas = []Blok variabel ini berguna untuk mengumpulkan seluruh variabel yang dipakai, yang mana dalam aplikasi ini menggunakan satu variabel saja, yakni ‘tugas’. Variabel ‘tugas’ tersebut dalam bentuk list, sehingga menggunakan kurung siku. Tanda ‘[]’ yang kosong menjelaskan bahwa dalam variabel ‘tugas’ belum ada list tugas apa pun.
3. Blok Halaman Depan
#Def
def halaman_depan():
pilihan = input("Lanjut ke aplikasi? (Yes/No): ").lower()
if pilihan == "no":
print("Keluar dari aplikasi. Sampai jumpa!")
sys.exit()
elif pilihan == "yes":
print("Memasuki aplikasi...")
else:
print("Pilihan tidak valid.")
halaman_depan()Blok halaman depan berisi aksi yang akan dilakukan oleh program berdasarkan input yang pengguna inginkan, dalam hal ini apakah pengguna mau masuk ke aplikasi atau tidak. Sintaks .lower() dipakai untuk merubah seluruh input dari pengguna menjadi dalam bentuk lowercase, ini mempermudah program. Artinya, tidak masalah pengguna mengetikan ‘YEs’, ‘YES’, ‘yes’, atau ‘yEs’ program akan tetap mengenali input dalam bentuk ‘yes’.
Jika inputnya ‘Tidak/no’ maka program akan berhenti, dan menampilkan teks “Keluar dari aplikasi. Sampai jumpa!”. Di sini saya memanggil modul tadi, yakni sys dengan sys.exit(). Jika inputnya ‘Iya/yes’ maka program akan lanjut ke baris kode selanjutnya.
Di sisi lain, pengguna mungkin saja memasukkan input selain ‘yes/no’ misalnya ‘lanjut/berhenti/keluar’. Oleh karena itu, perlu aksi lain yang akan ditampilkan ketika pengguna salah memasukkan input, yakni dengan menyisipkan sebuah kalimat “Pilihan tidak valid.” di sintaks else, selanjutnya program harus kembali ke halaman depan dengan menyisipkan halaman_depan().
4. Blok Lihat List
def lihat_list():
if not tugas:
print("Belum ada list nih...")
else:
for nomor, item_tugas in enumerate(tugas, start=1):
print(f"No-{nomor}. {item_tugas}")Salah satu fitur wajib aplikasi to-do list adalah melihat daftar tugas saat ini, maka perlu membuat sebuah fungsi khusus yang mana saya namai lihat_list(). Baris kode ke-20 dan 21 memiliki arti jika variabel tugas kosong (tidak ada daftar tugas), maka munculkan “Belum ada list nih…”. Selain itu—dalam hal ini variabel tugas memiliki isi, maka jalankan baris kode selanjutnya.
Baris kode ke-23 dan 24 berfungsi untuk menampilkan daftar tugas, terdiri atas indeks (nomor ke-1/2/3 dst) dan nilai (nama tugasnya) secara bersamaan pada setiap perulangan. Hal ini mempermudah pengguna membaca tugas yang telah dimasukan. Sintaks start=1 berfungsi untuk memulai perhitungan indeks dari nomor 1.
5. Blok Tambah List
def tambah_list():
list_baru = input("Ketik tugas baru yang ingin ditambahkan: ")
tugas.append(list_baru)
print(f"'{list_baru}' berhasil ditambahkan ke dalam list!")Fitur wajib lainnya dari aplikasi to-do list adalah menambah tugas, sehingga di sini saya membuat fungsi baru bernama tambah_list(). Baris kode ke-27 berfungsi memunculkan input agar pengguna bisa menulis tugas baru yang ingin ditambah. Penambahan tugas baru ke variabel tugas dilakukan dengan menggunakan sintaks .append seperti baris ke-28. Baris ke-29 berfungsi agar pengguna menerima notifikasi bahwa tugas sudah ditambahkan.
6. Blok Hapus List
def hapus_tugas(index):
if 0 <= index < len(tugas):
removed = tugas.pop(index)
print(f"Tugas '{removed}' dihapus.")
else:
print("Nomor tugas tidak valid.")Fitur wajib selain tambah list adalah menghapus list yang sudah ada, di sini saya membuat fungsi baru bernama hapus_tugas(index). Parameter bernama (index) menunjukkan posisi elemen dalam list tugas yang akan dihapus, apakah ingin menghapus tugas nomor 1/2/lainnya. Nama parameter bebas, output tidak akan berubah.
Baris kode ke-32 mengecek apakah nilai index valid. Artinya bahwa input nomor berapa tugas yang ingin dihapus tidak boleh negatif, serta harus lebih kecil dari jumlah tugas yang ada. Misal pengguna ingin menghapus tugas nomor 7, sementara jumlah tugas di daftar hanya 5, maka input dari pengguna tidak valid dan menampilkan pesan “Nomor tugas tidak valid.”.
Jika input valid, maka tugas ke-(index) akan dihapus (menggunakan fungsi .pop) dari daftar tugas. Nilai ini selanjutnya disimpan dalam variabel bernama removed, berguna untuk mempermudah menampilkan pesan ke pengguna.
7. Blok Halaman Utama
def halaman_utama():
Pilih = int(input("Masukan angka:"))
if Pilih == 1:
lihat_list()
elif Pilih == 2:
tambah_list()
elif Pilih == 3:
lihat_list()
if len(tugas) > 0:
try:
nomor_tugas = int(input("Masukkan nomor tugas yang ingin dihapus: "))
index_hapus = nomor_tugas - 1 # Ubah ke index list (mulai dari 0)
hapus_tugas(index_hapus)
except ValueError:
print("Input tidak valid. Harap masukkan angka.")
elif Pilih == 4:
sys.exit()Setelah pengguna input ‘yes’ di halaman depan, selanjutnya akan masuk ke halaman utama/2. Halaman ini berfungsi sebagai potongan kode untuk eksekusi input dari pengguna.
Ketika pengguna input angka 1, maka blok kode lihat list akan dijalankan; angka 2, maka blok kode tambah list akan dijalankan; angka 3, maka blok kode hapus tugas akan dijalankan; angka 4, maka keluar (menghentikan) program.
Saya akan menjelaskan lebih detail terkait input angka 3, yang mana tidak langsung menjalakan blok kode hapus tugas. Baris kode ke-45 memunculkan tugas yang ada saat ini beserta nomor indeksnya, tujuannya untuk mempermudah pengguna melihat tugasnya.
Baris kode ke-46 memastikan apakah daftar tugas tidak kosong, jika benar maka fungsi try atau except akan dijalankan. Kalau daftar kosong, blok if ini dilewati, sehingga tidak ada percobaan menghapus (menghindari error).
Blok try digunakan untuk mencoba menjalankan kode yang bisa berpotensi error. Jika ada error, program tidak akan berhenti, tetapi pindah ke blok except
Pada blok kode try, pengguna harus memasukkan nomor tugas yang dihapus, input ini disimpan ke variabel nomor_tugas. Jika pengguna angka atau huruf lain, maka program menghasilkan ValueError (nilai error) dan ditangan oleh fungsi except.
Pada baris kode ke-49 bertujuan untuk menyelaraskan input dari pengguna dengan python. Hal ini karena biasanya pengguna berpikir nomor dimulai dari 1 (tugas pertama = nomor 1). Tapi dalam list Python, index dimulai dari 0 (tugas pertama = index 0). Jadi kurangi nomor_tugas dengan 1 agar selaras.
8. Blok Kode Utama
#Main code
print("_____\nSelamat datang di\nSAGMA\nAplikasi to-do-list paling populer\n_____")
halaman_depan()
#Baris ini akan dijalankan jika pengguna pilih Yes
print("Mohon ketik angka sesuai fungsi yang diinginkan:")
print("1 = Lihat list\n2 = Nambah list\n3 = Hapus list\n4 = Keluar")
halaman_utama()Di blok ini digunakan untuk menampilkan halaman 1 ketika pengguna masuk ke aplikasi. Tanda \n berfungsi sebagai pemisah kalimat agar tampil pada baris yang berbeda di sisi antarmuka (frontend), tanpa perlu dilakukan secara manual di backend. Sehingga menghemat jumlah baris yang ada.
9. Blok Loop
#Loop untuk kemudahan
while True:
print("\nMohon ketik angka sesuai fungsi yang diinginkan:")
print("1 = Lihat list\n2 = Nambah list\n3 = Hapus list\n4 = Keluar")
halaman_utama()Kode ini membuat sebuah menu utama interaktif yang selalu muncul kembali setelah pengguna melakukan suatu tindakan. Setelah fungsi halaman_utama() selesai, perulangan akan kembali menampilkan menu (kecuali fungsi tersebut menghentikan loop).
Akhir Kata
Pembuatan aplikasi to-do list sederhana dengan python di atas semoga dapat memberikan pemahaman bagi Anda. Anda bisa melakukan variasi baik kalimat/sintaks sesuai dengan keinginan sendiri. Ke depannya artikel ini akan terus diperbarui baik dari segi penyampaian maupun kelengkapan lainnya. Bila ada pertanyaan, silakan komentar di bawah ini.