Jumat, 22 Juni 2018

BAB 6 Pengambilan Keputusan pada Board Game

Tugas

Konsep Board Game

        Board game atau permainan papan, secara arti juga sudah dengan mudah untuk dimengerti, yaitu permainan yang dimainkan diatas papan atau diatas alas tertentu yang sudah dirancang sedemikian rupa sesuai dengan aturan permainannya. Board game biasanya ditujukan untuk permainan bersama keluarga dengan peraturan yang mudah sehingga mendapatkan kesan seru yang semakin mempererat tali kekeluargaan. Namun ada beberapa game yang membutuhkan keseriusan pada rancangan board game, seperti catur dan othello.

Algoritma Min Max

     Algoritma minmax atau minimax adalah sebuah algoritma yang digunakan pada permainan dengan dua pemain dengan cara memprediksi keadaan masa depan, dan kemudian mengambil langkah yang memaksimalkan peluang kemenangan. Teori di balik minimax adalah bahwa algoritma lawan akan mencoba untuk meminimalkan nilai apapun yang algoritma pemain berusaha maksimalkan. Dengan konsep seperti itu, maka algoritma ini akan melakukan gerakan yang membuat lawannya memiliki peluang lebih kecil untuk menang. 

Algoritma AlphaBetaWithMemory

       Sebagai catatan, MTD(f) memanggil fungsi Alpha-Beta yang menyimpan nilai simpul-simpulnya dalam memori, dan mengembalikan nilainya untuk pencarian kembali. Untuk membuat MTD(f) sangkil, maka fungsi Alpha-beta harus menyimpan nilai simpul yang telah dicari. Berikut ini adalah kode dari AlphaBetaWithMemory: 

function AlphaBetaWithMemory(n : node_type; alpha , beta , d : integer) : integer;
          if retrieve(n) == OK then /* Melihat tabel transposisi */
                    if n.lowerbound >= beta then return n.lowerbound;
                    if n.upperbound <= alpha then return n.upperbound;
                    alpha := max(alpha, n.lowerbound);
                    beta := min(beta, n.upperbound);
          if d == 0 then g := evaluate(n); /* simpul daun */
          else if n == MAXNODE then g := -INFINITY;
                    a := alpha; /* menimpan nilai alpha yang sebenarnya */
                    c := firstchild(n);
          while (g < beta) and (c != NOCHILD) do g := max(g, AlphaBetaWithMemory (c, a, beta, d - 1))
                    a := max(a, g);
                    c := nextbrother(c);
           else /* n adalah sebuah MINNODE */
                    g := +INFINITY;
                    b := beta; /* save original beta value */
                    c := firstchild(n);
           while (g > alpha) and (c != NOCHILD) do g := min(g, AlphaBetaWithMemory (c, alpha, b, d - 1));
                    b := min(b, g);
                    c := nextbrother(c); /* Tabel transposisi menyimpan nilai simpul */
            if g <= alpha then n.upperbound := g;
                    store n.upperbound;
            if g > alpha and g < beta then n.lowerbound := g;
                    n.upperbound := g;
                    store n.lowerbound, n.upperbound;
            if g >= beta then n.lowerbound := g;
                     store n.lowerbound;
return g;

Tabel transposisi yang digunakan berguna untuk menyimpan dan mengambil panggilan. Retrieve berfungsi untuk memastikan jika sebuah nilai terdapat MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2008 dalam tabel, maka nilai itu akan langsung digunakan, bukan dilanjutkan dengan mencarinya. Store berfungsi untuk menyimpan nilai yang ada. Dalam algoritma ini, kita juga akan menyimpan nilai langkah terbaik kedalam tabel transposisi.

Hashing

Hashing adalah transformasi aritmatik sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasanya, hashberarti memenggal dan kemudian menggabungkan. Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Ide dasarnya adalah menghitung posisi recordyang dicari dalam array, bukan membandingkan record dengan isi pada array. Fungsi yang mengembalikan nilai atau kunci disebut fungsi hash (hashfunction) dan array yang digunakan disebut tabel hash (hash table). Hash tablemenggunakan struktur data array asosiatif yang mengasosiasikan recorddengan sebuah field kunci unik berupa bilangan (hash) yang merupakan representasi dari record tersebut.

Zobrist Hashing

Zobrist hashing (juga disebut sebagai kunci Zobrist atau tanda tangan Zobrist [1]) adalah konstruksi fungsi hash yang digunakan dalam program komputer yang memainkan permainan papan abstrak, seperti catur dan Go, untuk menerapkan tabel transposisi, jenis khusus dari tabel hash yang diindeks oleh posisi papan dan digunakan untuk menghindari menganalisis posisi yang sama lebih dari satu kali.

Strategi Replacement

