Cemes menggila :)

Cemes menggila :)
habis gamtek...photo2 ahh

Kamis, 01 Desember 2011

TEKNIK KOMPILER


Compiler Construction
comp_sma.jpg
Teknik kompilasi telah lama diberikan di lingkungan pendidikan tinggi bidang komputer di Indonesia. Pembahasan dalam mata kuliah ini biasanya berkisar pada teori automata, teori kompilasi, teori grammar. Praktek teknik kompilasi pun telah diberikan di lingkungan laboratorium, walau biasanya masih terbatas pada demonstrasi hal teori, ataupun sekedar pengenalan kompiler yang ada atau banyak digunakan. Beberapa universitas telah mulai memperkenalkan penggunaan perangkat pembangun kompiler.
Telah banyak mahasiswa menggunakan dan memanfaatkan compiler/interpreter, tapi saat ini masih belum banyak muncul nama programmer Indonesia yang terlibat dalam proyek pembuatan compiler/interpreter. Mungkin hanya KILANG nya Prof. Dali S Naga (BASIC Indonesia), yang sempat terdengar, sayang sekarang sudah tidak ada jejaknya. Mungkin merilis KILANG dalam bentuk GPL seperti BWBASIC, adalah suatu langkah menarik untuk terus mengembangkan KILANG ini lebih lanjut.
Memang ada sekelompok programmer Indonesia yang sempat akan merilis bahasa pemrograman “BATAK” tetapi hingga saat ini belum terdengar kembali. Bahasa pemrograman, JAVA, BALI, MADURA, hanyalah namanya saja yang berbau Indoensia, tapi sedikit atau malah tidak ada keterlibatan pengembang dari Indonesia.
Tentu saja akan timbul pertanyaan “apa yang salah dalam pengajaran kompilasi ???” (INGAT SAYA TIDAK INGIN MENDISKREDITKAN SIAPAPUN DALAM PERNYATAAN INI). Hanya mencoba mencari langkah perbaikan yang mungkin bisa diterapkan.
Walaupun sedikit sekali atau nyaris tidak ada “lowongan pekerjaan” yang membutuhkan kemampuan mengembangkan compiler ini (silahkan baca di koran ataupun majalah), bukan berarti pengetahuan itu sama sekali tak dibutuhkan dalam dunia pemrograman sehari-hari. Pada dasarnya pengetahuan pembuatan kompiler (compiler construction) ini merupakan pengetahuan dasar komputasi yang sangat baik sekali. Pengetahuan ini dimanfaatkan pada beragam aplikasi nantinya. Misal teknik parsing, pengenalan pola teks, optimasi kode dan lain sebagainya. Bahkan suatu database engine pun di bagian “front end” selalu menggunakan parsing ini. Pengetahuan tentang kompilasi akan dapat memberikan landasan bagi programmer untuk menyusun program yang efektif dan efisien.
Ketika seseorang melakukan pemrograman, sebetulnya secara tidak sadar dia akan melakukan proses penambahan suatu bahasa. Misal pembuatan suatu fungsi (ataupun prosedur) pada dasarnya merupakan suatu proses “penambahan kosa-kata” dari bahasa pemrograman tersebut. Dari yang tadinya tidak memiliki fungsi tersebut hingga akhirnya ditambahkan suatu “vocabulary” untuk melakukan suatu fungsi tersebut. Untuk itulah pemahaman penyusunan kompiler merupakan suatu dasar yang utama dalam bidang ilmu komputer.
Kesenjangan Teori dan Praktek
Pada kasus pemahaman teknik kompilasi seringkali mahasiswa memiliki gap antara pemahaman teori yang mendasari pembuatan kompiler, lalu masalah parsing, scanner (bukan scanner yang buat men-scan gambar atau photo) serta “bagaimana menulis compiler/interpreter sesungguhnya (misal BASIC interpreter).
Ketika bicara kompiler, rata-rata pengetahuan mahasiswa/lulusan bersifat umum yaitu “trampil” menggunakan Integrated Development Environment (IDE) berbasiskan GUI. Bahkan pengetahuan pemakaian “make”, “autoconf”, pun masih langka dipahami para mahasiswa (termasuk mahasiswa Univ Gunadarma). Sedangkan ketika mereka bicara teori, yang terjadi hanyalah “hafalan” teori-teori otomata, parsing, grammar. Keterkaitan antara keduanya masih belum terjalin dengan mesra.
Sebelum dianggap menyalahkan siapa-siapa termasuk menyalahkan mahasiswa (salah satu kambing hitam favorit para dosen), saya mencoba menguraikan permasalahan ini. Ketidak-tertarikan para mahasiswa mempelajari bidang pembuatan kompiler ini mungkin didasarkan pada pelajaran teknik pembuatan kompiler yang sarat dengan pemahaman teori (misal automata, grammar, bahasa formal, matematika diskrit dan sebagainya).
Teori bagi sebagian besar mahasiswa merupakan “momok” bagi para mahasiswa dan mereka kurang tertarik mempelajarinya, dianggap hanyalah pelengkap untuk lulus menjadi saja. Mahasiswa kurang betah atau sabar mendengar pelajaran teori. Mungkin hal ini disebabkan (sengaja saya gunakan kata “mungkin” karena belum pernah dilakukan survei atau penelitian secara khusus) beberapa hal antara lain :
Para mahasiswa Indonesia tidak tertarik teori, karena merasa tidak ada manfaatnya pelajaran teori tersebut. Tidak dipungkiri dunia komputer (lapangan pekerjaan) masih membutuhkan orang-orang dengan “skill praktis” sehingga kebutuhan teori ini tidak dirasakan ada. Jelas ini menunjukkan seberapa “jauh” yang namanya industri TI di Indonesia. TI di Indonesia secara umum barulah berkembang pada “menjual produk TI” ataupun konfigurasi dan perkembangan yang bersifat “kustomisasi luar”.
Rasa ketertarikan terhadap teori ini makin hilang, akibat materi yang diberikan di kelas terlalu jauh dengan kondisi praktis. Artinya ada “gap” antara teori dengan aplikasi teori tersebut di dunia nyata dalam bayangan mahasiswa (misal bidang komputer) Sebagai contoh, mahasiswa komputer mungkin akan tertarik bila tahu bahwa Analisa numeris itu dimanfaatkan untuk membuat “computer game” Ketimbang kita memberikan contohnya untuk hal lainnya yang terlalu teori. Begitu juga bila kita terangkan Turing Machine, atau Automata tanpa keterkaitan dengan praktek sehari-hari akan membuat mereka hanya menghafal atau malah tidur di kelas.
Kurikulum ataupun materi pelajaran yang memang tidak memberikan jalinan antara teori dan praktek. Teori berjalan sendiri-sendiri dan praktek begitu pula. Teori tidak atau kurang mengajak melihat implementasi dari teori tersebut (misal source code nyata dari teori itu).
Perangkat bantu yang pada tahun sebelumnya sulit diperoleh di Indonesia secara massal dan murah. Perangkat bantu yang ada sangat menghabiskan waktu bila ingin digunakan untuk menyusun sistem kompiler sesungguhnya.
Kurang adanya pengajar yang memahami baik teori dan praktek 8-). Banyak pengajar yang sangat baik pengetahuan teorinya tetapi minim pengetahuan prakteknya. Hal ini melanda beberapa mata kuliah teori. Begitu juga banyak pengajar yang sudah terlalu asyik dengan praktek, malas membahas teori.
Simulator Automata Saat ini dengan ketersediaan beragam perangkat bantu bebas (GPL) maka proses mengajarkan teori ini dapat dilakukan secara lebih menarik. Misal untuk menerangkan tentang konsep mesin Turing yang abstrak itu, dapat juga digunakan suatu simulator. Memang mesin Turing dapat juga di”demonstrasikan” dengan menggunakan “tissue WC – tissue gulung” seperti dalam buku Computer Power and Human Reason karangan Joseph Weizenbaum. Tapi jelas akan lebih mudah bila digunakan program bantu yang memungkinkan siswa merancang “instruction set” dan menjalankan instruction set, dan program yg didisain untuk mesin “khayalannya” itu.
Ada juga simulator (program) yang akan menjalankan mesin Turing sesuai masukan yang diberikan pengguna. Misal dapat diperoleh di http://www.csee.umbc.edu/~squire/cs451_sim.html#TM
Program ini tertulis dalam C++. Menerima masukan dari source kode. Sayangnya program ini tidak memberikan simulasi secara visual. Simulasi secara visual akan menarik siswa tahun ke 2-3 di Indonesia. Beberapa simulator yang memiliki tampilan visual dapat didownload dari Internet, antara lain:
Simulator Mesin Turing. Program ini memiki GUI berbasiskan Gtk.
http://www.nuclecu.unam.mx/~arturo/gTuring/.
Visual Turing. Suatu IDE yang memungkinkan pengguna mengedit, menjalankan mesin Turing. Dengan editor visual yang memberikan fungsi Cut, Copy&Paste maka akan membantu proses simulasi. Mesin dapat juga dijalankan dengan breakpoint, step by step dan variabel dapat diperiksa.
http://www.cheransoft.com/vturing/
Automaton Simulator. Program ini memungkinkan disimulasikan beberapa mesin teori termasuk deterministic finite automata, nondeterministic finite automata, deterministic push-down automata, Turing machines. Tertulis dalam bahasa JAVA.
http://www.users.csbsju.edu/~cburch/proj/autosim/
Simulator Prosesor
Di samping simulator mesin teori, seringkali dalam memahami proses kompilasi perlu penjelasan dari tingkat instruksi di level prosesor. Untuk itu penjelasan akan lebih mudah dilakukan bila memanfaatkan suatu simulator prosesor. Memang sebetulnya pengetahuan instruksion set design ataupun simulator ini diperoleh di Arsitektur Komputer. Akan tetapi simulator prosesor ini dapat juga dimanfaatkan untuk memberikan pemahaman teknik pembuatan dan ekseskusi suatu kompilasi. Sehingga tahapan “menjalankan kompiler, dan hasil kompilasi yang dibentuk dapat berupa” :
Program aplikasi bahasa A
|
V
Kompiler/interpreter bahasa A
|
V
Bahasa mesin prosesor X
|
V
Simulator prosesor X
|
V
Sistem Operasi “Host” (misal Windows, Linux dll)
Dengan cara itu mahasiswa dapat mempelajari bagaimana proses kompilasi dilakukan dan bagaimana dijalankan pada mesin virtualnya. Sehingga pengamatan dapat dilakukan dg mudah. Faktor lain adalah dg menggunakan “prosesor virtual” maka kita dapat mendefinisikan :
Prosesor X adalah suatu prosesor virtual yg sederhana
Bahasa A merupakan bahasa yg didisain mahasiswa secara sederhana (misal hanya bisa interger, dan operasi sederhana saja)
Kompiler yg disusun akan menghasilkan “kode biner” untuk proesor X yg sederhana tersebut (misal register terbatas, dan metoda pengalamatan terbatas)
Dengan cara di atas, student tidak dihadapi oleh “instruction set” yang kompleks, dan architecture processor, dan juga bahasa pemorgraman yg rumit. Tetapi konsep kompilasi dapat lebih mudah dipahami secara mendasar. ketimbang harus menggunakan prosesor “real” dan bahasa “real” yang jelas memiliki scope sangat luas.
Berikut ini adalah beberapa simulator prosesor yang dapat dimanfaatkan dalam memberikan pemahaman lebih dalam mengenai teori dan praktis kepada para mahasiswa.
mic1. mic1 ini berbasiskan Java yang mengimplementasikan arsitektur mikro Mic-1 pada Bab 4 buku Andrew S. Tanenbaum, Structured Computer Organization,
http://www.ontko.com/mic1/
DLXOS. Merupakan suatu sistem “komputer” yang dijelaskan pada buku Arsitektur oleh Hennessy & Patterson. Sistem ini terdiri dari DLX Processor (instruction set dan spesifikasi), DLX hardware simulator, DLX compiler dan assembler, DLX Operating System. Karena semua tersedia source code, jadi dapat menjelaskan secara gamblang, bagaimana suatu sistem komputer dibangun, dari “prosesor” hingga “sistem operasi”.
http://www.cse.ucsc.edu/~elm/Software/Dlxos/index.shtml
MIX. Emulator ini ditulis oleh David A Smallberg (1982), dan mensimulasikan prosesor MIX (yang diteragnkan dalam buku milik Donald Knuth).
http://www.swiss.ai.mit.edu/~adler/MIX/
MIXAL. Merupakan lingkungan mensimulasikan kerja MIX, MIX adalah model komputer yang merupakan penyederhanaan model CISC (Complex Instruction Set Computer), assembly dari model ini mirip dengan komputer sesungguhnya. Di situ ini terdapat tutorial dan juga SIMULASI GRAFIS.
http://www.gnu.org/software/mdk/mdk.html
MMIX MMIX merupakan prosesor teoritis ciptaan Prof. Donald Knuth, yang merupakan penmgembangan dari MIX. Prosesor bertipe Reduced Instruction Set Computer (RISC).
http://bitrange.com/mmix/
Untuk informasi lainnya tentang prosesor ini dapat dibaca di URL berikut ini
http://www-cs-faculty.stanford.edu/~knuth/mmix.html
http://mmixmasters.sourceforge.net/
Demonstrasi Visual
Untuk mendemonstrasikan beberapa pronsep dasar tentang mekanisme kompilasi, maka dapat juga diginakan beberapa perangkat bantu al:
Pate. Pate merupakan perangkat bantu visual dan interatkfi untuk melakukan parsing, dan transformasi grammar. Pate dapat menyajikan secara tekstual ataupun visualisasi grafis dari turunan suatu grammar. Pada visualisasi grafis suatu tree parsing akan ditampilkan juga. Ditulis dalam JAVA.
http://www.cs.duke.edu/~rodger/tools/pateweb/
JFLAP. JFLAP merupakan suatu paket grafis yang dapat digunakan untuk mengajarkan konsep Bahasa Formal dan Teori Automata. Awalnya ditulis dg C/C++ tapi sekarang tersedia dalam Java.
http://www.cs.duke.edu/~rodger/tools/jflap/index.html
Literatur online
Dengan adanya Internet jelas memudahkan kita untuk memperbaiki materi, karena beberapa materi telah ada dan siap di-download (jadi alasan tidak ada dana buat beli buku, bisa dicoret, dan tidak ada sarana buat download bisa diabaikan karena hanya perlu ke kampus Margonda). Kalau alasan “malas baca” ya mau tidak bisa dan tidak perlu dibahas lagi.
Beberapa buku online ataupun materi kuliah berkaitan dengan teknik kompilasi dapat diperoleh di URL berikut ini.
Let’s Build a Compiler, by Jack Crenshaw. Bahasa yang digunakan dalam bukut teks ini adalah PASCAL. Walau sudah cukup lama 1988-1996, materi ini cukup ringan ditulis sebagai pengantar pembuatan kompiler. Tersedia juga berkas siap download dalam format ZIP.
http://compilers.iecc.com/crenshaw/
Compilers and Compiler Generators an introduction with C++ oleh P.D. Terry, Rhodes University, 1996.
http://scifac.ru.ac.za/compilers/
Advanced Programming Language Design oleh Raphael Finkel.
http://cseng.aw.com/book/related/0,3833,0805311912+20,00.html
Parsing Techniques – A Practical Guide oleh Dick Grune dan Ceriel J.H. Jacobs
http://www.cs.vu.nl/~dick/PTAPG.html
Introduction to Compilers (University of Manitoba – Canada) Di site ini juga tersedia catatan kuliah, dan slidenya. Sehingga dapat dimanfaatkan setelah dilakukan modifikasi bobot dan bahasanya.
http://www.cs.umanitoba.ca/~cs329/notes.html
Introduction to Compilers. (Brown University) Ini adalah materi kuliah dari Brown University.
http://www.cs.brown.edu/courses/cs126/
Automata and Formal Language Course. Materi dari Warwick University. Menggunakan JavaCC
http://www.dcs.warwick.ac.uk/~pwg/cs203/cs203index.html
A Bibliography of Compiler Construction
http://www.cs.qub.ac.uk/~D.McKeever/csc303/Reference/Bibliography.html
An Introduction to the Theory of Computation Eitan Gurari, Ohio State University
http://www.cis.ohio-state.edu/~gurari/theory-bk/theory-bk.html
Review of existing Languages
Perbandingan beberapa bahasa pemorgraman. Situs ini memberikan informasi singkat serta URL yang berkaitan dengan bahasa pemrograman.
http://tunes.org/Review/Languages.html
Programming Language Research. Berisi tentang informasi mengenai riset, dan pengembangan bahasa pemrograman.
http://www-2.cs.cmu.edu/~mleone/language-research.html
Tentu saja akan lebih memudahkan bila materi-materi buku tersebut di atas di “mirror” di server Univeristas-universitas. Sehingga memudahkan para dosen/mahasiswa untuk mencari materi. Saya memiliki daftar buku gratis/online lainnya, bila ada yang tertarik.
Perangkat bantu
Tentu saja, setelah perbaikan materi perkuliahan, materi praktikum atau latihan yang diberikan kepada para mahasiswa, sebaiknya disesuikan sehingga mahasiswa dapat lebih mudah mempelajari, bagaimana proses pembuatan suatu kompiler. Mahasiswa sebaiknya diajak bukan saja menggunakan suatu perangkat kompiler, tetapi juga melihat “ke dalam source code” suatu kompiler sesungguhnya. Jangan “silau dan terpaku” dengan bahasa pemrograman yg penuh dg “hype” sehingga tidak mempelajari hal mendasar ini.
Suatu compiler tentu saja biasanya ditulis dengan memanfaatkan bahasa pemrograman lain misal C, atau C++. Untuk memudahkan proses pengajaran bagaimana menulis kompiler, tentu tidak mungkin dilakukan dari awal menulis semua perangkat bantu (misal scanner dlsb). Untuk itu digunakan beberapa perangkat bantu untuk mempermudah proses pembuatan kompiler.
Perangkat bantu yang lazim digunakan untuk memberikan materi compiler biasanya adalah perangkat bantu scanner, lexical analyzer dlsb. Dapat digunakan seperti Flex, Bison, Lex, Yacc. Perangkat bantu ini tersedia secara bebas (FREE), ada yang dapat juga digunakan di atas platform DOS atau Linux yang tak membutuhkan perangkat keras terlalu tinggi. Jadi nggak perlu pakai alasan menunggu upgrade hardware) Beberapa informasi yang berkaitan dengan perangkat bantu ini :
Free Compiler Construction Tools
http://www.thefreecountry.com/developercity/compiler.html
Gnu C Compilter (GCC). Banyk informasi mengenai compiler (terutama GCC)
http://www.gnu.org/software/gcc/readings.html
Compiler Construction using Flex and Bison
http://cs.wwc.edu/~aabyan/464/Book/
A Compact Guide to Lex & Yacc by Thomas Niemann
http://epaperpress.com/lexandyacc/index.html
TASSKAF. Bahasa TASSKAF ini merupakan subset dari Java. Dapat disusun suatu program ke byte code yang dapat dijalankan di Java Virtual Machine (JVM). Pada site tersebut juga tersedia informasi materi kuliah dengan LEX, YACC
http://rw4.cs.uni-sb.de/~martin/COMP/TK/
GENTLE. Gentle ini merupakan perangkat bantu (toolkit) modern untuk menulis compier dan mengimplemntasikannya pada bahasa tertentu. Perangkat bantu ini mendukung semua proses translasi, dari definisi tree sintaks abstrak, pater matching, smart traversal dan lain sebagainya. Toolkit ini telah digunakan secara luas di riest dan industri.
http://www.first.gmd.de/gentle/
ELI. Merupakan suatu lingkungan pemrograman yang memungkinkan membuat suatu implementasi bahasa pemrograman secara lengkap dari suatu sepsifikasi. Perangkat bantu ini menangani struktural analisis, analisis nama, type, value dlsb dan akan menghasilkan kode C.
http://www.cs.colorado.edu/~eliuser/
SUIF. Tool ini merupakan perangkat bantu yang digunakan di proyek National Compiler Infrastructure di USA.
http://suif.stanford.edu/suif/suif2/doc/
Menggunakan wxWidgets dengan kompiler Borland C++
loadplug.jpg
wxWidgets adalah bingkai kerja GUI multiplatform paling poten yang pernah saya gunakan. Sebelumnya saya menggunakan FOX, yang meskipun inovatif dan lebih mudah digunakan, tapi… (topik itu rasanya berhak mendapat tulisan tersendiri). Aplikasi yang dibuat dengan wxWidgets secara otomatis dapat dikompilasi dalam semua platform dan dengan semua kompiler yang didukung oleh paket tersebut, dan kemungkinan keberhasilannya akan jauh lebih besar apabila si pemrogram membatasi diri hanya menggunakan fasilitas-fasilitas yang wxWidgets sediakan. Yang istimewa, pembatasan itu tidak kemudian mengurangi fungsionalitas platform yang dapat digunakan dalam aplikasi kita! Paket wxWidgets menyediakan beragam antarmuka portabel baik untuk jenis fasilitas standar yang disediakan secara natif dalam banyak platform, fasilitas yang hanya disediakan natif dalam platform tertentu namun harus diimplementasikan sendiri dalam platform lain, ataupun fasilitas yang kerap digunakan namun tidak cukup vital untuk disediakan natif dalam platform manapun. Sebagian contoh adalah fasilitas I/O file, koneksi database, kontrol untuk pengeditan rich-text, dan fasilitas koneksi TCP/IP.
Satu-satunya hambatan awal yang ditemui seseorang sebelum menggunakan paket ini adalah sistem build yang cukup kompleks, dirancang demikian tentunya untuk mengantisipasi idiosinkrasi setiap platform yang harus didukungnya. Di sini, saya akan menjelaskan langkah-demi-langkah pengaturan awal agar Anda dapat menggunakan pustaka ini dengan kompiler Anda. Saya sendiri menggunakan kompiler Borland C++ pada platform Microsoft Windows XP, dan akan mendasarkan penjelasan pada platform tersebut. Penyebutan bcc di bawah dapat disubstitusi dengan kompiler yang Anda gunakan (MinGW: mingw, Digital Mars: dm, dsb.), begitu pula untuk platform yang digunakan, msw. Penyebutan direktori WXBASE merujuk pada lokasi pustaka wxWidgets pada sistem Anda; saya, sebagai contoh, menggunakan E:\wxMSW-2.8.0. Penyebutan BCCDIR merujuk pada direktori dasar kompiler.
Pemrograman Java untuk Aplikasi Basis Data dengan Teknik XP Menggunakan IDE ECLIPSE
pemrgrmn-jva-utk-aplks.png
Java adalah bahasa pemrograman yang sangat populer saat ini. Kelebihannya antara lain adalah mampu digunakan sebagai tool untuk mengembangkan aplikasi Internet, selain aplikasi-aplikasi mandiri pada umumnya. Saat ini Java juga beranjak menjadi bahasa pemrograman yang populer karena ia mampu mengatasi masalah kompatibilitas antarberbagai platform perangkat keras dan perangkat lunak.
Saat ini tersedia kompiler Java yang mulai populer, yang menggunakan konsep Graphical User Interface), yaitu Eclipse. Eclipse mudah penggunaannya dan cukup berdaya-guna untuk mengembangkan aplikasi Java apa pun. Eclipse akan populer di masa yang akan datang karena biaya perolehannya yang sangat murah (gratis!) – dapat diperoleh dengan mem-download dari berbagai situs di Internet.
Buku ini menjelaskan berbagai fasilitas utama yang ada di Eclipse, konsep pemrograman Java secara umum, serta cara menggunakan Eclipse dalam pengembangan aplikasi yang bersifat umum yang user friendly, serta aplikasi yang bekerja dengan mengakses sistem basis data relasional menggunakan antarmuka Java Database Connectivity – Application Programming Interface.
Satu hal khusus yang ditawarkan oleh para pengembang Eclipse adalah pemrograman dengan metodologi eXtreme Programming, yang merupakan pengembangan aplikasi dengan basis testing.
Dengan pendekatan XP ini para pengembang aplikasi yang sudah familiar dengan tool yang digunakan akan dapat mengembangkan aplikasi yang berkualitas tinggi dengan waktu yang relatif pendek.
Penerapan metode XP untuk pengembangan aplikasi berbasis Java menggunakan Eclipse dibahas tuntas di dalam buku ini.
Dasar dasar C++
15731_c0.jpg
Tutorial ini untuk siapa saja, walaupun anda belum pernah melakukan pemrograman, atau jika andapun berpengalaman dalam pemrograman dengan bahasa pemrograman lain tapi ingin mempelajari bahasa C++, ada baiknya anda mengikuti penjelasan disini.
C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek, seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP. Anda dapat mendownload DJGPP atau mungkin saja anda telah memiliki kompiler lain.
Setiap kompiler ini agak berbeda. Setiap kompiler akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO, tetapi masing masing kompiler juga akan dapat menjalankan fungsi fungsi nonstandard (fungsi fungsi ini, agak mirip dengan ucapan yang tidak standar yang diucapkan orang diberbagai pelosok negeri. Sebagai contoh, di New Orleans kata median disebut neutral ground). Kadang kadang pemakaian fungsi nonstandard akan menimbulkan masalah pada saat anda hendak mengkompilasi kode sumber data (source code) (yaitu program berbahasa C++ yang ditulis oleh seorang programer) mempergunakan kompiler yang berbeda. Tutorial ini tidak terlepas dari masalah seperti itu.
Bila anda belum mempunyai sebuah kompiler, disarankan agar anda segera memiliki sebuah kompiler. Sebuah kompiler sederhana sudah cukup untuk dipergunakan oleh anda dalam mengikuti tutorial ini.
Bahasa pemrograman C++ adalah bahasa yang amat berbeda. Untuk kompiler C++ berbasis DOS, akan memerlukan beberapa kata kunci (keywords); keyword sendiri tidak cukup untuk difungsikan sebagai input dan output. Walau hampir semua fungsi dalam file library tampaknya bias diakses oleh header filenya. Coba kita lihat program sesungguhnya :
#include
int main()
{
cout<<”HEY, you, I’m alive! Oh, and Hello World!”;
return 0;
}
Marilah kita lihat elemen dari program diatas. Tanda #include adalah sebuah prosesor pengarah yang mengatakan kepada kompiler untukmeletakan kode dari header file iostream.h kedalam program. Dengan menyertakan header file, anda dapat mengakses banyak fungsi fungsi berbeda. Dalam contoh diatas, fungsi cout memerlukan file iostream.h.
Pada baris berikutnya yang penting adalah int main(). Baris ini mengatakan kepada kompiler bahwa ada sebuah fungsi bernama main, yang mana fungsi itu mengembalikan sebuah integer, sehingga diberi tanda int. Tanda kurung ({ dan }) menandakan awal dan akhir fungsi dalam program diatas dan menghentikan kode lainnya. Jika anda memakai bahasa Pascal, anda akan mempergunakan perintah BEGIN dan END.
Baris berikutnya dari program diatas agak aneh. Jika anda menulis sebuah program mempergunakan bahasa lain, anda akan mengetahui bahwa perintah print akan menampilkan text di layar monitor. Dalam bahasa C++ tidaklah demikian, pemakaian fungsi cout dipakai untuk menampilkan text di layar monitor anda. Itu juga memakai tanda atau symbol <;<; , yang diketahui sebagai operator pemasukan ( insertion operators). Tanda tersebut mengatakan kepada kompiler agar segera menghasilkan output sesuai dengan input anda. Tanda semicolon ditambahkan kedalam bagian akhir dari semua fungsi yang dipanggil dalam bahasa C++; tanda seterusnya memperlihatkan variable yang anda deklarasikan.
Pada baris itu juga ada kode yang memerintahkan fungsi main kembali ke 0. Pada saat satu kali kembali diproses, itu dilakukan melalui system operasi. Sebagai catatan, pendeklarasian fungsi main yang tidak diinginkan memiliki proses kembali, dapa ditambahkan – void main() – dan biasanya itu berfungsi dengan baik; namun cara ini merupakan cara yang kurang baik.
Tanda kurung terakhir berperan sebagai penutup agar fungsi dihentikan. Anda bias mencobamengoperasikan fungsi ini didalam sebuah kompiler. Anda dapat melakukan cut dan paste kode diatas kedalam sebuah file, dan menyimpannya sebagai file.cpp, dan kemudian anda buka file itu dari dalam kompiler anda. Jika anda memakai baris perintah kompiler seperti yang ada dalam Borland C++ 5.5, sebaiknya anda membaca dahulu instruksi kompiler tentang bagaimana cara melakukan kompilasi (how to compile).
Comment atau komentar sering dipakai dalam penulisan program. Ketika anda mengatakan kepada kompiler bahwa sebuah bagian dari program anda adalah tex komentar, kompiler tidak akan memasukan itu sebagai perintah pemrograman. Untuk membua sebuah komentar dipergunakan tanda //, yang mengaakan kepada kompiler bahwa baris berikut adalah komentar, atau memakai tanda /* dan kemudian diakhiri tanda */ untuk menandai bahwa segala yang ada antara kedua tanda ini adalah komentar. Beberapa kompiler akan mengubah warna area komentar, tetapi beberapa kompiler lain tidak. Berhati hatilah dalam menulis program anda agar kode program anda tidak dianggap sebagai komentar oleh kompiler karena dapat mempengaruhi output program yang anda buat.
Selanjutnya anda harus dapa menuliskan program sederhana untuk menampilkan informasi yang anda ketikan kedalamnya. Selain itu, program juga bisa dibuat untuk menerima input. Fungsi yang dipakai adalah cin, dan diikuti dengan tanda >>.
Tentu saja sebelum anda mencoba menerima input, anda harus memiliki tempat penyimpan input. Dalam pemrograman, input dan data disimpan dalam variable. Ada beberapa jenis variable. Pada saat anda ingin mengatakan kepada kompiler sebuah variable yang anda deklarasikan, anda harus menyertakan tipe data dan nama dari variable itu. Beberapa cara dasar adalah dengan menuliskan include char, int, dan float.
Sebuah variabel char menyimpan sebuah karakter tunggal; variabel int akan menyimpan integer (bukan bilangan desimal), dan variables float akan menyimpan bilangan desimal. Setiap variable – char, int, dan float – merupakan sebuah kata kunci (keyword) yang and pergunakan pada saat anda mendeklarasikan sebuah variabel. Untuk mendeklarasikan sebuah variable anda memakai syntax type . Ini diijinkan untuk mendeklarasikan variable multiple dari jenis variable yang sama pada baris yang sama; masing masing variabelnya dipisahkan dengan tanda koma. Deklarasi sebuah variable atau sekelompok variabel dapat diikuti tanda semicolon (Catatan, tanda ini sama dengan yang diterapkan pada prosedur dimana anda akan memanggil sebuah fungsi).
Jika anda tidak memakai sebuah variable yang dideklarasikan sebelumnya. program anda tidak akan dapat dioperasikan (atau di run), dan anda akan menerima pesan error yang memberitahu anda bahwa anda telah melakukan kesalahan.
Berikut adalah beberapa contoh deklarasi variable:
int x;
int a, b, c, d;
char letter;
float the_float;
Walaupun anda boleh memiliki banyak variable dengan jenis yang sama, anda tidak dapat memiliki variable dengan nama yang sama. Begitu pula anda tidak dapat memiliki variable dan fungsi dengan nama yang sama.
#include < iostream.h >
int
main()
{
int thisisanumber;
cout<<”Please enter a number:”;
cin>>thisisanumber;
cout<<”You entered: “<
return 0;
}
Coba kita bahas program diatas ini setiap barisnya. Keyword int mendeklarasikan thisisanumber menjadi sebuah bilangan integer. Fungsi cin>> membaca sebuah nilai ke dalam thisisanumber; user harus menekan tombol enter sebelum bilangan bias dibaca oleh program. Ingatlah, bahwa variable yang telah dideklarasikan adalah sebuah integer; jika user cenderung nmenulis bilangan decimal, itu akan diproses dengan tidak tepat (sebab komponen desimal dari bilangan itu akan ditolek). Cobalah menuliskan satu baris karakter atau bilangan desimal ketika anda mengoperasikan program diatas; hasil yang didapat bervariasi dari input ke input, tetapi bila tidak ada masalah akan tampak bagus. Ingatlah ketika mencetak sebuah variabel, tanda quotation tidak dipakai. Apabila ada tanda quotation, maka hasilnya adalah “You Entered: thisisanumber.”
Apabila tanda quotation dihilangkan, maka kompiler akan menganggap itu sebuah variabel, dan karena itu program akan melakukan pengecekan atas nilai variabel agar dapat mengganti nama variabel dengan variable pada saat eksekusi fungsi output. Jangan bimbang dengan adanya dua operator pemasukan dalam satu baris program. Anda bisa juga memasukan beberapa operator pemasuka dalam satu baris selama tiap operator pemasukan menghasilkan output yang berbeda; anda perlu memisahkan literal string (yaitu string yang tertutup dalam tanda quotation) dan variabel dengan menaruh masing masing operator pemasukannya (each insertion operators) (yaitu tanda <<).
Bila anda hendak mencoba untuk meletakan dua variabel bersama sama dalam satu baris program seperti tanda <;<; hasilnya adalah pesan eror; maka janganlah melakukan itu.
Jangan lupa untuk mengakhiri fungsi fungsi dan deklarasi dengan sebuah tanda semicolon. Jika anda lupa memberi tanda semicolon, kompiler akan memberi anda sebuah pesan eror pada saat anda melakukan kompilasi program anda.
Kompilator
movie.png
Kompilator (Inggris: compiler) adalah sebuah program komputer yang berguna untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang ditulis dalam bahasa pemrograman lain.
Terlepas dari pengertiannya yang demikian relatif luas, istilah kompilator biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa tingkat-tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual-Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly (assembler) sebagai perantara.
Kompilator berbeda dengan assembler karena biasanya kompilator akan menghasilkan kode obyek (object code) yang bisa berupa file executable pada sisten operasi Windows atau file bin pada sisten operasi berbasis Unix.
Kompilator melakukan proses kompilasi dengan cara menganalisis kode sumber secara keseluruhan, sehingga waktu yang dibutuhkan untuk melakukan kompilasi lebih lama, namun hasilnya lebih cepat dalam proses eksekusi daripada program yang dibuat dengan menggunakan teknik interpretasi dengan interprete

