Ngoding Santai: Bikin Aplikasi To-Do List Sederhana Pakai Python Biar Hidup Lebih Teratur!

Bikin Aplikasi To-Do List Sederhana dengan Python

PPLG

PPLG

Penulis

20 Sep 2026
43 x dilihat

Halo gaes! Apa kabar? Hidup makin hectic, banyak tugas numpuk sana-sini? Rasanya kepala mau pecah karena jadwal berantakan? Nah, jangan khawatir! Kali ini kita bakal spill rahasia gimana caranya bikin aplikasi To-Do List super simpel pakai Python. Dijamin bikin hidup kamu makin teratur, anti ribet, dan yang jelas: vibes ngodingnya asik banget!

Kenapa sih kita perlu To-Do List? Gini ngab, biar semua tugas itu tercatat, terorganisir, dan ga ada yang kelewat. Dari yang ngerjain project kantor, ngerjain tugas kuliah, sampai nyiram tanaman, semua bisa di-list biar ga lupa. Dan kenapa Python? Karena Python itu bahasa yang ramah banget buat pemula, sintaksnya gampang dicerna, dan powerful buat bikin macem-macem aplikasi, termasuk si To-Do List ini. Yuk, gaspol!

Konsep Dasar Aplikasi To-Do List Kita

Sebelum kita ngebut ngoding, kita pahami dulu nih konsep-konsep inti yang bakal kita pakai:

  • Penyimpanan Data: Kita butuh tempat buat nyimpen semua tugas. Untuk aplikasi sederhana ini, kita bakal pakai list di Python. Setiap item di list itu bisa berupa dictionary yang isinya info tugas (misal: nama tugas, status selesai/belum).
  • Fungsi-Fungsi Utama: Aplikasi To-Do List minimal harus bisa:
    • Tambah Tugas: Buat nambahin tugas baru ke list.
    • Lihat Tugas: Buat nampilin semua tugas yang udah ada.
    • Selesaikan Tugas: Buat nge-update status tugas jadi 'selesai'.
    • Hapus Tugas: Buat ngilangin tugas yang udah ga relevan.
  • Menu Interaktif: Biar user bisa milih mau ngapain (tambah, lihat, selesai, hapus, atau keluar).

Gampang kan? Yuk, skuy langsung praktek!

Skuy Ngoding! Langkah demi Langkah Bikin To-Do List

Kita akan bikin aplikasi ini dalam bentuk console-based, artinya kita akan berinteraksi lewat terminal atau command prompt. Ini dia langkah-langkahnya:

1. Persiapan Struktur Dasar

Kita mulai dengan sebuah list kosong untuk menyimpan tugas dan beberapa fungsi helper.

# List untuk menyimpan semua tugas kita
# Setiap tugas adalah dictionary dengan key 'deskripsi' dan 'selesai'
daftar_tugas = []

# Fungsi untuk menampilkan menu
def tampilkan_menu():
    print("\n--- Aplikasi To-Do List Sederhana ---")
    print("1. Tambah Tugas")
    print("2. Lihat Tugas")
    print("3. Selesaikan Tugas")
    print("4. Hapus Tugas")
    print("5. Keluar")
    print("-------------------------------------")

2. Fungsi tambah_tugas()

Fungsi ini bakal minta input deskripsi tugas dari user, lalu nambahin tugas baru ke daftar_tugas dengan status awal 'belum selesai'.

def tambah_tugas():
    deskripsi = input("Masukkan deskripsi tugas baru: ")
    # Kita tambahin tugas sebagai dictionary
    daftar_tugas.append({"deskripsi": deskripsi, "selesai": False})
    print(f"'{deskripsi}' berhasil ditambahkan!")

3. Fungsi lihat_tugas()

Ini bagian penting buat nampilin semua tugas yang ada. Kita akan kasih nomor urut biar gampang di-referensikan.

def lihat_tugas():
    if not daftar_tugas: # Cek apakah list tugas kosong
        print("Yah, belum ada tugas nih. Santai aja dulu, atau tambah tugas baru!")
        return

    print("\n--- DAFTAR TUGAS ---")
    for i, tugas in enumerate(daftar_tugas):
        status = "✅ Selesai" if tugas["selesai"] else "❌ Belum Selesai"
        print(f"{i+1}. {tugas['deskripsi']} [{status}]")
    print("--------------------")