Metode replacement digunakan untuk menghapus data yang ada pada cache yang penuh, untuk digantikan dengan data baru. Banyak metode replacement yang diteliti sebelumnya. Faktor yg biasa diperhitungkan untuk proses replacement pada cache: 
- recency: waktu terakhir referensi ke objek
- frekuensi: jumlah request ke sebuah objek
- size: ukuran dari objek dalam cache
- cost of fetching the object: perhitungan pengambilan objek langsung dari server asli (seperti jarak dalam jumlah hop)
- modification time: waktu dimodifikasi terakhir sebuah objek
- expiration time: waktu dimana objek sudah kadaluarsa dan bisa diganti langsung


Sumber :

http://repository.unpas.ac.id/15941/2/bab%202.pdf

http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2016-2017/Makalah2017/Makalah-IF2211-2017-043.pdf

http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2007-2008/Makalah2008/MakalahIF2251-2008-094.pdf

http://syazdiayhodian.blogspot.com/2011/06/hashing.html

https://en.wikipedia.org/wiki/Zobrist_hashing

file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/565-770-1-PB.pdf

BAB 5 AI Dalam Taktikal dan Strategi

Tugas

Apa itu Waypoint?

         Waypoint dalam bahasa Indonesia berarti titik jalan. Jadi, waypoint dapat dijelaskan sebagai titik acuan atau koordinat yang digunakan untuk keperluan navigasi di dalam peta pada sebuah game. Koordinat-koordinat itu biasanya menyertakan longitude(garis bujur), latitude(garis lintang) dan kadang altitude(ketinggian) untuk keperluan navigasi udara di dalam game. Waypoint berfungsi sebagai titik tujuan didalam peta pada sebuah game. Waypoint di dalam game seringkali tidak disertai tanda yang dapat dilihat oleh pemain, baik ketika pemain melihat peta, Waypoint tidak akan ditampakkan guna untuk menambah tingkat kesulitan didalam sebuah game.

          Tidak dipungkiri lagi, waypoint sudah pasti diterapkan untuk karakter-karakter ai yang terdapat didalam game agar game dapat terlihat lebih hidup seperti keadaan di dunia nyata, walaupun kadang pemain juga harus dipaksa untuk mengikuti waypoint yang ditentukan oleh developer. waypoint yang diterapkan pada karakter ai dalam game bergenre aksi dan petualangan, biasanya untuk keperluan patroli, keperluan mengejar, keperluan melarikan diri dan keperluan menghindar.

Apa itu Taktik?

           Menurut penulis, taktik adalah susunan cara yang akan dilakukan untuk menyelesaikan sebuah masalah yang dihadapi. Taktik digunakan untuk terselesaikannya masalah dengan sempurna tanpa adanya kegagalan. Terkadang, taktik juga digunakan untuk mendapatkan keuntungan dari masalah yang dihadapi. Didalam game bergenre aksi dan petualangan, pemain sangat dipaksa untuk memiliki taktik agar masalah-masalah yan terdapat didalam game dapat terselesaikan secara sempurna, Karena kebanyakan didalam juga menuntut pemainnya untuk selalu menang, sehingga taktik sangat diperlukan untuk pemain.

Apa itu Pathfinding?

        Pathfinding atau dapat diartikan "pencarian jalur" dalam bahasa Indonesia. Pathfinding menurut penulis merupakan terusan dari waypoint, dimana ketika sebuah titik koordinat sudah di tentukan, karakter ai selanjutnya mencari jalur tercepat untuk sampai pada titik koordinat tersebut.

Penulisan

Strategi Real-time

        Strategi real-time "(RTS) menunjukkan bahwa tindakan dalam permainan kontinu, dan pemain akan harus membuat keputusan dan tindakan mereka dalam latar belakang negara permainan yang terus berubah, dan komputer real-time strategy gameplay ditandai dengan memperoleh sumber daya, membangun pangkalan, meneliti teknologi dan memproduksi unit.

contoh game yang menggunakan Strategi real-time

menurut penulis, game yang menggunakan strategi real-time adalah game yang sedang booming sekarang, yaitu P*BG. yang biasa disebut Pabji.

Referensi :

file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/M11,%20M12%20-%20AI%20dalam%20Tactical%20dan%20Strategi.pdf

file:///E:/Pengantar%20Game%20(Soft%20Skill)/Tugas%204/M11%20dan%20M12%20-%20Pengantar%20Teori%20Game%20Tactical%20Strategy%20Way%20Point.pdf

Senin, 14 Mei 2018

Analisa Kode Program Jaringan

Tugas Analisa dan Hasil Pemrograman Jaringan

Pemrograman jaringan adalah mata kuliah dimana mahasiswa dapat melatih dan menambah pengetahuan tentang jaringan melalui kode program yang diperuntukkan sesuai kebutuhannya. Disini penulis akan menganalisa beberapa kode program sesuai peruntukkannya atau fungsinya. Dibawah ini terdapat beberapa kode program java, antara lain : getIP.java, getName.java, IPtoName.java, NSLookUp.java, simpleServer.java dan simpleClient.java. Penulis hanya akan menganalisa secara keseluruhan blok program.