GRAFIKA KOMPUTER

images33.jpg
Pengenalan wajah adalah merupakan suatu pengenalan pola (pattern recognition) yang khusus untuk kasus wajah. Ini dapat dideskripsikan sebagai pengklasifikasian suatu wajah apakah dikenali (known) atau tidak dikenali (unknown), dimana setelah dibandingkan kemudian disimpan secara tersendiri. Beberapa pendekatan untuk pengenalan obyek dan grafika komputer didasarkan secara langsung pada citra-citra tanpa penggunaan model 3D. Banyak dari teknik ini tergantung pada suatu representasi citra yang membentuk suatu struktur ruang vektor, dan dalam prinsip ini memerlukan korespondensi yang padat. Pendekatan appearance-based kebanyakan digunakan untuk pengenalan wajah. Pada metode ini, model wajah dipelajari melalui proses training dengan menggunakan satu set data pelatihan yang berisi contoh-contoh wajah. Kemudian hasil training ini digunakan untuk pengenalan wajah. Secara umum metode ini menggunakan teknik-teknik analisis statistik dan mesin pembelajaran (machine learning) untuk menemukan karakteristik-karakteristik yang sesuai dari wajah maupun non-wajah. Yang termasuk dalam kelompok ini adalah : Eigenfaces, distribution-based dan clustering, jaringan syaraf tiruan, SVM (Support VectorMmachine), dll.

