[PROGJAR] ANALISA PROGRAM

09.55.00 Unknown 0 Comments


Kali ini saya akan menganalisa beberapa program yaitu getIP.java, getName.java, IptoName.java, NsLookup.java, dan program client-server sederhana. Berikut adalah analisanya

1.            getName.java
import java.net.*;
public class getName {
     public static void main(String args[]) throws Exception {
           InetAddress host = null;
           host = InetAddress.getLocalHost();
           System.out.println("Nama komputer Anda: " +

           host.getHostName());}}

ANALISA
Program diatas adalah program untuk mengetahui nama komputer yang sedang dipakai. Program ini berguna supaya kita bisa jalankan program lain (program simpleClient.java dan program NsLookup.java) yang berkolerasi dengan program ini. Program ini menggunakan library .net yang digunakan java untuk program yang terhubung dengan jaringan. Inti dari program ini terdapat pada kodingan host.getHostName() yang berfungsi untuk mendapatkan hostname komputer yang sedang dipakai.

OUTPUT PROGRAM


2.            getIP.java

import java.net.*;
public class getIP {
public static void main(String args[]) throws Exception {
     InetAddress host = null;
     host = InetAddress.getLocalHost();
     byte ip[] = host.getAddress();
    
     for (int i=0; i < ip.length; i++) {
           if (i > 0) {
                System.out.print(".");}
           System.out.print(ip[i] & 0xff);}

     System.out.println();}}

ANALISA

Program diatas adalah program untuk mengetahui alamat IP komputer yang sedang dipakai. Program ini berguna supaya kita bisa jalankan program lain (program IPtoName.java) yang berkolerasi dengan program ini. Program ini menggunakan library .net yang digunakan java untuk program yang terhubung dengan jaringan. Inti dari program ini terdapat pada kodingan byte ip[] = host.getAddress() yang berfungsi untuk mendapatkan alamat IP komputer yang sedang dipakai. Tipe data byte dipakai karena memiliki rentang nilai 0 s/d 255 yang memang dipakai untuk memberikan alamat IP komputer. Setelah itu terdapat blok for Untuk mengeluarkan output dari hasil perintah host.getAddress .

OUTPUT PROGRAM
3.            IptoName.java

import java.net.*;
public class IPtoName {
     public static void main(String args[]) {
           if (args.length == 0) {
       System.out.println("Pemakaian: java IPtoName ");
                System.exit(0);}

           String host = args[0];
           InetAddress address = null;
          
           try {
                address = InetAddress.getByName(host);}
           catch (UnknownHostException e) {
                System.out.println("invalid IP - malformed IP");
                System.exit(0);}


           System.out.println(address.getHostName());}}

ANALISA
Program diatas adalah program untuk mengetahui nama komputer yang sedang dipakai menggunakan alamat IP komputer yang diinput. Program ini menggunakan library .net yang digunakan java untuk program yang terhubung dengan jaringan. Inti program diatas adalah System.out.println(address.getHostName()) untuk mengeluarkan input hostname yang diperoleh dari proses kodingan  address = InetAddress.getByName(host) yaitu kodingan proses pengambilan nama computer dengan alamat IP yang kita masukkan sebelumnya dan disimpan di variable host. Jika alamat yang diinput salah, maka akan menampilkan output error dengan tulisan “Invalid IP – Malformed IP” dan program akan berhenti dan keluar.

OUTPUT PROGRAM

4.            NsLookup.java

import java.net.*;
public class NsLookup {
     public static void main(String args[]) {
           if (args.length == 0) {
                System.out.println("Pemakaian: java NsLookup ");
                System.exit(0);}

           String host = args[0];
           InetAddress address = null;
          
           try {
                address = InetAddress.getByName(host);}
           catch(UnknownHostException e) {
                System.out.println("Unknown host");
                System.exit(0);}

           byte[] ip = address.getAddress();
           for (int i=0; i < ip.length; i++) {
                if (i > 0) System.out.print(".");
                System.out.print((ip[i]) & 0xff);}

           System.out.println();}}

ANALISA
Program diatas adalah kebalikan dari program IptoName.java. Program ini untuk mengetahui alamat IP komputer yang sedang dipakai menggunakan hostname komputer yang diinput. Sama seperti sebelumnya, program ini juga menggunakan library .net yang digunakan java untuk program yang terhubung dengan jaringan. Pada kodingan address = InetAddress.getByName(host) adalah kodingan proses pengambilan alamat IP komputer dengan hostname yang kita masukkan sebelumnya dan disimpan di variable host. Jika alamat yang diinput salah, maka akan menampilkan output error dengan tulisan “Unknown Host” dan program akan berhenti dan keluar. Lalu pada baris byte[] ip = address.getAddress() adalah untuk mengambil alamat IP komputer yang diperoleh dari proses sebelumnya. Untuk mengeluarkan output alamat IP tersebut digunakan blok for sama seperti program getIP.java