4. Fungsi selesaikan_tugas()

Setelah tugas selesai dikerjakan, kita bisa tandai sebagai 'selesai'. User tinggal input nomor tugasnya.

def selesaikan_tugas():
    lihat_tugas() # Tampilkan dulu daftar tugas biar user tahu nomornya
    if not daftar_tugas:
        return

    try:
        nomor_tugas = int(input("Masukkan nomor tugas yang ingin diselesaikan: "))
        # Pastikan nomor tugas valid
        if 1 <= nomor_tugas <= len(daftar_tugas):
            daftar_tugas[nomor_tugas - 1]["selesai"] = True
            print(f"Tugas '{daftar_tugas[nomor_tugas - 1]['deskripsi']}' berhasil diselesaikan! Good job!")
        else:
            print("Nomor tugas tidak valid, gaes. Coba lagi ya.")
    except ValueError:
        print("Input tidak valid. Masukkan angka ya.")

5. Fungsi hapus_tugas()

Kadang ada tugas yang batal atau ga relevan lagi. Fungsi ini buat menghapusnya.

def hapus_tugas():
    lihat_tugas() # Tampilkan daftar tugas
    if not daftar_tugas:
        return

    try:
        nomor_tugas = int(input("Masukkan nomor tugas yang ingin dihapus: "))
        if 1 <= nomor_tugas <= len(daftar_tugas):
            # Hapus tugas dari list
            tugas_dihapus = daftar_tugas.pop(nomor_tugas - 1)
            print(f"Tugas '{tugas_dihapus['deskripsi']}' berhasil dihapus.")
        else:
            print("Nomor tugas tidak valid, gaes. Coba lagi ya.")
    except ValueError:
        print("Input tidak valid. Masukkan angka ya.")

6. Menu Utama Aplikasi (Loop Interaktif)

Ini adalah "otak" aplikasi kita, tempat di mana user bisa berinteraksi terus-menerus sampai dia memilih untuk keluar.

def main():
    while True: # Loop terus-menerus sampai user milih keluar
        tampilkan_menu()
        pilihan = input("Pilih opsi (1-5): ")

        if pilihan == '1':
            tambah_tugas()
        elif pilihan == '2':
            lihat_tugas()
        elif pilihan == '3':
            selesaikan_tugas()
        elif pilihan == '4':
            hapus_tugas()
        elif pilihan == '5':
            print("Sampai jumpa! Semoga harimu produktif. Bye bye!")
            break # Keluar dari loop
        else:
            print("Pilihan tidak valid nih, ngab. Coba lagi ya dengan angka 1-5.")

# Ini adalah cara standar untuk menjalankan fungsi main()
# saat script ini dijalankan
if __name__ == "__main__":
    main()

Kode Lengkapnya (Digabung Jadi Satu)

# List untuk menyimpan semua tugas kita
daftar_tugas = []

# Fungsi untuk menampilkan menu
def tampilkan_menu():
    print("\n--- Aplikasi To-Do List Sederhana ---")
    print("1. Tambah Tugas")
    print("2. Lihat Tugas")
    print("3. Selesaikan Tugas")
    print("4. Hapus Tugas")
    print("5. Keluar")
    print("-------------------------------------")

# Fungsi untuk menambahkan tugas baru
def tambah_tugas():
    deskripsi = input("Masukkan deskripsi tugas baru: ")
    daftar_tugas.append({"deskripsi": deskripsi, "selesai": False})
    print(f"'{deskripsi}' berhasil ditambahkan!")

# Fungsi untuk melihat semua tugas
def lihat_tugas():
    if not daftar_tugas:
        print("Yah, belum ada tugas nih. Santai aja dulu, atau tambah tugas baru!")
        return

    print("\n--- DAFTAR TUGAS ---")
    for i, tugas in enumerate(daftar_tugas):
        status = "✅ Selesai" if tugas["selesai"] else "❌ Belum Selesai"
        print(f"{i+1}. {tugas['deskripsi']} [{status}]")
    print("--------------------")

