Jumat, Oktober 26, 2007

KECERDASAN BUATAN DALAM ROBOTIK

Kecerdasan Buatan (Artificial Intelligence) dalam robotik adalah suatu algorithma (yang dipandang) cerdas yang diprogramkan ke dalam kontroler robot. Pengertian cerdas di sini sangat relatif, karena tergantung dari sisi mana sesorang memandang.
Para filsuf diketahui telah mulai ribuan tahun yang lalu mencoba untuk memahami dua pertanyaan mendasar: bagaimanakah pikiran manusia itu bekerja, dan, dapatkah yang bukan-manusia itu berpikir? (Negnevitsky, 2004). Hingga sekarang, tak satupun mampu menjawab dengan tepat dua pertanyaan ini. Pernyataan cerdas yang pada dasarnya digunakan untuk mengukur kemampuan berpikir manusia selalu menjadi perbincangan menarik karena yang melakukan penilaian cerdas atau tidak adalah juga manusia. Sementara itu, manusia tetap bercita-cita untuk menularkan �kecerdasan manusia� kepada mesin.
Dalam literatur, orang pertama yang dianggap sebagai pionir dalam mengembangkan mesin cerdas (intelligence machine) adalah Alan Turing, sorang matematikawan asal Inggris yang memulai karir saintifiknya di awal tahun 1930-an. Di tahun 1937 ia menulis paper tentang konsep mesin universal (universal machine). Kemudian, selama perang dunia ke-2 ia dikenal sebagai pemain kunci dalam penciptaan Enigma, sebuah mesin encoding milik militer Jerman. Setelah perang, Turing membuat �automatic computing engine�. Ia dikenal juga sebagai pencipta pertama program komputer untuk bermain catur, yang kemudian program ini dikembangkan dan dimainkan di komputer milik Manchester University. Karya-karyanya ini, yang kemudian dikenal sebagai Turing Machine, dewasa ini masih dapat ditemukan aplikasi-aplikasinya. Beberapa tulisannya yang berkaitan dengan prediksi perkembangan komputer di masa datang akhirnya juga ada yang terbukti. Misalnya tentang ramalannya bahwa di tahun 2000-an komputer akan mampu melakukan percakapan dengan manusia. Meski tidak ditemukan dalam paper-papernya tentang istilah �resmi�: artificial intelligence, namun para peneliti di bidang ini sepakat untuk menobatkan Turing sebagai orang pertama yang mengembangkan kecerdasan buatan.
Secara saintifik, istilah kecerdasan buatan � untuk selanjutnya disebut sebagai AI (artificial intelligence) � pertama kali diperkenalkan oleh Warren McCulloch, seorang filsuf dan ahli perobatan dari Columbia University, dan Walter Pitts, seorang matematikawan muda pada tahun 1943, (Negnevitsky, 2004). Mereka mengajukan suatu teori tentang jaringan saraf tiruan (artificial neural network, ANN) � untuk selanjutnya disebut sebagai ANN � bahwa setiap neuron dapat dipostulasikan dalam dua keadaan biner, yaitu ON dan OFF. Mereka mencoba menstimulasi model neuron ini secara teori dan eksperimen di laboratorium. Dari percobaan, telah didemonstrasikan bahwa model jaringan saraf yang mereka ajukan mempunyai kemiripan dengan mesin Turing, dan setiap fungsi perhitungan dapat dapat diselesaikan melalui jaringan neuron yang mereka modelkan.
Kendati mereka meraih sukses dalam pembuktian aplikasinya, pada akhirnya melalui eksperimen lanjut diketahui bahwa model ON-OFF pada ANN yang mereka ajukan adalah kurang tepat. Kenyataannya, neuron memiliki karakteristik yang sangat nonlinear yang tidak hanya memiliki keadaan ON-OFF saja dalam aktifitasnya. Walau demikian, McCulloch akhirnya dikenal sebagai orang kedua setelah Turing yang gigih mendalami bidang kecerdasan buatan dan rekayasa mesin cerdas. Perkembangan ANN sempat mengalami masa redup pada tahun 1970-an. Baru kemudian pada pertengahan 1980-an ide ini kembali banyak dikaji oleh para peneliti.
Sementara itu, metoda lain dalam AI yang sama terkenalnya dengan ANN adalah Fuzzy Logic (FL) � untuk selanjutnya ditulis sebagai FL. Kalau ANN didisain berdasarkan kajian cara otak biologis manusia bekerja (dari dalam), maka FL justru merupakan representasi dari cara berfikir manusia yang nampak dari sisi luar. Jika ANN dibuat berdasarkan model biologis teoritis, maka FL dibuat berdasarkan model pragmatis praktis. FL adalah representasi logika berpikir manusia yang tertuang dalam bentuk kata-kata.
Kajian saintifik pertama tentang logika berfikir manusia ini dipublikasikan oleh Lukazewicz, seorang filsuf, sekitar tahun 1930-an. Ia mengajukan beberapa representasi matematik tentang �kekaburan� (fuzziness) logika ketika manusia mengungkapkan atau menyatakan penilaian terhadap tinggi, tua dan panas (tall, old, & hot). Jika logika klasik hanya menyatakan 1 atau 0, ya atau tidak, maka ia mencoba mengembangkan pernyataan ini dengan menambahkan faktor kepercayaan (truth value) di antara 0 dan 1.
Di tahun 1965, Lotfi Zadeh, seorang profesor di University of California, Berkeley US, mempublikasikan papernya yang terkenal, �Fuzzy Sets�. Penelitian-penelitian tentang FL dan fuzzy system dalam AI yang berkembang dewasa ini hampir selalu menyebutkan paper Zadeh itulah sebagai basis pijakannya. Ia mampu menjabarkan FL dengan pernyataan matematik dan visual yang relatif mudah untuk dipahami. Karena basis kajian FL ini kental berkaitan dengan sistem kontrol (Zadeh adalah profesor di bidang teknik elektro) maka pernyataan matematiknya banyak dikembangkan dalam konteks pemrograman komputer.
Metoda AI lain yang juga berkembang adalah algorithma genetik (genetic algorithm, GA) � untuk selanjutnya disebut sebagai GA. Dalam pemrograman komputer, aplikasi GA ini dikenal sebagai pemrograman berbasis teori evolusi (evolutionary computation, EC) � untuk selanjutnya disebut sebagai EC. Konsep EC ini dipublikasikan pertama kali oleh Holland (1975). Ia mengajukan konsep pemrograman berbasis GA yang diilhami oleh teori Darwin. Intinya, alam (nature), seperti manusia, memiliki kemampuan adaptasi dan pembelajaran alami �tanpa perlu dinyatakan: apa yang harus dilakukan�. Dengan kata lain, alam memilih �kromosom yang baik� secara �buta�/alami. Seperti pada ANN, kajian GA juga pernah mengalami masa vakum sebelum akhirnya banyak peneliti memfokuskan kembali perhatiannya pada teori EC.
GA pada dasarnya terdiri dari dua macam mekanisme, yaitu encoding dan evaluation. Davis (1991) mempublikasikan papernya yang berisi tentang beberapa metoda encoding. Dari berbagai literatur diketahui bahwa tidak ada metoda encoding yang mampu menyelesaikan semua permasalahan dengan sama baiknya. Namun demikian, banyak peneliti yang menggunakan metoda bit string dalam kajian-kajian EC dewasa ini.
Aplikasi AI dalam kontrol robotik dapat diilustrasikan sebagai berikut,
Gambar 4.1: Kontrol robot loop tertutup berbasis AI
Penggunaan AI dalam kontroler dilakukan untuk mendapatkan sifat dinamik kontroler �secara cerdas�. Seperti telah dijelaskan di muka, secara klasik, kontrol P, I, D atau kombinasi, tidak dapat melakukan adaptasi terhadap perubahan dinamik sistem selama operasi karena parameter P, I dan D itu secara teoritis hanya mampu memberikan efek kontrol terbaik pada kondisi sistem yang sama ketika parameter tersebut di-tune. Di sinilah kemudian dikatakan bahwa kontrol klasik ini �belum cerdas� karena belum mampu mengakomodasi sifat-sifat nonlinieritas atau perubahan-perubahan dinamik, baik pada sistem robot itu sendiri maupun terhadap perubahan beban atau gangguan lingkungan.
Banyak kajian tentang bagaimana membuat P, I dan D menjadi dinamis, seperti misalnya kontrol adaptif, namun di sini hanya akan dibahas tentang rekayasa bagaimana membuat sistem kontrol bersifat �cerdas� melalui pendekatan-pendekatan AI yang populer, seperti ANN, FL dan EC atau GA.
Gambar 4.1 mengilustrasikan tentang skema AI yang digunakan secara langsung sebagai kontroler sistem robot. Dalam aplikasi lain, AI juga dapat digunakan untuk membantu proses identifikasi model dari sistem robot, model lingkungan atau gangguan, model dari tugas robot (task) seperti membuat rencana trajektori, dan sebagainya. Dalam hal ini konsep AI tidak digunakan secara langsung (direct) ke dalam kontroler, namun lebih bersifat tak langsung (indirect).
sumber : pak Epit @ eepis-its.edu

