Mochamad Kolbi Nuron_5025231183_Tugas PBO A ke 6

 Mochamad Kolbi Nuron

5025231183

tugas ke 6 IMPLEMENTASI SUPPORT SYSTEM



  • class InputReader: Ini mendeklarasikan kelas dengan nama InputReader. Kelas ini berfungsi untuk menangani proses pengambilan input dari pengguna melalui konsol (terminal). Kelas ini tidak memiliki modifier public, sehingga hanya dapat diakses oleh kelas-kelas lain yang berada dalam paket yang sama.
  • private Scanner scanner:
    • Atribut ini adalah sebuah objek dari kelas Scanner, yang digunakan untuk membaca input dari pengguna.
    • private berarti atribut ini hanya bisa diakses dari dalam kelas InputReader itu sendiri.
    • Scanner adalah kelas bawaan Java yang digunakan untuk mengambil input dari berbagai sumber, dalam hal ini dari konsol (System.in).
  • public InputReader():
    • Ini adalah konstruktor dari kelas InputReader. Konstruktor adalah sebuah method khusus yang dijalankan saat objek dari kelas tersebut dibuat.
    • Di dalam konstruktor ini, scanner diinisialisasi sebagai objek baru dari kelas Scanner, yang akan membaca input dari System.in (konsol). Dengan kata lain, ini memungkinkan program untuk menangkap apa yang diketik oleh pengguna di terminal.
  • public String getInput():
    • Method ini memiliki tipe pengembalian String, dan digunakan untuk mengambil input dari pengguna melalui konsol.
    • System.out.print("Masukkan input: "): Ini menampilkan pesan "Masukkan input:" di layar, meminta pengguna untuk mengetik sesuatu.
    • scanner.nextLine(): Ini digunakan untuk membaca satu baris penuh input dari pengguna, termasuk spasi. Setelah pengguna mengetik sesuatu dan menekan tombol enter, teks tersebut akan dibaca.
    • .toLowerCase(): Setelah input dibaca, method ini mengonversi input tersebut menjadi huruf kecil. Hal ini dilakukan untuk mempermudah perbandingan string nantinya. Misalnya, jika pengguna mengetik "Bye" atau "BYE", akan diubah menjadi "bye" sehingga lebih mudah dalam pengecekan.
  • public boolean getBye(String input):
    • Method ini memiliki tipe pengembalian boolean (benar atau salah). Fungsinya adalah untuk mengecek apakah input dari pengguna adalah kata "bye".
    • input.equals("bye"): Ini membandingkan input yang diterima dengan string "bye". Jika input sama persis dengan "bye", method ini akan mengembalikan true (benar), jika tidak sama, maka akan mengembalikan false (salah).
    • Method ini penting untuk mendeteksi kapan pengguna ingin mengakhiri program, yang biasanya dilakukan dengan mengetik "bye".




  • class Responder: Ini adalah kelas yang bertugas memberikan respons berdasarkan input yang diberikan oleh pengguna.
  • ArrayList<String> greetings: Ini adalah daftar yang menyimpan respons berupa sapaan (greetings). ArrayList digunakan karena memungkinkan penyimpanan beberapa string yang bisa dipilih secara acak.
  • ArrayList<String> emotionalResponses: Ini adalah daftar yang menyimpan respons terkait dengan emosi atau curahan hati pengguna.
  • public Responder(): Konstruktor ini digunakan untuk menginisialisasi dua ArrayList: satu untuk sapaan (greetings) dan satu untuk respons emosional (emotionalResponses).
  • greetings.add(...): Ini menambahkan beberapa sapaan yang telah ditentukan ke dalam daftar greetings. Saat pengguna memberikan input seperti "hi", salah satu sapaan ini akan dipilih secara acak sebagai respons.
  • emotionalResponses.add(...): Ini menambahkan respons terkait emosi ke dalam daftar emotionalResponses. Respons ini akan diberikan ketika pengguna mengetikkan sesuatu yang menggambarkan curahan hati (misalnya, kata-kata seperti "curhat" atau "huft").
  • public String getResponse(String input): Method ini digunakan untuk menganalisis input yang diberikan oleh pengguna dan menentukan respons yang sesuai. input yang diterima adalah string yang dimasukkan oleh pengguna.
  • input.contains("hi") || input.contains("halo") || input.contains("ada"): Kondisi ini memeriksa apakah input pengguna mengandung kata-kata yang berhubungan dengan sapaan seperti "hi", "halo", atau "ada". Jika ya, maka method akan memanggil getGreetingResponse() untuk memberikan respons sapaan.
  • input.contains("curhat") || input.contains("huft"): Kondisi ini memeriksa apakah input pengguna mengandung kata-kata yang menggambarkan curahan hati atau emosi, seperti "curhat" atau "huft". Jika ya, maka method akan memanggil getEmotionalResponse() untuk memberikan respons yang berkaitan dengan curahan hati.
  • Else Block: Jika input pengguna tidak cocok dengan kondisi sapaan atau curahan hati, program akan mengembalikan respons default: "Saya tidak mengerti. Bisa dijelaskan lebih lanjut?"
  • private String getGreetingResponse(): Method ini memilih salah satu respons sapaan secara acak dari daftar greetings dan mengembalikannya sebagai respons.
    • Math.random() menghasilkan angka acak antara 0 dan 1, lalu dikalikan dengan ukuran daftar greetings untuk mendapatkan indeks acak dalam daftar.
    • greetings.get(...) mengembalikan sapaan berdasarkan indeks acak yang dihasilkan.
  • private String getEmotionalResponse(): Method ini serupa dengan getGreetingResponse(), tetapi digunakan untuk memilih respons terkait emosi dari daftar emotionalResponses.
    • Math.random() digunakan untuk mendapatkan indeks acak, kemudian emotionalResponses.get(...) mengembalikan respons yang sesuai.

  • public class App: Kelas App adalah kelas utama yang digunakan untuk menjalankan program. Karena kelas ini memiliki akses modifier public, maka kelas ini harus diletakkan di dalam file yang bernama App.java. Kelas ini akan menjadi titik masuk program ketika program dijalankan.
  • public static void main(String[] args): Ini adalah method utama yang digunakan oleh Java untuk mengeksekusi program. Setiap program Java yang dapat dijalankan memerlukan method ini. Method main menerima array String[] bernama args yang digunakan untuk argumen dari command line, meskipun dalam contoh ini tidak digunakan.
  • InputReader inputReader = new InputReader();: Objek inputReader dari kelas InputReader dibuat untuk menangani input dari pengguna. Kelas InputReader memiliki fungsi untuk membaca input dari konsol dan memeriksa apakah pengguna mengetik "bye" untuk keluar.

  • Responder responder = new Responder();: Objek responder dari kelas Responder dibuat untuk memberikan respons terhadap input pengguna. Kelas Responder berfungsi untuk menghasilkan jawaban berdasarkan input yang dimasukkan pengguna.

  • boolean exit = false;: Variabel exit digunakan untuk mengontrol kapan program harus berhenti. Selama exit bernilai false, program akan terus berjalan dan meminta input dari pengguna.

  • while (!exit): Ini adalah loop while yang berjalan selama nilai exit adalah false. Di dalam loop ini, program akan terus meminta input dari pengguna dan meresponsnya. Loop ini hanya akan berhenti ketika pengguna mengetik "bye", yang akan mengubah nilai exit menjadi true

  • String userInput = inputReader.getInput();: Method getInput() dari objek inputReader dipanggil untuk mengambil input dari pengguna. Input ini kemudian disimpan dalam variabel userInput. Method getInput() menampilkan prompt kepada pengguna dan menunggu input dari konsol.

  • if (inputReader.getBye(userInput)): Setelah input pengguna dibaca, program memeriksa apakah input tersebut adalah "bye" dengan menggunakan method getBye() dari objek inputReader. Jika input adalah "bye", method ini akan mengembalikan true.

  • System.out.println("Sampai jumpa");: Jika input adalah "bye", program akan menampilkan pesan "Sampai jumpa" di konsol.

  • exit = true;: Program kemudian mengubah nilai variabel exit menjadi true, yang berarti loop while akan berhenti, dan program akan keluar.

  • else: Jika input bukan "bye", maka program akan masuk ke blok else ini, di mana respons akan diberikan berdasarkan input pengguna.

  • String response = responder.getResponse(userInput);: Method getResponse() dari objek responder dipanggil dengan parameter userInput. Method ini akan menganalisis input pengguna dan mengembalikan respons yang sesuai. Respons ini disimpan dalam variabel response.

  • System.out.println("Respons: " + response);: Program kemudian menampilkan respons yang dihasilkan oleh responder di konsol.






Komentar

Postingan populer dari blog ini

Mochamad Kolbi Nuron_5025231183_ETS PBO A

tugas PBOA pengertian dan konsep OOP

Mochamad Kolbi Nuron_5025231183_Tugas PBO 8