Tiga pengklasifikasi linear appearance-based adalah PCA, ICA and LDA. Tiap pengklasifikasi mempunyai representasi (vector basis) tersendiri dari suatu ruang space vector wajah dengan dimensi tinggi didasarkan pada titik pandang secara statistik yang berbeda. Melalui proyeksi vector wajah ke vector basis, koefisien proyeksi digunakan sebagai representasi fitur tiap citra wajah. Nilai matching diantara citra wajah tes dan pelatihan dihitung (sebagai contoh sudut nilai cosine) diantara vector-vector koefisien. Ketiga representasi dapat dianggap sebagai suatu transformasi linier dari vector citra asli ke suatu vector fitur proyeksi.
Proyeksi citra ke dalam ruang eigen (eigenspace) merupakan suatu prosedur standar untuk beberapa algoritma pengenalan obyek yang didasarkan pada tampilan (appearance-based). Penelitian dasar tentang proyeksi eigenspace pertama kali dilakukan oleh Michael Kirby yang memperkenalkan tentang ide karakteristikasi dimensi rendah suatu wajah. Turk and Pentland menggunakan proyeksi eigenspace untuk pengenalan wajah. Eigenspace dihitung melalui identifikasi eigenvector dari matriks kovariansi yang diturunkan dari suatu himpunan citra pelatihan (Turk and Pentland,1991)
Proyeksi ruang eigen (eigenspace) juga dikenal sebagai Karhunen-Loeve (KL) atau juga dinamakan dengan Principal Component Analysis (PCA). Algoritma eigenface memanfaatkan Principal Component Analysis (PCA) untuk mereduksi dimensinya guna menemukan vector-vektor yang mempunyai nilai terbaik untuk distribusi citra wajah didalam ruang citra masukan. Vektor ini mendefinsikan subruang dari citra-citra wajah dan subruang tersebut dinamakan ruang wajah. Semua wajah-wajah dalam himpunan pelatihan diproyeksikan ke dalam ruang wajah untuk menemukan suatu himpunan bobot-bobot yang mendeskripsikan kontribusi dari tiap vector dalam ruang wajah. Untuk identifikasi suatu citra uji, membutuhkan proyeksi suatu citra ke dalam ruang wajah untuk menentukan korespondensi kumpulan bobot-bobot. Dengan membandingkan kumpulan bobot-bobot wajah dalam training set, Pengujian citra dapat diidentifikasi. Prosedur kunci dalam PCA didasarkan pada tranformasi Karhumen-Loeve. Jika elemen-elemen citra dianggap sebagai variable-variabel random, citra mungkin dilihat sebagai sample suatu proses stokastik.
Ide utama principal component analysis adalah menemukan vektor dengan nilai terbaik untuk distribusi citra wajah dalam seluruh ruang citra. Vektor-vektor ini mendefinisikan subruang citra wajah atau biasa disebut dengan nama ruang wajah. Tiap vektor dengan panjang N2, mendsikripsikan citra dengan ukuran N x N, yang merupakan suatu kombinasi linier dari citra wajah asli (Atalay,1996).
Visualisasi
180px-fa.jpg

