public class AplikasiToDoList {
public static String[] model = new String[10]; public static java.util.Scanner scanner = new java.util.Scanner(System.in); public static void main(String[] args) {
// testShowTodoList(); // testAddTodoList(); // testRemoveTodoList(); // testInput(); // testViewTodoList(); // testViewAddTodoList(); testViewRemoveTodoList(); } /* menampilkan TODO List */ public static void showTodoList(){ System.out.println("TODOLIST"); for (var i = 0; i < model.length; i++){ var todo = model[i]; var no = i + 1;
if (todo != null){ System.out.println(no + ". " + todo); } } } /*unit testing logic menampilkan todo list(showTodolist)*/ public static void testShowTodoList(){ model[0] = "Belajar Java Dasar"; model[1] = "Belajar java dasar : aplikasi todo list"; showTodoList(); } /*Menambahkan TODO ke List*/ public static void addTodoList(String todo){
// cek apakah array model penuh? var isFull = true; for (int i = 0; i < model.length; i++){ if (model[i] == null){ // model masih ada yang kosong isFull = false; break; } } // jika penuh, kita buat logic resize ukuran array 2x lipat if (isFull){ /* karena resize kapasitas array * menghilangkan data sebelumnya maka data yang lama akan disimpan di * temporary dulu lalu nanti digabung dengan yang baru */ var temp = model; model = new String[model.length * 2];
for (int i = 0; i < temp.length; i++){ model[i] = temp[i]; } } // tambahkan ke posisi yang data array nya null for (var i = 0; i < model.length; i++){ if (model[i] == null){ model[i] = todo; break; } } } /* unit test penambahan todo list,untuk mencoba apakah logic resize arrat berfungsi maka dilakukan perulangan addtodolist melebihi kapasitas awal,jika jumlah bisa lebih dari kapasitas awal maka logic berfungsi dengan baik */ public static void testAddTodoList(){ for (int i = 0; i < 25; i++) { addTodoList("contoh todo ke - " + i); } showTodoList(); } public static String input(String info){ System.out.print(info + " : "); String data = scanner.nextLine(); return data; } public static void testInput(){ var name = input("Nama "); System.out.println("Hi lapet " + name); var channel = input("channel "); System.out.println("Channel anda: " + channel); } /* Menghapus TODO List */ public static boolean removeTodoList(Integer number){ if ((number - 1) >= model.length){ return false; } else if (model[number -1] == null) { return false; } else { for (int i = (number - 1); i < model.length ; i++) { if (i ==(model.length) -1){ model[i] = null; } else { model[i] = model[i + 1]; } } return true; } } /* Test unit bagian remove todo list */ public static void testRemoveTodoList(){ /* pertama - tama tambahkan data ke todo list remove terlebih dahulu agar bisa pengetesan penghapusan data nanti nya */ addTodoList("satu"); addTodoList("dua"); addTodoList("tiga"); addTodoList("empat"); addTodoList("lima"); /*karena index data ke 20 tidak ada maka hasilnya false dan penghapusan gagal*/ var result = removeTodoList(20); System.out.println(result); /*karena index data ke 7 tidak ada maka hasilnya false dan penghapusan gagal*/ result = removeTodoList(7); System.out.println(result); /*karena index data ke 2 ada maka hasilnya true dan penghapusan berhasil*/ result = removeTodoList(2); System.out.println(result); showTodoList(); } /* Menampilkan view Todo list */ public static void viewShowTodoList() { while (true){ showTodoList(); System.out.println("MENU"); System.out.println("1. Tambah"); System.out.println("2. Hapus"); System.out.println("x. keluar"); var input = input("pilih"); // karena bentuk pilihan adalah string maka gunakan .equals if (input.equals("1")){ viewAddTodoList(); } else if (input.equals("2")){ viewRemoveTodoList(); } else if(input.equals("x")){ break; } else System.out.println("Pilihan Tidak Dimengerti"); } } /*unit test viewTodoList*/ public static void testViewTodoList(){ addTodoList("view satu"); addTodoList("view dua"); addTodoList("view tiga"); addTodoList("view empat"); addTodoList("view lima"); viewShowTodoList(); } /* menampilkan view Add Todo List */ public static void viewAddTodoList(){ System.out.println("Menambah Todo List"); var todo =input("Todo(x jika batal)"); if (todo.equals("x")){ //batal } else addTodoList(todo); } public static void testViewAddTodoList(){ addTodoList("Alicia"); addTodoList("Oscar Olus"); viewAddTodoList(); showTodoList(); } /* Menampilkan view remove todo list */ public static void viewRemoveTodoList() { System.out.println("Menghapus Todo List"); var number = input("Nomor yang dihapus (x jika batal)"); if (number.equals("x")){ //batal } else { boolean success = removeTodoList(Integer.valueOf(number)); //Konversikan string ke value integer if (!success){ System.out.println("Gagal menghapus todolist : " + number ); } } } public static void testViewRemoveTodoList(){ addTodoList("satu 1"); addTodoList("dua 2"); addTodoList("tiga 3"); showTodoList(); viewRemoveTodoList(); showTodoList(); }
} berikan penjelasan setiap baris kode dan keterkaitannya dalam bahasa indonesia
Dari kode yang disediakan, saya dapat melihat bahwa adalah program sederhana untuk mengelola daftar tugas (todo list) dalam bah pemrograman Java. Berikut penjelasan setiap baris kode beserta kkaitannya dalam Bahasa Indonesia:
public AplikasiToDoList {
AplikasiToDoList
yang akan menjankan seluruh logika aplikasi.public String[] model = new String[10]; public static java.util.Scanner scanner = new java.util.Scanner(System.in);
model
array yang akan menyimpan daftar tugas (todo list) dengan panjangal 10.scanner
untuk mendapatkan masukan dari pengguna melalui kons.public static void main(String[] args) { // Metode main() sebagai titikuk program }
public void showTodoList(){ // Metode untuk menampilkan daftar tugas }
public static void testTodoList(){ // Metode untuk menguji fung showTodoList() }
public static void addList(String todo){ // Metode untuk menambahkan t ke daftar } // Metode testAddTodoList() dan pengujian lainnya untuk menambahkan tugas keftar
public static String input info){ // Metode untuk mendapatkan masukan pengguna } // Metode test() untuk menguji pengambilan masukan
public static removeTodoList(Integer number){ // Metode untuk menghapus tugas dari daftar } // Met testRemoveTodoList() dan pengujian lainnya untuk menghapusugas dari daftar
public static void viewTodoList() { // Metode untuk menampilkan antarmukaguna untuk melihat daftar tugas } // Metode testViewTodoList() dan pengujian lainnya untukalankan antarmuka pengguna untuk melihat daftar tugas
public static void viewAddTodoList(){ // Metode untuk menampilkan antarmuka pengguna menambahkan tugas ke daftar } Metode testViewAddTodoList() dan pengujian lainnya untuk menjalankan antarmuka pengguna untuk menambahkan tugas ke daftar
public static void viewRemoveTodoList() { // Metode untuk menampilkan antarmuka pengguna untuk menghapus tugas dari daftar } //ode testViewRemoveTodoList() dan pengujian lainnya untuk menjalankan antarmuka pengguna untuk menghapus tugas dari da
Kode tersebut juga mencakup panggil metode pengujian (test methods) untuk menguji logika program pada setiap bagian fungsionalnya. Program ini secara keseluruhan terlihat sebagai aplikasiederhana untuk mengelola daftar tugas dengan menggunakan array dan masukan pengguna yang diambil melalui konsol.