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 modifierpublic
, 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 kelasInputReader
itu sendiri.Scanner
adalah kelas bawaan Java yang digunakan untuk mengambil input dari berbagai sumber, dalam hal ini dari konsol (System.in).
- Atribut ini adalah sebuah objek dari kelas
- 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 kelasScanner
, yang akan membaca input dari System.in (konsol). Dengan kata lain, ini memungkinkan program untuk menangkap apa yang diketik oleh pengguna di terminal.
- Ini adalah konstruktor dari kelas
- 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.
- Method ini memiliki tipe pengembalian
- 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 mengembalikanfalse
(salah). - Method ini penting untuk mendeteksi kapan pengguna ingin mengakhiri program, yang biasanya dilakukan dengan mengetik "bye".
- Method ini memiliki tipe pengembalian
- 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.
- Math.random() menghasilkan angka acak antara 0 dan 1, lalu dikalikan dengan ukuran daftar
- private String getEmotionalResponse(): Method ini serupa dengan
getGreetingResponse()
, tetapi digunakan untuk memilih respons terkait emosi dari daftaremotionalResponses
.- 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 modifierpublic
, 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 arrayString[]
bernamaargs
yang digunakan untuk argumen dari command line, meskipun dalam contoh ini tidak digunakan. InputReader inputReader = new InputReader();: Objek
inputReader
dari kelasInputReader
dibuat untuk menangani input dari pengguna. KelasInputReader
memiliki fungsi untuk membaca input dari konsol dan memeriksa apakah pengguna mengetik "bye" untuk keluar.Responder responder = new Responder();: Objek
responder
dari kelasResponder
dibuat untuk memberikan respons terhadap input pengguna. KelasResponder
berfungsi untuk menghasilkan jawaban berdasarkan input yang dimasukkan pengguna.boolean exit = false;: Variabel
exit
digunakan untuk mengontrol kapan program harus berhenti. Selamaexit
bernilaifalse
, program akan terus berjalan dan meminta input dari pengguna.while (!exit): Ini adalah loop while yang berjalan selama nilai
exit
adalahfalse
. 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 nilaiexit
menjaditrue
String userInput = inputReader.getInput();: Method
getInput()
dari objekinputReader
dipanggil untuk mengambil input dari pengguna. Input ini kemudian disimpan dalam variabeluserInput
. MethodgetInput()
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 objekinputReader
. Jika input adalah "bye", method ini akan mengembalikantrue
.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
menjaditrue
, yang berarti loopwhile
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 objekresponder
dipanggil dengan parameteruserInput
. Method ini akan menganalisis input pengguna dan mengembalikan respons yang sesuai. Respons ini disimpan dalam variabelresponse
.System.out.println("Respons: " + response);: Program kemudian menampilkan respons yang dihasilkan oleh
responder
di konsol.
Komentar
Posting Komentar