Tugas Pertemuan 7 Pemrograman Berbasis Objek (PBO) A 2024

Nama : Amadeo Yesa

NRP : 5025231160

Kelas : A

Tahun : 2024


Pada pertemuan 7, terdapat revisi terhadap tugas pertemuan 6, yaitu Implementasi Technical Support System. Beberapa revisi yang saya lakukan dalam pertemuan 7:


Menambahkan validation checking pada InputReader agar memastikan user memasukkan pesan yang valid.


Class InputReader
import java.util.Scanner;

public class InputReader {
    private Scanner scanner;
    
    public InputReader(){
        scanner = new Scanner(System.in);
    }

    public String getInput(){
        String input = "";
        while (input.trim().isEmpty()) {
            System.out.print("> ");
            input = scanner.nextLine().trim();
        
            if (input.isEmpty()) {
                System.out.println("Please enter your message.");
            }
        }
        return input;
    }
}

Selain itu, pada Responder terdapat Map untuk memetakan beberapa keyword yang dapat dimasukkan user untuk kemudian sistem menghasilkan response yang sesuai. Apabila keyword tidak ditemukan, maka sistem akan mengeluarkan secara random response-response default.

Class Responder
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class Responder {
    private Map responsesMap;
    private String[] defaultResponses;
    private Random random;

    public Responder(){
        responsesMap = new HashMap<>();
        responsesMap.put("password", "If you're having trouble with passwords, try resetting it or verifying it.");
        responsesMap.put("slow", "Your system might be slow due to various reasons like insufficient memory.");
        responsesMap.put("crash", "If your application crashed, try restarting it and let me know if the issue persists.");
        responsesMap.put("help", "I'm here to help! Please provide more details about your issue.");
        responsesMap.put("error", "Let's troubleshoot this error. Could you describe the errors?");

        defaultResponses = new String[] {
            "That sounds interesting. Tell me more...",
            "Can you clarify that?",
            "I'd love to help! Please explain further.",
            "Hmm, that's something we can look into. Could you give more details?",
            "I see, let's dive deeper into the issue."
        };

        random = new Random();
    }

    public String generateResponse(String userInput){
        for (String key : responsesMap.keySet()) {
            if (userInput.toLowerCase().contains(key)) {
                return responsesMap.get(key);
            }
        }

        return getRandomDefaultResponse();
    }

    private String getRandomDefaultResponse() {
        int index = random.nextInt(defaultResponses.length);
        return defaultResponses[index];
    }
}


Dokumentasi Video


Source Code:

Comments

Popular posts from this blog

Evaluasi Tengah Semester Pemrograman Berbasis Objek (PBO) A 2024

Evaluasi Akhir Semester Pemrograman Berbasis Objek (PBO) A 2024