Sabtu, 11 Maret 2017

Analisis Akses Jaringan Komputer

Pada tulisan kali ini saya akan membahas tentang analisis akses jaringan komputer pada salah satu website. Analisis ini akan mempresentasikan seberapa cepat akses kita terhadap website yang kita tuju, kemudian saya juga menganalisis traffic pada website tersebut,

Mari kita mulai dengan memeriksa kecepatan internet yang kita pakai dalam mengakses website tersebut. Website yang saya gunakan dalam memeriksa kecepatan internet saya adalah speedtest.net. 

Pada gambar diatas, saat saya melakukan pemeriksaan kecepatan, terlihat bahwa nilai PING 11ms yang menandakan kualitas jaringan internet saya baik, semakin rendah nilai ping, maka semakin baik jaringan tersebut, nilai ping dinyatakan dengan satuan milisecond(ms).  Pada kecepatan internet juga terlihat mencapai 3,88Mbps dari kecepatan maksimum yang saya dapat dari provider sebesar 4Mbps. Maka dapat disimpulkan semakin rendah ping semakin cepat waktu tempuh yang didapat.


Selanjutnya yang kita ingin ketahui adalah ip address dari domain. IP address dari website studentsite gunadarma adalah 202.125.94.165. Setelah itu kita akan mengecek traffic dari domain tersebut melalui similarweb.com.

Pada traffic website saya akan menganalisis traffic berdasarkan total kunjungan, negara pengunjung, dan sumber. Setelah ditelusuri jumlah total kujungan pada web tersebut pada 6 bulan terakhir terhitung sampai tanggal 17 februari berjumlah 146900, dengan rata-rata kunjungan selama 4 menit 16 detik, serta page per visit berjumlah 3,91 halaman, dan bounce rate 22,47%. Bounce rate sendiri merupakan persentase dari total pengunjung yang hanya melihat satu halaman saja lalu mengunjungi web lain. Semakin kecil angka bounce rate, semakin bagus website kita karena pengunjung tertarik untuk melihat lebih dalam tentang web yang kita buat.

Dari traffic by country, bisa dilihat bahwa mayoritas traffic berasal dari Indonesia, sisanya berasal dari Amerika, Singapore, Jerman dan Inggris.


Pada traffic source, menunjukan bahwa mayoritas pengguna mengakses secara langsung (direct) dengan perolehan 55,35%. Lalu sebanyak 14% mengunjungi halaman web tersebut setelah melihatnya pada halaman lain. Selain itu pengguna juga mengunjungi halaman web setelah melakukan pencarian pada search engine, dan juga mengunjungi halaman dengan link yang tertera pada sosial media.




Setelah melihat traffic pada web, kini  kita memeriksa konektivitas pada host tersebut. Terlihat bahwa time yang ada mencapai 16ms dan terendah pada 13ms, tidak jauh berbeda dengan test yang dilakukan pada website speedtest. ini menandakan bahwa konektivitas antara komputer target dan komputer saya baik, sehingga waktu yang ditempuh saat paket dikirmkan dari komputer saya ke komputer target cepat dan tidak ada kendala. 

Kamis, 12 Januari 2017

Sistem Pakar (3)