Kecerdasan Buatan

Kecerdasan Buatan ?… wakkks…. !!! :-o

Mendengar kata ‘kecerdasan buatan’ mungkin bagi sebagian orang akan terdengar ‘menyeramkan’, atau bagi beberapa orang lainnya akan langsung teringat film Matrix atau I-Robot. Itu tidak bisa disalahkan, karena memang kecerdasan buatan hampir selalu mempunyai konotasi fiksi ilmiah, meskipun pada kenyataannya kecerdasan buatan bukanlah suatu khayalan, tapi memang benar-benar ada dalam kehidupan kita sehari-hari dan kita juga sering menggunakannya.
Kecerdasan Buatan, yang dalam bahasa Walanda disebut sebagai Artificial Intelligence atau AI didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia.
Sejarah Kecerdasan Buatan
Pada awal abad 17, René Descartes mengemukakan bahwa tubuh hewan bukanlah apa-apa melainkan hanya mesin-mesin yang rumit. Blaise Pascal menciptakan mesin penghitung digital mekanis pertama pada 1642. Pada 19, Charles Babbage dan Ada Lovelace bekerja pada mesin penghitung mekanis yang dapat diprogram.
Bertrand Russell dan Alfred North Whitehead menerbitkan Principia Mathematica, yang merombak logika formal. Warren McCulloch dan Walter Pitts menerbitkan “Kalkulus Logis Gagasan yang tetap ada dalam Aktivitas ” pada 1943 yang meletakkan pondasi untuk jaringan syaraf.
Tahun 1950-an adalah periode usaha aktif dalam AI. Program AI pertama yang bekerja ditulis pada 1951 untuk menjalankan mesin Ferranti Mark I di University of Manchester (UK): sebuah program permainan naskah yang ditulis oleh Christopher Strachey dan program permainan catur yang ditulis oleh Dietrich Prinz. John McCarthy membuat istilah “kecerdasan buatan ” pada konferensi pertama yang disediakan untuk pokok persoalan ini, pada 1956. Dia juga menemukan bahasa pemrograman Lisp. Alan Turing memperkenalkan “Turing test” sebagai sebuah cara untuk mengoperasionalkan test perilaku cerdas. Joseph Weizenbaum membangun ELIZA, sebuah chatterbot yang menerapkan psikoterapi Rogerian.
Selama tahun 1960-an dan 1970-an, Joel Moses mendemonstrasikan kekuatan pertimbangan simbolis untuk mengintegrasikan masalah di dalam program Macsyma, program berbasis pengetahuan yang sukses pertama kali dalam bidang matematika. Marvin Minsky dan Seymour Papert menerbitkan Perceptrons, yang mendemostrasikan batas jaringan syaraf sederhana dan Alain Colmerauer mengembangkan bahasa komputer Prolog. Ted Shortliffe mendemonstrasikan kekuatan sistem berbasis aturan untuk representasi pengetahuan dan inferensi dalam diagnosa dan terapi medis yang kadangkala disebut sebagai sistem pakar pertama. Hans Moravec mengembangkan kendaraan terkendali komputer pertama untuk mengatasi jalan berintang yang kusut secara mandiri.
Aplikasi Kecerdasan Buatan di Laboratorium Minyak Bumi
Ada banyak jenis kecerdasan buatan, setidaknya ada lima jenis kecerdasan buatan yang sering kita temui, yaitu :
Jaringan Syaraf Buatan (Artificial Neural Networks),Dalam industri minyak bumi AI ini dapat digunakan untuk membuat pola waktu, misal produksi suatu sumur minyak pada waktu tertentu.
Logika Fuzzy (Fuzzy Logics),Logika ini untuk menentukan nilai diantara dua keadaan biner (1 dan 0). Logika inilah yang saya pakai untuk identifikasi suatu minyak bumi sama (1) atau tidak (0) yang akan dibahas lebih lanjut.
Algoritma Genetik (Genetic Algorithms),Algoritma Genetik biasanya digunakan dibidang kedokteran, misal untuk menganalisis DNA.
Robotika (Robotics),AI ini banyak digunakan di pabrik. Biasanya dibuat untuk melakukan kegiatan otomatisasi, misal dalam PLC (Programmable Logic Control).
Permainan Komputer (Games),AI jenis ini yang paling disukai oleh anak-anak saya, misal untuk memainkan game Age of Mythology atau Counter Strike…
Dari contoh-contoh diatas, yang akan saya bahas kali ini adalah Logika Fuzzy, yaitu untuk menentukan apakah suatu minyak bumi sama atau tidak berdasarkan hasil analisis spektrum minyak bumi menggunakan Spektrofotometer FTIR (Fourier Transform Infra Red) yang saya lakukan di Laboratorium Molekuler LEMIGAS, Jakarta selama bulan Januari - Februari 2006 yang lalu.

Pengolahan data secara digital menggunakan komputer sudah dilakukan sejak tahun 1960. Dengan adanya revolusi teknologi komputer saat ini sudah mampu melakukan pengambilan keputusan seperti manusia (human-like decisions). Pada dasarnya mesin komputer hanya mengenal bahasa biner untuk mengambil keputusan, seperti “ada (1)” dan “tidak ada (0)”, hidup dan mati, betul dan salah, sama dan beda, dan lain-lain. Ketika dihadapkan pada kondisi yang memerlukan pertimbangan subjektif yang tidak pasti, seperti “agak mirip” atau “sedikit berbeda” mesin sudah tidak dapat melakukan pengambilan keputusan lagi. Untuk itu perlu dilakukan transformasi terlebih dahulu melalui suatu metoda khusus yang disebut kecerdasan buatan (artificial intellegence).
Cara kerja kecerdasan buatan pada dasarnya meniru cara kerja syaraf manusia dalam mengambil keputusan dimana didalamnya terdapat beberapa pertimbangan subjektif berdasarkan kriteria, seperti seberapa mirip suatu minyak bumi dengan minyak bumi lainnya atau berapa perbedaan yang diperbolehkan untuk menentukan bahwa suatu minyak bumi sama atau berbeda.
Perangkat lunak yang dapat digunakan untuk membuat suatu kecerdasan buatan dapat menggunakan bahasa pemrograman atau lembar kerja (spreadsheet) seperti Lotus, Microsoft Excel, C++, Basic, dBase, Microsoft Access, Microsoft Visual Basic, Delphi dan lain-lain. Pada percobaan yang saya lakukan, metoda yang akan digunakan adalah menggunakan Logika Fuzzy pada Microsoft Visual Basic 6.
sumber : persembahanku.wordpress.com

