04 / Media & struktur data · Desktop
ytMP3 · JavaFX
Menjembatani antarmuka desktop dan proses media.
Proyek JavaFX yang memadukan latihan binary search tree dengan GUI pengunduh media, pemilihan MP3/MP4, dan integrasi proses eksternal.

01 / KONTEKS
Mengapa proyek ini dibuat
Saya ingin memahami dua sisi pengembangan desktop: logika struktur data dan interaksi aplikasi dengan program lain. Proyek ini menjadi latihan menghubungkan UI JavaFX ke yt-dlp dan FFmpeg sambil menjaga proses panjang tetap berjalan di background.
Apa yang bisa dilakukan
- Layar latihan BST untuk penambahan dan pencarian nilai.
- GUI pengunduh dengan URL, folder tujuan, dan opsi MP3/MP4.
- Pengaturan thread dan konfigurasi dalam file JSON.
- Proses background, pembacaan progres, serta pembatalan pekerjaan.
Kelebihan
- Layout FXML asli dipertahankan dan source awal diarsipkan.
- Argumen proses mendukung path ber-spasi tanpa pemecahan string command.
- Pipeline media dapat diuji menggunakan fixture lokal tanpa akun atau database.
Keterbatasan saat ini
- Screenshot yang tersedia mendokumentasikan tampilan; pengujian klik UI terbaru belum tuntas karena alat capture gagal.
- Playlist YouTube daring dan fitur akun lama belum diverifikasi.
- EXE lama belum dibangun ulang; penggunaan saat ini melalui source dan Maven.
02 / PROSES
Tantangan & pembelajaran
Saya berlatih memisahkan pekerjaan proses eksternal dari thread JavaFX, membaca output UTF-8 serta progres, dan menangani pembatalan. Pada modul BST, kata dengan awalan yang sama menguji ketepatan perbandingan seluruh nilai, bukan hanya karakter awal.
Bukti & status demo
Build JAR berhasil dan 21 tes lulus, termasuk unduhan MP4 ke folder ber-spasi serta ekstraksi MP3 dengan yt-dlp/FFmpeg asli. Output sintetis 20 detik diperiksa dengan FFprobe. Hasil tersebut berasal dari tes/CLI, bukan bukti klik UI. Galeri memakai dua berkas dokumentasi UI yang tersedia di folder proyek.
03 / DOKUMENTASI
Melihat aplikasinya
Arah pengembangan
Menuntaskan verifikasi interaksi UI, menguji ekstraksi daring, lalu memperbarui dependensi dan packaging native.
Kontribusi & proses +
Proyek awal saya kembangkan secara mandiri, dari logika aplikasi hingga antarmuka. Penyempurnaan terbaru, pengujian, dan persiapan demo portofolio dibantu Codex. Data pada dokumentasi adalah data contoh.