Bagaimana awal mula sistem pakar dibuat
Sistem pakar sendiri pada dasarnya tidak terlalu banyak tercatat dalam sejarah, terutama sejarah yang terlalu detail seperti sejarah internet ataupun sejarah jaringan komputer. Akan tetapi, yang pasti, cikal bakal dari munculnya sebuah sistem pakar diawali oleh sebuah komunitas artificial intelligence atau AI yang merupakan komunitas para programmer dan pengembang dari kecerdasan buatan pada tahun 1960.
Sistem pakar ini mulai dikembangkan, karena sejalan dengan visi misi dari komunitas kecerdasan buatan, yang memapu menghadirkan komputer pintar yang memiliki kepintaran menyerupai manusia. Sistem pakar pertama yang diciptakan adalah GPS atau yang merupakan kependekan dari General Purpose Problem Solver. Sistem pakar GPS ini diciptakan dan dikembangkan oleh Newel dan Simon pada era 1960-an.
Prinsip kerja dari sebuah sistem pakar
Secara umum, sebuah sistem pakar itu sendiri memiliki sebuah prinsip kerja yang sangat sederhana. Para pengembang atau developer mengumpulkan berbagai macam pandangan dan juga hasil penelitian dan juga presentasi yang sering dilakukan oleh para ahli dalam bidang tertentu. Setelah itu para developer kemudian membuat intisari dari seluruh hasil data yang diperoleh tersebut, yang kemudian dimasukkan ke dalam sebuah sistem yang dijadikan program komputer.
Sebagai contohnya, ketika seorang developer akan mengembangkan sebuah sistem pakar berdisiplin ilmu kesehatan, maka sebelumnya developer harus menspesifikasikan terlebih dahulu again ilmu kesehatan yang akan dia jadikan program.
Misalnya adalah mengenai diet. Maka sang developer pun kemudian melakukan riset literature yang mencari mengenai berbagai macam teori, metode, manfaat, dan segala sesuatu yang berhubungan dengan diet. Setelah itu, program pun dikembangkan, dan para user yang menggunakan program tersebut nantinya akan bisa memahami megnenai proses diet yang akan mereka lakukan, tanpa harus berkonsultasi ke pakar kesehatan atau ahli gizi.
Sistem pakar sendiri memilik banyak sekali kelebihan dan juga keunggulan, berikut ini adalah beberapa kelebihan dan juga keunggulan dari sistem pakar :
  1. User tidak perlu repot berkonsultasi secara tatap muka dengan pakar atau ahli
  2. User tetap bisa memperoleh informasi yang valid dan juga reliabel, meskipun tidak mengenal dan memiliki channel pakar – pakar yang dapat memecahkan masalahnya
  3. Sistem pakar mengintegrasikan pandangan dan juga pendapat dari satu atau lebih pakar, sehingga dapat diramu secara lebih objektif dan menghasilkan sebuah output yang lebih detail dan juga mendalam
  4. Sistem pakar mampu memberikan respond an juga jawaban yang lebih cepat, tidak seperti ketika kita bertanya langsung ke pakar, yang biasanya harus mengobrol terlebih dahulu
  5. Sangat berguna untuk membantu menyelesaikan berbagai macam masalah yang dialami oleh user
  6. Dapat menambah informasi bagi banyak user
  7. Dapat digunakan untuk mengakses database secara cerdas
  8. Meningkatkan minat masyarakat untuk lebih tahu banyak dan mau belajar banyak.

Meskipun dinilai memiliki banyak sekali kelebihan, terutama bagi usernya, namun demikian ternyata sistem pakar juga memiliki beberapa kekurangan. Berikut ini adalah beberapa kekurangan dari sistem pakar :
  1. Biaya pengembangan yang cukup tinggi
  2. Waktu pengembangan sistem pakar yang cenderung lama
  3. Laju ilmu pengetahuan yang cepat, sehingga membutuhkan pembaruan atau update sistem pakar dalam jangka waktu tertentu
  4. Meskipun dinilai reliabel dan juga valid, namun sistem pakar tidak 100% dapat menjamin keberhasilannya, karena adanya faktor – faktor lainnya yang dimiliki oleh user
  5.  Untuk dapat mengintegrasikan pandangan dan juga pemikiran dari pakar yang ada, membutuhkan waktu yang cukup lama dan juga slit, karena terkadang tiap – tiap pakar memiliki pandangan dan juga pendapat yang berbeda 180 derajat
  6. User mungkin tidak akan tertarik untuk membeli aplikasi seperti ini, karena harganya yang mahal, dan hanya berlaku untuk kebutuhan spesifik saja.

Sumber:
Dini S.Kom. "Pengertian Sistem Pakar Menurut para Ahli". http://dosenit.com/kuliah-it/sistem-informasi/pengertian-sistem-pakar (Diakses 13 Januari 2017)