OUTPUT PROGRAM

5.            Program Client-Server sederhana
a.     simpleServer.java
import java.io.*;
import java.net.*;
public class simpleServer {
   public final static int TESTPORT = 5000;
   public static void main(String args[]) {
        ServerSocket checkServer = null;
        String line;
        BufferedReader is = null;
        DataOutputStream os = null;
        Socket clientSocket = null;
       
        try {
             checkServer = new ServerSocket(TESTPORT);
             System.out.println("Aplikasi Server hidup ...");}
        catch (IOException e) {
             System.out.println(e);}
       
        try {
             clientSocket = checkServer.accept();
             is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
             os = new DataOutputStream(clientSocket.getOutputStream());}
        catch (Exception ei) {
             ei.printStackTrace();}
            
        try {
             line = is.readLine();
             System.out.println("Terima : " + line);
             if (line.compareTo("salam") == 0) {
                   os.writeBytes("salam juga");}
             else {
                   os.writeBytes("Maaf, saya tidak mengerti");}}
        catch (IOException e) {
             System.out.println(e);}

        try {
             os.close();
             is.close();
             clientSocket.close();}
        catch (IOException ic) {

             ic.printStackTrace();}}}

ANALISA
Program diatas adalah program server untuk menyediakan layanan kepada client. Apabila program ini berhasil dijalankan akan mengeluarkan output "Aplikasi Server hidup ..." dan menunggu permintaan dari client. Dengan menggunakan perintah accept, berarti program ini menerima permintaan dari client. Apabila client telah mengirimkan pesan berupa tulisan “salam” maka otomatis server akan mengirimkan pesan “salam juga” ke client yang hanya ditampilkan pada tampilan client. Apabila bukan tulisan “salam” maka server akan mengirimkan pesan “maaf, saya tidak mengerti”. Program ini hanya dapat melakukan satu kali permintaan yang diterima setalah itu program akan berhenti dan keluar.

OUTPUT PROGRAM

b.     simpleClient.java

import java.io.*;
import java.net.*;
public class simpleClient {
  public final static int REMOTE_PORT = 5000;
 public static void main(String args[]) throws Exception {
    Socket cl = null;
    BufferedReader is = null;
    DataOutputStream os = null;
    BufferedReader stdin = new BufferedReader(new
    InputStreamReader(System.in));
    String userInput = null;
    String output = null;

// Membuka koneksi ke server pada port REMOTE_PORT
    try {
          cl = new Socket(args[0], REMOTE_PORT);
          is = new BufferedReader(new
          InputStreamReader(cl.getInputStream()));      os = new DataOutputStream(cl.getOutputStream());}
    catch(UnknownHostException e1) {
          System.out.println("Unknown Host: " + e1);}
    catch (IOException e2) {
          System.out.println("Erorr io: " + e2);}

    // Menulis ke server
    try {
          System.out.print("Masukkan kata kunci: ");
          userInput = stdin.readLine();
          os.writeBytes(userInput + "\n");}
    catch (IOException ex) {
      System.out.println("Error writing to server..." + ex);}

// Menerima tanggapan dari server
    try {
       output = is.readLine();
       System.out.println("Dari server: " + output);}
    catch (IOException e) {
          e.printStackTrace();}

// close input stream, output stream dan koneksi
    try {
          is.close();
          os.close();
          cl.close();}
    catch (IOException x) {

      System.out.println("Error writing...." + x);}}}


ANALISA
Program diatas adalah program client untuk meminta layanan kepada server. Saat dijalankan, program ini harus menyertakan hostname server agar terhubung dengan server yang sesuai dengan begitu client dapat mengirimkan permintaannya. Apabila program ini berhasil dijalankan akan mengeluarkan input "Masukkan kata kunci: "dan apabila kita input sesuai dengan kata kunci yang ada di program server maka server akan mengirimkan output “salam juga”.  Apabila bukan tulisan “salam” maka server akan mengirimkan pesan “maaf, saya tidak mengerti” di tampilan output client. Program ini hanya dapat melakukan satu kali permintaan yang diterima setalah itu program akan berhenti dan keluar.
             
           OUTPUT PROGRAM    




NAMA      : PUTRI NURHASANAH D
KELAS     : 4IA23
NPM         : 58414617

0 komentar:

[TULISAN] CONTOH PERMAINAN MENGGUNAKAN KONSEP PENGAMBILAN KEPUTUSAN

02.47.00 Unknown 0 Comments



Dalam kehidupan sehari – hari, setiap tindakan adalah hasil dari pengambilan keputusan. Berangkat sekolah, memilih jurusan sekolah, dan memakai pakaian digunakan adalah contoh kecil dari pengambilan keputusan. Dalam aplikasi Game, pengambilan keputusan dapat dilihat dari setiap tindakan pemain yang diambil untuk memperoleh hasil atau kemenangan. Berikut adalah contoh aplikasi game menggunakan konsep pengambilan keputusan.

  1.     CATUR


Pada permainan Catur menggunakan konsep Pohon Keputusan untuk proses pengambilan keputusan. Pohon Keputusan pada permainan catur dapat dilihat dari pengambilan keputusan dalam menjalankan bidak catur. Salah satu cara komputer dapat ‘berpikir’ untuk mengetahui langkah apa yang harus ia jalankan adalah dengan membuat pohon keputusan dari semua kemungkinan langkah berikutnya yang dapat dibuat, kemudian menentukan langkah berikutnya dengan melihat langkah mana yang memastikan kemenangan Tentu saja ini tidaklah mungkin dibuat karena pohon keputusan untuk catur sangatlah besar.Oleh karena itu kita harus menambahkan suatu ‘preferensi langkah’ di pohon keputusan tersebut, agar tidak seluruh pohon keputusannya dibuat. Ada banyak properti dari catur yang mempengaruhi kemungkinan kemenangan dari Salah satu properti yang dapat diambil dari catur adalah kita bisa memberikan nilai dari setiap bidak catur yang ada di papan setelah melakukan langkah tertentu, sehingga hanya pohon keputusan yang menghasilkan papan dengan dengan jumlah nilai-nilai bidak tertinggi saja yang ditelusuri. Dibuku-buku catur untuk pemula akan diberitahukan nilai dari setiap jenis bidak catur.

Jenis Bidak
Nilai
Pion
1
Kuda
3
Gajah
3
Benteng
5
Ratu
9
Raja

Raja diberikan nilai tak terhingga karena selalu dipastikan ada satu buah raja di masing-masing pemain saat permainan masih berlangsung. Pemberian nilai ini dianggap wajar karena pemberian nilai ini membuat pion menjadi bidak yang paling lemah dan ratu menjadi bidak yang paling kuat selain raja.

  2.     NEKERAN

Salah satu permainan tradisional dari tanah Jawa adalah Nekeran. Nekeran adalah permainan anak laki – laki menggunakan kelereng sebagai alat permainannya. Cara memainkannya yaitu, Seorang Pemain dihadapkan dengan dua macam musuh, yaitu pemula dan jagoan serta fitur untuk bermain 2 orang yaitu 2 Player. Kedua musuh tersebut terpisah dan menjadi mode pemilihan lawan dalam permainan ini. Pada permainan ini pada pengambilan keputusan menggunakan konsep Fuzzy Logic. Penerapan Fuzzy Logic dapat diterapkan didalam Bot atau langkah musuh didalam permainan. Penerapan algoritma fuzzy logic berpedoman kepada biner yaitu 0 dan 1, dimana di gunakan dalam pergerakan musuh kapan musuh akan jalan dan musuh pasti mengenai sasaran atau tidak.