Yang pertama, getIP.java.

Kode program ini sesuai judulnya, berfungsi untuk mendapatkan ip pada perangkat yang digunakan.
Berikut kode programnya.

Kode diatas berfungsi untuk mendapatkan IP dari perangkat yang digunakan, kode tersebut dijalankan melalui command prompt. library yang digunakan untuk jaringan pada pemrograman jaringan menggunakan bahasa program java adalah library net.*, agar semua library net dapat digunakan tanpa harus memasukkan satu demi satu. dan pada kode tersebut, terdapat iterasi for yang berfungsi untuk mendapatkan nilai-nilai bertipe integer untuk ip yang digunakan oleh perangkat pengguna.

Output untuk program tersebut ada dibawah ini :


Yang ke dua, getName.java.

Kode program dibawah ini berfungsi sesuai namanya untuk mendapatkan nama perangkat yang digunakan oleh pengguna pada saat menjalankan kode tersebut. Berikut kode program untuk getName.java.
Kode diatas hampir sama dengan kode getIP.java, bedanya pada kode program ini tidak memerlukan iterasi for sebagaimana yang digunakan pada kode getIP.java. Kode program tersebut hanya langsung mengambil nilai string yang digunakan oleh perangkat pengguna.

Output untuk program tersebut ada dibawah ini :

Yang ke tiga, IPtoName.java

Kode program dibawah ini berfungsi untuk menampilkan nama perangkat berdasarkan ip yang dimasukkan atau menyatakan bahwa ip sekian dimiliki oleh perangkan bernama "nama_perangkat". Berikut kode program IPtoName.java.
Kode program diatas berfungsi untuk menyatakan nama perangkat berdasarkan ip address yang dimasukkan pada saat kode program ini dijalankan. Namun nama perangkat dan ip address perangkat harus diketahui terlebih dahulu, jika tidak diketahui, maka program tersebut akan menampilkan pemberitahuan bahwa ip yang dimasukkan tidak valid atau tidak terdaftar didalam perangkat.

Berikut output untuk kode program diatas :

Yang ke empat, NSLookUp.java.

Kode program dibawah ini berfungsi untuk mengetahui nama perangkat yang digunakan pada saat menjalankan program. Berikut kode program NSLookUp.java.
Kode program diatas adalah kebalikan dari IPtoName.java, dimana kode tersebut ketika dijalankan secara tidak langsung menanyakan nama perangkat atau host yang ingin diketahui IP addressnya, jadi cara kerjanya adalah pertama masukkan nama host terlebih dahulu kemudian enter makan ip address-nya akan tampil. Sebagaimana ditampilkan pada output. Namun jika nama host tidak diketahui maka program akan menampilkan pemberitahuan bahwa nama host tidak diketahui.

Berikut output untuk NSLookUp.java :

Yang kelima, simpleServer.java.

Kode program dibawah adalah kode untuk client-server sederhana dimana kode ini berfungsi sebagai server. Dibawah ini adalah kode program dari simpleServer.java.
Kode program diatas berfungsi sebagai server untuk client-server sederhana yang dapat dilakukan pada satu perangkat. Kode tersebut akan menyatakan server sederhana telah hidup dan akan memberi salam sesuai dengan masukkan yang benar, jika salah, program akan menyatakan, maaf saya tidak mengerti, dan setelah itu program tersebut berhenti dengan sendiri nya sesuai dengan urutan kode yang sudah ditentukan.

Berikut output dari kode program simpleServer.java :

Yang terakhir, simpleClient.java.

Kode di bawah ini adalah untuk client untuk client-server sederhana. Berikut kode programnya.
Kode program diatas berfungsi sebagai client pada client-server sederhana yang dapat dijalankan pada satu perangkat. Dimana program tersebut dapat mengiriman pesan ke server dan server dapat menerima pesan dari client. Namun ketika mengirim kata-kata yang tidak diketahui server, program akan mengirimkan pesan ke client berupa "Error wirting to server. . .".

Berikut output dari kode program simpleClient.java

Tugas tersebut penulis buat untuk memenuhi Tugas Mata kuliah Pemrograman Jaringan dengan Dosen Pengajar : Muhammad Achsan Isa Al Anshori, SKom, MMSI.

Data Mahasiswa
Nama       : Rahmat Tri Laksono
NPM        : 58414812
Kelas        : 4IA23

Sumber :
http://putri-nurhasanah.blogspot.co.id/2018/05/progjar-analisa-program.html
http://punyanyayuli.blogspot.co.id/

Minggu, 29 April 2018

Penulisan Review 2 Game