Rabu, 11 Januari 2017

Algoritma ID3 pada Pohon Keputusan

Algoritma ID3
Iterative  Dichotomicer 3 (ID3) adalah algoritma decision tree learning (algoritma pembelajaran pohon keputusan) yang  paling dasar. Algoritma ini melakukan   pencarian secara   rakus /menyeluruh   (greedy)    pada semua kemungkinan pohon keputusan. 
Salah   satu   algoritma   induksi   pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Algoritma ID3 dapat diimplementasikan menggunakan   fungsi rekursif (fungsi  yang memanggil   dirinya   sendiri).  Algoritma   ID3 berusaha  membangun decision  tree  (pohon keputusan)  secara top-down (dari atas ke bawah),  mulai  dengan  pertanyaan: “atribut mana yang pertama kali  harus  dicek  dan diletakkan  pada root?” pertanyaan  ini  dijawab dengan mengevaluasi semua atribut yang ada dengan  menggunakan  suatu  ukuran  statistik (yang  banyak  digunakan  adalah information gain)  untuk  mengukur  efektivitas  suatu  atribut dalam   mengklasifikasikan   kumpulan   sampel data.
Decision  Tree adalah sebuah struktur pohon, dimana setiap node pohon merepresentasikan   atribut   yang   telah   diuji, setiap  cabang  merupakan  suatu  pembagian hasil uji, dan node daun (leaf) merepresentasikankelompok  kelas  tertentu.Level  node  teratas  dari  sebuah  decision  treeadalah node akar (root) yang biasanya berupa atribut yang paling memiliki pengaruh terbesar pada suatu kelas tertentu.   
Entropy dan Information Gain
Sebuah  obyek  yang  diklasifikasikan  dalam pohon  harus  dites  nilai  entropinya. Entropyadalah  ukuran  dari  teori  informasi  yang  dapat mengetahui   karakteristik   dari impuryt   ,dan homogenity   dari   kumpulan   data.   Dari   nilai entropy    tersebut    kemudiandihitung    nilai information gain (IG) masing-masing atribut.
Entropy(S) = - p+ log2p + -p -log2p-
dimana :
·         S  adalah  ruang  (data)  sample  yang digunakan untuk training.
·     P+  adalah   jumlah    yang   bersolusi positif (mendukung) pada data sample untuk kriteria tertentu.
·     P+  adalah   jumlah  yang  bersolusi negatif  (tidak  mendukung)  pada  data sample untuk kriteria tertentu.Dari rumus entropy diatas dapat disimpulkan bahwa definisi entropy (S) adalah  jumlah  bit  yang  diperkirakan dibutuhkan  untuk  dapat  mengekstrak suatu  kelas  (+  atau  -)  dari  sejumlah data acak pada suatu ruang sampel S. Entropy bisa dikatakan sebagai kebutuhan bit untuk menyatakan suatu kelas.  

Semakin  kecil  nilai  entropy maka  semakin  baik  digunakan  dalam mengekstraksi suatu kelas.  Panjang  kode  untuk  menyatakan informasi secara optimal  adalah  –log2p  bits untuk messages yang mempunyai probabilitas p. Sehingga jumlah bit yang diperkirakan untuk mengekstraksi  S  ke  dalam  kelas  adalah  :  - p+log2 p+ - p- log2 p- 

Information Gain 
setelah  mendapat  nilai  entropy  untuk  suatu kumpulan  data,  maka  kita  dapat  mengukur efektivitas suatu atribut dalam mengklasifikasikan data. Ukuran  efektifitas  ini disebut  information  gain.  Secara  matematis, infomation  gain  dari  suatu  atribut  A, dituliskan sebagai berikut :
dimana :
A : atribut
V : suatu nilai yang mungkin untuk atribut A
Values  (A)  :  himpunan  yang  mungkin  untuk  atribut A
|Sv| : jumlah sampel untuk nilai v
|S| : jumlah seluruh sampel data Entropy
(Sv):   entropy   untuk   sampel-sampel yang memilki nilai v