Sumber :
Christian Anthony Setyawan. 2016. Aplikasi Pohon Keputusan pada Permainan Catur. Makalah. Bandung : Institut Teknologi Bandung (https://anzdoc.com/aplikasi-pohon-keputusan-pada-permainan-catur.html )
Jeffry Waluyo. 2016. Game Android Nekeran Menggunakan Metode Fuzzy Logic. Skripsi. Kediri : Universitas Nusantara Pgri Kediri


0 komentar:

[TUGAS] BAB 4 : Pengambilan Keputusan dalam Game

02.39.00 Unknown 0 Comments


Pengambilan Keputusan atau decision making adalah serangkaian algoritma yang dirancang dengan memasukan beberapa kemungkinan langkah yang bisa diambil oleh suatu aplikasi, Pada game ini decision making memberikan kemampuan suatu karakter untuk menentukan langkah apa yang akan diambil. Decision making dilakukan dengan cara menentukan satu pilihan dari list yang sudah dibuat pada algoritma yang dirancang. Algoritma decision making kerap digunakan dalam aplikasi game, akan tetapi algoritma decision making dapat diimplementasikan pada banyak aplikasi lain. Berikut adalah beberapa konsep pengambilan keputusan.

  A.  Pohon keputusan
Pohon keputusan atau decision tree adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Pohon yang dalam analisis pemecahan masalah pengambilan keputusan adalah pemetaan mengenai alternatif-alternatif pemecahan masalah yang dapat diambil dari masalah tersebut. Konsep dari pohon keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Data dalam pohon keputusan biasanya dinyatakan dalam bentuk tabel dengan atribut dan record. Atribut menyatakan suatu parameter yang dibuat sebagai kriteria dalam pembentukan tree.
Pohon keputusan mempunyai 3 tipe simpul
1. Simpul akar, dimana tidak memiliki cabang yang masuk dan memiliki cabang lebih dari satu, terkadang tidak memiliki cabang sama sekali. Simpul ini biasanya berupa atribut yang paling memiliki pengaruh terbesar pada suatu kelas tertentu.
2.  Simpul internal, dimana hanya memiliki 1 cabang yang masuk, dan memiliki lebih dari 1 cabang yang keluar.
3. Simpul daun, atau simpul akhir dimana hanya memiliki 1 cabang yang masuk, dan tidak memiliki cabang sama sekali dan menandai bahwa simpul tersebut merupakan label kelas.

Tahapan pembuatan decision tree:
1.     Definisikan dan rinci msaalah secara jelas
2.     Gambarkan struktur dari poon keputusan
3.     Tentukan nilai payoff dari setiap kombinasi alternatif kemungkinan
4.     Tuntukan nilai peluang dari seluruh kemungkinan dan keputusan
5.     Selesaikan masalah dengan menghitung Expected Monetary Value (EMV)

  B.   State Machine
Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan Action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relatif kompleks.

  C.  Fuzzy Logic
Fuzzy Logic adalah suatu cabang ilmu Artificial Intellegence, yaitu suatu pengetahuan yang membuat komputer dapat meniru kecerdasan manusia sehingga diharapkan komputer dapat melakukan hal-hal yang apabila dikerjakan manusia memerlukan kecerdasan. Fuzzy logic umumnya diterapkan pada masalah-masalah yang mengandung unsur ketidakpastian (uncertainty), ketidaktepatan (imprecise), noisy, dan sebagainya. Fuzzy logic menjembatani bahasa mesin yang presisi dengan bahasa manusia yang menekankan pada makna atau arti (significance).

  D.  Sistem Markov
Sistem Markov adalah suatu sistem yang sedang mengalami suatu perbaikan dengan menggunakan metode markov. Metode Markov ini dapat diaplikasikan untuk sistem diskrit (discrete system)  atau pun sistem kontinyu (continuous system). Sistem diskrit adalah sistem yang  perubahan kondisinya (state) dapat diamati/terjadi secara diskrit. Sedangkan sistem kontinyu adalah sistem yang perubahan kondisi dan perilaku sistem  terjadi secara kontinyu. Penjelasan lebih detail tentang sistem diskrit dan sistem kontinyu ini akan diberikan pada sub bab berikutnya. 
Ada beberapa syarat agar metode Markov dapat diaplikasikan dalam evaluasi  keandalan sistem. Syarat-syarat tersebut adalah:
1.  Sistem harus berkarakter lack of memory, dimana kondisi sistem dimasa mendatang tidak dipengaruhi (independent) oleh kondisi sebelumnya.  Artinya kondisi sistem saat evaluasi tidak dipengaruhi oleh kondisi  sebelumnya, kecuali kondisi sesaat sebelum kondisi saat ini.  
2.   Sistem harus stationery atau homogen, artinya perilaku sistem selalu  sama disepanjang waktu    atau peluang transisi sistem dari satu kondisi  ke kondisi lainnya akan selalu sama disepanjang waktu. Dengan demikian maka pendekatan Markov hanya dapat diaplikasikan untuk  sistem dengan laju kegagalan yang konstan.  
3.   State is identifiable. Kondisi yang dimungkinkan terjadi pada sistem  harus dapat diidentifikasi dengan jelas. Apakah sistem memiliki dua  kondisi (state) yakni kondisi beroperasi dan kondisi gagal, ataukah sistem memeiliki 3 kondisi, yakni 100% sukses, 50% sukses dan 100% gagal.

  E.   Rule Based System
Rule Based System merupakan metode pengambilan keputusan berdasarkan pada aturan-aturan tertentu yang telah ditetapkan. Rule Based System dapat diterapkan pada agen virtual dalam bentuk kecerdasan buatan sehingga dapat melakukan tindakan tertentu. Tindakan tersebut direpresentasikan oleh set aturan yaitu penyebab tindakan itu terjadi, proses tindakan dan hasil dari tindakan tersebut.



Sumber:


0 komentar: