KATA MUTIARA

"BERPEGANG TEGUHLAH PADA KEJUJURAN, DAN KOMITMEN BERSAMA, SEBAB HAL ITU AKAN MEMBUAT DIRI KITA BERHARGA DISISI TUHAN DAN MANUSIA"

Jumat, 04 Juni 2010

BAHASA PEMOGRAMAN



SEARCHING DALAM AI 

Oleh : Kuryanto, S.Pd

Searching dalam AI disini memiliki arti yaitu suatu proses mencari solusi dari suatu permasalahan melalui sekumpulan kemungkinan ruang keadaan (state space). Searching merupakan penentu keberhasilan sistem cerdas. Searching disini tidak hanya mencari sesuatu yang teradapat dalam sebuah array, tetapi solusi terbaik diantara berbagai solusi yang ada sehingga solusi yang didapat adalah solusi yang memang dirasa paling baik. Sebagai contoh kasus misalnya, kita ingin mengambil handphone di tengah-tengah sebuah karpet yang diatasnya tidak terdapat apa-apa di dalam suatu ruangan. Artinya di dalam suatu ruangan tergeletak sebuah karpet dan sebuah handphone. Bagaimana kita bisa mengambil handphone tersebut tanpa menyentuh karpet bagian atas? Mungkin diantara kita ada yang berpikir mengambil handphone tersebut dengan menggunakan kayu sebagai pengambil. Itu mungkin saja terjadi. Tapi bagaimana jika kayu tersebut tidak ada dalam ruangan tersebut? Solusi yang terbaik adalah dengan menggulung karpet tersebut. Sehingga lama-kelamaan handphne tersebut dapat kita ambil. Seperti itulah contoh kasus dalam AI meskipun contoh tadi bukanlah contoh kasus untuk sistem AI. Tapi disini ingin ditekankan bahwa kasus yang diahadapi oleh sistem AI adalah kasus yang memiliki berbagai macam kemungkinan solusi dan teknik penyelesaian atau solusinya haruslah merupakan solusi yang terbaik diantara solusi yang ada. Terdapat berbagai macam metode pencarian searching yang ada. Semua metode tadi dapat dikelompokkan ke dalam dua jenis yaitu pencarian buta/tanpa informasi (blind atau un-informed search) yang berarti tidak ada informasi awal yang digunakan dan pencarian heuristic/dengan informasi (heuristic atau informed search) yang artinya adanya informasi awal yang digunakan dalam melakukan pencarian. Setiap metode pencarian memiliki kelemhan dan kelebihan masing-masing. Untuk mengukur perfomansi metode pencarian, terdapat empat kriteria yang dapat digunakan yaitu:


1. Completeness : apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada ?

2. Time complexity : berapa lama waktu yang diperlukan ?

3. Space complexity : berapa banyak memori yang diperlukan ?

4. Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda ?

Contoh yang termasuk Blind/Un-inforned Search adalah Breadth First Search (BFS), Depth First Search (DFS), DLS, UCS, IDS dan BDS. Sedangkan yang termasuk Heuristic atau Informed Search adalah Hill Climbing, Best First Search, Greedy Best First Search dan A*. Setiap metode pencarian memiliki kelemahan dan kelebihannya masing-masing. Samapai saat ini tidak ada satupun metode pencarian yang memenuhi keempat kriteria tadi sekaligus.

ARTIFICIAL INTELLIGENCE


Pada dasarnya AI (Artificial Intelligence) adalah suatu disiplin ilmu yang membuat komputer memiliki kecerdasan seperti layaknya manusia. Suatu komputer dikatakan suatu sistem yang cerdas jika memenuhi syarat-syarat yaitu berpikir seperti manusia, bertindak seperti manusia, berpikir secara rasional dan bertindak secara rasional. Lalu pertanyannya sekarang adalah, “Bagaimanakah cara manusia berpikir?” pada dasarnya manusia dapat berpikir jika dia sudah memiliki basis pengetahuan tentang apa yang akan dipikirkannya sehingga kemudian dia dapat berpikir dan pada akhirnya dia dapat bertindak atas hasil yang ia pikirkan. Begitu juga dengan program-program AI yang ditanam di dalam komputer. Selain menuliskan source-source program, program AI tersebut haruslah dilatih terlebih dahulu agar program AI tersebut memiliki basis pengetahuan sehingga dapat melakukan proses secara benar. Basis pengetahuan dalam suatu program AI wajib dimiliki oleh program tadi. Karena dalam AI, program akan memecahkan masalah yang sangat beragam kemungkinannya sehingga perlu basis pengetahuan yang banyak. Semakin banyak basis pengetahuan yang dilatih ke program, semakin baik program tersebut. Dan ingat, semakin banyak suatu basis pengetahuan program maka semakin lama pula program tersebut akan memecahkan masalah yang ada karena ia harus mencocokkan dahulu dengan basis yang ia punya. Secara umum, untuk membangun suatu sistem yang mampu menyelesaikan masalah, perlu dipertimbangkan 4 hal:

1.Mendefinisikan masalah dengan tepat. Pendefinisian ini mencakup spesifikasi yang tepat mengenai keadaan awal dan solusi yang diharapkan.
2.Menganalisis masalah tersebut serta mencari beberapa teknik penyelesaian masalah yang sesuai.

3.Merepresentasikan pengetahuan yang perlu untuk menyelesaikan masalah tersebut.

4.Memilih teknik penyelesaian masalah yang terbaik.





CONTOH BAHASA PEMROGRAMAN


FORTRAN

FORTRAN (FORmula TRANslator) dikembangkan pada tahun 1956 oleh John Backus di IBM. Ditujukan untuk mempermudah pembuatan aplikasi matematika, ilmu pengetahuan dan teknik. Keunggulan FORTRAN terletak pada dukungan untuk menangani perhitugan, termasuk bilangan kompleks. Kelemahan bahasa ini terletak pada operasi masukan/keluaran yang sangat kaku. Selain itu, kode sumbernya lebih sulit dipahami dibandingkan dengan bahasa pemrograman yang lain.

BASIC

BASIC (Beginner All-purpose Symbolic Instruction Code) dikembangkan pada tahun 1965 di Darmouth College. Penciptanya adalah John Kemeny dan Thomas Kurtz. Awalnya ditujukan sebagai bahasa sederhana untuk pengajaran dasar pemrograman komputer. Bahasa ini tergolong sebagai bahasa yang serbaguna yakni dapat dipakai utuk aplikasi apa saja. BASIC merupakan bahasa yang sangat popular sebelum akhirnya muncul Pascal. Keunggulan BASIC terletak pada kemudahan untuk dipakai. Namun kala itu BASIC berbentuk interpreter sehingga kecepatannya sangat lambat. Akhir-akhir ini muncullah BASIC berbentuk compiler. Namun kehadirannya terlambat oleh kedatangan Pascal yang sejak awal berbentuk compiler sehingga menawarkan kecepatan yang lebih tinggi. Kelemahan yang lain adalah BASIC tidak mendukung operasi bilangan kompleks dan penanganan terhadap berkas sangat terbatas sehingga tidak cocok untuk menangani aplikasi bisnis.

Pascal

Pascal dibuat oleh Nicklaus Wirth pada tahun 1971. Nama Pascal berasal dari nama matematikawan Perancis yang bernama Blaise Pascal (1623-1662). Bahasa ini awalnya digunakan untuk mengenalkan pemrograman terstuktur. Keunggulan Pascal adalah kemudahan untuk mempelajarinya dan dukungan fungsi-fungsi matematika yang sangat lengkap. Kelemahan Pascal adalah tidak mendukung operasi bilangan kompleks dan tidak mendukung sarana untuk aplikasi bisnis.

C

C diciptakan oleh Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972 di Laboratorium AT&T. Bahasa ini menggabungkan kemampuan pengendalian mesin dalam aras rendah dan struktur data dan struktur kontrol yang beraras tinggi. C dipakai antara lain untuk menyusun sistem operasi LINUX dan UNIX. Kelebihan C adalah cepat, efisien, pemanipulasian data dalam bentuk bit dimungkinkan, dank ode sumber bahasa C pada suatu platform dapat dipendahkan ke platform lain tanpa adanya perubahan. Sedangkan kelemahan C adalah banyak yang menganggapo bahwa bahasa C adalah bahasa yang sulit dipahami dan tidak adanya dukungan untuk aplikasi bisnis.

Java

Java dibuat pada tahun 1995 di Sun Microsystems. Java merupakan bahasa berorientasi objek dan serbaguna. Kode Java dikompilasi dalam format yang disebut bytecode. Bytecode ini dapat dijalankan di semua komputer yang telah dilengkapi dengan program Java Interpreter dan Java Virtual Machine. Java telah menyediakan sarana untuk membuat program yang disebut applet yang berjalan di pada Web Browser. Bahasa ini juga mendukung koneksi ke database, meyediakan sarana untuk membuat aplikasi berbasis Windows dan juga dapat dipakai dalam pemrograman jaringan.

BAHASA PEMROGRAMAN


Sampai saat ini bahasa pemrograman dikelompokkan menjai 5 generasi, yaitu bahasa pemrograman generasi pertama, bahasa generasi kedua, bahasa generasi ketiga, bahasa generasi keempat, dan bahasa generasi kelima.

BAHASA PEMROGRAMAN GENERASI PERTAMA

Bahasa pemrograman genarasi pertama berorientasi pada mesin. Program disusun dengan menggunakan bahasa mesin. Tentu saja program generasi ini sangat sulit untuk dipahami oleh orang awam dan sangat membosankan bagi pemrogram. Pemrogram harus benar-benar menguasai operasi komputer secara teknis. Namun bahasa generasi ini memberikan eksekusi program yang sangat cepat.

BAHASA PEMROGRAMAN GENERASI KEDUA

Bahasa pemrograman generasi kedua menggunakan bahsa rakitan (assembly). Sebagai pengganti kode-kode biner, digunakanlah kependekan dari kata-kata. Misalnya, MOV untuk menyatakan “Move” dan JNZ yang berarti “Jump non-zero” atau “Lompatlah kalau tidak sama dengan nol”. Setiap instruksi dalam bahasa rakitan sebenarnya identik dengan satu instruksi dalam bahasa mesin. Bahasa ini sedikit lebih mudah dipahami daripada bahasa mesin mengingat perintah dalam bentuk kata-kata yang dipendekkan lebih mudah daripada mengingat deretan angka biner. Sampai sejauh ini, bahasa rakitan masih banyak digunakan terutama untuk pengendalian hardware komputer.

BAHASA PEMROGRAMAN GENERASI KETIGA

Bahasa pemrograman generasi ketiga menggunakan pendekatan prosedural. Sebagai bahasa prosedural, pemrogram perlu menuliskan instruksi-instruksi yang rinci agar komputer melaksanakan tugasnya. Program ditulis dengan menggunakan kata-kata seperti Write atau Read sehingga bahasa generasi ini lebih mudah dipahami oleh manusia daripada bahasa generasi sebelumnya. Contoh bahasa generasi ini adalah Ada, ALGOL, BASIC, C, COBOL, FORTRAN dan Pascal.

BAHASA PEMROGRAMAN GENERASI KEEMPAT

Bahasa pemrograman generasi keempat dirancang untuk mengurangi waktu pemrogram dalam membuat program sehingga diharapkan produktivitas pemrogram jadi lebih mengingkat dan program dapat dengan menggunakan waktu yang relatif singkat. Hasilnya, bahasa pemrograman generasi ini dikenal dengan sebutan 4GL yang dapat dipakai oleh pemakai yang kurang mengetahui hal-hal teknis tentang pemrograman tanpa bantuan pemrogram professional. Bahasa pemrograman generasi keempat biasa disebut sebagai bahasa beraras sangat tinggi (very high level language) atau bahasa yang berorientasi pada masalah (problem oriented lagunage) karena memungkinkan pemakai menyelesaikan masalah dengan sedikit penulisan kode dibandingkan pada bahasa prosedural. Bahasa pemrograman generasi keempat menggunakan pendekatan non-prosedural. Untuk mendapatkan sesuatu hasil, seorang pemakai tidak perlu memberitahukan secara detail tentang bagaimana mendapatkan hasil yang ingin diperoleh. Bahasa generasi keempat mendukung fasilitas pembangkit program, pembangkit laporan, bahasa query dan pembangkit gambar. Contoh bahasa generasi keempat adalah Oracle, Informix, Sybase, PowerHouse dan FOCCUS.

BAHASA PEMROGRAMAN GENERASI KELIMA