Sumber:
Wahyudin, Desember 2009, "Metode Iterative Dichotomizer 3 ( ID3 ) Untuk Penyeleksian Penerimaan Mahasiswa Baru". Jurnal Pendidikan Teknologi Informasi dan Komunikasi. Volume 2, No.2, http://file.upi.edu/Direktori/JURNAL/PENDIDIKAN_TIK/Jurnal_Pend_TIK_Vol_2_No_2/Metode_Iterative_Dichotomizer_3_(_ID3_)_Untuk_Penyeleksian_Penerimaan_Mahasiswa_Baru.PDF, Januari 2017.




Manfaat, Kelebihan dan Kekurangan Pohon Keputusan

Manfaat Pohon Keputusan
Pohon keputusan adalah salah satu metode klasifikasi yang paling populer karena mudah untuk diinterpretasi oleh manusia. Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Konsep dari pohon keputusan adalah mengubah data menjadi pohon keputusan dan aturan-aturan keputusan. Manfaat utama dari penggunaan pohon keputusan adalah kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks menjadi lebih simpel sehingga pengambil keputusan akan lebih menginterpretasikan solusi dari permasalahan. Pohon Keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target. 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. Sering terjadi tawar menawar antara keakuratan model dengan transparansi model. Dalam beberapa aplikasi, akurasi dari sebuah klasifikasi atau prediksi adalah satu-satunya hal yang ditonjolkan, misalnya sebuah perusahaan direct mail membuat sebuah model yang akurat untuk memprediksi anggota mana yang berpotensi untuk merespon permintaan, tanpa memperhatikan bagaimana atau mengapa model tersebut bekerja.

Kelebihan
  • Menghilangkan perhitungan-perhitungan yang tidak dibutuhkan. Sample yang diuji hanya berdasarkan kriteria atau kelas tertentu.
  • Pengambilan keputusan yang sebelumnya kompleks dan sangat global diubah lebih simpel dan spesifik.
  • Metode ini menghindari munculnya permasalahan ini 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 ini meningkatkan kualitas keputusan yang dihasilkan.
Kekurangan
  • Terjadi overlap, hal ini sering saya temui ketika 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.

Sumber:

Senin, 09 Januari 2017

Pohon Keputusan

    Pohon keputusan adalah gambaran skematik dari alternatif yang rersedia bagi pengambil keputusan dan kemungkinan hasilnya. Istilah pohon keputusan diambil dari bentuk diagramnya yang memiliki cabang dan ranting seperti halnya suatu pohon. Pohon Keputusan memiliki fungsi yang sama dengan tabel keputusan, namun biasanya lebih sesuai untuk ssituasi analisis yang memiliki keputusan berjenjang.

   Pohon keputusan merupakan salah satu metode yang digunakan pada data  mining. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang  merepresentasikan rule.  Pohon  keputusan  adalah  salah  satu  metode  klasifikasi yang paling populer karena mudah untuk diinterpretasikanoleh manusia. Konsep dari pohon  keputusan  adalah  mengubah  data  menjadi model pohon  keputusan(decision tree) dan aturan-aturan (rule).

   Data  dalam  pohon  keputusan  biasanya  dinyatakan  dalam  bentuk  tabel  dengan atribut  dan record.  Atribut  menyatakan  suatu  parameter  yang  dibuat  sebagai  kriteria dalam  pembentukan tree.  Misalkan,untuk  menentukan bermain  tenis atau  tidak, kriteria  yang  diperhatikan  adalah  cuaca,  angin  dan  temperatur.  Salah  satu  atribut merupakan  atribut  yang  menyatakan  data  solusi  per-item  data  yang  disebut  dengan target atribut. Atribut memiliki nilai-nilai yang dinamakan dengan instance. Misalkan atribut cuaca mempunyai instances berupa cerah, berawan,dan hujan.

   Pohon  keputusan  merupakan  himpunan  aturan  IF...THEN.  Setiap path dalam tree dihubungkan dengan sebuah aturan, dimana premis terdiri atas sekumpulan node-node yang  ditemui,  dan  kesimpulan  dari  aturan terdiri  atas  kelas  yang  terhubung  dengan leaf dari path.


   Bagian awal dari pohon keputusan ini adalah titik akar (root), sedangkan setiap cabang  dari  pohon  keputusan  merupakan  pembagian  berdasarkan  hasil  ujidan  titik akhir (leaf) merupakan pembagian kelas yang dihasilkan. Pohon keputusan mempunyai tiga (3) tipe simpul, yaitu:
  1. Simpul akar(root): 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(node): hanya  memiliki satu  cabang  yang  masukdan memiliki lebih dari satucabang yang keluar.
  3. Simpul  daun(leaf): simpul  akhir yanghanya  memiliki satu  cabang  yang masukdan  tidak  memiliki  cabang  sama  sekali sekaligusmenandai  bahwa  simpul tersebut merupakan label kelas.