Visualisasi saat terjadi tabrakan mobil dengan menggunakan analisa elemen
Visualisasi (Inggris: visualization) adalah rekayasa dalam pembuatan gambar, diagram atau animasi untuk penampilan suatu informasi. Secara umum, visualisasi dalam bentuk gambar baik yang bersifat abstrak maupun nyata telah dikenal sejak awal dari peradaban manusia. Contoh dari hal ini meliputi lukisan di dinding-dinding gua dari manusia purba, bentuk huruf hiroglip Mesir, sistem geometri Yunani, dan teknik pelukisan dari Leonardo da Vinci untuk tujuan rekayasa dan ilmiah, dll.

Pada saat ini visualisasi telah berkembang dan banyak dipakai untuk keperluan ilmu pengetahuan, rekayasa, visualisasi disain produk, pendidikan, multimedia interaktif, kedokteran, dll. Pemakaian dari grafika komputer merupakan perkembangan penting dalam dunia visualisasi, setelah ditemukannya teknik garis perspektif pada zaman Renaissance. Perkembangan bidang animasi juga telah membantu banyak dalam bidang visualisasi yang lebih kompleks dan canggih.
IMPLEMENTASI GRAFIKA KOMPUTER BERBASIS VISUAL INTERAKTIF UNTUK GERAK BENDA DAN GELOMBANG PADA FISIKA
grafika21.jpg
Grafika komputer atau dalam bahasa inggris Computer Graphics dapat diartikan sebagai seperangkat alat yang terdiri dari hardware dan software untuk membuat gambar, grafik atau citra realistic untuk seni, game komputer, foto, dan film animasi.

