ke3

Kamis, 30 Maret 2017

Kecerdasan Buatan

Saya akan menjelaskan sedikit yang saya ketahui tentang Artificial Intellegence (Kecerdasan Buatan).
Pasti akan timbul berbagai pertanyaan di dalam dunia pemograman, yaitu apa itu AI?, mengapa kita harus mengetahui AI?, dan mengapa kita harus mempelajari AI?. Sebelum menjawab pertanyaan tersebut ada sekilas paragraf terkait pembahasan AI.

Manusia ternyata diciptakan dengan kecerdasan yang sangat luar biasa. Do you know? saat seorang balita berusia 3 tahun, mereka mampu berkomunikasi dengan sangat baik dengan menggunakan bahasa ibunya. Mereka pun sudah mampu untuk mengenali berbagai benda meskipun yang terlihat hanya pada bagian tertentu saja dari benda-benda tersebut. Contohnya ketika seorang balita melihat seekor cicak yang sedang bersembunyi di balik bingkai foto yang ada pada dinding. Mereka mampu mengetahui bahwa itu adalah cicak hanya dari suara yang ditimbulkan oleh cicak. Pada usia selanjutnya, kecerdasan mereka akan berkembang sangat pesat, baik kecerdasan kognitif, emosional maupun spiritualnya.
Sampai saat ini belum ada satu mesin pun yang bisa menyamai kecerdasan manusia secara keseluruhan. Dan selama bertahun-tahun para filsuf berusaha mempelajari kecerdasan manusia. Dari pemikiran para filsuf ini lahirlah seorang anak yang dinamakan AI alias Artificial Intelligence sebagai cabang ilmu yang sesuai dengan pemahaman manusia. AI berusaha membangun entitas-entitas cerdas yang sesuai dengan pemahaman dan pola pikir manusia. Cukup menarik ketika entitas-entitas itu dibangun.

AI atau dalam bahasa indonesianya adalah kecerdasan buatan. Berikut pengertian-pengertian dari kecerdasan buatan:
·         "Kecerdasan buatan (Artificial Intelligence) merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas" (H. A. Simon[1987])
·         "Kecerdasan buatan (AI) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia (Rich and Knight [1991])
·         "Kecerdasan buatan (AI) merupakan cabang dari ilmu komputer yang dalam mempresentasikan pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan (Encyclopedia Britannica).
Jadi singkatnya AI adalah kemampuan dari sebuah komputer untuk berfikir seperti manusia atau bahkan bisa lebih baik dibandingkan manusia. Biasanya sistem AI memiliki kemampuan untuk memperoleh informasi baru yang akan dikumpulkan agar sistem AI menjadi lebih cerdas lagi.

AI tersusun atas 4 kategori:
1. Thinking Humanly
"The exciting new effort to make computers think...machine with minds, in the full and literal sense". (Haugeland, 1985). Thinkning humanly adalah sistem yang berfikir seperti manusia contohnya general problem solver - tower of Hanoi.
2. Acting Humanly
"The study of how to make computers do things which, at the moment, people are better." (Rich and Knight, 1991). Acting humanly adalah sistem yang bersikap/bertingkah seperti manusia contohnya turing test.
3. Thinking Rationally
"The study mental faculties through the use of computational models." (Charniak and McDermott, 1985). Thinking rationally adalah sistem yang berfikir secara rasional contohnya expert system, logic programs, sistem pengambilan keputusan.
4. Acting Rationally
"Computational intelligence is the study of the design of intelligent agents." (Poole et ai, 1998). Acting rationally adalah sistem yang bersikap/bertingkah secara rasional contoh most of modern AI. Rasional dalam hal ini adalah melakukan hal yang terbaik.

Perspektif tentang AI
1. Perspektif kecerdasan
Bagaimana AI mampu membuat mesin cerdas dan melakukan hal-hal yang sebelumnya hanya dapat dilakukan oleh manusia
2. Perspektif penelitian
Studi tentang bagaimana AI mampu membuat komputer dapat melakukan sesuatu sebaik yang dilakukan manusia
3. Perspektif bisnis
AI berperan sebagai sekumpulan tool yang sangat powerful dan metodologis dalam menyelesaikan masalah bisnis, contohnya google analitic yang digunakan untuk memberi tahu tentang kata yang cocok untuk jadi kata kunci di google dengan harga per klik yang relevan. Tools-tools yang membantu pekerjaan bisnis yang bisa ke arah bagaimana kita membuat keputusan untuk memaksimalkan hasil. Contoh lain falcon untuk mendeteksi pemalsuan kartu kredit
4. Perspektif pemograman
AI meliputi studi tentang pemrograman simbolik, contoh problem solving dan pencarian (searching).

Topik-topik pada AI beragam
1. Sistem pakar / expert system
2. Sistem samar / fuzzy sytem
3. Jaringan syaraf tiruan / artificial neural networks
4. Algoritma genetika / genetic algorithms
5. Agen cerdas / intellegent agents

Yang perlu diperhatikan ada 4 poin:
a. Percept: input / masukan indera si agen
b. Action: tindakan yang dilakukan oleh si agen
c. Environment: lingkungan dimana si agen berada
d. Tujuan agen

Ketika merancang sebuah agen, kita harus mendifinisikan masalah/task environment terlebih dahulu sedangkan task environment berdasarkan russel & norvig adalah PAGE (Percept, Action, Goals, Environment).
Contoh: taxi otomatis,
Taksi otomatis yang menerima penumpang dan mengantarkan ke tujuan:
-          Percept: video, speedometer, GPS, keyboard
-          Actions: arah setir, klakson, gas, rem, sinyal kanan/kiri
-          Goal: tujuan penumpang, mencapai setoran, tidak nabarak, hemat bensin, tidak ditilang
-          Environment: jalan, lampu merah, lalu lintas, pejalan kaki, cuaca
Contoh lagi vacum cleaner
-          Percept: lokasi dan status(bersih/kotor)
-          Actions: do ke kiri, do ke kanan, do sedot, do santai
-          Goal: menjaga kebersihan
-          Environment: ruangan A & B beserta isi debunya

6. teknologi bahasa

Berikut bebeberapa contoh dari AI yang sudah ada di sekitar kita:
-          Robot ASIMO (Robot Humanoid)
-          Mars Exploration Rover
-          Deep Blue(Game Playing milik IBM)
-          Machine Translation
-          Speech Recognition
-          Autonomous planning and schedulling (Remote agent milik NASA)
-          Logistics planning

Penjelasan tentang NLP
NLP adalah salah satu topik dari AI kombinasi antara ilmu komputer AI dan bahasa yang berkaitan dengan interaksi antara komputer dan bahasa alami manusia. Tujuan utama dari studi NLP adalah membuat mesin yang mampu mengerti dan memahami makna bahasa manusia lalu memberikan respon yang sesuai, contohnya adalah carikbot

Bahasa pemograman yang biasa digunakan dalam AI:
-          AIML yang digunkan pada ALICE chatterbots
-          IPL
-          Lips
-          Planner
-          Phyton
-          Haskell
-          c++
-          Matlab

Apakah AI tidak cukup hanya dengan pemograman komputer saja? jawabnya ya tidak cukup, sistem cerdas digunakan karena pada program coding komputer memiliki keterbatasan. sistem cerdas tidak semata-mata pada if-else, if-else tidak mungkin digunakan untuk membangun program dalam sistem cerdas.

Pemograman komputer dan AI hubungannya sangat erat, itulah terkadanag kita harus sedikit banyak tahu tentang AI meskipun tidak langsung terjun kedalamnya. Karena AI bisa tercipta melalui pemograman komputer juga.

Java Untuk Pemula

Hallo selamat datang di blog saya.
Disini saya akan memberikan sekilas materi tentang java yang mudah dimengerti oleh pemula. Saya menulis artikel ini dari ringkasan saya dalam mengikuti kelompok diskusi yang saya ikuti.