Sistem Pakar

Sistem pakar merupakan salah satu bidang teknik kecerdasan buatan yang cukup diminati karena penerapannya diberbagai bidang baik bidang ilmu pengetahuan maupun bisnis yang terbukti sangat membantu dalam mengambil keputusan dan sangat luas penerapanya. Sistem pakar adalah suatu sistem komputer yang dirancang agar dapat melakukan penalaran seperti layaknya seorang pakar pada suatu bidang keahlian tertentu (Shelly, 1990; Setiawan, 1993; Margianti,1995).
A. Ciri-ciri sistem pakar
Ciri-ciri sistem pakar adalah sebagai berikut:
1. Terbatas pada domain keahlian tertentu.
2. Dapat memberikan penalaran untuk data data yang tidak pasti.
3. Dapat mengemukan rangkaian alasan-alasan yang diberikannya dengan cara yang dapat dipahami.
4. Berdasarkan pada kaidah/rRule tertentu.
5. Dirancang untuk dapat dikembangkan secara bertahap.
6. Keluaranya bersifat anjuran.
Komponen sistem pakar terbagi menjadi empat bagian, yaitu:
  1. Knowledge Base (Basis Pengetahuan)
    Knowledge Base merupakan inti dari program sistem pakar karena basis pengetahuan itu merupakan
    presentasi pengetahuan atau knowledge representation basis pengetahuan adalah sebuah basis data yang menyimpan aturan-aturan tentang suatu domain knowledge/pengetahuan tertentu. Basis pengetahuan ini terdiri dari kumpulan objek beserta aturan dan atributnya (sifat atau cirinya). Contoh :
    If hewan merupakan sayap dan bertelur then hewan jenis burung.
  2. Working Memory (Basis Data atau Memori Kerja)
    Working memory adalah bagian yang mengandung semua fakta-fakta baik fakta awal pada saat
    sistem beroperasi maupun fakta-fakta pada saat pengambilan klesimpulan sedang dilaksanakan
    selama sistem pakar beroperasi basis data berada di adalam memori kerja.
  3. Inference Engine (Mesin Inferensia)
    Inference Engine adalah bagian yang menyediakan mekanisme fungsi berfikir dan pola-pola
    penalaran sistem yang digunakan oleh seorang pakar.
    - Mekanisme ini akan menganalisa masalah tertentu dan selanjutnya akan mencari jawaban
    atau kesimpulan yang terbaik.
    - Mesin ini akan dimulai pelacakannya dengan mencocokan kaidah-kaidah dalam basis
    pengetahuan dengan fakta-fakta yang ada dalam basis data.
    Dua teknik Inference, yaitu:
    a. Backward Chaining (Pelacakan kebelakang)
    Melalui penalaranya dari sekumpulan hipotesis menuju fakta-fakta yang mendukung
    tersebut,jadi proses pelacakan berjalan mundur dimulai dengan menentukan kesimpulan yang
    akan dicari baru kemudian fakta-fakta pembangun kesimpulan atau a Goal Driven.
    b.Forward Chaining (Pelacakan ke depan)
    Forward Chaining merupakan kebalikan dari Backward Chaining yaitu mulai dari kumpulan data menuju kesimpulan. Suatu kasus kesimpulannya dibangun berdasarkan fakta-fakta yang telah diketahui atau data driven.
  4. User Interface (Antarmuka Pemakai)
    Antarmuka pemakai adalah bagian penghubung antara program sistem pakar dengan pemakai. Pada bagian memungkinkan pengguna untuk memasukkan instruksi dan informasi ke dalam sistem pakar serta menerima penjelasan dan kesimpulan.

Apa itu "AI" ?

Kecerdasan Buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.
Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain Sepakbola.
Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.
sumber : wikipedia indonesia

Teknolologi Sistem Fuzzy

Dalam perjalanan perkembangan suatu generasi teknologi menjadi lebih mantap dan berdaya guna tinggi, membutuhkan adanya pengembangan dasar pengetahuan dan dilakukannya berbagai macam riset atau penelitian yang bersifat eksperimental. Penelitian atau riset ini akan memberikan jawaban terhadap pertanyaan mendasar seperti : teori-teori apa saja yang masih secara praktis masih relevan untuk kemudian dikembangkan atau teori mana saja yang sama sekali tidak bisa digunakan lagi? Teori yang bermanfaat adalah teori yang dianggap mampu menjembatani penggabungan pengendali fuzzy dengan sistem kendali konvensional atau algoritma kendali modern seperti jaringan neural, algoritma genetik, dan lain sebagainya.
Pada generasi pertama teknologi fuzzy, terdapat beberapa kendala yang ditemui untuk mengembangkan pada industri-industri atau sistem kendali yang telah ada. Saat itu belum ada metodologi yang sistematik tentang aplikasi pengendali fuzzy, penentuan rancang bangun yang tepat, analisa permasalahan, dan bagaimana pengaruh perubahan parameter sistem terhadap kualitas unjuk kerja sistem. Jadi tidak bisa diharapkan suatu rancang bangun yang universal dan strategi optimasi fuzzy dapat segera digunakan secara praktis.
Saat ini logika fuzzy telah berhasil menerobos kendala-kendala yang dulu pernah ditemui dan segera menjadi basis teknologi tinggi. Penerapan teori logika ini dianggap mampu menciptakan sebuah revolusi dalam teknologi. Sebagai contoh, mulai tahun 90-an para manufaktur industri yang bergerak di bidang Distributed Control System (DCSs), Programmable Controllers (PLCs), dan Microcontrollers (MCUs) telah menyatukan sistem logika fuzzy pada barang produksi mereka dan memiliki prospek ekonomi yang baik. Sebuah perusahaan mikroprosesor terkemuka, Motorolla, dalam sebuah jurnal teknologi, pernah menyatakan "… bahwa logika fuzzy pada masa-masa mendatang akan memainkan peranan penting pada sistem kendali dijital "(1). Pada saat yang bersamaan, pertumbuhan yang luar biasa terjadi pada industri perangkat lunak yangmenawarkan kemudahan penggunaan logika fuzzy dan penerapannya pada setiap aspek kehidupan sehari-hari.
Perusahaan Jerman Siemens yang bergerak diberbagai bidang teknik seperti otomatisasi industri, pembangkit tenaga, semikonduktor, jaringan komunikasi publik dan pribadi, otomotif dan sistem transportasi, sistem audio dan video, dan lain sebagainya, beberapa tahun belakangan ini telah membentuk kelompok riset khusus tentang fuzzy. Tujuannya untuk melakukan penelitian dan pengembangan yang sistematik tentang logika fuzzy pada setiap aspek teknologi (4).
Ada dua alasan utama yang mendasari pengembangan teknologi berbasis sistem fuzzy:
Menjadi state-of-the-art dalam sistem kendali berteknologi tinggi. Jika diamati pengalaman pada negara-negara berteknologi tinggi, khususnya di negara Jepang, pengendali fuzzy sudah sejak lama dan luas digunakan di industri-industri dan alat-alat elektronika. Daya gunanya dianggap melebihi dari pada teknik kendali yang pernah ada. Pengendali fuzzy terkenal karena kehandalannya, mudah diperbaiki, dan yang lebih penting lagi pengendali fuzzy memberikan pengendalian yang sangat baik dibandingkan teknik lain, yang biasanya membutuhkan usaha dan dana yang lebih besar.
Dalam perspektif yang lebih luas, pengendali fuzzy ternyata sangat bermanfaat pada aplikasi-aplikasi sistem identifikasi dan pengendalian ill-structured, di mana linieritas dan invariansi waktu tidak bisa ditentukan dengan pasti, karakteristik proses mempunyai faktor lag, dan dipengaruhi oleh derau acak. Bentuk sistem seperti ini jika dipandang sistem konvensional sangat sulit untuk dimodelkan. Beberapa proyek teknologi yang dinilai digunakan dan memiliki prospek ekonomi yang cerah seperti (4) :
Dalam teknologi otomotif : sistem transmisi otomatis fuzzy dan pengendali kecepatan idle fuzzy.
Dalam teknologi transpirtasi :
Pengendali fuzzy anti-slip untuk kereta listrik, sistem pengaturan dan perencanaan perparkiran, sistem pengaturan lampu lalu lintas, dan pengendalian kecepatan kendraan di jalan bebas hambatan.
Dalam peralatan sehari-hari : mesin cuci fuzzy dan vacum cleaner fuzzy dan lain-lain.
Dalam aplikasi industri di antaranya : industri kimia, sistem pengolahan kertas, dan lain-lain.
Dalam power satations : sistem diagnosis kebocoran-H2 Masih banyak aplikasi lainnya yang sudah beredar sebagai alat kendali dan barang-barang elektronik berteknologi tinggi.
Kendali Perkembangan Teknologi Sistem FuzzyKeberhasilan penerapan teknologi fuzzy seperti yang telah dibeberkan pada bagian pembahasan sebelumnya, dapat direalisasikan jika terdapat penelitian dan strategi pengembangan riset dan desain oleh sebuah industri untuk menemukan teknik terbaik untuk produknya. Hal tersebut tentunya tidak terlepas dari kesulitan-kesulitan yang ditemui dalam menggunakan dan pengembangan teknologi ini. Secara garis besar beberapa kesulitan yang ditemui oleh industri-industri elektronika adalah sebagai berikut (4):
Para enjiner dan ilmuwan generasi sebelumnya dan sekarang banyak yang tidak mengenal teori kendali fuzzy, meskipun secara teknik praktis mereka memiliki pengalaman untuk menggunakan teknologi dan perkakas kontrol yang sudah ada.
Belum banyak terdapat kursus/balai pendidikan dan buku-buku teks yang menjangkau setiap tingkat pendidikan (undergraduate, postgraduate, dan on site training)
Hingga kini belum ada pengetahuan sistematik yang baku dan seragam tentang metodologi pemecahan problema kendali menggunakan pengendali fuzzy.
Belum adanya metode umu/general untuk mengembangkan dan implementasi pengendali fuzzy. Kendala pertama dan kedua dapat diatasi dengan cara sering diadakannya kursus dan balai pendidikan, memperbanyak penuliasan karya-karya ilmiah dan juga pengadaan buku-buku tentang fuzzy di setiap perguruan tinggi atau institusi pendidikan lainnya. Kendala ke tiga dan ke empat dapat diatasi dengan cara membentuk suatu metodolgi untuk merancang dan mengembangkan sistem fuzzy. Metodologi ini mencakup fasilitas-fasilitas yang terdapat dalam teori sistem kendali fuzzy seperti : pemilihan fungsi keanggotaan, operator, penggunaan faktor skala, pengembangan basisi pengetahuan, penurunan basis aturan, uji coba, dan simulasi sistem.
Perusahaan elektrik Omron selain menjual produknya, kini mereka juga tengah mengembangkan metode pendidikan dan pelatihan teknik logika fuzzy. Asisten manajer Omron FA System Div..Jim Krill berkatta," …, Educating potential customers about the benefits of fuzzy logic and where it can be applied is impotant for proper development of this technology." Jadi cara terbaik untuk mencapai teknologi ini menurutnya adalah melalui program pelatihan, seminar, dan pemakaian piranti lunak simulasi sistem fuzzy yang efektif (1).
Hingga kini software pengembangan logika fuzzy sudah tidak terhitung banyaknya, mulai dari simulasi sistem yang sederhana hingga seistem yang sangat kompleks dan rumit. Masing-masing menawarkan berbagai kelebihan dan kemudahan pemakaian seperti : User friendly editor, sistem on-line dan off-line debugging, compilers untuk setiap bahasa pemrograman termasuk bahasa rakitan mikrokontroler, tampilan 3D dan berbagai macam proyek simulasi yang bisa dilakukan (4).

Game AI

Game AI adalah aplikasi IB untuk memodelkan karakter yang terlibat dalam permainan baik sebagai lawan, ataupun karakter pendukung yang merupakan bagian dari permainan tetapi tidak 'ikut bermain' (NPC ~ Non Playable Characters).
Karakter Antagonis (Opponent AI)
karakter antagonis adalah karakter yang dalam permainan memiliki tujuan yang sama dengan pemain yaitu memenangkan permainan. untuk mewujudkan tujuan ini karakter tersebut dapat melakukan aksi kepada pemain dan sebaliknya pemain dapat melakukan aksi kepada karakter lawan yang sesuai dengan aturan permainan. contoh sederhana dari karakter antagonis adalah dalam permainan pertarungan (fighting). karakter lawan adalah karakter yang harus 'dikalahkan' oleh pemain dengan melakukan aksi (serangan). fungsi IB pada karakter antagonis adalah melakukan aksi-aksi yang dapat memperbesar peluang karakter tersebut untuk menang.
Karakter Pendukung (NPC AI)
karakter pendukung (NPC ~ Non-Playable Characters) merupakan karakter yang terlibat dalam permainan tetapi tidak memiliki tujuan untuk memenangkan permainan melainkan melakukan peran yang mendukung pemain/lawan untuk memenangkan permainan. contoh sederhana dari NPC AI adalah pada game RPG. Karakter NPC pada permainan bergenre RPG pada umumnya memberikan informasi implisit kepada karakter tentang hal-hal yang berkaitan dengan cerita dalam permainan ataupun panduan bagi pemain mengenai tujuan permainan. fungsi IB pada karakter pendukung adalah menentukan dialog dengan pemain sedemikian rupa sehingga seolah-olah karakter tersebut tampak nyata bagi pemain (life-like).
IB untuk interaksi
Peranan IB dalam hal interaksi pemain dengan permainan adalah pada penggunaan interaksi yang bersifat alami yaitu yang biasa digunakan manusia untuk berinteraksi dengan sesama manusia. contoh-contoh media interaksi antara lain :
  • Penglihatan (Vision)
    Untuk menggunakan informasi penglihatan biasanya menggunakan kamera sebagai perangkat untuk mendapatkan data. data yang ditangkap adalah berupa gambar / citra yang merupakan matriks dua dimensi. matriks tersebut dianalisa sesuai dengan kebutuhan aplikasi sehingga didapatkan informasi yang diinginkan (misal pembentukan wajah, deteksi gerakan, rekonstruksi ruang).
    suara (voice) atau ucapan (speech)
    Informasi suara didapatkan dari microphone yang menghasilkan informasi dalam bentuk deretan angka (disebut sebagai sample). Persoalan utama dari suara adalah informasi yang dikandung memiliki variasi yang sangat besar yang disebabkan oleh faktor alat dan faktor manusia (vokal, intonasi, intensitas, dll). Penerapan interaksi dengan menggunakan suara misalnya untuk permainan bergenre RTS (wargames) yang menterjemahkan perintah dari pemain untuk menggerakkan unit. Contoh lainnya adalah permainan balap kendaraan yang menentukan akselerasi dari suara pemain yang menirukan suara mesin.
  • Gerakan anggota badan (gesture)
    Gesture adalah gerakan sebagian anggota badan yang memiliki makna tertentu (disebut juga sebagai body language). Informasi gesture dapat diakuisisi dengan berbagai cara, diantaranya :
    dari video (vision)
    informasi deretan koordinat (gerakan) dihasilkan dari analisis terhadap rangkaian gambar terurut (video).
  • Sensor jarak (range)
    informasi deretan koordinat diukur dengan menggunakan sensor jarak.
    sensor posisi yang menempel pada pemain
    akhir-akhir ini beberapa produsen konsol memanfaatkan pengendali (controller) yang dapat menghasilkan informasi posisi /perubahan posisi pengendali pada ruang tiga dimensi. Salah satu contoh konsol yang menggunakan ini adalah Nintendo Wii.