Bahasa pemrograman generasi kelima merupakan kelompok bahasa-bahasa pemrograman yang ditujukan untuk menangani kecerdasan buatan (artificial intelligence). Kecerdasan buatan adalah suatu disiplin ilmu dalam ilmu komputer yang mempelajari cara komputer meniru kecerdasan manusia. PROLOG dan LISP merupakan dua contoh bahasa pemrograman yang digunakan dalam kecerdasan buatan.


PROSSESOR ATAU CPU

Prosesor adalah nama singkat dari mikroprossor dan seringkali disebut CPU (Central Processing Unit). Komponen iini berupa sebuah cip. Cip (chip atau IC/Integrated Circuit) adalah sekeping silicon berukuran beberapa millimeter persegi yang mengandung puluhan ribu transistor dan kompone elektronik yang lain. Prosesor merupakan salah satu komponen terpenting dalam sistem komputer. Prosesor seringkali disebut sebagai otak komputer. Padahal istilah tersebut tidak 100% tepat. Mengapa? Memang prosesor merupakan komponen komputer yang bertugas memproses sesuatu. Tapi prosesor tidak berfungsi sebagai pengingat. Fungsi pengingat ditangani sendiri oleh komponen lain yang dinamakan memori. Beberapa hal yang perlu diperhatikan mengenai prosesor.

KINERJA

Tipe prosesor yang digunakan akan mempengaruhi kinerja sistem komputer. Kemampuan sebuah prosesor menentukan kinerja maksimum yang dapat dicapai oleh sistem komputer.

DUKUNGAN PERANGKAT LUNAK

Prosesor yang lebih cepat memungkinkan pemakaian perangkat lunak terbaru ataupun fitur terbaru. Pentium dengan teknologi MMX memungkinkan pemakaian perangkat lunak khusus yang tak didukung oleh jenis prosesor generasi sebelumnya.

KEHANDALAN DAN STABILITAS

Salah satu pendukung kehandalan dan stabilitas komputer adala kualitas prosesor. Sebagai contoh, salah satu jenis prosesor Pentium pernah mengalami kesalahan dalam proses aritmatika karena kesalahan desain. Begitu juga terdapat sebuah prosesor tertentu yang sering menyebabkan komputer macet dan bahakan prosesor terbakar.

PENDINGIN DAN KONSUMSI ENERGI

Awalnya prosesor hanya mengonsumsi daya listrik yang relatif kecil dibandingkan dengan komponen yang lain. Namun pada perkembangan selanjutnya, prosesor menggunakan daya listrik yang relative besar dari sebelumnya. Hai ini tentu saja akan membuat prosesor akan semakin cepat panas. Oleh karena itu diperlukan sistem pendinginan yang baik untuk membantu mendinginkan prosesor.

KOMPONEN CPU

CPU terdiri dari dua bagian utama. Yaitu unit kontrol dan ALU (Arithmetic and Logic Unit).

1. Unit Kontrol berfungsi untuk mengendalikan seluruh komponen dalam sistem komputer, seperti layaknya otak manusia yang mengontrol seluruh saraf dalam tubuh sehingga seluruh anggita tubuh dapat digerakkan atau dikendalikan. Pengendalian yang dilakukan oleh unit ini didasarkan pada program komputer. Setiap instruksi diterjemahkan ke dalam bentuk tindakan yang sesuai dengan maksud intruksi yang bersangkutan.

2. ALU berguna dalam melaksanakan operasi-operasi perhitungan atau aritmetika seperti penjumlahan, pengurangan, perkalian dan operasi pembandingan (logika) seperti membandingkan dua buah nilai bernilai sama ataua tidak.

Selain kedua komponen tersebut, CPU memiliki sejumlah register. Register adalah memori dalam CPU yang mempunyai kecepatan yang sangat tinggi, yang digunakan untuk berbagai operasi CPU. Untuk melakukan suatu operasi terhadap data yang berada dalam memori utama, data mula-mula disalin dari memori ke register-register dalam CPU. Unit kontrol yang menangani hal ini. Pengrtian data dalam konteks ini bisa berarti perintah atau data. Selanjutnya data diterjemahkan dan diproses. Jika terdapat operasi aritmatika atau logika, ALU segera mengambil alih peran tersebut. Hasil sementara pemrosesan akan ditaruh pada akumulator dan setelah itu baru dikirimkan ke memori utama.



CIRCUMVENTOR