Penulisan mengulas 2 game yang menggunakan konsep pengambilan keputusan

Penulis akan mengulas singkat 2 game console yang pernah penulis mainkan dan yang menurut penulis memiliki konsep pengambilan keputusan. Sebenarnya, hampir semua game yang penulis mainkan itu memiliki konsep pengambilan keputusan, tapi untuk kali ini, penulis hanya mengulas 2 game saja, antara lain game nya adalah God of War 2 dan Resident Evil 4.

Pada game console bernama God of War 2, pengambilan keputusan dapat sangat dilihat pada saat kejadian-kejadian tertentu, seperti pada awal permainan dimana Kratos dihadapkan dengan Colossus of Rhodes, aktor Kratos sudah ditanamkan rangkaian program keputusan yang bisa digunakan oleh pemain, entah itu untuk menyerang Rhodes dengan menggunakan serangan dasar dan campuran atau dengan mengeluarkan elemen-elemen yang dimiliki, seperti elemen listrik, atau keputusan untuk menghindar saat Rhodes menyerang, seperti mengelak, atau melompat, atau menyerang balik dengan menggunakan elemen yang dimiliki. Pada kejadian tertentu, pemain diharuskan untuk menekan tombol dan mengarahkan analog sesuai dengan instruksi yang ada, dan jika salah konsekuensinya adalah serangan yang sudah dirangkai akan dipatahkan oleh Rhodes.

Contoh gambar awal mula pengambilan keputusan akan dimulai sesuai dengan instruksi.
Gambar Stunned Colossus

Pada game console bernama Resident Evil 4. Pengambilan keputusan juga sangat terlihat pada beberapa adegan, seperti pada saat pertarungan pisau antara Leon melawan Krauser. Dimana pemain diharuskan untuk sangat cepat memproyeksikan apa yang diinstruksikan agar leon tetap hidup. Pada adegan tersebut, pemain harus terus mengikuti instruksi-instruksi tombol yang ada sampai dengan selesainya adegan yang sudah di skenariokan.
Contok instruksi keputusan yang harus diambil oleh pemain
Gambar Leon vs Krauser Knife Fight Cutscene.

Sumber gambar :


BAB 4 Pengambilan Keputusan


Pengambilan keputusan dalam pembuatan game
Didalam sebuah game, tidak akan seru jika didalam game tersebut tidak ada tantangan yang harus dihadapkan kepada pemain. Selain untuk mengundang keseruan didalam game yang sedang dimainkan, tantangan juga akan membuat para pemainnya untuk berfikir tindakan apa yang harus dilakukan oleh pemain agar aktor dalam game yang sedang dimainkan dapat lolos dari tantangan yang ada. Tantangan yang diberikan didalam game-pun tidak lepas dari algoritma-algoritma kecerdasan buatan yang mampu membuat keputusan sendiri apa yang harus dilakukan aktor musuh (aktor yang diperankan oleh algoritma itu sendiri). Algoritma-algoritma tersebut yang membuat tantangan menjadi sangat berpengaruh didalam sebuah game.
Terlepas dari algoritma-algoritma yang memberikan tantangan didalam game, para pemainpun harus mampu melawan algoritma tersebut dengan algoritmanya sendiri yang tentunya bukan algoritma buatan, melainkan dengan berbagai algoritma keputusan yang harus pemain ambil. Berbicara mengenai keputusan, dibawah ini tertulis dari berbagai ahli tentang definisi keputusan, berikut penjelasannya.

Pengertian Keputusan

        Menurut penulis, keputusan adalah penentuan tindakan dari fakta yang ada melalui sebuah perhitungan, perkiraan bahkan dari sebuah firasat. Keputusan diambil guna untuk menyelesaikan masalah yang ada yang akan berujung dengan sebuah konsekuensi entak itu konsekuensi mengntungkan ataupun merugikan.

Definisi keputusan menurut para ahli
      
      1.      Ralph C. Davis
Menurut Ralph C. Davis, Keputusan adalah hasil pemecahan masalah yang dihadapi dengan tegas. Suatu keputusan merupakan jawaban yang pasti terhadap suatu pertanyaan. Keputusan harus bisa menjawab pertanyaan tentang apa yang dibicarakan dalam hubungannya dengan perencanaan. Keputusan bisa juga berupa tindakan terhadap pelaksanaan yang sangat menyimpang dari rencana semula.

      2.      Mary Follet
Menurut Mary Follet, Keputusan adalah suatu atau sebagai hukum situasi. Jika semua fakta dari situasi tersebut bisa didapatkannya dan semua yang terlibat, baik pengawas maupun pelaksana mau mentaati hukum ataupun ketentuannya, maka tidak sama dengan mentaati perintah. Wewenang tinggal dilaksanakan namun itu merupakan wewenang hukum situasi.

      3.      James A.F.Stoner