sumber :gameDevId

FreePascal, free open-source compiler

FreePascalAnother Free Open Source Pascal CompilerHalo
Sebuah kompiler yang sama2 berbasis object-Pascal, tapi yang ini (abosolutely) free, open-source, multiplatform support, dan lebih handal daripada Turbo Pascal. Namanya FreePascal.Lalu, apa aja sih kehandalannya jika dibandingkan dengan Turbo Pascal (7)? Ada banyak sekali kelebihannya, antara lain:
- 32 bit compilerFreePascal telah menggunakan teknologi 32 bit dalam proses kompilasi dan file executable yang dihasilkannya.
- Multiplatform supportFreePascal tidak hanya untuk M$ Windows, tapi juga tersedia di Linux, FreeBSD, OS2, BeOS, Solaris, dan beberapa sistem operasi lainnya. Dengan demikian, developer cukup "write once, compile and run everywhere". Sama dengan konsep yang digotong ama Kylix.
- Fitur yang lebih banyakJika dibandingkan dengan Turbo Pascal, fitur2 yang dimiliki FreePascal jauh lebih banyak. Mulai dari akses ke sistem operasi, networking (TCP/IP), advanced text, graphical interface, hingga database. Mau bikin aplikasi client/server yang terkoneksi dengan mySQL di Linux? Gampang. :) - Dukungan yang lebih luasFreePascal pada dasarnya hanyalah kompiler Pascal 32 bit. Tapi karena sifatnya yang open-source, banyak dukungan yang diberikan dari komunitas open-source. Mulai dari class/package, komponen, hingga editor.
- Arsitektur FCL (FreePascal Component Library)FreePascal adalah compiler Pascal yang bersifat OOP (Object Oriented Programming). Dalam FreePascal hal ini diwujudkan dalam arsitektur FCL. Konsep teknologi ini mengadopsi teknologi VCL (Visual Component Library) dari Delphi, tapi telah dimodifikasi sedemikian rupa khusus untuk FreePascal.
Selain lima keunggulan di atas, aku pengen menambahkan satu lagi kelebihannya. Yaitu kompabilitasnya dengan kompiler2 Pascal lainnya. Dengan Turbo Pascal, kompabilitasnya 99%. Ketidak-kompabilitasnya terletak pada konstanta2 standar yang ada di Turbo Pascal. Hal ini disebabkan FreePascal sifatnya multiplatform support sehingga beberapa konstanta harus disesuaikan kembali.
So, tidak ada alasan lagi untuk mempertahankan penggunaan Turbo Pascal, apalagi yang bajakan. :) Kalo masih ada dosen yang menyuruh pake Turbo Pascal, sebaiknya rekan2 menganjurkan untuk menggunakan FreePascal.
Lebih detil informasinya, kunjungi: www.freepascal.org.
Semoga bermanfaat.
sumber : Simba @ balung.brawijaya.ac.id

Compiler C

Proses yang harus dilalui agar suatu program sumber C (yaitu source program yang ditulis dengan bahasa C) menjadi program yang executable (yang dapat dijalankan dari prompt) adalah sebagai berikut :
pertama-tama program C ditulis dengan menggunakan editor. Program C disimpan dalam file yang berekstensi (.c). File include (umumnya memiliki akhiran .h dan pada sistem UNIX ataupun clone-nya berada di direktori /usr/include dan direktori setelahnya). Akhiran .h merupakan singkatan dari header. Karenanya file jenis ini disebut pula sebagai file header yang berisi kode program yang kan dilibatkan dalam program C. Namun beberapa program C ada yang tidak membutuhkan file header. Penyertaan file include yang tidak terletak di direktori standar dapat dilakukan dengan penggunaan flag -I sewaktu melakukan kompilasi program C seperti berikut ini :
$ gcc -o hello -I /direktori_file_include_berada hello.c
jadi bentuk umumnya bila digunakan PATH default adalah :
$ gcc -o nama_file_executable file_sumber.c
kemudian kode file sumber (.c) maupun file header akan dikompilasi oleh compiler (untuk penulisan buku ini digunakan GCC/Gnu C Compiler) menjadi kode obyek dan disimpan pada file dengan akhiran (.o). Pada contoh diatas file obyek secara nyata tidak tercipta karena adanya opsi -o. Namun jika diinginkan terciptanya file obyek maka ada dua langkah yang harus dilakukan di shell prompt :
$ gcc -c nama_file_obyek.o file_sumber.c
$ gcc -o nama_file_executable file_sumber.c
baris pertama menghasilkan file obyek sedangkan baris kedua melakukan
proses kompilasi file obyek tersebut menjadi file executable.

Interpreter dan Compiler

Interpreter
Pada bahasa yang menggunakan interpreter, ada suatu program besar yang mendiami memori komputer secara terus menerus. Jika dilakukan pengetikan sebaris program, misalnya suatu pernyataan BASIC, maka interpreter ini akan mengawasi proses pemasukannya lalu menambahkan baris tersebut kedalam program yang tadi sudah tersimpan dalam memori.


Ketika menjalankan program tersebut, interpreter akan memeriksa program baris demi baris dan menterjemahkannya ke dalam bahasa mesin (satu-satunya bahasa yang dapat dimengerti oleh microprocessor) selanjutnya meminta komputer melaksanakan terjemahan itu kemudian melakukan proses yang serupa untuk baris program berikutnya.


Bahasa terinterprestasi cocok untuk pengembangan program cepat karena programmer dapat menulis program dan langsung mengeksekusinya serta melihat hasilnya. namun demikian bahasa ini memiliki beberapa kelemahan :

  1. Proses eksekusinya lamban karena interpreter harus menterjemahkan tiap baris program kedalam bahasa mesin setiap kali program dieksekusi. Program tetntunya akan berjalan lebih cepat jika seluruh bagian program diterjemahkan lebih dahulu sebelum dieksekusi,
  2. Harus adanya interpreter dalam memori komputer pada saat ingin menjalankan program. Contoh untuk kasus ini adalah disertakannya interpreter BASIC dalam PC 8088.

Compiler
Dalam bahasa terkompilasi, keseluruhan program atau sub program diterjemahkan ke dalam bahasa mesin sekaligus. Proses pengetikan dapat dilakukan dengan menggunakan pengolah kata, disisi lain terdapat program terpisah yang disebut compiler yang menterjemahkan berkas sumber ini menjadi berkas lain dalam bentuk bahasa mesin. Adapula compiler yang menyediakan editor sendiri seperti Turbo C dari Borland.

sumber : handaru.blogsome.com

