Proyek Akhir (Level 2)

 

šŸ›  Proyek Akhir (Level 2)

Setelah memahami konsep pemrograman Python tingkat menengah, saatnya membuat dua proyek akhir yang akan menguji pemahaman kita:

1️⃣ Aplikasi To-Do List berbasis terminal → Untuk mengelola daftar tugas.
2️⃣ Web Scraper sederhana → Untuk mengambil data dari website secara otomatis.


✅ 1. Aplikasi To-Do List Berbasis Terminal

šŸ“Œ Fitur yang akan dibuat:
✅ Menambahkan tugas baru
✅ Menampilkan daftar tugas
✅ Menghapus tugas
✅ Menyimpan & memuat data tugas dari file

šŸ”¹ Kode Python To-Do List

import json

# File tempat menyimpan tugas
FILE_NAME = "todo_list.json"

# Fungsi untuk memuat tugas dari file JSON
def load_tasks():
    try:
        with open(FILE_NAME, "r") as file:
            return json.load(file)
    except FileNotFoundError:
        return []

# Fungsi untuk menyimpan tugas ke file JSON
def save_tasks(tasks):
    with open(FILE_NAME, "w") as file:
        json.dump(tasks, file, indent=4)

# Fungsi untuk menampilkan daftar tugas
def show_tasks(tasks):
    if not tasks:
        print("✅ Tidak ada tugas saat ini!")
    else:
        print("\nšŸ“Œ Daftar Tugas:")
        for i, task in enumerate(tasks, start=1):
            print(f"{i}. {task}")

# Fungsi untuk menambahkan tugas
def add_task(tasks):
    task = input("Masukkan tugas baru: ")
    tasks.append(task)
    save_tasks(tasks)
    print(f"✅ Tugas '{task}' telah ditambahkan!")

# Fungsi untuk menghapus tugas
def remove_task(tasks):
    show_tasks(tasks)
    try:
        index = int(input("Masukkan nomor tugas yang ingin dihapus: ")) - 1
        removed_task = tasks.pop(index)
        save_tasks(tasks)
        print(f"❌ Tugas '{removed_task}' telah dihapus!")
    except (ValueError, IndexError):
        print("⚠️ Nomor tugas tidak valid!")

# Menu utama
def main():
    tasks = load_tasks()

    while True:
        print("\nšŸ“Œ Menu To-Do List")
        print("1. Lihat Daftar Tugas")
        print("2. Tambah Tugas")
        print("3. Hapus Tugas")
        print("4. Keluar")

        choice = input("Pilih opsi (1-4): ")

        if choice == "1":
            show_tasks(tasks)
        elif choice == "2":
            add_task(tasks)
        elif choice == "3":
            remove_task(tasks)
        elif choice == "4":
            print("šŸ‘‹ Keluar dari aplikasi. Sampai jumpa!")
            break
        else:
            print("⚠️ Pilihan tidak valid!")

if __name__ == "__main__":
    main()

šŸ“Œ Penjelasan:
json digunakan untuk menyimpan tugas ke file agar tetap tersimpan setelah program ditutup.
Fungsi load_tasks() → Membaca daftar tugas dari file JSON.
Fungsi save_tasks() → Menyimpan tugas ke file JSON.
Fungsi add_task() → Menambahkan tugas baru ke daftar.
Fungsi remove_task() → Menghapus tugas berdasarkan nomor yang dipilih pengguna.

šŸ”„ Coba jalankan programnya di terminal, tambahkan tugas, lihat daftar tugas, dan hapus tugas!


✅ 2. Web Scraper Sederhana

šŸ“Œ Apa itu Web Scraping?

  • Web scraping adalah teknik mengambil data dari website secara otomatis menggunakan Python.
  • Kita akan menggunakan pustaka BeautifulSoup untuk membaca HTML dari suatu halaman web dan mengambil data spesifik.

šŸ“Œ Instalasi pustaka (jika belum ada):

pip install requests beautifulsoup4

šŸ”¹ Kode Python Web Scraper

import requests
from bs4 import BeautifulSoup

# URL situs yang akan di-scrape (contoh: berita terbaru dari CNN Indonesia)
URL = "https://www.cnnindonesia.com/nasional"

# Mengambil halaman web
response = requests.get(URL)

# Jika berhasil, lanjutkan scraping
if response.status_code == 200:
    soup = BeautifulSoup(response.text, "html.parser")

    # Mencari semua judul berita
    berita = soup.find_all("h2", class_="title")

    print("šŸ“° Judul Berita Terbaru:")
    for i, item in enumerate(berita[:10], start=1):  # Ambil 10 berita pertama
        print(f"{i}. {item.text.strip()}")
else:
    print("⚠️ Gagal mengambil halaman web!")

šŸ“Œ Penjelasan:
requests.get(URL) → Mengambil halaman web yang akan di-scrape.
BeautifulSoup(response.text, "html.parser") → Menganalisis HTML dari halaman web.
soup.find_all("h2", class_="title") → Mencari semua elemen h2 dengan class title (judul berita).
item.text.strip() → Mengambil teks dari elemen HTML dan menghilangkan spasi berlebih.

šŸ”„ Coba jalankan kode ini dan lihat daftar berita terbaru dari CNN Indonesia langsung di terminal!


šŸ“Œ Kesimpulan

Aplikasi To-Do List membantu memahami penggunaan file handling & struktur data.
Web Scraper memberikan dasar untuk mengambil data dari internet secara otomatis.
Kedua proyek ini melatih penggunaan Python dalam dunia nyata!

šŸ’” Selanjutnya, kita bisa membuat versi lebih lanjut seperti:

  • To-Do List berbasis GUI menggunakan Tkinter atau PyQt.
  • Web Scraper untuk Shopee/Amazon untuk mengambil harga produk secara otomatis.

šŸš€ Mau lanjut ke Level 3 (Pemrograman Lanjutan & AI)?

Tidak ada komentar:

Posting Komentar