Menurut James A.F.Stoner, Keputusan adalah pemilihan di antara alternatif-alternatif. Definisi ini mengandung tiga pengertian, yakni:
-          Ada pilihan atas dasar logika atau pertimbangan.
-          Ada beberapa alternatif yang harus dan dipilih salah satu yang terbaik.
-          Ada tujuan yang ingin dicapai dan keputusan tersebut makin mendekatkan pada tujuan tertentu.

      4.      Prof. Dr. Prajudi Atmosudirjo, SH
Menurut Prof. Dr. Prajudi Atmosudirjo, SH, Keputusan adalah suatu pengakhiran dari proses pemikiran tentang suatu problem atau masalah untuk menjawab pertanyaan apa yang harus diperbuat guna mengatasi masalah tersebut dengan menjatuhkan pilihan pada suatu alternatif.

Definisi pengambilan keputusan

Menurut penulis, pengambilan keputusan adalah pemilihan tindakan yang akan dilakukan, digunakan atau diimplementasikan dari semua perhitungan, semua dari rekayasa perkiraan dan bahkan dari dilemanya saat memilih berdasarkan firasat yang dirasakan.

Definisi pengambilan keputusa menurut para ahli

      1.      G. R. Terry
Pengambilan keputusan dapat didefenisikan sebagai “pemilihan alternatif kelakuan tertentu dari dua atau lebih alternatif yang ada”.
  
      2.      Harold Koontz dan Cyril O’Donnel
Pengambilan keputusan adalah pemilihan diantara alternatif-alternatif mengenai sesuatu cara bertindak adalah inti dari perencanaan. Suatu rencana dapat dikatakan tidak ada, jika tidak ada keputusan suatu sumber yang dapat dipercaya, petunjuk atau reputasi yang telah dibuat.

      3.      Theo Haiman
Inti dari semua perencanaan adalah pengambilan keputusan, suatu pemilihan cara bertindak. Dalam hubungan ini kita melihat keputusan sebagai suatu cara bertindak yang dipilih oleh manajer sebagai suatu yang paling efektif, berarti penempatan untuk mencapai sasaran dan pemecahan masalah.

      4.      Drs. H. Malayu S.P Hasibuan
Pengambilan keputusan adalah suatu proses penentuan keputusan yang terbaik dari sejumlah alternative untuk melakukan aktifitas-aktifitas pada masa yang akan datang.

      5.      Chester I. Barnard
Keputusan adalah perilaku organisasi, berintisari perilaku perorangan dan dalam gambaran proses keputusan ini secara relative dan dapat dikatakan bahwa pengertian tingkah laku organisasi lebih penting dari pada kepentingan perorangan.

Berdasarkan penjelasan diatas dapat disimpulkan bahwa pengambilan keputusan adalah proses pemilihan alternatif solusi untuk masalah. Secara umum pengambilan keputusan adalah upaya untuk menyelesaikan masalah dengan memilih alternatif solusi yang ada.




Pengambilan keputusan dalam pembuatan game

Dalam pembuatan game, pengambilan keputusan mutlak harus diterapkan pada setiap aktor kecerdasan buatan maupun aktor yang akan dimainkan oleh pemain. Bedanya pada aktor yang dimainkan oleh kecerdasan buatan adalah keputusan-keputusan sudah ditanamkan melalui rangkaian program sesuai algoritma yang dipakai kemudian keputusan tersebut dijalankan sesuai dengan perhitungan yang juga sudah ditentukan, biasanya keputusan yang sudah ditanamkan pada aktor kecerdasan buatan berpengaruh pada agresifitas tingkah-lakunya yang juga sudah diatur lagi dalam sebuah tingkatan permainan yang ada dalam permainan yang dipilih.
Sedangkan pada keputusan-keputusan yang ditanamkan pada aktor pemain adalah keputusan yang sudah disediakan namun harus menggunakan pemicu terlebih dahulu agar keputusan tersebut dapat berjalan sesuai dengan kehendak pemain. Pemicu tersebut biasanya akan menjalankan keputusan yang disediakan hanya dengan menggerakan analog, menekan satu tombol atau, menekan urutan tombol ataupun dengan kombinasi tombol yang harus ditekan secara bersamaan. Biasanya keputusan yang sudah disediakan untuk pemain hanyalah memanipulasi gerakan atau refleksifitas dari aktor yang sedang dimainkan, biasanya keputusan tersebut terdapat didalam permainan petualangan aksi. Jadi hanya dengan gerakan yang menotonpun sudah menjadi sebuah keputusan yang menguntungkan bagi pemain yang memahami pola dari game yang dimainkan.
Untuk lebih memahami lagi tentang pengambilan keputusan dalam sebuah pembuatan game, ada baiknya kita juga membahasa beberapa jenis konsep pengabilan keputusan antara lain :
       -          Pohon keputusan.
       -          State Machine.
       -          Fuzzy Logic.
       -          Sistem Markov.
       -          Rule Base System.

Pertama, Pohon Keputusan
Definisi Pohon Keputusan
Menurut penulis, pohon keputusan adalah urutan perjalanan keputusan dari mulainya permasalahan sampai dengan konsekuensi yang akan dihadapi. Pohon Keputusan lebih menggambarkan bagan-bagan yang langsung memberikan perkiraan atau kepastian untuk hasil yang akan di capai nantinya.
Secara konsep, Pohon Keputusan merupakan salah satu teknik dari Analisis Keputusan (Decision Analysis). Terdapat banyak definisi teknis yang bisa ditemukan dalam berbagai sumber mengenai pohon keputusan karena beragamnya aplikasi pohon keputusan ini pada berbagai jenis proses dan industri yang berbeda-beda. Definisi yang paling sederhana mengenai apa itu Pohon Keputusan, adalah diagram analisis yang dapat membantu pengambil keputusan ketika menghadapi beberapa opsi dengan cara memproyeksikan hasil yang mungkin terjadi.  Pohon tersebut juga memperlihatkan faktor-faktor kemungkinan/ probablitas yang akan mempengaruhi alternatif-alternatif keputusan tersebut, disertai dengan estimasi hasil akhir yang akan didapat bila kita mengambil alternatif keputusan tersebut
Definisi teknis yang diambil dari beberapa buku Manajemen Operasional, bahwa Pohon Keputusan merupakan  “Model alternatif pilihan yang tersedia bagi pengambil keputusan, beserta kemungkinan konsekuensinya.” Pohon keputusan dapat digunakan saat membuat berbagai pilihan, mulai dari keputusan yang paling sederhana sampai yang sangat yang rumit. Konsep dari pohon keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Pohon keputusan memadukan antara eksplorasi data dan pemodelan, sehingga sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain.

Keterangan: C = Situasi yang dapat dikontrol oleh pengambil keputusan; E = Situasi yang tidak dapat dikontrol oleh pengambil keputusan

Manfaat  dan Kelebihan Pohon Keputusan
Manfaat utama dari penggunaan pohon keputusan adalah kemampuannya untuk menyederhanakan proses pengambilan keputusan yang kompleks menjadi lebih sederhana sehingga pengambil keputusan akan lebih mudah menginterpretasikan solusi dari permasalahan
Terdapat beberapa keuntungan menggunakan pohon keputusan, di antaranya adalah:
- Menghilangkan perhitungan-perhitungan yang tidak dibutuhkan. Sample yang diuji hanya berdasarkan kriteria atau kelas tertentu.

-  Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik.

- Dalam analisis multivariat, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan menghindari munculnya permasalahan dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.

-          Bersifat fleksibel, memilih fitur dari internal node yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional

Keterbatasan dan Kekurangan Pohon Keputusan
Seperti halnya alat bantu umumnya, pohon keputusan juga mempunyai kekurangan, antara lain:
                 -          Terjadi overlap dalam menggunakan kelas-kelas dan kriteria yang digunakan dalam jumlah besar. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan.
                     -          Pengakumulasian jumlah eror dari setiap tingkat dalam sebuah pohon keputusan yang besar.
                       -          Kesulitan dalam mendesain pohon keputusan yang optimal.
-          Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.

Kedua, State Machine
Definisi State Machine
State machine adalah konsep yang digunakan dalam merancang program komputer atau logika digital. Ada dua jenis state machine: state machine yang terbatas dan tak terbatas. Yang pertama terdiri dari sejumlah keadaan, transisi, dan tindakan yang dapat dimodelkan dengan grafik aliran, di mana jalur logika dapat dideteksi ketika kondisi terpenuhi. Yang terakhir ini tidak praktis digunakan.
State machine adalah perangkat apa pun yang menyimpan status sesuatu pada waktu tertentu. Status berubah berdasarkan pada input, menyediakan output yang dihasilkan untuk perubahan yang diimplementasikan. State machine yang terbatas memiliki memori internal yang terbatas. Simbol masukan dibaca secara berurutan yang menghasilkan fitur output dalam bentuk antarmuka pengguna.
State machine diwakili dengan menggunakan diagram negara. Output state machine adalah fungsi dari input dan status saat ini. State machine memainkan peran penting dalam bidang-bidang seperti teknik elektro, linguistik, ilmu komputer, filsafat, biologi, matematika, dan logika. Mereka paling baik digunakan dalam pemodelan perilaku aplikasi, rekayasa perangkat lunak, desain perangkat keras sistem digital, protokol jaringan, kompiler, dan studi komputasi dan bahasa.
Pengoperasian state machine dimulai dari keadaan awal. Pada transisi yang sukses berakhir dalam keadaan menerima. Transisi berlangsung berdasarkan masukan yang diberikan. Keadaan saat ini tergantung pada status sistem sebelumnya. Jumlah negara yang terbentuk bergantung pada status memori yang tersedia. Transisi diaktifkan berdasarkan kondisi tertentu dan menunjukkan perubahan status. Suatu tindakan menggambarkan suatu aktivitas yang dilakukan pada saat tertentu. Berbagai jenis tindakan adalah aksi transisi, aksi input, aksi masuk, dan tindakan keluar.
Automata Deterministik memiliki tepat satu transisi di setiap negara untuk setiap masukan yang mungkin. Dalam automata non-deterministik, input negara mengarah ke satu, banyak, atau tidak ada transisi. State machine dengan hanya satu negara disebut state machine kombinatorial dan hanya menggunakan tindakan input.
Dua kelompok state machine yang berbeda adalah akseptor dan transduser. Akseptor menghasilkan output biner, berdasarkan apakah input diterima atau ditolak oleh mesin. Saat memproses input, jika keadaan saat ini menerima, input diterima. Kalau tidak, ditolak. Bahasa yang diterima oleh state machine disebut bahasa biasa. Status awal diwakili oleh panah yang menunjuknya dari mana saja, sementara negara yang diterima diwakili menggunakan lingkaran ganda. Transduser melayani output berdasarkan input yang diberikan, menggunakan tindakan. Mesin Moore dan Mealy adalah contoh transduser.
State machine bahasa pemodelan yang tidak dimodifikasi juga banyak digunakan karena keduanya memiliki karakteristik mesin Moore dan Mealy di dalamnya. Mereka termasuk konsep tambahan seperti daerah ortogonal dan negara-negara yang bersarang hierarkis.

Ketiga, Fuzzy Logic
Fuzzy logic jika di atau dalam bahasa Indonesia logika Fuzzy adalah teknik/ metode yang dipakai untuk mengatasi hal yang tidak pasti pada masalah – masalah yang mempunyai banyak jawaban. Pada dasarnya Fuzzy logic merupakan logika bernilai banyak/ multivalued logic yang mampu mendefinisikan nilai diantara keadaan yang konvensional seperti benar atau salah, ya atau tidak, putih atau hitam dan lain-lain.
Penalaran Logika Fuzzy memnyediakan cara untuk memahami kinerja system dengan cara menilai input dan output system dari hasil pengamatan. Logika Fuzzy menyediakan cara untuk menggambarkan kesimpulan pasti dari informasi yang samar-samar, ambigu dan tidak tepat. Fuzzy logic Pertama kali dikembangkan oleh Lotfi A. Zadeh tahun 1965.
Alasan Kenpa digunakan logika Fuzzy:
Karena konsep logika Fuzzy mudah dimengerti.
-          Logika Fuzzy fleksibel.
-          Logika Fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks.
-          Logika Fuzzy dapat bekerja dengan teknik-teknik kendali secara konvensional.
-          Logika Fuzzy memiliki toleransi terhadap data-data yang tepat.
-          Logika Fuzzy didasarkan pada bahasa alami.
-          Logika Fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan.

Keempat, Sistem Markov
ANALISIS MARKOV
Pengertian
Analisa Rantai Markov adalah suatu metode yang mempelajari sifat -sifat suatu variabel pada masa sekarang yang didasarkan pada sifat -sifatnya di masa lalu dalam usaha menaksir sifat-sifat variabel tersebut dimasa yang akan datang. Analisis Markov adalah suatu teknik matematik untuk peramalan perubahan pada variable-variabel tertentu berdasarkan pengetahuan dari perubahan sebelumnya.
Model Rantai Markov dikembangkan oleh seorang ahli Rusia A.A. Markov pada tahun 1896. Dalam analisis markov yang dihasilkan adalah suatu informasi probabilistik yang dapat digunakan untuk membantu pembuatan keputusan, jadi analisis ini bukan suatu teknik optimisasi melainkan suatu teknik deskriptif . Analisis Markov merupakan suatu bentuk khusus dari model probabilistik yang lebih umum yang dikenal sebagai proses Stokastik (Stochastic process).
Konsep dasar analisis markov adalah state dari sistem atau state transisi, sifat dari proses ini adalah apabila diketahui proses berada dalam suatu keadaan tertentu, maka peluang berkembangnya proses di masa mendatang hanya tergantung pada keadaan saat ini dan tidak tergantung pada keadaan sebelumnya, atau dengan kata lain rantai Markov adalah rangkaian proses kejadian dimana peluang bersyarat kejadian yang akan datang tergantung pada kejadian sekarang.
Jadi, Informasi yang dihasilkan tidak mutlak menjadi suatu keputusan, karena sifatnya yang hanya memberikan bantuan dalam proses pengambilan keputusan.