Dewasa ini, grafika komputer sudah banyak digunakan sebagai materi pendukung dalam berbagai bidang, pada tugas akhir ini penulis menganalisis tentang implementasi grafika komputer dengan menggunakan aplikasi perangkat lunak berbasis visual interaktif untuk gerak benda dan gelombang pada fisika yang meliputi gerak melingkar, gerak satelit, gerak peluru, gelombang transversal, dan gelombang sinusoida.
Implementasi grafika komputer yang diaplikasikan pada program simulasi berbasis visual interaktif untuk gerak benda dan gelombang pada fisika diharapkan dapat membantu dalam proses belajar, dan mempercepat pemahaman dalam mempelajari tentang gerak benda dan gelombang yang selama ini masih dilakukan dengan cara yang konvensional yaitu dengan gambar dan juga diharapkan dapat meningkatkan daya minat belajar karena cara yang dipakai dalam perangkat lunak ini lebih menarik dengan fasilitas menu yang sederhana..
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.
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.

woman_in_sunglasses.jpg
Hasil dari rendering
Bagian dari grafika komputer meliputi:
Geometri: mempelajari cara menggambarkan permukaan bidang
Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan
Rendering: mempelajari algoritma untuk menampilkan efek cahaya
Citra (Imaging): mempelajari cara pengambilan dan penyuntingan gambar.

Grafika Komputer – Teori dan Implementasi
Book Category : Desain Grafis
ISBN 979-763-068-4
Author: Achmad Basuki, Nana Ramadijanti
grafika0.jpg

Grafika 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

TREND SISTEM INFORMASI