Mengkompilasi Program di Linux

Anda pemula di Linux dan ingin tangan anda kotor? Kebanyakan dari anda, termasuk saya, bukanlah programmer, tetapi itu bukan berarti kita tidak bisa menikmati manfaat dari open source, dan bahkan memberikan kontribusi. Itu juga bukan berarti bahwa kita belum beruntung ketika terjadi kesalahan saat melakukan kompilasi. Kompilasi program biasanya sangat sederhana; tidak ada yang perlu dicemaskan dan pastinya tidak akan terlalu sulit daripada membuat program itu sendiri, tetapi kompilasi tidak digaransi 100%. Berikut ini adalah petunjuk kompilasi bagi pemula. Hal ini berarti 90% solusi bagi mereka yang mulai mengenal Linux.
Cepat atau lambat, setiap orang pasti akan mendownload sebuah program dalam bentuk kode sumber dan mengkompilasinya. Walaupun anda mungkin penggemar berat Red Hat atau Debian, pada akhirnya anda akan menemukan sebuah program yang terlalu tua, atau terlalu baru, dan mencarinya dalam bentuk precompiled binary. Sayangnya kode tersebut tidak selalu dapat dikompilasi, apapun yang anda lakukan. Ingat bahwa kebanyakan program-program di Linux masih dalam tahap beta. Kabar baiknya adalah bahwa prosentase dari program yang dapat dikompilasi tanpa masalah telah meningkat secara signifikan pada lima tahun terakhir, dan ada sesuatu yang dapat anda lakukan untuk "memperbaiki" kode yang tidak dapat dikompilasi, tanpa harus menjadi seorang programmer.
Setelah anda mendownload: sekarang anda memiliki beberapa buah tarball (file dalam bentuk tar.gz) dalam harddisk anda. Pertama kali yang harus anda lakukan adalah mengekstrak dan untar ke sebuah direktori. Pada umumnya, program di-untar ke dalam direktori /usr/src. Ini akan menjaga semua kode sumber berada pada satu tempat sehingga anda dapat membersihkannya jika sudah tidak digunakan lagi, juga untuk mengetahui versi berapa dari program yang telah anda kompilasi. Anda harus menjadi root untuk dapat menggunakan direktori ini. Program tar di Linux dapat mengekstrak dan untar sebuah file secara bersamaan jika file tersebut dikompres dengan menggunakan gzip. Jika anda memiliki sebuah file yang bernama filename.tar.gz, anda harus masuk ke direktori /usr/src dengan perintah cd, dan ketikkan:
tar -xzvf /{path to file}/{filename.tar.gz} [Enter]
Perintah tersebut akan melakukan ekstrak dan untar. Penjelasan dari opsi yang digunakan adalah sebagai berikut:
x - untar file z - unkompres (ekstrak) file v - verbose - sehingga anda bisa mengetahui apa yang sedang terjadi f - menunjukkan file yang akan di-untar
Jika anda menggunakan Netscape untuk mendownload file tersebut, mungkin anda akan mendapatkan pesan kesalahan. Kadang-kadang Netscape akan langsung mengekstrak file tarball hasil download. Sehingga jika anda mencoba untuk meng-untar file tersebut seperti yang dijelaskan di atas, mungkin anda akan mendapatkan pesan berikut:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors
Gunakan perintah yang sama, namun hilangkan opsi z. Sehingga perintah di atas menjadi seperti berikut ini:
tar -xvf /{path to file}/{filename.tar.gz} [Enter]
Ada juga file-file yang menggunakan kompresi bzip2, sehingga file anda akan terlihat seperti berikut : the-program.tar.bz2. Opsi z untuk tar tidak akan bekerja. Cara termudah untuk meng-untar file ini adalah dengan mengetikkan: bunzip2 the-program.tar.bz2. Perintah ini akan menghasilkan file the-program.tar, yang bisa di-untar dengan perintah:
tar -xvf /{path to file}/{filename.tar.gz} [Enter]
Setelah untar: masuk (cd) ke direktori yang telah dihasilkan saat anda melakukan untar. Perhatikan file-file di direktori tersebut dengan perintah ls. Anda harus membaca file README dan INSTALL. Jangan berpikir bahwa anda akan mendapatkan bantuan dari orang lain jika anda belum membaca file-file tersebut. Itulah alasan mengapa RTFM menjadi istilah yang paling sering digunakan di Internet. File README dan INSTALL pasti akan mengajarkan kepada anda bagaimana mengkompilasi dan menginstal sebuah program.
Untuk mengkompilasi, berikan perintah "make". Agar "make" bisa melakukan kompilasi, anda harus memiliki sebuah file yang bernama Makefile (anda bisa saja memberikan perintah make diikuti dengan opsi-opsi tertentu, namun itu diluar topik bahasan artikel ini). Ada tiga cara yang umum digunakan untuk memulai kompilasi : cara sederhana, Imake, dan configure.
Kompilasi sederhana: Jika anda melihat sebuah file yang bernama Makefile - bukan Imake atau configure, anda harus menggunakan metode ini untuk melakukan kompilasi. Metode ini memiliki tingkat kesulitan yang paling tinggi karena tidak ada yang dikonfigurasi khusus untuk komputer anda. Biasanya, file README dan INSTALL akan membantu anda untuk mengedit beberapa file sehingga program tersebut dapat dikompilasi. Biasanya anda kemudian mengetikkan :
make [Enter]
make install [Enter]
dan jika segala sesuatunya berjalan dengan baik, anda sekarang dapat menjalankan program tersebut.
Imake: Jika anda melihat isi direktori (dengan perintah ls) dan terdapat file Imake dan tidak ada Makefile, maka anda harus menggunakan metode ini. Ini adalah cara tertua untuk melakukan setup dan kompilasi. Ketikkan perintah:
xmkmf [Enter]
make [Enter]
make install [Enter]
Configure: Gunakan metode kompilasi ini jika terdapat file yang bernama configure di dalam direktori. Ini adalah cara termudah untuk mengkompilasi dan memiliki kemungkinan keberhasilan tertinggi. Pada dasarnya ia akan mengecek keseluruhan sistem anda untuk setiap kemungkinan pustaka dan file-file pendukung untuk meyakinkan bahwa anda bisa mengkompilasi program tersebut, dan kemudian membuat Makefile dengan informasi yang tepat. Untuk mengkompilasi, ketikkan :
./configure [Enter]
make [Enter]
make install [Enter]
Perhatikan tanda ./ di depan perintah pertama. Ketika anda mengetikkan sebuah perintah, shell yang anda gunakan akan mencari file perintah tersebut di path. Shell tidak mulai mencari dari direktori kerja anda, sehingga jika ./ (yang berarti direktori kerja yang sedang anda gunakan) tidak termasuk di path, walaupun ls dapat melihat file tersebut, shell anda tidak dapat melihatnya. Shell dapat mengeksekusi make karena biasanya file perintah make berada di /usr/bin yang termasuk dalam path anda. Untuk melihat path di sistem anda, ketikkan :
echo $PATH [Enter]
Jika ada kesalahan :
Penyebab utama kegagalan kompilasi adalah adanya file-file yang tidak ditemukan. Hampir semua program bergantung pada program/file/pustaka pendukung lain. Jika mereka tidak diketemukan, program tidak dapat dikompilasi. File README/INSTALL seharusnya telah memberitahu anda file-file apa saja, dan versi berapa, yang anda butuhkan untuk mengkompilasi program. Ingat bahwa versi yang salah dapat membunuh anda sama seperti anda sama sekali tidak memiliki file tersebut. Biasanya anda akan mengetahui sendiri apa masalahnya, sebab pesan kesalahan pada akhir kompilasi akan memberitahu anda bahwa ia tidak dapat menemukan beberapa file. Ingat sekali lagi bahwa kadang-kadang anda memiliki file yang dibutuhkan, tetapi tidak berada di tempat yang dicari oleh Makefile. Gunakan program instalasi distribusi Linux anda, misalnya RPM, dan periksalah apakah anda memiliki file yang hilang. Jika tidak, carilah di Internet. Jika anda memang memilikinya, dan itu adalah versi yang benar, periksa Makefile untuk melihat dimana seharusnya file tersebut berada. Sebagai contoh, katakanlah file moc berada di /usr/local/bin, namun Makefile mengatakan bahwa moc=/opt/bin/moc. Lalu edit Makefile (dengan menggunakan vi atau editor lain yang anda sukai) dan ubahlah sehingga sama dengan lokasi file tersebut di sistem anda.
Masalah lain yang paling sering ditemui adalah tidak ditemukannya file-file header. Kebanyakan file di direktori sumber program memiliki baris yang terlihat seperti ini :
#include
#include
#include
#include
File-file "h" (atau header) tersebut harus ada di dalam komputer anda. Minimal, cek apakah anda memiliki file header kernel dengan perintah ls /usr/include/linux/. Jika anda memiliki pustaka-pustaka yang telah terinstal, seperti gtk, yakinkan bahwa anda juga telah menginstal file-file devel. Terkadang memiliki banyak versi untuk pustaka yang sama dapat menyebabkan masalah, sebab tiap versi bisa meletakkan file-file headernya di mana saja dan anda tidak akan tahu file mana yang digunakan saat kompilasi.
Jika anda sudah membuat semua perubahan yang diperlukan pada Makefile dan telah memiliki semua pustaka dan file-file header yang dibutuhkan, namun tetap saja program tersebut tidak dapat dikompilasi, lakukan urutan langkah berikut :
1. Jika anda mendownload program dari sebuah situs yang bukan situs utama dari program tersebut, pergilah ke situs utamanya dan perhatikan apakah ada versi terbaru yang tersedia.
2. Pergi ke www.dejanews.com dan cari program yang anda butuhkan. Kemungkinan ada orang lain yang memiliki masalah yang sama dan mengirimkan solusinya.
3. Jika semua cara gagal, kirimkan email ke penulis program. Kebanyakan penulis program sangat tertarik untuk meningkatkan programnya dan laporan adanya bug atau saran perbaikan biasanya diterima dengan senang hati (ingat, ini Linux, bukan program komersial). Ingat, laporan bug dari anda sebaiknya tidak hanya berisi "program ini tidak dapat dikompilasi"! Saya biasanya mengirimkan sepuluh baris terakhir atau lebih dari pesan yang muncul ketika kompilasi sehingga penulis program dapat mengetahui betul dimana letak kesalahannya. Jika saya sangat menyukai program tersebut, saya akan mengirimkan email ke penulisnya setiap kali muncul versi baru dan memberikan sebanyak mungkin saran yang dapat saya berikan. Mohon dicatat: programmer juga manusia biasa, mereka juga butuh liburan, berpindah pekerjaan dan lokasi, dan beberapa bahkan harus masuk sekolah. Jadi jangan mengharapkan balasan yang cepat.
Terakhir, ada beberapa program yang memiliki cara kompilasi yang unik, misalnya qt dan kernel. Untuk mengkompilasinya, saya ingatkan sekali lagi, baca file README dan INSTALL!

