Tugas 5 PBO C Tech Support System

Tugas 5 PBO C Tech Support System

Nama : Dewangga Dharmawan

NRP : 05111940000029

Dosen : Fajar Baskoro

Grafik hubungan antar class Tech Support System

Class Support System

 /**  
  * Program utama yang menjawab pertanyaan yang dimasukkan  
  * (Utama karena yang pertama kali di inputkan adalah  
  * class ini)  
  *   
  * @author (Dewangga Dharmawan)  
  * @version (10/11/2020)  
  */  
 //Library semua fungsi java  
 import java.util.*;  
 public class SupportSystem  
 {  
   //Variabel privat dengan class lainnya  
   private InputReader reader;  
   private Responder responder;  
   //Mendeklarasikan variabel pertanyaan dan jawaban  
   public SupportSystem()  
   {  
     reader = new InputReader();  
     responder = new Responder();  
   }  
   //Methode yang berisi loop untuk  
   //Membaca pertanyaan pengguna  
   //Dan mengeluarkan jawabannya  
   public void start()  
   {  
     boolean finished = false;  
     printWelcome();  
     while(!finished)  
     {  
       HashSet<String> input = reader.getInput();  
       if(input.contains("bye"))  
       {finished = true;}  
       else  
       {  
         String response = responder.generateResponse(input);  
         System.out.println(response);  
       }  
     }  
     printGoodbye();  
   }  
   //Methode privat untuk menyapa pengguna  
   private void printWelcome()  
   {  
     System.out.println("Halo, ada urusan apa?");  
     System.out.println("Tekan 'bye' untuk mengakhiri program");  
   }  
   //Methode privat untuk menyampaikan  
   //Kepada pengguna bahwa  
   //Programnya telah selesai  
   private void printGoodbye()  
   {  
     System.out.println("Sampai jumpa juga\n");  
   }  
 }  

Class Input Reader

 /**  
  * Class kedua untuk membaca input kalimat pengguna  
  *  
  * @author (Dewangga Dharmawan)  
  * @version (10/11/2020)  
  */  
 //Library semua fungsi java  
 import java.util.*;  
 public class InputReader  
 {  
   //Variabel privat untuk menampung scan  
   private Scanner reader;  
   //Mendeklarasikan fungsi scan  
   public InputReader()  
   {  
     reader = new Scanner(System.in);  
   }  
   //Membaca pertanyaan  
   public HashSet<String> getInput()  
   {  
     System.out.print("> ");  
     String inputLine = reader.nextLine().trim().toLowerCase();  
     String[] wordArray = inputLine.split(" ");  
     HashSet<String> words = new HashSet<String>();  
     for(String word : wordArray)  
     {  
       words.add(word);  
     }  
     return words;  
   }  
 }  

Class Responder

 /**  
  * Class untuk memberikan jawaban pertanyaan pengguna  
  *  
  * @author (Dewangga Dharmawan)  
  * @version (10/11/2020)  
  */  
 //Library semua fungsi Java  
 import java.util.*;  
 public class Responder  
 {  
     //Variabel privat jawaban dan angka acak  
     private Random randomGenerator;  
     private ArrayList<String> defaultResponses;  
     private HashMap<String, String> responseMap;  
     //Deklarasi beberapa fungsi dan variabel  
     public Responder()  
     {  
       defaultResponses = new ArrayList<String>();  
       responseMap = new HashMap<String, String>();  
       fillResponsesMap();  
       fillDefaultResponse();  
       randomGenerator = new Random();  
     }  
     //Methode untuk menampilkan jawaban  
     public String generateResponse(HashSet<String> words)  
     {  
       for(String word : words)  
       {  
         String response = responseMap.get(word);  
         if(response != null)  
         {return response;}  
       }  
       return pickDefaultResponse();  
     }  
     //Methode untuk menampung jawaban  
     //Yang ada pertanyaannya  
     private void fillResponsesMap()  
     {  
       responseMap.put("bug", "Mungkin bisa dicoba debugger. Atau baygon");  
       responseMap.put("virus", "Maaf, saya TechSupport, bukan dokter");  
       responseMap.put("halo", "Halo juga");  
       responseMap.put("slow", "Jangan diajak lari, tapi tunggu saja, dia bukan orang!");  
       responseMap.put("universe", "101010, 52, 2A");  
       responseMap.put("rusak", "Mengapa kau tanya aku kalau komputermu rusak?");  
       responseMap.put("putus", "Pakai selotip, jangan lem. Aliran listriknya tidak akan bisa mengalir kalau pakai lem");  
     }  
     //Methode untuk menampung jawaban  
     //Yang tidak ada pertanyaannya  
     private void fillDefaultResponse()  
     {  
       defaultResponses.add("Nggak tau apa maksudmu?");  
       defaultResponses.add("Bisa diulang apa maksudmu?");  
       defaultResponses.add("Coba lagi");  
       defaultResponses.add("Mungkin yang kapital atau spasinya");  
       defaultResponses.add("Nggak tau apa maksudmu? Ini yang kedua");  
     }  
     //Methode untuk memilih jawaban  
     //Secara acak  
     private String pickDefaultResponse()  
     {  
       int index = randomGenerator.nextInt(defaultResponses.size());  
       return defaultResponses.get(index);  
     }  
 }  

Implementasi (Class Support System terdahulu)

Komentar

Postingan populer dari blog ini

Tugas 10 PBO C Text Editor

Tugas 3 PBO C Jam Masjid