Kita semua pasti pernah berinternet bukan? Dengan internet kita dapat mencari apa saja yang kita mau. Dari mulai berita terbaru, gosip para selebritis, teknologi terbaru dan lain-lain yang semuanya dapat kita peroleh dengan internet. Koneksi internetpun tidak selamanya bebas. Artinya tidak selamanya kita bisa membuka sebuah situs tertentu. Missal ketika kita menggunakan internet via kampus. Sebenarnya ketika kita menggunakan internet yang disediakan oleh kampus, kita sedang diawasi oleh pihak kampus tersebut. Mengapa pihak kampus sampai harus mengawasi kita internet? Tujuan didirikannya kampus adalah untuk mendidik mahasiswanya untuk menjadi manusia yang memiliki hardskill dan softskill yang hebat tanpa melupakan ilmu agama dan moral. Oleh karena itu, mereka berusaha mencegah mahasiswanya untuk mengakses situs-situs yang dianggap dapat merusak hal-hal tersebut. Kebanyakan situs yang di block adalah situs porno. Jadi jangan khawatir, masih banyak situs-situs yang dapat kita akses. Tetapi, terkadang ketika kita ingin mengakses sesuatu, kita malah di block. Padahal belum tentu kita ingin melakukan pornoaksi.
Kalau ingin tahu, sebenarnya kita di block oleh proxy. Proxy sendiri adalah suatu komputer server (bisa juga berupa program aplikasi) yang menerima request dari komputer client untuk kemudian diteruskan ke server selanjutnya (bisa ke internet atau sesame jaringan Ethernet). Karena fungsinya yang berupa penengah antara client dan server, maka seringkali proxy ini diatur untuk memfilter request-request yang sekiranya sesuaidengan kebijakan security dari jaringan kampus yang bersangkutan.
Tapi jangan khawatir, terdapat sebuah teknik untuk mengecoh proxy tadi. Yaitu dengan menggunakan circumventor. Circumventor adalah metode untuk menembus blocking proxy di jaringan kita. Sebenarnya, circumventor berupa proxy juga yang lokasinya berada di server lain. Kita tidak perlu menginstall suatu program atau merubah-rubah setting yang ada di jaringan kita jika ingin menggunakan circumventor ini. Di dunia ini, sudah banyak server yang memberikan layanan proxy circumventor untuk digunakan oleh siapa saja.

Contoh circumventor adalah http://www.turbohide.com//. Circumventor ini berbasis web dan akan mengubah alamat IP kita menjadi alamat IP Amerika dengan tingkat anonimitas yang lumayan tinggi.


Tapi ingat, ketika kita menggunakan circumventor, tidak ada lagi yang membatasi kita ketika berinternet. Jadi, gunakanlah layanan ini dengan bijak.


SINGLE IDENTITY NUMBER


Single Identity Number atau SIN merupakan sebuah nomor unik yang hanya bisa digunakan oleh seseorang. Pada dasarnya SIN ini dimiliki oleh setiap orang dengan kombinasi angka yang berbeda tiap orangnya. SIN telah digunakan oleh beberpa negara maju misalnya Amerika Serikat. Di sana SIN ini bertindak sebagai ID seseorang. Ketika seorang bayi lahir, bayi tersebut langsung diberikan sebuah nomor ID. Penggunaan SIN ini antara lain digunakan untuk membuat KTP (Kartu Tanda Penduduk) di sana. Sehingga SIN ini dapat mencegah adanya seorang warga yang memiliki KTP lebih dari satu. Penggunaan SIN sangatlah cocok jika diterapkan di Indonesia karena rata-rata penduduk Indonesia memiliki KTP lebih dari dua terutama jika waraga tersebut merupakan penghuni sebuah kota yang tidak tetap. Artinya dia tidak selamanya menghuni di kota itu. Bisa saja pada akhirnya dia memiliki KTP lebih dari satu yaitu yang satu KTP tempat asalnya dan yang kedua adalah KTP tempat sekarang ia tinggal. SIN bermanfaat ketika pemilu berlangsung. Dengan SIN tidak ada lagi penduduk yang tidak terdaftar dalam DPT (Daftar Pemilih Tetap) atau penduduk yang terdaftar di dua buah atau lebih TPS (Tempat Pemungutan Suara yang berbeda) sehingga pemilu yang demokratis bisa benar-benar terwujud.