Aplikasi java ditulis sebagai file berekstrasi .java yang dicompile menjadi file .class. File .class ini adalah bytecode yang bisa dijalankan di semua java Virtual Machine, tidak peduli apapun OS-nya ataupun arsitektur processornya.
Java adalah bahasa yang ditujukan untuk semua kebutuhan, concurent, berbasis class, object oriented serta didesain agar tidak tergantung terhadap lingkungan dimana aplikasi dijalankan (OS atau processornya). Java ditujukan agar bisa "ditulis sekali, bisa jalan dimanapun". Sekarang ini java adalah bahasa pemograman paling popular dan paling banyak digunakan untuk membuat aplikasi baik aplikasi di embedded system, mobile, desktop hingga web apllication.
Java mempunyai lima prinsip penting yang dijadikan sebagai tujuannya, kelima prinsip ini adalah:
1. Java harus "sederhana, object oriented dan mudah dimengerti".
2. Java harus "kuat dan aman".
3. Java harus "netral terhadap arsitektur system (OS dan processor) dan bisa jalan dimanapun".
4. Java harus bisa dijalankan dengan "kinerja yang tinggi".
5. Java harus "interpreted, threaded dan dinamis".

Dalam dunia perbankan java yang digunakan yaitu FYI selain AS400. Java bisa jalan multiplatform asal ada JVM. Penjelasannya file .class ini adalah bytecode yang bisa dijalankan di semua java Virtual Machine, tidak peduli apapun OS-nya ataupun arsitektur processornya. Ada juga .jar dan bundlenya .class misal awalnya di windows terus pindah ke mac maka dependecies bisa berbeda.
INGAT!!!
      Nama class harus sama dengan nama file.
-       Java sangat case sensitive, berbeda dengan PHP tidak strict... function PHP yang kita buat sendiri (user defined) tidak case sensitive.

Kata-kata reserved keyword pada java:
public
class
void
abstrak
boolean
break
byte
case
char
const
continue
default
do
double
else
extends
fnally
float
for
goto
if
implements
import
instanceof
interface
long
native
new
package
private
protected
public
short
static
stictfp
super
swicth
synchronized
this
throw
transient
try
volatile
while
assert
enum
throws
return
int
catch
fnal






Semua keywords ini adalah bahasa dari java, kita harus menggunakannya dengan benar tidak boleh digunakan untuk tujuan lain, misalnya sebagai nama variabel atau nama class. Keyword static digunakan untuk variabel dan method. Variabel atau method yang dideklarasikan dengan perintah static dapat dipanggil langsung tanpa perlu membuat instance dari class tersebut. Instance maksudnya tanpa harus membuat class a = new A(); a.fungsi();? dalam kata lain object is an instance of a class jadi tanpa bikin objek lagi bisa pakai static.
Method = function (konsep OOP).
Keyword final jika digunakan pada class maka class tersebut tidak bisa diturunkan dan bila digunakan pada method maka tidak bisa dilakukan overriding pada method tersebut tetapi kalau pakai static memory yang dipakai sekali saja waktu loading classnya. Tiap membuat object akan reserved memory lagi.
Kelemahan static:
1. Semua variabel yang dipanggil harus static.
2. Method yang static gak bisa pake atau panggil yang non static juga.
3. Tidak pakai keyword this juga untuk variabel atau method static.
4. Jika manggil fungsi dalam class harus instance dulu.

Public ada dalam konsep encapsulation di java. Encapsulation adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Fungsi (string [] args) adalah sebagai public static void main() isi dari method/function main(), sedangkan string[] atau disebut juga bracket sebagai parameter, nama parameternya args tipenya string bentuk array karena ada [].
Arg bisa diganti apa saja untuk menyimpan nilai, bisa kita passing. Setiap kali buat project baru string [] args selalu ada sebagai default convention saja dan untuk melihat panjang array pakai namaarray.length.


Semoga bermanfaat….

Metode Perancangan Basis Data

 Metode perancangan basis data secara umum dikelompokkan kedalam: 1. Preliminary Design 2. Scratching Methode 1. Preliminary Design, Cirinya...