Syarat-Syarat Dalam Analisa Markov
Untuk mendapatkan analisa rantai markov ke dalam suatu kasus, ada beberapa syarat  yang harus dipenuhi yaitu sebagai berikut:
-          Jumlah probabilitas transisi untuk suatu keadaan awal dari sistem sama dengan 1.
-          Probabilitas-probabilitas tersebut berlaku untuk semua partisipan dalam sistem.
-          Probabilitas transisi konstan sepanjang waktu.
-          Kondisi merupakan kondisi yang independen sepanjang waktu.
Penerapan analisa markov bisa dibilang cukup terbatas karena sulit menemukan masalah yang memenuhi semua syarat yang diperlukan untuk analisa markov, terutama persyaratan bahwa probabilitas transisi harus konstan sepanjang waktu (probabilitas transisi adalah probabilitas yang terjadi dalam pergerakan perpindahan kondisi dalam sistem).

Kelima, Rule Based System
Rule Based System (RBS) merupakan suatu sistem pakar yang menggunakan aturan-aturan untuk menyajikan pengetahuannya. Menurut Lusiani dan Cahyono [1], sistem berbasis aturan adalah suatu perangkat lunak yang menyajikan keahlian pakar dalam bentuk aturan-aturan pada suatu domain tertentu untuk menyelesaikan suatu permasalahan. RBS adalah model sederhana yang bisa diadaptasi ke banyak masalah. Namun, jika aturan terlalu banyak, pemeliharaan sistem akan rumit dan terdapat banyak kesalahan dalam kerjanya. 
Untuk membuat RBS, ada beberapa hal penting yang harus dimiliki:
1.      Sekumpulan fakta yang mewakili working memory. Ini dapat berupa suatu keadaan yang relevan dengan keadaan awal sistem bekerja.
2.      Sekumpulan aturan. Aturan ini mencakup setiap tindakan yang harus diambil dalam ruang lingkup permasalahan yang dibutuhkan.
3.      Kondisi yang menentukan bahwa solusi telah ditemukan atau tidak (non-exist). Hal ini berguna untuk menghindari looping yang tidak akan pernah berakhir.
Teori RBS ini menggunakan teknik yang sederhana, dimulai dengan dasar aturan yang berisi semua pengetahuan dari permasalahan yang dihadapi yang kemudian dikodekan ke dalam aturan if-then yang mengandung data, pernyataan dan informasi awal. Sistem akan memeriksa semua aturan kondisi if yang menentukan subset, set konflik yang ada. Jika ditemukan, maka sistem akan melakukan kondisi then. Perulangan ini akan terus berlanjut hingga salah satu atau dua kondisi bertemu, jika aturan tidak diketemukan maka sistem tersebut harus keluar dari perulangan (terminate).

Pendekatan
Untuk mengelola aturan, terdapat dua pendekatan yaitu: 
Forward Chaining :  aturan diproses berdasarkan sejumlah fakta yang ada, dan didapatkan konklusi sesuai dengan fakta-fakta tersebut. Pendekatan forward chaining disebut juga data driven.
Backward Chaining : diberikan target, kemudian aturan yang aksinya mengandungtarget di-trigger. Backward chaining ini cocok untuk menelusuri fakta yang masih belum lengkap, disebut juga goal driven.

Kelebihan dan Kekurangan
Berikut ini beberapa kelebihan yang dimiliki oleh RBS sebagaimana dijelaskan oleh Sasikumar dkk: 
a.                  Homogenitas
Karena memiliki sintaks yang seragam, makna dan interpretasi dari masing-masing aturan dapat dengan mudah dianalisis.
b.                  Kesederhanaan
Karena sintaks sederhana, mudah untuk memahami makna dari aturan. Ahli domain seringkali dapat memahami aturan tanpa penerjemahan yang eksplisit. Aturan sehingga dapat mendokumentasikan diri sampai batas yang baik.
c.                  Independensi
Ketika menambahkan pengetahuan yang baru tidak perlu khawatir tentang dimana aturan itu akan ditambahkan, atau apakah ada interaksi dengan aturan lainnya. Secara teori, setiap aturan adalah bagian independen dari pengetahuan tentang domain tersebut. Namun, dalam prakteknya, hal ini tidak sepenuhnya benar.
d.                  Modularitas
Independensi aturan mengarah ke modularitas dalam rule base. Prototipe sistem dapat diciptakan cukup cepat dengan membuat beberapa aturan. Hal ini dapat ditingkatkan dengan memodifikasi aturan berdasarkan kinerja dan menambahkanaturan baru.
Sedangkan beberapa kekurangan yang dimiliki oleh RBS antara lain:
-          Jika terlalu banyak aturan, sistem menjadi sulit dalam memelihara performance. 
-          Keterbatasan dalam memutuskan teknik yang digunakan untuk suatu masalah.



Sumber :