Ini proyek terbimbing pertama pada section Proyek: sebuah aplikasi catatan tugas (todo list) yang berjalan sepenuhnya di terminal. Aplikasi menampilkan menu utama, menerima masukan dari pengguna, menolak masukan yang salah dengan pesan yang jelas, menyimpan daftar tugas ke berkas teks tugas.txt, dan pada akhirnya dikemas menjadi satu berkas JAR yang dapat dijalankan dengan java -jar. Aplikasi sengaja dibuat kecil — tetapi masalah yang dipecahkannya nyata: membangun antarmuka teks, menjaga mutu masukan, menjaga data antar eksekusi, dan menyerahkan hasil kerja dalam bentuk yang bisa dibagikan.

Sesi singkat berikut adalah hasil akhir proyek, dikutip dari eksekusi sungguhan terhadap berkas JAR hasil Bagian 4:

text
$ printf '1\nBelajar Java dasar\n0\n' | java -jar tugas.jar
Belum ada berkas tugas.txt; mulai dari daftar kosong.
=== Aplikasi Catatan Tugas ===

Menu:
1. Tambah tugas
2. Lihat daftar tugas
3. Tandai tugas selesai
0. Keluar
Pilihan: Judul tugas: Tugas ditambahkan: [ ] 1. Belajar Java dasar
Daftar disimpan ke tugas.txt.

Menu:
1. Tambah tugas
2. Lihat daftar tugas
3. Tandai tugas selesai
0. Keluar
Pilihan: Sampai jumpa!

Proyek ini adalah tempat praktik bagi materi-materi sebelumnya, bukan materi baru. Bekalnya mencakup class dan method main dari section Dasar Pemrograman, pembacaan masukan dengan Scanner dari section Input, Output, dan Formatting, loop dan switch dari section Struktur Kontrol, pemecahan program menjadi method dari section Method dan Modularitas, exception terperiksa dari section Exception Handling, serta Path dan Files dari section File I/O dan NIO. Pembaca yang belum menempuh salah satu dari section tersebut sebaiknya menyelesaikannya lebih dulu agar proyek berjalan mulus.

Cara mengikuti proyek: kerjakan keempat bagian secara berurutan karena aplikasi tumbuh dari satu bagian ke bagian berikutnya — kerangka dan input, lalu validasi dan exception, lalu penyimpanan ke berkas, lalu pengujian dan packaging. Setiap bagian memuat versi terkini seluruh berkas .java yang dibutuhkan, lengkap dengan bedah baris-per-baris, sehingga pembaca dapat membandingkan kode sebelum dan sesudah setiap perubahan. Berkas pada setiap bagian dapat diunduh dan langsung dijalankan; satu perintah java AplikasiTugas.java sudah cukup untuk mencoba tahap mana pun.