Sistem informasi geografis
Sistem Informasi Geografis (bahasa Inggris: Geographic Information System disingkat GIS) adalah sistem informasi khusus yang mengelola data yang memiliki informasi spasial (bereferensi keruangan). Atau dalam arti yang lebih sempit, adalah sistem komputer yang memiliki kemamp
GIS dengan Quantum GIS.GIS dengan Quantum GIS.
uan untuk membangun, menyimpan, mengelola dan menampilkan informasi berefrensi geografis, misalnya data yang diidentifikasi menurut lokasinya, dalam sebuah database. Para praktisi juga memasukkan orang yang membangun dan mengoperasikannya dan data sebagai bagian dari sistem ini.
Teknologi Sistem Informasi Geografis dapat digunakan untuk investigasi ilmiah, pengelolaan sumber daya, perencanaan pembangunan, kartografi dan perencanaan rute. Misalnya, SIG bisa membantu perencana untuk secara cepat menghitung waktu tanggap darurat saat terjadi bencana alam, atau SIG dapat digunaan untuk mencari lahan basah (wetlands) yang membutuhkan perlindungan dari polusi.
GIS - MAPPING SOLUTION
Geographic information system (GIS) atau Sistem Informasi Berbasis Pemetaan dan Geografi adalah sebuah alat bantu manajemen berupa informasi berbantuan komputer yang berkait erat dengan sistem pemetaan dan analisis terhadap segala sesuatu serta peristiwa-peristiwa yang terjadi di muka bumi.
Teknologi GIS mengintegrasikan operasi pengolahan data berbasis database yang biasa digunakan saat ini, seperti pengambilan data berdasarkan kebutuhan, serta analisis statistik dengan menggunakan visualisasi yang khas serta berbagai keuntungan yang mampu ditawarkan melalui analisis geografis melalui gambar-gambar petanya.
Kemampuan tersebut membuat sistem informasi GIS berbeda dengan sistem informasi pada umumnya dan membuatnya berharga bagi perusahaan milik masyarakat atau perseorangan untuk memberikan penjelasan tentang suatu peristiwa, membuat peramalan kejadian, dan perencanaan strategis lainnya.
GIS adalah sebuah teknologi yang mampu merubah besar-besaran tentang bagaimana sebuah aktivitas bisnis diselenggarakan. Teknologi GIS memungkinkan Anda untuk melihat informasi bisnis Anda secara keseluruhan dengan cara pandang baru, melalui basis pemetaan, dan menemukan hubungan yang selama ini sama sekali tidak terungkap.
Proyeksi Peta
Bentuk bumi yg selama ini kita liat adalah sebuah model bumi yg dibikin oleh manusia, kadang ada berbentuk bulat kadang berbentuk elips. Tp sebenarnya bukan seperti itu bentuk bumi, bentuknya adalah tidak beraturan. Dan biar lebih mudah ngegambarnya, akhirnya lebih umum menjadi bulat. Dan bentuk bulat ini di bikin datar oleh peta. Namanya juga peta, kan gambaran permukaan bumi dalam bidang datar Oleh karena permukaan bumi ini tidak rata alias melengkung-lengkung tidak beraturan, akan tetapi peta membutuhkan suatu gambaran dalam bidang datar, maka diperlukan pengkonversian dari bidang lengkung bumi sebenarnya ke bidang datar agar tidak terjadi distorsi permukaan bumi.Ini nieh ukuran bumi dalam angka
Ellipticity: 0.003 352 9
Mean radius: 6,372.797 km
Equatorial radius: 6,378.137 km
Polar radius: 6,356.752 km
Aspect Ratio: 0.996 647 1
radius equatornya lebih panjang dari pada radius kutub
Pernah mengupas jeruk? Pasti susah bangat meletakkan kulit jeruk menjadi bidang datar, tetapi kulit jeruk tersambung semua. begitu juga yg di alami oleh kartografer ketika memetakan permukaan bumi, mereka harus memindahkan bagian geografis dengan cara tertentu, menarik dan menggabungkan kembali bagian-bagian tersebut secara bersamaan agar menjadi peta datar yang nyambung. peta tidak terkecuali globe mengalami distorsi dari bumi yang sebenarnya. Untuk wilayah yang lebih kecil, distorsi tidak signifikan karena wilayah yang kecil dalam globe kelihatan seperti permukaan datar. Untuk wilayah yang lebih luas atau untuk tujuan yang butuh akurasi yang tinggi, bagaimanapun distorsi merupakan hal yang sangat penting. Oleh karena itu diperlukan proyeksi peta. Dalam penyusunan peta diperlukan suatu proyeksi peta yg memberikan hubungan antara titik-titik di bumi dengan di peta, proyeksi yg dipilih dipersyaratkan memiliki distorsi yg kecil.
Pada prinsipnya arti proyeksi peta adalah usaha mengubah bentuk bidang lengkung ke bentuk bidang datar, dengan persyaratan bentuk yang diubah itu harus tetap, luas permukaan yang diubah harus tetap dan jarak antara satu titik dengan titik yang lain di atas permukaan yang diubah harus tetap.
Proyeksi peta adalah teknik-teknik yang digunakan untuk menggambarkan sebagian atau keseluruhan permukaan tiga dimensi yang secara kasaran berbentuk bola ke permukaan datar dua dimensi dengan distorsi sesedikit mungkin. Dalam proyeksi peta diupayakan sistem yang memberikan hubungan antara posisi titik-titik di muka bumi dan di peta
untuk memenuhi semua ketiga persyaratan perubahan dari bidang lengkung ke bidang datar rasanya tidak mungkin bangat, maka ada kompromi2 dalam menggunakan syarat tersebut, sehingga munculah berbagai macam jenis proyeksi. Beberapa jenis proyeksi yang umum adalah silinder/tabung (cylindrical), kerucut (conical), bidang datar (zenithal) dan gubahan (arbitrarry)
Jenis proyeksi yang sering kita jumpai sehari-hari adalah proyeksi gubahan, yaitu proyeksi yang diperoleh melalui perhitungan. Jenis proyeksi yang sering di gunakan di indonesia adalah WGS-84 (World Geodetic System) dan UTM (Universal Transverse Mercator)
WGS-84 (World Geodetic System) adalah ellipsoid terbaik untuk keseluruhan geoid. Penyimpangan terbesar antara geoid dengan ellipsoid WGS-84 adalah 60 m di atas dan 100 m di bawah-nya. Bila ukuran sumbu panjang ellipsoid WGS-84 adalah 6 378 137 m dengan kegepengan 1/298.257, maka rasio penyimpangan terbesar ini adalah 1 / 100 000. Indonesia, seperti halnya negara lainnya, menggunakan ukuran ellipsoid ini untuk pengukuran dan pemetaan di Indonesia. WGS-84 “diatur, diimpitkan” sedemikian rupa diperoleh penyimpangan terkecil di kawasan Nusantara RI. Titik impit WGS-84 dengan geoid di Indonesia dikenal sebagai datum Padang (datum geodesi relatif) yang digunakan sebagai titik reference dalam pemetaan nasional. Sebelumnya juga dikenal datum Genuk di daerah sekitar Semarang untuk pemetaan yang dibuat Belanda. Menggunakan ER yang sama – WGS 84, sejak 1995 pemetaan nasional di Indonesia menggunakan datum geodesi absolut. DGN-95. Dalam sistem datum absolut ini, pusat ER berimpit dengan pusat masa bumi.
Proyeksi UTM merupakan proyeksi Peta yang banyak di pilih dan di gunakan dalam kegiatan pemetaan di Indonesia karena di nilai memenuhi syarat2 ideal yang sesuai dengan bentuk, letak dan luas Indonesia. Spesifikasi UTM antara lain adalah (1) menggunakan bidang silender yang memotong bola bumi pada dua meridian standart yang mempunyai faktor skala k=1, (2) Lebar zone 6° dihitung dari 180° BB dengan nomor zone 1 hingga ke 180° BT dengan nomor zone 60. Tiap zone mempunyai meridian tengah sendiri, (3) setiap zone memiliki meridian tengah sendiri dengan faktor perbesaran = 0.9996, (4) Batas paralel tepi atas dan tepi bawah adalah 84° LU dan 80° LS dan (5) proyeksinya bersifat konform. Menurut Frans (iagi.net) UTM menggunakan silinder yg membungkus ellipsoid dengan kedudukan sumbu silindernya tegak lurus sumbu tegak ellipsoid (sumbu perputaran bumi), sehingga garis singgung ellipsoid dan silinder merupakan garis yg berhimpit dengan garis bujur pada ellipsoid. Akibatnya, titik2 pada garis tersebut terletak pada kedua bidang, sehingga posisinya walaupun dipindahkan (diproyeksikan), dari ellipsoid ke silinder, tidak akan mengalami perubahan (distorsi)
Sistem Informasi Geografis Manajemen Data Potensi Migas
2004
Minyak dan gas (MIGAS) merupakan salah satu sumberdaya alam yang tidak terbarukan (non-renewable), terperangkap dalam batuan reservoar dan terbentuk melalui proses geologi. Kegiatan usaha bidang migas sendiri merupakan investasi yang mahal dan beresiko tinggi. Untuk mengurangi resiko tersebut maka dalam kegiatan eksplorasi migas perlu dilakukan sejumlah tahapan kegiatan dengan berbagai metode dan teknologi, mulai dari yang paling dasar dan murah hingga mahal supaya dapat memilah daerah yang masih potensial dan layak dikembangkan lebih lanjut.
Investasi dalam kegiatan MIGAS akan berakibat pada penambahan volume dan jenis data, maka diperlukan sistem pengelola data yang terintegrasi. Integrasi data cadangan migas yang baik akan menimbulkan efisiensi baik dari segi biaya ataupun waktu. Sistem Informasi Geografis (SIG) merupakan alat Bantu berfungsi untuk meningkatkan optimalisasi data yang berkaitan dengan spasial atau koordinat geografis baik secara manual atau otomatis dengan komputer (digital).
Informasi manajemen data potensi migas berbasis SIG akan membantu pemerintah dalam pengambilan keputusan kebijakan bidang migas dan juga akan sangat membantu masyarakat dan investor bidang industri migas beserta pendukungnya dalam menentukan. Hasil SIG yang komunikatif, informatif dan atraktif akan lebih bermanfaat dan mampu sebagai dasar semua pihak mempercepat pelaksanaan tugasnya.
Kegiatan termaksud mengelola data untuk menghasilkan ;
Data migas yang terintegrasi
Manajemen data lapangan migas yang komprehensif
Optimalisasi data tiap lapangan migas
Efisiensi biaya dan waktu dalam perolehan informasi.
Dengan hasil ini diharapkan akan dapat membantu pengambil keputusan dan pembuat kebijakan dalam mengambil keputusan-keputusan di sektor migas, juga akan memudahkan dan membantu investor dalam investasinya.
Secara umum ruang lingkup dalam riset ini dilakukan pegumpulan data sekunder serta penggunaan teknologi Sistem Informasi untuk penyusunan Sistem Informasi GeografisManajemen Data Migas Sumatera Tengah. Teknologi SIG digunakan untuk menjelaskan dan memaparkan aspek-aspek yang terkait secara langsung dengan kegiatan eksplorasi dan produksi migas, identifikasi data terkait data dasar kegiatan hulu migas.
Metoda yang dipakai dalam kegiatan ini menggunakan anlisis data sekunder Hasil Laporan Kegiatan Penemuan Cadangan MIGAS T.A. 2002 dan 2003. Garis besar pelaksanaan pekerjaan seperti dalam bagan alir (lihat GambarBagan alir).
Berdasarkan data dan informasi yang ada dilakukan inventarisasi dan identifikasi. Pada tahap pemrosesan data (rektifikasi dan digitasi) pemasukan data spasial dan data tabular semua coverage belum diorganisasikan. Setelah semua informasi data spasial dilengkapi dengan data tabularnya, maka semua data coverage diorganisasikan secara tematik sebagai rangkaian layer serta diorganisasi secara spasial dengan lembar peta. Setiap layer tematik ini diberi koordinat UTM ( Universal Transverse Mercator). Sistem koordinat ini memberikan proyeksi lokasi yang berguna untuk memastikan hubungan yang diketahui diantara lokasi pada peta dengan lokasi sebenarnya di bumi.
Proses lain dalam pengelolaan database adalah penggabungan peta yang bersebelahan, proses ini berguna untuk memperkecil volume space atau ruang yang dipakai oleh coverage dan memberikan informasi yang lebih terintegrasi.
NETWORKING
unci penting dalam dunia pengolahan data dan informasi masa kini adalah apa yang disebut jaringan atau networking. Betapa pentingnya sebuah terminal dalam sebuah jaringan lokal, LAN (local area network), karena di balik itu terdapat ribuan komputer lain dengan ribuan orang lain yang berada di sebuah perusahaan besar.
Kita sedang menuju ke abad 21, di mana sistem jaringan mungkin tak lagi hanya akan melayani sebuah mesin besara saja. Sebaliknya jaringan-jaringan akan merupakan sarana bantu yang memungkinkan sebuah organisasi besar untuk melakukan penyesuaian yang sesuai, antara kebutuhan informasi dengan besarnya aplikasi serta investasi perangkat keras dan lunaknya. Orang menyebutnya dengan rightsizing.
Divisi Solusi Jaringan Scomptec menyediakan berbagai   layanan yang berkenaan dengan jaringan, termasuk konsultasi & perencanaan sistem, penginstalasian & peremajaan dan pemutakhiran, dukungan administrasi, diagnosa dan pemeliharaan.
Layanan jaringan Scomptec meliputi Local Area Network (LAN) serta Wide Area Network (WAN),   serta menangani sepenuhnya segenap perangkat keras, meliputi PC, komputer-komputer Mac, Unix, perangkat-perangkat keras LAN dan WAN (router, switches, dan lain sebagainya), printer, modem dan aplikasi serta sistem software (Novell, Microsoft Windows NT, Unix) yang bekerja padanya.
XML Dalam Sistem Informasi Geografis
Kita telah mengenal berbagai format proprietary dari aplikasi-aplikasi SIG yang berbeda-beda, baik dari segi vendor-nya maupun perbedaan versi dari tiap format. Lumrah saja, karena tiap vendor menginginkan format yang efisien dan sesuai dengan aplikasi yang mereka buat. Terdapat fungsi dan aplikasi untuk korvesi antar format, tapi tidak selalu memadai karena ada keunikan dari tiap format yang belum tentu dapat dikonversi ke format lain.
Hal ini juga menjadi hambatan untuk webmapping , karena setiap aplikasi akan memerlukan client environment yang berbeda-beda pula. Tidak semua orang bersedia menginstall software tersendiri (applet khusus, plug-ins tertentu dll) bagi tiap aplikasi webmap yang ingin mereka lihat.
Karena perbedaan format menghambat pemanfaatan data geografis secara lebih luas, diperlukan cara pertukaran data yang dapat dipahami secara global. Fungsi ini dapat dipenuhi oleh XML (eXtensible Markup Language).
eXtensible Markup Language
XML adalah bahasa markup yang menyediakan sintaks yang lentur (dapat dikembangkan sesuai kebutuhan) dan independen (tidak tergantung sistem platform). Jadi sesuai untuk sarana pertukaran data antar berbagai ragam sistem, baik lewat internet atau jalur lain [1].
Format ini merupakan rekomendasi dari World Wide Web Consortium. XML memungkinkan untuk memuat baik data koordinat, data penyerta dan instruksi yang menyatakan jenis perlakuan terhadap data tersebut. Perlakuan itu dapat berupa transformasi data ke bentuk lain ataupun untuk menyatakan bagaimana data ditampilkan.
Penggunaan XML memungkinkan penerapan internet SIG dalam bentuk yang lebih terbuka, murah dan beragam tapi tetap kompatibel. Hal tersebut dapat diwujudkan oleh beberapa subset/turunan dari XML, yaitu SVG, XSL dan GML. Dunia XML memang penuh dengan akronim tiga huruf yang kadang membingungkan, untuk itu masing-masing akan coba dipaparkan secara singkat.
Scalable Vector Graphics
Untuk keperluan SIG, tentunya diperlukan format untuk tampilan data spasial. Karena XML bersifat general, maka untuk keperluan grafis diperkenalkan suatu subset XML yaitu SVG (Scalable Vector Graphics), suatu standar terbuka untuk grafik 2D yang merupakan rekomendasi dari W3C [2].
Peta Geologi gabungan vektor dan raster[15]
Hasil pemilu dalam SVG.[16]
Penggunaan SVG dalam SIG telah memberikan dampak terutama terhadap aplikasi webmap. Contoh tampilan webmap interaktif yang menggunakan SVG sudah cukup banyak saat ini, seperti gambar di kiri.
SVG memungkinkan penggunaan vektor yang memberikan banyak keunggulan dibanding format raster yang selama ini kita kenal. SVG juga dilengkapi dengan SVG DOM (Document Object Model) untuk membuat peta yang interaktif. Terdapat juga spesifikasi untuk mobile devices (SVG tiny) [2] dan browser phones (pSVG) [8,9]. SVG juga dapat dikompresi sehingga menurunkan ukuran transfer secara signifikan.
Dengan kemampuan SVG untuk memuat data vektor, bitmap dan teks, orang akan menganggap hanya dengan SVG sudah cukup. Dan memang saat ini sudah banyak contoh webmap yang menggunakan SVG, baik untuk tampilan dan data penyertanya [7].
Walau demikian, ada beberapa hal yang tidak tercakup dalam spesifikasi SVG. Misalnya mengenai standar link feature terhadap data, sistem referensi spasial yang digunakan, feature buffer atau standar skema data spasial.
Memang sengaja tidak dicakup karena SVG adalah suatu format grafis umum yang tidak hanya digunakan untuk aplikasi SIG, sehingga pertukaran data secara terbuka akan rumit jika hanya mengandalkan SVG. Untuk itu diperlukan subset XML lain, yaitu GML.