# Fungsi untuk menandai tugas sebagai selesai
def selesaikan_tugas():
    lihat_tugas()
    if not daftar_tugas:
        return

    try:
        nomor_tugas = int(input("Masukkan nomor tugas yang ingin diselesaikan: "))
        if 1 <= nomor_tugas <= len(daftar_tugas):
            daftar_tugas[nomor_tugas - 1]["selesai"] = True
            print(f"Tugas '{daftar_tugas[nomor_tugas - 1]['deskripsi']}' berhasil diselesaikan! Good job!")
        else:
            print("Nomor tugas tidak valid, gaes. Coba lagi ya.")
    except ValueError:
        print("Input tidak valid. Masukkan angka ya.")

# Fungsi untuk menghapus tugas
def hapus_tugas():
    lihat_tugas()
    if not daftar_tugas:
        return

    try:
        nomor_tugas = int(input("Masukkan nomor tugas yang ingin dihapus: "))
        if 1 <= nomor_tugas <= len(daftar_tugas):
            tugas_dihapus = daftar_tugas.pop(nomor_tugas - 1)
            print(f"Tugas '{tugas_dihapus['deskripsi']}' berhasil dihapus.")
        else:
            print("Nomor tugas tidak valid, gaes. Coba lagi ya.")
    except ValueError:
        print("Input tidak valid. Masukkan angka ya.")

# Fungsi utama yang menjalankan aplikasi
def main():
    while True:
        tampilkan_menu()
        pilihan = input("Pilih opsi (1-5): ")

        if pilihan == '1':
            tambah_tugas()
        elif pilihan == '2':
            lihat_tugas()
        elif pilihan == '3':
            selesaikan_tugas()
        elif pilihan == '4':
            hapus_tugas()
        elif pilihan == '5':
            print("Sampai jumpa! Semoga harimu produktif. Bye bye!")
            break
        else:
            print("Pilihan tidak valid nih, ngab. Coba lagi ya dengan angka 1-5.")

# Memastikan fungsi main() dijalankan saat script dieksekusi
if __name__ == "__main__":
    main()

Tips & Best Practices Biar Aplikasi Makin Ciamik!

Oke, kita udah punya To-Do List yang berfungsi. Tapi namanya juga developer sejati, pasti pengen yang lebih dong! Ini beberapa ide buat upgrade aplikasi kamu:

  • Persistensi Data: Nah, ini penting banget. Saat ini, semua tugas bakal hilang kalau aplikasi ditutup. Kamu bisa simpan data ke file (misal: file teks, CSV, atau JSON) biar data tugasnya awet.
    • JSON: Paling enak pakai JSON (import json). Sebelum keluar, simpan daftar_tugas ke file JSON. Saat aplikasi dimulai, baca lagi dari file JSON.
  • Validasi Input Lebih Kuat: Pastikan user bener-bener masukin angka atau teks yang valid. Misalnya, cek apakah input nomor tugas memang berupa angka. (Sudah sedikit kita implementasikan dengan try-except ya, gaes!)
  • Fitur Tambahan:
    • Prioritas Tugas: Kasih level prioritas (High, Medium, Low).
    • Batas Waktu (Deadline): Tambahin tanggal deadline buat setiap tugas.
    • Filter Tugas: Tampilkan hanya tugas yang 'belum selesai' atau 'selesai'.
    • Edit Tugas: Fungsi untuk mengubah deskripsi tugas yang sudah ada.
  • User Interface (UI): Kalau kamu pengen tampilan yang lebih keren dari sekadar terminal, kamu bisa coba bikin UI pakai library Python seperti:
    • Tkinter: Built-in di Python, gampang dipelajari buat UI desktop sederhana.
    • PyQt/PySide: Lebih powerful buat aplikasi desktop yang kompleks.
    • Streamlit/Flask: Kalau mau bikin aplikasi web yang bisa diakses lewat browser.

Penutup

Gimana, gaes? Seru kan bikin aplikasi To-Do List sendiri pakai Python? Dari sini, kamu udah punya pondasi yang kuat buat mulai project-project Python lainnya. Ingat, coding itu kayak skill lainnya, makin sering dilatih, makin jago! Jangan takut eksplorasi, jangan takut error, karena dari situlah kita belajar.

Terus semangat ngodingnya, ya! Kalau ada pertanyaan atau mau spill project Python kamu, jangan ragu! Keep moving forward and stay productive! 💪

0.0

Berikan Rating

Komentar (0)

Silakan login untuk memberikan komentar.

Login Sekarang

Belum ada komentar. Jadilah yang pertama!

Menyukai Artikel (0)

Belum ada siswa yang menyukai artikel ini.