TUGAS 5 : SUPPORT SYSTEM

 TUGAS 5 TECHNICAL SUPPORT SYSTEM

  Pada pertemuan ke 5 ini saya dan teman-teman diberikan penugasan untuk membuat Technical Support System. Technical Support System adalah sebuah program berupa bot yang akan merespon secara otomatis input yang diberikan dan program ini akan berhenti jika menginput suatu key yang telah ditentukan. Berikut adalah dokumentasi dan langkah-langkah saya perihal tugas pembuatan Technical Support System : 

DOKUMENTASI CODE :




Step-step untuk run code-nya : 

1. Klik kanan pada class SupportSystem(), lalu klik new SupportSystem() kemudian akan tampil pengisian object setelah itu isi nama dan klik oke.

2.  Klik kanan pada supportS1 dan klik void start()

3. Kemudian akan muncul chat bot-nya dan isi sesuai keinginan kalian. Berikut adalah implementasi dari Technical Support System :




Berikut adalah Sourcecode dari program diatas : 

Sourcecode SupportSystem.java : 

DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL
import java.util.Scanner;
import java.util.Random;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
/**
 * This class implements a technical support system. it is the top level class in this project.
 * The support system communicatives via text input/output in the text terminal
 * This class uses an object of class InputReader to read input from the user,
 * and an object of class Responder to generate responses. It contains a loop
 * that repeatedly reads input and generates output untill the users wants to leaves.
 *
 * @author FAISRAFII_
 * @version 12 November 2020
 */
public class SupportSystem
{
    private InputReader reader;
    private Responder responder;
   
    /**
     * Creates a technical support system.
     */
    public SupportSystem()
    {
        reader = new InputReader();
        responder = new Responder();
    }
   
    /**
     * Start the technical support system. This will print a welcome message
     * and enter into a dialog with the user, untill the user ends the dialog.
     */
    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();
    }
   
    /**
     * Print a welcome message to the screen.
     */
    private void printWelcome()
    {
        System.out.println("**** Welcome to the Dibel Technical Support System. ****");
        System.out.println();
        System.out.println("Please tell us about your problem.");
        System.out.println("Please type 'bye' to exit our system.");
        System.out.println();
    }  
   
    /**
     * Print a good-bye message to the screen.
     */
    private void printGoodbye()
    {
        System.out.println("Nice talking to you. Bye......");
    }
   
}
 

Sourcecode InputReader.java : 

DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL
import java.util.HashSet;
import java.util.Scanner;
import java.util.Random;
import java.util.ArrayList;
import java.util.HashSet;
 
/**
 * The InputReader class is used for read the input entry.
 *
 * @author FAISRAFII_
 * @version 12 November 2020
 */
public class InputReader
{
    private Scanner reader;
    public InputReader()
    {
        reader = new Scanner(System.in);
    }
    /**
     * Read user input
     */
    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;
    }
}

Sourcecode Responder.java : 

DATA HOSTED WITH ♥ BY PASTEBIN.COM - DOWNLOAD RAW - SEE ORIGINAL
import java.util.Random;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
 
/**
 * The responder class represents a response generator object.
 * It is used to generate an automatic response to an input string.
 *
 * @author Ahmad Lamaul Farid
 * @version 12 November 2020
 */
public class Responder
{
        private Random randomGenerator;
        private ArrayList<String> defaultResponses;
        private HashMap<String, String> responseMap;        
       
        /**
         * Create a responder.
         */
        public Responder()
        {
            defaultResponses = new ArrayList<String>();
            responseMap = new HashMap<String, String>();
            fillResponses();
            fillDefaultResponses();
            randomGenerator = new Random();
        }
       
        /**
         * Generate a response.
         * @return      A string that should be displayed as the response.
         */
        public String generateResponse(HashSet<String> character)
        {
            for(String word : character)
            {
                String response = responseMap.get(word);
                if(response != null)
                {
                    return response;
                }
            }
            return pickDefaultResponse();
        }
       
        /**
         * Build up a list of default responses from which we can pick one
         * if we don't know what else to say.
         */
        private void fillResponses()
        {
            responseMap.put("hallo", "Hallo dengan Salad 18 Ada yang bisa kami bantu?");

        }
       
        private void fillDefaultResponses()
        {
            defaultResponses.add("Mau order menu yang apa kak?.");
            defaultResponses.add("Mohon maaf kami kurang paham dengan maksud kakak hehe");
        }
       
        private String pickDefaultResponse()
        {
            int index = randomGenerator.nextInt(defaultResponses.size());
            return defaultResponses.get(index);
        }
   
}