KECERDASAN BUATAN


Kecerdasan Buatan – Menajamkan Otak Tumpul
cerdas.jpg
KECERDASAN buatan (artificial intelligence) merupakan inovasi baru di bidang ilmu pengetahuan. Mulai ada sejak muncul komputer modern, yakni pada 1940 dan 1950. Ini kemampuan mesin elektronika baru menyimpan sejumlah besar info, juga memproses dengan kecepatan sangat tinggi menandingi kemampuan manusia.
Apa kecerdasan buatan itu? Bagian dari ilmu pengetahuan komputer ini khusus ditujukan dalam perancangan otomatisasi tingkah laku cerdas dalam sistem kecerdasan komputer. Sistem memperlihatkan sifat-sifat khas yang dihubungkan dengan kecerdasan dalam kelakuan atau tindak-tanduk yang sepenuhnya bisa menirukan beberapa fungsi otak manusia, seperti pengertian bahasa, pengetahuan, pemikiran, pemecahan masalah, dan lain sebagainya.
Kecerdasan buatan mungkin satu dari perkembangan yang paling penting di abad ini. Hal ini akan memengaruhi kehidupan negara-negara yang memainkan peranan penting dalam perkembangan kecerdasan buatan, yang kemudian muncul sebagai negara-negara adikuasa.
Pentingnya kecerdasan buatan menjadi nyata bagi negara-negara yang berperan sejak tahun 1970. Para pemimpin negara yang mengakui potensialnya kecerdasan buatan mengharap mendapat persetujuan jangka panjang untuk sumber-sumber yang memerlukan dana intensif.
Jepang adalah yang pertama kali melakukan itu. Negara ini mengembangkan program yang sangat berambisi dalam penelitian kecerdasan buatan.
Sebagai bidang ilmu pengetahuan komputer, kecerdasan buatan sebenarnya sudah mulai diselidiki pada 1930-an dan 1940-an. Waktu itu banyak cendekiawan mengembangkan ide-ide baru mengenai komputasi. Logika matematika selanjutnya menjadi bidang aktif dari penyelidikan kecerdasan buatan, karena sistem logika deduktif telah berhasil diimplementasikan dalam program-program komputer.
Seorang ahli matematika bernama Alan Turing, yang memiliki sumbangan besar dalam pengembangan teori kemampuan penghitungan (computability), bergumul dengan pertanyaan apakah sebuah mesin dapat berpikir atau tidak. Uji yang dilakukan adalah dengan mengukur kinerja (performance) mesin cerdas. Uji Alan Turing menjadi dasar bagi banyak strategi yang digunakan dengan menilai program-program kecerdasan buatan.
Awalnya, kecerdasan buatan hanya ada di universitas-universitas dan laboratorium penelitian, dan hanya sedikit produk yang dihasilkan dan dikembangkan. Menjelang akhir 1970-an dan 1980-an, mulai dikembangkan secara penuh dan hasilnya berangsur-angsur dipublikasikan di khalayak umum.
Permasalahan di dalam kecerdasan buatan akan selalu bertambah dan berkembang seiring dengan laju perkembangan zaman menuju arah globalisasi dalam setiap aspek kehidupan manusia, yang membawa persoalan-persoalan yang semakin beragam pula. Bidang-bidang yang hampir bersangkutan dengan kecerdasan buatan termasuk keahlian teknik atau teknik mesin, terutama listrik dan teknik mekanik, bahasa, psikologi, ilmu kognitif, dan filosofi. Robotik juga dianggap oleh beberapa peneliti sebagai cabang kecerdasan buatan, tapi yang ini tidak umum.
Dibandingkan dengan program konvensional, program kecerdasan buatan lebih sederhana dalam pengoperasiannya, sehingga banyak membantu pemakai. Program konvensional dijalankan secara prosedural dan kaku, rangkaian tahap solusinya sudah didefinisikan secara tepat oleh pemrogramnya. Sebaliknya, pada program kecerdasan buatan untuk mendapatkan solusi yang memuaskan dilakukan pendekatan trial and error, mirip seperti apa yang dilakukan oleh manusia. Program konvensional tidak dapat menarik kesimpulan seperti halnya pada program kecerdasan buatan kendati dengan informasi-informasi yang terbatas.
Kecerdasan buatan
Kecerdasan Buatan (bahasa Inggeris: Artificial Intelligence) atau lebih dikenali sebagai AI merujuk kepada mesin yang mampu untuk berfikir, menimbangkan tindakan yang akan diambil, dan mampu mengambil keputusan sepertimana yang dilakukan oleh manusia.
Terdapat beberapa cara yang digunakan untuk membina kecerdasan buatan buat masa ini. Contoh-contoh utama termasuk :
Logik Kabur : Menggunakan logik kabur untuk mencapai pilihan optimum. Berdasarkan intuisi manusia dan sangat mudah untuk direka.
Jaringan Neural (bahasa Inggeris: Neural Network): Dimodel dari interaksi antara neuron sebenar. Berkemampuan untuk belajar dari set data-data sedia ada untuk meramal output.
Pengiraan Evolusi : Menggunakan model berasaskan konsep evolusi (mutasi, perkongsian genetic, keupayaan hidup) untuk menghasilkan penyelesaian termudah untuk sesuatu masalah.
Oleh kerana bidang ini masih muda berbanding dengan cabang-cabang sains lain masih tiada jaminan cara yang mana yang akan boleh menghasilkan AI yang sebenar (true AI); AI yang mampu meniru 100% cara manusia berfikir.
KECERDASAN BUATAN DALAM ROBOTIK
1.jpg
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,
2.gif
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).
PENERAPAN kecerdasan buatan menggunakan algoritma minimax pada permainan tik-tak
3.jpeg
Kecerdasan buatan dapat diterapkan atau dimplementasikan kedalam
berbagai bentuk aplikasi. Bentuk implementasi yang paling mudah untuk diukur
tingkat keberhasilan dan cukup digemari oleh sebagain besar publik yaitu pada
games atau permainan. Permainan yang digunakan sebagai media
pengimplementasian pada kasus ini adalah permaian Tik-tak atau dalam bahasa
Inggris dikenal dengan nama Tic-tac-toe. Tik-tak adalah salah satu permainan
logika yang cukup populer dimasyarakat kita juga masyarakat internasional.
Meskipun dimasing-masing daerah permainan ini memiliki nama yang berbedabeda,
namun pola dan aturan permainan tetap sama.
Algoritma yang digunakan pada kecerdasan buatan tersebut menggunakan
algoritma Minimax. Minimax menurut beberapa pakar kecerdasan buatan
merupakan salah satu algoritma yang sering digunakan dalam penerapan
kecerdasan buatan pada permainan, khususnya permainan logika, antara lain
Catur, Go, Othello, dan sebagainya.
Proses utama algoritma Minimax yaitu pencarian nilai terbaik berdasarkan
nilai-nilai yang telah diberikan pada tiap-tiap langkah. Nilai-nilai tersebut
dibangkitkan berdasarkan basis pengetahuan yang dimiliki oleh algoritma
tersebut. Dengan penerapan algoritma Minimax sebagai pondasi suatu kecerdasan
buatan pada permainan Tik-tak, maka diharapkan akan dihasilkan suatu
permainan yang interaktif. Dalam permainan ini, dua pemain dapat saling
bertanding menggunakan dua unit komputer yang dihubungkan oleh jaringan
lokal.
Alat bantu pada implementasi kasus ini menggunakan jaringan lokal dan
pemrograman Visual Basic 6.0.
PENGEMBANGAN PERANGKAT LUNAK KECERDASAN BUATAN DENGAN MENGGUNAKAN METODE FORWARD CHAINING (Studi Kasus Mendiagnosa Keadaan Bayi Dalam Kandungan)
4.jpeg
kecerdasan buatan adalah kemampuan komputer untuk berpikir dengan intelegensia. Ini tercapai dengan mempelajari bagaimana manusia mengingat dan berpikir ketika sedang mengambil keputusan dan memecahkan masalah.
Kecerdasan buatan yang dibangun mempunyai beberapa komponen yang saling berhubungan untuk membangun sistem yaitu basis pengetahuan, mesin inferensi, antarmuka pemakai. Persoalan yang dipecahkan dalam sistem ini adalah bagaimana cara menyusun aturan yang terdiri atas beberapa premis dan konklusi dari fakta-fakta yang tersedia, sehingga dihasilkan suatu solusi, dengan menggunakan mesin inferensi yaitu forward chaining, selain itu sistem ini juga menggunakan suatu penalaran knowledge base yaitu penalaran rule-based reasoning.
Penelitian ini membahas tentang pendiagnosaan keadaaan bayi dalam kandungan yang menggunakan teknik inferensi forward chaining, yang memulai penalarannya mulai dari sekumpulan fakta-fakta menuju sebuah hipotesa (solusi). Sistem yang dikembangkan memberikan keleluasaan pada perekayasa pengetahuan untuk memasukkan himpunan aturan pada basis pengetahuan dan diperolehnya suatu solusi berdasarkan basis pengetahuan yang ada.