Teknik Kompilasi

Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran.
Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling).Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat,- Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.- Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupun komputer super.
Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai ditemukannya komputer pada awal 1950-an. Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang.
Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.
- Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber. Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukanSecara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. Proses analisis leksikal
b. Proses analisis sintaktik
c. Proses analisis semantik
- Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
a. Proses yang menghasilkan kode (code generator).
b. Proses optimasi kode (code optimizer).
Sebelum Bahasa sasaran dapat dihasilkan, dalam melakukan ini tiap bagian utama akan berhubungan dan berkomunikasi dengan suatu berkas tabel yang disebut tabel simbol (symbol table) yaitu suatu tabel yang berisi semua simbol yang digunakan dalam bahasa sumber.
Selain kompilator masih diperlukan beberapa program lainnya sebelum dapat dibentuk bahasa sasaran yang dapat dijalankan. Seperti suatu bahasa sumber dapat dituliskan dalam beberapa modul yang terpisah dan disimpan dalam beberapa file yang terpisah.
Untuk menanggulangi hal ini, maka suatu program khusus yang disebut dengan suatu praprosesor digunakan untuk mengumpulkan modul-modul yang saling lepas ini ke dalam suatu program baru. Praposesor dapat pula melengkapi singkatan-singkatan atau ungkapan-ungkapan maupun kependekan-kependekan yang digunakan dalam bahasa sumber seperti pendefinisian makro dan lain sebagainya.

sumber : globalkomputer.com

About Compiler

Ketika berbicara tentang bahasa pemrograman komputer, ada 3 jenis bahasa yang digunakan,
yaitu :

  • Bahasa mesin, yang hanya terdiri dari kode-kode biner (0 dan 1). Sering pula bahasa ini
    disebut bahasa tingkat rendah (low level language)
  • Bahasa rakitan (assembly), yang berupa perintah-perintah yang mirip bahasa manusia
    (sudah tidak dalam bentuk kode biner). Biasanya satu buah perintah hanya digunakan
    untuk melakukan satu proses saja. Sebagai contoh adalah perintah MOV dan ADD
    dalam bahasa Intel x86.
  • Bahasa tingkat tinggi (high level language). Pada bahasa ini, perintah sudah
    menggunakan bahasa manusia (bahasa Inggris), sebagai contoh adalah perintah
    WRITE, READ. Tidak seperti bahasa assembly, dalam bahasa ini biasanya suatu
    perintah sudah melibatkan banyak proses. Misalkan perintah untuk melakukan proses
    perkalian (yang di dalamnya melibatkan banyak proses penjumlahan), hanya cukup
    menggunakan operator *. Beberapa bahasa pemrograman yang termasuk dalam jenis
    bahasa ini adalah PASCAL, C/C++, FORTRAN, BASIC, JAVA.

Supaya perintah dalam bahasa pemrograman yang digunakan (bahasa assembly dan bahasa
tingkat tinggi) dapat dipahami oleh komputer dan dapat dijalankan oleh mikroprosessor, maka
perintah tersebut harus diterjemahkan terlebih dahulu ke dalam bahasa mesin. Proses
penterjemahan inilah yang disebut proses kompilasi (compiling).

Program atau software yang digunakan untuk proses kompilasi dinamakan compiler. Untuk
PASCAL terdapat beberapa compiler yang dapat digunakan yaitu Turbo Pascal, Free Pascal.
Terdapat beberapa istilah yang terkait dengan bahasa tingkat tinggi:

  • Source code, merupakan kumpulan perintah dalam bentuk program yang dibuat oleh
    programmer. Dalam PASCAL, source code ini disimpan dalam bentuk file berekstensi
    .pas. Source code inilah yang akan dikompilasi oleh compiler.
  • Object code, merupakan file sebagai hasil dari proses kompilasi. File ini biasanya
    berekstensi .obj.
  • Executable code, merupakan file sebagai hasil akhir dari proses pemrograman. Dalam
    DOS/Windows, file ini berekstensi .exe. File ini dapat dijalankan langsung melalui promt
    DOS atau double click pada Windows Explorer.

Sabtu, Oktober 06, 2007

definisi Grafika Komputer


Grafika komputer (Inggris: Computer graphics) adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.

