package binarytree;
/**
*
*
*/
import java.util.Stack;
public class BinaryTree4 {
public static class TreeNode
{
int data;
TreeNode left;
TreeNode right;
TreeNode(char data)
{
this.data=data;
}
}
// Recursive Solution
public void preorder(TreeNode root) {
if(root != null) {
//Visit the node-Printing the node data
System.out.printf("%c ",root.data);
preorder(root.left);
preorder(root.right);
}
}
// Recursive Solution
public void postOrder(TreeNode root) {
if(root != null) {
postOrder(root.left);
postOrder(root.right);
//Visit the node by Printing the node data
System.out.printf("%c ",root.data);
}
}
// Recursive Solution
public void inOrder(TreeNode root) {
if(root != null) {
inOrder(root.left);
//Visit the node by Printing the node data
System.out.printf("%c ",root.data);
inOrder(root.right);
}
}
public static void main(String[] args)
{
BinaryTree4 bi=new BinaryTree4();
// Creating a binary tree
TreeNode rootNode=createBinaryTree();
System.out.println("Tampilan PreOrder Tree :");
bi.preorder(rootNode);
System.out.println();
System.out.println("-------------------------");
System.out.println("Tampilan PostOrder Tree :");
bi.postOrder(rootNode);
System.out.println();
System.out.println("-------------------------");
System.out.println("Tampilan InOrder Tree:");
bi.inOrder(rootNode);
}
public static TreeNode createBinaryTree()
{
TreeNode rootNode =new TreeNode('A');
TreeNode nodeB=new TreeNode('B');
TreeNode nodeC=new TreeNode('C');
TreeNode nodeD=new TreeNode('D');
TreeNode nodeE=new TreeNode('E');
TreeNode nodeF=new TreeNode('F');
TreeNode nodeG=new TreeNode('G');
TreeNode nodeH=new TreeNode('H');
TreeNode nodeI=new TreeNode('I');
TreeNode nodeJ=new TreeNode('J');
rootNode.left=nodeB;
rootNode.right=nodeC;
nodeB.left=nodeD;
nodeB.right=nodeE;
nodeC.left=nodeF;
nodeD.left=nodeG;
nodeD.right=nodeH;
nodeE.left=nodeI;
nodeF.right=nodeJ;
return rootNode;
}
}
Tampilan Output :
Home
Archives for April 2017
Kamis, 27 April 2017
BBM vs LINE : Manakah yang Lebih Unggul ?
By Frandy
Aplikasi
pesan instan yang anda gunakan sehari-hari tentu memberikan banyak kemudahan
dalam kegiatan komunikasi sehari-hari. Selain mengirim pesan teks, aplikasi ini
juga dapat mengirimkan gambar, video, pesan suara, file, hingga dapat melakukan
panggilan hanya dengan koneksi internet.
Di
Indonesia, dari pengamatan penulis terdapat dua aplikasi yang sangat populer di
kalangan generasi muda, yaitu BBM dan LINE. Masing-masing aplikasi tersebut
tentu memiliki kelebihan dan kelemahannya sendiri-sendiri. Dalam artikel ini,
penulis ingin berdiskusi tentang kedua aplikasi chatting terpopuler di kalangan generasi muda saat ini.
Blackberry Messenger (BBM)
Aplikasi
ini dulu sebenarnya disediakan hanya untuk pengguna perangkat Blackberry saja,
tapi sejak tahun 2013 aplikasi tersebut dapat kita gunakan di perangkat Android
maupun iOS dengan mengunduh secara gratis di Google Play Store dan App Store.
Bertahun-tahun
penulis menggunakan aplikasi BBM, mungkin inilah pengalaman yang penulis dapatkan
hingga saat ini tentang kelebihan dan kekurangan dari BBM.
Kelebihan
:
1. Adanya
fitur PING!!!, dengan ini memberitahu teman-teman kita untuk respon segera
2. Fitur
Pesan Tarik, kita bisa menarik kembali pesan dan foto bahkan setelah terkirim,
ini berguna ketika kita typo atau salah kirim pesan
3. Fitur
Timer, kita bisa menentukan lama membaca pesan yang kita kirim ke lawan bicara
4. Dapat
mengirim file lain selain gambar
Kekurangan
:
1. Aplikasi
relatif berat, bila menggunakan perangkat Android yang low end terkadang terasa
berat saat loading aplikasi
2. Terkadang
gambar lawan bicara tidak muncul
3. Terkadang
bisa lost contact
4. Tidak
dapat menambahkan daftar teman di kontak hp secara otomatis, harus menggunakan
PIN
LINE
LINE
menjadi populer di kalangan generasi muda berkat fitur stiker, dan para maskot
lucu LINE yang telah melekat di hati para generasi muda. Langsung saja berikut
adalah kelebihan dan kekurangannya.
Kelebihan :
1.
Banyak pilihan tema, stiker dan emoticon
yang tersedia
2.
Untuk bermain game, Line menyediakan
Line Get Rich, Line Ranger, dll
3.
Banyak aplikasi penunjang seperti LINE
Camera, Line@, LineCard, Line Dictionary, dll
4.
Dapat menambahkan daftar teman secara
otomatis melalui kontak hp
5.
Bisa digunakan di PC
Kekurangan :
1.
Notifikasi game yang terkadang
mengganggu
2.
Menggunakan data internet yang relatif lebih
banyak dari aplikasi messenger lain (seperti WhatsApp)
3.
Tidak dapat mengetahui id teman di contact
line, tetapi ini tidak masalah bagi sebagian orang yang ingin privasi lebih
Lalu,
mana yang terbaik diantara kedua aplikasi chatting
populer ini? Keduanya sama-sama memiliki kekurangan dan kelebihan seperti
dijabarkan diatas. BBM unggul soal privasi dan hal lain seperti fitur ping,
tarik pesan, dan pesan berwaktu.
Sementara
LINE mengandalkan kemudahan seperti menambah daftar teman secara otomatis serta
banyak pilihan tema dan stiker yang dapat diunduh secara gratis maupun
berbayar. Dari uraian diatas, pembaca dapat membandingkan kedua aplikasi
diatas. Sehingga bisa memilih salah satu aplikasi messenger berdasarkan
kebutuhan pengguna (pembaca).
Sistem Pakar Diagnosa Penyakit Diabetes Berbasis Web Menggunakan Metode Forward Chaining
Contoh 1 : Coding Java Binary Tree (Preorder, Inorder, Postorder)
package binarytree;
/**
*
*
*/
import java.util.Stack;
public class BinaryTree3 {
public static class TreeNode
{
int data;
TreeNode left;
TreeNode right;
TreeNode(char data)
{
this.data=data;
}
}
// Recursive Solution
public void preorder(TreeNode root) {
if(root != null) {
//Visit the node-Printing the node data
System.out.printf("%c ",root.data);
preorder(root.left);
preorder(root.right);
}
}
// Recursive Solution
public void postOrder(TreeNode root) {
if(root != null) {
postOrder(root.left);
postOrder(root.right);
//Visit the node by Printing the node data
System.out.printf("%c ",root.data);
}
}
// Recursive Solution
public void inOrder(TreeNode root) {
if(root != null) {
inOrder(root.left);
//Visit the node by Printing the node data
System.out.printf("%c ",root.data);
inOrder(root.right);
}
}
public static void main(String[] args)
{
BinaryTree3 bi=new BinaryTree3();
// Creating a binary tree
TreeNode rootNode=createBinaryTree();
System.out.println("Tampilan PreOrder Tree :");
bi.preorder(rootNode);
System.out.println();
System.out.println("-------------------------");
System.out.println("Tampilan PostOrder Tree :");
bi.postOrder(rootNode);
System.out.println();
System.out.println("-------------------------");
System.out.println("Tampilan InOrder Tree:");
bi.inOrder(rootNode);
}
public static TreeNode createBinaryTree()
{
TreeNode rootNode =new TreeNode('A');
TreeNode nodeB=new TreeNode('B');
TreeNode nodeC=new TreeNode('C');
TreeNode nodeD=new TreeNode('D');
TreeNode nodeE=new TreeNode('E');
TreeNode nodeF=new TreeNode('F');
TreeNode nodeI=new TreeNode('I');
TreeNode nodeJ=new TreeNode('J');
TreeNode nodeK=new TreeNode('K');
rootNode.left=nodeB;
rootNode.right=nodeC;
nodeB.left=nodeD;
nodeB.right=nodeE;
nodeC.left=nodeF;
nodeF.left=nodeI;
nodeF.right=nodeJ;
nodeI.left=nodeK;
return rootNode;
}
}
Tampilan Output :
Sabtu, 22 April 2017
Definisi, Manfaat, Kelemahan dan Konsep Sistem Pakar
Sistem Pakar
1.
Sistem Pakar (expert system) adalah sistem yang
berusaha mengadopsi pengetahuan manusia ke komputer, agar komputer dapat
menyelesaikan masalah seperti yang biasa dilakukan oleh para ahli
·
Sistem pakar
yang baik dirancang agar dapat menyelesaikan suatu permasalahan tertentu
dengan meniru kerja dari para ahli
·
MYCIN
·
Paling terkenal, dibuat oleh Edward Shortlife of
Standford University tahun 70-an
·
Sistem pakar medical yang bisa mendiagnosa
penyakit infeksi dan merekomendasi pengobatan
·
MYCIN membantu dokter mengidentifikasi pasien
yang menderita penyakit. Dokter duduk di depan komputer dan memasukkan data
pasien : umur, riwayat kesehatan, hasil laboratorium dan informasi terkait
lainnya. Dengan informasi ini ditambah pengetahuan yang sudah ada dalam komputer, MYCIN
mendiagnosa selanjutnya merekomendasi obat dan dosis yang harus dimakan.
·
MYCIN sebagai penasehat medis, tidak dimaksudkan
untuk menggantikan kedudukan seorang dokter
·
Juga untuk memantu dokter dalam mengkonfirmasi
diagnosa dan terapi yang diberikan kepada pasien
·
Kesimpulan : sistem pakar seperti MYCIN bisa
digunakan sebagai bahan pembanding dalam pengambilan solusi dan pemecahan
masalah
·
Keputusan terakhir atas pengobatan tersebut
tetap menjadi tanggung jawab dokter
·
DENDRAL (mengidentifikasi struktur molekular
campuran kimia yang tak dikenal)
·
XCON & XSEL
·
XCON
·
Merupakan sistem pakar untuk membantu
konfigurasi sistem komputer besar, membantu melayani order langganan sistem
komputer DEC VAX 11/780 ke dalam sistem spesifikasi final yang lengkap
·
Komputer besar seperti VAX terbuat dari ratusan
komponen yang berbeda digabung dan disesuaikan dengan konfigurasi tertentu yang
diinginkan oleh para pelanggan
·
Ada ribuan cara dimana asesoris Pcboard, kabel,
disk drive, periperal, perangkat lunak, dan lainnya bisa dirakit ke dalam
konfigurasi yang sangat rapi. Untuk mengidentifikasi hal-hal tersebut
diperlukan waktu berhari-hari/berminggu-minggu agar bisa memenuhi spesifikasi
yang diinginkan pemesan, tapi dengan XCON bisa dalam beberapa menit.
2.
Manfaat Sistem Pakar :
·
Memungkinkan orang awam bisa mengerjakan
pekerjaan para ahli
·
Bisa melakukan proses secara berulang secara
otomatis
·
Menyimpan pengetahuan dan keahlian para pakar
·
Mampu mengambil dan melestarikan keahlian para
pakar (terutama yang termasuk keahlian langka)
·
Mampu beroperasi dalam lingkungan yang berbahaya
·
Memiliki kemampuan untuk bekerja dengan
informasi yang tidak lengkap dan mengandung ketidakpastian. Pengguna bisa
merespon dengan jawaban ‘tidak tahu’ atau ‘tidak yakin’ pada satu atau lebih
pertanyaan selama konsultasi dan sistem pakar tetap akan memberikan jawaban.
·
Tidak memerlukan biaya saat tidak digunakan
·
Dapat digandakan(diperbanyak) sesuai kebutuhan
dengan waktu yang minimal dan sedikit biaya
·
Dapat memecahkan maslah lebih cepat daripada
kemampuan manusia dengan catatan menggunakan data yang sama
·
Menghemat waktu dalam pengambilan keputusan
·
Meningkatkan kualitas dan produktivitas karena
dapat memberi nasihat yang konsisten dan mengurangi kesalahan
·
Meningkatkan kapabilitas sistem terkomputerisasi
yang lain
·
Mampu menyediakan pelatihan. Pengguna pemula
yang bekerja dengan sistem pakar akan menjadi lebih berpengalaman. Fasilitas
penjelas dapat berfungsi sebagai guru.
3.
Kelemahan Sistem pakar :
·
Biaya yang diperlukan untuk membuat, memelihara,
dan mengembangkannya sangat mahal
·
Sulit dikembangkan
·
Sistem pakar tidak 100% benar
·
Pendekatan oleh setiap pakar untuk suatu situasi
atau problem bisa berbeda-beda, meskipun sama-sama benar.
·
Transfer pengetahuan dapat bersifat subjektif
dan bias
·
Kurangnya rasa percaya pengguna dapat
menghalangi pemakaian sistem pakar
4.
Konsep dasar sistem pakar mengandung
·
Keahlian
·
Ahli/pakar
·
Pengalihan keahlian
·
Mengambil keputusan
·
Aturan
·
Kemampuan menjelaskan
Pengantar Artificial Intelligence
DEFINISI KECERDASAN BUATAN
Definisi
Kecerdasar Buatan
·
H. A. Simon [1987] :
“Kecerdasan Buatan (Artificial
Intelliggence) merupakan kawasan penelitian, aplikasi dan instruksi yang
terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam
pandangan manusia adalah cerdas”
·
Rich and Knight [1991]:
“Kecerdasan Buatan (Artificial Intelliggence) merupakan sebuah studi tentang bagaimana membuat komptuer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia.”
“Kecerdasan Buatan (Artificial Intelliggence) merupakan sebuah studi tentang bagaimana membuat komptuer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia.”
·
Encyclopedia Britannica:
“Kecerdasan Buatan (Artificial Intelliggence) merupakan cabang ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan”
“Kecerdasan Buatan (Artificial Intelliggence) merupakan cabang ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan”
Tujuan
dari kecerdasan buatan menurut Winston dan Prendergast [1984]:
1. Membuat mesin menjadi lebih pintar (tujuan utama)
2. Memahami apa itu kecerdasan (tujuan ilmiah)
3. Membuat mesin lebih bermanfaat (tujuan entrepreneurial)
1. Membuat mesin menjadi lebih pintar (tujuan utama)
2. Memahami apa itu kecerdasan (tujuan ilmiah)
3. Membuat mesin lebih bermanfaat (tujuan entrepreneurial)
AI
dapat dipandang dalam berbagai perspektif.
·
Dari perspektif Kecerdasan (Intelligence)
AI adalah bagaimana membuat mesin yang “cerdas” dan
dapat melakukan hal-hal yang sebelumnya dapat dilakukan oleh manusia
·
Dari perspektif bisnis
AI adalah sekelompok alat bantu (tools) yang berdaya
guna, dan metodologi yang menggunakan tool-tool tersebut guna menyelesaikan
masalah-masalah bisnis.
·
Dari persepektif pemrograman (Programming)
AI termasuk didalamnya adalah studi tentang pemrograman
simbolik, pemecahan masalah, proses pencarian (search)
o
Umumnya program AI lebih fokus pada
simbol-simbol daripada pemrosesan numeric (huruf, kata, angka untuk
merepresentasikan objek, proses dan hubungannya).
o
Pemecahan masalah -> pencapaian tujuan
o
Search -> jarang mengarah langsung ke solusi.
Proses search menggunakan beberapa teknik
o
Bahasa pemrograman AI :
§
LISP, dikembangkan awal tahun 1950-an, bahasa
pemrograman pertama yang diasosiasikn dengan AI.
§
PROLOG, dikembangkan pada tahun 1970-an.
§
Bahasa pemrograman berorientasi obyek (Object
Oriented Programming (Objective C, C++, Smalltalk, Java)
·
Dari perspektif penelitian (research)
o
Riset tentang AI dimulai pada awal tahun
1960-an, percobaan pertama adalah membuat program permainan (game) catur,
membuktikan teori, dan general problem solving (untuk tugas-tugas sederhana)
o
“Artificial Intelligence” adalah nama pada akar
dari studi area.
1.2. DOMAIN
PENELITIAN DALAM KECERDASAN BUATAN
§
Formal tasks (matematika, games)
§
Mundane task (perception, robotics, natural
language, common sense, reasoning)
§
Expert tasks (financial analysis, medical
diagnostics, engineering, scientific analysis, dll)
PERMAINAN
(Game)
·
Kebanyakan permainan dilakukan dengan
menggunakan sekumpulan aturan
·
Dalam permainan digunakan apa yang disebut
dengan pencarian ruang
·
Teknik untuk menentukan alternative dalam
menyimak problema ruang merupakan sesuatu yang rumit
·
Teknik tersebut disebut dengan HEURISTIC
·
Permainan merupakan bidang yang menarik dalam studi
heuristic
NATURAL
LANGUAGE
Suatu teknologi yang memberikan kemampuan kepada komputer untuk memahami bahasa manusia sehingga pengguna komputer dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari
Suatu teknologi yang memberikan kemampuan kepada komputer untuk memahami bahasa manusia sehingga pengguna komputer dapat berkomunikasi dengan komputer dengan menggunakan bahasa sehari-hari
ROBOTIK
DAN SISTEM SENSOR
Sistem sensor, seperti sistem vision, system tactile, dan system pemrosesan sinyal jika dikombinasikan dengan AI, dapat dikategorikan ke dalam suatu system yang luas yang disebut sistem robotik.
Sistem sensor, seperti sistem vision, system tactile, dan system pemrosesan sinyal jika dikombinasikan dengan AI, dapat dikategorikan ke dalam suatu system yang luas yang disebut sistem robotik.
EXPERT
SYSTEM
Sistem pakar (Expert Sytem) adalah program penasehat berbasis komputer yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar dalam menyelesaikan masalah-masalah spesifik
Sistem pakar (Expert Sytem) adalah program penasehat berbasis komputer yang mencoba meniru proses berpikir dan pengetahuan dari seorang pakar dalam menyelesaikan masalah-masalah spesifik
1.3. KONSEP DAN DEFINISI DALAM KECERDASAR BUATAN
TURING
TEST – Metode Pengujian Kecerdasan
·
Turing Test merupakan sebuah metode pengujian
kecerdasan yang dibuat oleh Alan Turing
·
Proses uji ini melibatkan seorang penanya
(manusia) dan dua objek yang ditanyai. Yang satu adalah seorang manusia dan
satunya adalah sebuah mesin yang akan diuji.
·
Penanya tidak bisa melihat langsung kepada obyek
yang ditanyai
·
Penanya diminta untuk membedakan mana jawaban
komputer dan mana jawaban manusia berdasasrkan jawaban kedua obyek tersebut.
·
Jika penanya tidak dapat membedakan mana jawaban
mesin dan mana jawaban manusia maka Turing berpendapat bahwa mesin yang diuji
tersebut dapat diasumsikan CERDAS.
PERMROSESAN
SIMBOLIK
·
Komputer semula didesain untuk memproses
bilangan/angka-angka (pemrosesan numeric)
·
Sementara manusia dalam berpikir dan
menyelesaikan masalah lebih bersifat simbolik, tidak didasarkan kepada sejumlah
rumus atau melakukan komputasi matematis
·
Sifat penting dari AI adalah bahwa AI merupakan
bagian dari ilmu komputer yang melakukan proses secara simbolik dan
non-algoritmik dalam penyelesaian masalah
HEURISTIC
·
Istilah Heuristic diambil dari bahasa Yunani
yang berarti menemukan
·
Heuristic merupakan suatu strategi untuk
melakukan proses pencarian (search) ruang problema secara selektif, yang
memandu proses pencarian yang kita lakukan disepanjang jalur yang memiliki
kemungkinan sukses paling besar
PENARIKAN
KESIMPULAN (INFERENCING)
·
AI mencoba membuat mesin memiliki kemampuan
berpikir atau mempertimbangkan (reasoning)
·
Kemampuan berpikir (reasoning) termasuk
didalamnya proses penarikan kesimpulan (inferencing) berdasarkan fakta-fakta dan
aturan dengan menggunakan metode heuristic atau metode pencarian lainnya.
PENCOCOKAN POLA
(PATTERN MATCHING)
·
AI bekerja dengan metode pencocokan pola
(pattern matching) yang berusaha untuk menjelaskan obyek, kejadian (events)
atau proses, dalam hubungan logic atau komputasional.
1.4. Perbandingan
Kecerdasan Buatan dengan Kecerdasan Alamiah
Keuntungan
kecerdasan buatan dibanding kecerdasan alamiah :
·
Lebih permanen
·
Memberikan kemudahan dalam duplikasi dan
penyebaran
·
Relative lebih murah dari kecerdasan alamiah
·
Konsisten dan teliti
·
Dapat didokumentasi
·
Dapat mengerjakan beberapa task dengan lebih
cepat dan lebih baik disbanding manusia
Keuntungan
kecerdasan alamiah disbanding kecerdasan buatan :
·
Bersifat lebih kreatif
·
Dapat melakukan proses pembelajaran secara
langsung, sementara AI harus mendapatkan masukan berupa simbol dan
representasi-representasi
·
Fokus yang luas sebagai referensi untuk
pengambilan keputusan sebaliknya AI menggunakan fokus yang sempit
Komputer dapat
digunakan untuk mengumpulkan informasi tentang obyek, kegiatan (events), proses
dan dapat memproses sejumlah besar informasi dengan lebih efisien dari yang
dapat dikerjakan manusia, tetapi disisi lain manusia dengan menggunakan insting
dapat melakukan hal yang sulit untuk deprogram pada komputer, yaitu : manusia
dapat mengenali (recognize) hubungan antara hal-hal tersebut, menilai kualitas
dan menemukan pola yang menjelaskan hubungan tersebut.
1.5. Perbedaan Komputasi
AI dengan Proses Komputasi Konvensional
Bagaimana
komputer konvensional memproses data
Proses
|
Yang dikerjakan
|
Kalkulasi
|
Mengerjakan operasi-operasi matematis: tambah,
kurang, bagi, kali, atau mencari akar. Menyelesaikan rumus/persamaan
|
Logika penyimpanan
|
Mengerjakan operasi logika : “and”, “or”, atau
“invert” menyimpan data dan gambar pada file
|
Retrieve
|
Mengakses data yang disimpan pada file
|
Translate
|
Mengkonversi data dari satu bentuk ke bentuk yang
lain
|
Sort
|
Memeriksa data dan menampilkan dalam urutan yang
diinginkan
|
Edit
|
Melakukan perubahan, penambahan, penghapusan pada
data
|
Monitor
|
Mengamati event external dan internal dan melakukan
tindakan jika kondisi tertentu tercapai
|
Control
|
Memberikan perintah atau mengendalikan peralatan
diluar
|
Perbandingan AI dengan Pemrograman
Konvensional