Selasa, 13 Desember 2016

Backward Chaining (Mesin Inferensi)

            Runut balik (Backward chaining) merupakan metode penalaran kebalikan dari metode runut maju (forward chaining). Dalam runut balik penalaran dimulai dengan tujjuan kemudian merunut balik ke jalur yang akan mengarahkan ke tujuan tersebut (Giarattano dan Riley, 1994). Runut balik bisa juga disebut sebagai goal-driven reasoning, yaitu cara yang efisien untuk memecahkan masalah-masalah yang dimodelkan sebagai masalah pemilihan terstruktur.

            Proses yang dilakukan pada metode runut mundur yaitu ingin mendapatkan salah satu konklusi dari konklusi yang ada, jika pada runut maju menggunakan beberapa premis, pada metode ini yang ingin didapatkan juga sama , hanya saja digunakan salah satu konklusi dari banyak konklusi atau tidak dari konklusi yang ada.

            Penelusuran metode ini didasarkan bahwa ada kemungkinan dari konklusi-konklusi yang ada merupakan salah satu tujuan terpilih dari fakta yang diberikan oleh pemakai. Sistemdengan urutan tertentu akan mengambil sebuah konklusi menjadi calon konklusinya. Misal urutannya sesuai dengan sebuah konklusi  1 dan diambil konklusi 1 sebagai hipotesisnya, maka untuk membuktikan hipotesisnya sistem akan mencari premis-premis yang mengandung konklusi 1. Setelah itu sistem akan memberikan umpan balik kepada pemakai berupa premis-premis yang ada misalnya ada premis 1, premis 2 dan premis 3, maka sistem akan mencari tahu apakah pemakai memilih premis-premis tersebut.

            Cara untuk mengambil umpan balik yaitu dengan mencari daftar premis yang dipilih oleh user atau dengan cara menanyakan satu-persatu premis yang seharusnya dipilih. Jika ada premis yang tidak  dipilih oleh user maka hipotesis atas konklusi tersebut gugurn artinya fakta yang dimasukan oleh user konklusinya bukan pada konklusi 1. Setelah itu sistem akan melanjutkan hipotesis ke konklusi selanjutnya, dan seterusnya dilakukan seperti itu sampai ditentukan konklusi yang semua premis dalam aturannya dipilih.

            Jika sampai tahap terakhir tidak ada premis yang terpenuhi maka sistem akan mengambil kesimpulan bahwa konklusinya berada diluar pengetahuannya, yang berarti sistem tidak menemukan solusi untuk premis-premis pilihan user.

Karakteristik Backward Chaining:
  •         Diagnosis
  •          Disajikan untuk masa lalu
  •          Konsekuen ke antecedent
  •          Tujuan memandu, penalaran dari atas ke bawah
  •          Bekerja ke belakang untuk mendapatkan fakta yang mendukung hipotesis
  •          Depth first search dimudahkan
  •          Konsekuen menentukan pencarian
  •          Penjelasan difasilitasi