sumber : Wikipedia Indonesia

Dibalik keajaiban dunia animasi

Ternyata animasi sudah berusia sangat tua. Sejak ditemukan rangkaian gerak dalam bentuk gambar pada berbagai artefak pada jaman Mesir Kuno 2000 tahun sebelum masehi manusia sudah mencoba membuat ilustrasi gerakan yang akhirnya berkembang menjadi animasi. Sampai akhirnya Paul Roget, Joseph Plateau dan Pierre Desvigenes menemukan pola penglihatan mata, lahirlah dunia animasi yang sampai sekarang mampu melahirkan berbagai keajaiban bagi para pemirsanya. Dari menghadirkan adegan-adegan lucu dalam tradisional cell animation, hingga special effect dahsyat dalam Computer Graphics Animation yang dilahirkan studio-studio besar Hollywood. Mau tahu lebih lanjut? Tilik saja tulisan berikut ini...

Sejak menyadari bahwa gambar bisa dipakai sebagai alternatif media komunikasi, timbul keinginan menghidupkan lambang-lambang tersebut menjadi cermin ekspresi kebudayaan. Terbukti dengan diketemukannya berbagai artefak pada peradapan Mesir Kuno 2000 sebelum masehi. Salah satunya adalah beberapa panel yang menggambarkan aksi dua pegulat dalam berbagai pose. Dalam salah satu ilustrasi Leonardo da Vinci yang terkenal, dilukiskan anggota tubuh manusia dalam berbagai posisi.Seorang artis Italy Gioto, juga melukiskan malaikat dalam posisi terbang dengan repitisi gerakan.

Animasi sendiri tidak akan pernah berkembang tanpa ditemukannya prinsip dasar dari karakter mata manusia yaitu: persistance of vision ( pola penglihatan yang teratur ). Paul Roget, Joseph Plateau dan Pierre Desvigenes, melalui peralatan optic yang mereka ciptakan, berhasil membuktikan bahwa mata manusia cenderung menangkap urutan gambar-gambar pada tenggang waktu tertentu sebagai suatu pola. Dalam perkembangannya animasi secara umum bisa didefinisikan sebagai:

Suatu sequence gambar yang diekspos pada tenggang waktu tertentu sehingga tercipta sebuah ilusi gambar bergerak

JENIS-JENIS ANIMASI Diawal tahun 20-an, popularitas kartun animasi berangsur menurun dan para sineas mulai cenderung mencari alternatif lain sebagai media hiburan. Masyarakat mulai jenuh dengan konsep animasi yang pada saat itu tidak memikirkan story line dan pengembangan si-tokoh karakter. Perubahan besar dimulai pada pertengahan tahun 20-an setelah beberapa perusahaan animasi mengembangkan konsep komersialisasi dimana studio-studio besar mengambil alih studio lokal dan menentukan standard untuk animasi Sampai saat ini animasi dibagi dalam kategori besar, yaitu:
1. Animasi Stop-motion (Stop Motion Animation)
2. AnimasiTradisional (Traditional animation)
3. Animasi Komputer (Computer Graphics Animation)

sumber : desain produk

Grafik komputer 3D

Grafik komputer 3D ialah salah satu bidang kajian dalam bidang grafik komputer yang memanipulasikan model-model berangka untuk objek tiga dimensi melalui komputer. Grafik sebegini paling biasa digunakan bersama-sama dengan animasi komputer untuk menjanakan imej pandangan bagi penerbitan filem dan televisyen, permainan komputer dan video, ilustrasi komersil, kejuteraan, dan penggambaran saintifik. Istilah "grafik komputer 3D" boleh juga digunakan untuk merujuk kepada imej-imej yang dihasilkan melalui model-model tersebut.
Grafik komputer boleh dibahagikan kepada dua jenis iaitu grafik komputer masa-nyata dan grafik komputer bukan masa-nyata. Grafik komputer masa-nyata membenarkan pengguna berinteraksi dengannya. Contohnya ialah seperti permainan komputer, simulasi penerbangan dan sistem telusur maya. Manakala grafik bukan masa-nyata hanya membenarkan pengguna melihat sahaja. Contoh grafik bukan masa-nyata ialah filem animasi dan persembahan multimedia.
sumber : Wikipedia Bahasa Melayu

Animasi pada komputer

Saat ini teknik animasi dengan melakukan perubahan bentuk pada obyek tiga dimensi telah banyak digunakan pada berbagai macam aplikasi komputer grafik, terutama dalam pembuatan film-film animasi, program-program simulasi dan juga pembuatan iklan. Metamorfosis atau morphing obyek tiga dimensi merupakan salah satu teknik yang digunakan untuk melakukan suatu proses perubahan bentuk dari suatu obyek menjadi obyek lainnya. Hasil metamorfosis yang baik ditentukan oleh perubahan yang berkoresponden baik bentuk maupun lokasinya. Hal ini menyebabkan permasalahan utama pada morphing obyek tiga dimensi adalah menentukan korespondensi vertex antara obyek asal dan obyek tujuan. Proses tidak mengalami masalah jika obyek mesh yang dimorfing mempunyai jumlah vertex dan bentuk yang hampir sama. Akan tetapi lain halnya jika dua obyek yang dimorfing mempunyai bentuk yang berbeda dan mempunyai jumlah vertex yang berbeda pula. Hal ini disebabkan tidak adanya korespondensi satu-satu antara setiap vertex dari obyek asal dengan vertex-vertex pada obyek tujuan. Dalam penelitian ini dikembangkan suatu metode untuk mengatasi permasalahan yang ditimbulkan oleh ketidaksamaan jumlah vertex dan bentuk dari dua obyek yang dimorfing. Metode yang diterapkan bertujuan untuk mencari korespondensi antara setiap vertex pada obyek asal dengan vertex-vertex pada obyek tujuan. Cara yang digunakan yaitu dengan pembagian area obyek, dengan dibagi menjadii dua dan delapan bagian pada obyek asal dan obyek tujuan. Korespondensi vertex didapat dengan mencari jarak vertex terdekat antara obyek asal dan obyek tujuan. Proses morphing dilakukan dengan menggunakan algoritma liniear interpolation. Hasil dari penelitian ini sudah menghailkan proses morfing yang cukup bagus. Kelemahan yang masih dimiliki oleh metode ini adalah tidak menghasilkan proses yang bagus jika kedua obyek mempunyai perbedaan jumlah vertex yang terlalu banyak dan bentuknya sangat berbeda, dalam arti vertex-vertex pembentuk mengumpul pada area tertentu sehingga proses tidak berjalan dengan baik. Kata kunci : morphing, pembagian dua area, pembagian delapan area, obyek mesh, korespondensi vertex

Grafika Komputer

Komputer akhir-akhir ini mulai dirasa sangat penting dan mencakup hampir semua bidang kehidupan seiring dengan semakin pentingnya sistem komputer dalam berbagai kegiatan. Grafika komputer merupakan gambar atau grafik yang dihasilkan oleh komputer. Teknik-teknik yang dipelajari dalam grafika komputer adalah teknik-teknik bagaimana membuat atau menciptakan gambar dengan menggunakan komputer. Ada beberapa program, dari yang sederhana sampai program yang sangat kompleks, yang dapat digunakan untuk membuat gambar komputer, antara lain Paint, Microsoft Photo Editor, Adobe Photoshop, Maya, Autocad, 3D Space Max, dan lain-lain. Buku ini membahas: ? Materi grafika komputer? Primitive drawing? Grafik 2 dimensi dan 3 dimensi? Transformasi objek? Membuat Grafik 3D yang lebih baik? Shading dan optical view? Morphing