Contoh  : 
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah TH
EN harga obligasi tidak berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi

Apabila  diketahui  bahwa  dolar  turun,  maka  untuk  memutuskan  apakah  akan  membeli  obligasi  atau tidak dapat ditunjukkan sebagai berikut :

Jika digunakan Backward Chaining maka solusinya adalah sebagai berikut:
            Dari  solusi  yaitu  membeli  obligasi,  dengan  menggunakan  Rule  6  diperoleh  anteseden  harga  obligasi turun. Dari Rule 2 dibuktikan harga obligasi turun bernilai benar jika suku bunga naik bernilai  benar  .  Dari  Rule  5  suku  bunga  naik  bernilai  memang  bernilai  benar  karena  diketahui  fakta dolar turun. 

Sumber:
Kusrini. 2008. Aplikasi Sistem Pakar: Menentukan Faktor Kepastian Pengguna dengan Metode Kuantifikasi Pertanyaan. Yogyakarta: Andi.

Senin, 12 Desember 2016

Forward Chaining (Inference Engine)

Dalam tulisan sebelumnya saya sudah membahas sekilas tentang apa itu mesin inferensi (inference engine), selanjutnya kita akan membahas salah satu metode yang biasanya dipakai pada mesin inferensi yaitu Forward Chaining. Disini saya akan menjelaskan apa itu teknik forward chaining dan contoh sederhana pengerjaan forward chaining.
Forward Chaining adalah teknik pencarain yang dimulai dengan fakta yang diketahui, kemudian mencocokan fakta-fakta tersebut dengan bagian IF dari rules IF-THEN. Bila ada fakta yang cocok dengan bagian IF, maka rule tersebut dieksekusi. Bila sebuah rule dieksekusi, maka sebuah fakta baru (bagian THEN) ditambahkan ke dalam database. Setiap rule hanya boleh dieksekusi sekali saja. T.Sutojo, c.t, 2010. Jadi bisa dikatakan forward chaining adlah penalaran yang dilakukan dari fakta menuju kesimpulan yang dihasilkan fakta tersebut.
Karakteristik Forward Chaining:
  •          Perencanaan, monitoring, kontrol
  •          Disajkan untuk masa depan
  •          Antecedent ke konsekuen
  •          Data memandu, penalaran dari bawah ke atas
  •          Bekerja ke depan untuk mendapatkan solusi apa yang mengikuti fakta
  •          Breadth first search dimudahkan
  •          Antecedent menentukan pencarian
  •          Penjelasan tidak difasilitasi

Contoh Kasus:
R1 : IF suku bunga turun THEN harga obligasi naik
R2 : IF suku bunga naik THEN harga obligasi turun
R3 : IF suku bunga tidak berubah THEN harga obligasi tidak berubah
R4 : IF dolar naik THEN suku bunga turun
R5 : IF dolar turun THEN suku bunga naik
R6 : IF harga obligasi turun THEN beli obligasi
Apabila diketahui bahwa dolar turun, maka untuk memutuskan apakah akan membeli obligasi atau tidak, dalam forward chaining dapat ditunjukkan sebagai berikut :
Dari fakta dolar turun, berdasarkan Rule 5, diperoleh konklusi suku bunga naik. Dari Rule 2 suku bunga naik menyebabkan harga obligasi turun. Dengan Rule 6, jika harga obligasi turun, maka kesimpulan yang diambil adalah membeli obligasi.

            Sekian tulisan tentang forward chaining, untuk backward chaining akan saya bahas pada tulisan yang berikutnya.
Sumber:
Hayadi, B.Herawan, 2016. Sistem Pakar: Penyelesaian Kasus Menentukan Minat Baca, Kecenderungan, dan Karakter Siswa dengan Metode Forward Chaining. Yogyakarta: Deepublish.
Rosnelly, Rika. 2012. Sistem Pakar: Konsep dan Teori. Yogyakarta: Andi.