TETAP MAJU SAHABAT........dont alvance


petuah

petuah gt loch


Karena masalah bahasa pemrograman dimana-mana sering muncul, maka sebelum ada perang '..lagi...', mending bikin beberapa poin dulu, terutama buat newbie supaya tau apa yang dihadapi....

===
1. Any programming language can make games!!!
===
99% Bahasa pemrograman bisa digunakan untuk membuat game! Bahkan sampe ala dBase pun bisa digunakan untuk membuat text-based game! Jadi bahasa pemrograman apa pun pilihan kamu, itu bisa digunakan untuk membuat game. Ada 2 isu utama yg digunakan untuk memilih bhs pemrograman untuk game: performance dan grafik.
===

===
2. Any fast and graphical programming language can make a better games especially 2D games.
===
Untuk performance dan grafik, maka bahasa pemrograman apa pun yang bisa relatif 'cepat' dan relatif 'menampilkan grafik' itu bisa digunakan untuk membuat game sesuai dengan gamenya. Bikin game 2D, asal cepat, Visual Basic juga bisa. Delphi bisa bikin sekelas RPG, dsb. Untuk grafik (terutama 3D) yg lebih baik dan performance lebih kenceng, biasa butuh kompromi dengan library lain, yg mana paling dikenal ada DirectX dan OpenGL.
===

===
3. Any programming language with DirectX or OpenGL support is more appeal for nowadays games, you're ready for 3D and better performance.
===
Pilihan selanjutnya jatuh ke bahasa pemrograman yg memiliki hubungan baik dengan DirectX dan OpenGL. Meskipun native-nya keduanya adalah C/C++, tapi beberapa bahasa juga melakukan wrapping untuk library tersebut, termasuk C#, VB, Darkbasic, Java, dll. Selama bahasa pemrograman tersebut bisa membuktikan performance ygbaik untuk game yg mau kamu buat, pakai aja.. tidak ada masalah!!! It's a game anyway!!
===

Hop... itu di atas dasar2 yang digunakan dalam menentukan bahasa pemrograman. Feel free to choose.




Part 2


Part 2

Kalau memang feel free... kenapa harus C/C++?

===
Alasan 1: Industri Game dan Platform
===
Pilihan bahasa pemrograman ditentukan oleh mainstream industri dan platform. Di PC yang open system mungkin kita punya banyak pilihan meski mungkin itu semu. Semu karena pada mainstream industri tetap hanya menggunakan 1-2 bahasa saja untuk game.

Di platform tertutup seperti konsol, terlebih lagi tidak ada banyak pilihan. Sejauh ini hanya ada 2: C/C++ dan Java. Yang Java pun itu hanya untuk platform mobile.

Dengan arah penggunaan bahasa di industri yang terlihat jelas, jangan heran kalau semua library pendukung yang tidak hanya grafik seperti network, physics, tools, engine, mod, banyak menggunakan bahasa mainstream seperti C/C++.


===
Alasan 2: Open Standard
===
C/C++ merupakan open standard, ANSI. Bayangkan apabila si Sony mau bikin bahasa Delphi mungkin harus ijin ijin dulu ke Borland baru bisa dapet dukungan code-nya. Bahkan Java pun milik SUN, ngga tau harus ijin apa engga. Bandingkan dengan C/C++ yang open dan mudah didapat resource arsitekturnya. Bagaimanapun it's open dan punya sejarah yang lama hingga relatif solid, hanya tinggal modifikasi di bagian penerjemah machine code.

Jadi jangan heran kalo produsen konsol enggan berinvest macem-macem untuk mesin yang usianya sekitar 5 tahun-an. Bandingkan dengan PC yang arsitekturnya relatif tidak berubah, sekali bikin compiler susah-susah masih bisa dipake sampe kapan-kapan.




Penutup



Penutup

===
Penutup
===

Jadi...
Bahasa pemrograman apapun pilihan Anda selama bisa memenuhi kebutuhan game yang mau dibuat... be it!

Tapi...
Kalau ngomong soal game untuk industri game, pilihannya terbatas.
Kita hanya bisa memilih bukan menentukan sendiri. Yang pasti bahasa pilihan industri tentunya dianggap dapat memenuhi sebagian besar kebutuhan.

Maka...
Itu semua kembali ke tujuan masing-masing dalam menggeluti pengembangan game. Apakah ingin membuat game 'saja', atau ingin sekalian masuk ke industri. Pilihan di tangan masing-masing.






Reply With Quote
jon to or
Senior Member

dienw's Avatar

Join Date: Oct 2003
Location: otrokojom
Posts: 919


Sedikit tambahan diingatkan dari old pal o' mine:

Soal pilihan bahasa pemrograman, di samping soal teknis, bisa atau tidak dalam melakukan sesuatu tugas (grafik/performance), juga ada hal lain.

Memilih bahasa pemrograman bukan hanya masalah sintaks, atau baris perintah, tapi juga pola berpikir, konsep memrogram.

Seperti banyak orang mengambil konsep Object-Oriented (OO) karena lebih mudah dalam memodel simulasi dunia yang kompleks.

Kenapa banyak orang content dengan C/C++? Karena banyak orang merasa nyaman dengan kemampuannya (dan akal2an teknisnya) untuk menerjemahkan konsep-konsep pemrograman yang benar terutama hubungannya dengan OO. Belum ditambah performance dan library-library yang tersedia dalam bahasa ini. Ngga heran kan...

Buat yang ingin menggunakan OO dengan rasa lain, mungkin lebih sederhana/simpel, bisa mencoba bahasa2 lain seperti Java atau Delphi (gunakan secara OO). Yang penting bisa mengakomodasi kebutuhan untuk membuat game dan sesuai pertimbangan topik 2, game for fun.

Bila mereka yang lebih terbiasa dengan bahasa prosedural juga bisa memilih bahasa-bahasa lain, atau kalau di C++ itu adalah C.

Demikian,
pilihan bahasa pemorgraman tergantung dari poin-poin di atas plus kemampuannya dalam menerjemahkan konsep ke code. Hal ini terutama dalam arsitektur kompleks yang nampak ruwet dalam tahap ini.
__________________
\m/

pelajaran array

pelajaran array

In the last lesson we saw how to create simple variables and store user input in them. Now we will look into arrays. An array is simply a list of variables of the same type. Lets say your program required you to keep track of 100 integers, in which case you would have to create 100 integers by typing up each one, one by one... Needless to say that would take quite a while, but with arrays you can cut the typing down to one single line! Lets see how it works:
#include 

using namespace std;

int main(){

int myArray[3];

cout << "Enter a number: ";
cin >> myArray[0];

cout << "Enter a second number: ";
cin >> myArray[1];

myArray[2] = myArray[0]+myArray[1];

cout << "The sum is: " << myArray[2];

system("pause");

}

Here we have the same sample program from the previous lesson, except I replaced the three integers with a single array made up of three integers. "int myArray[3];" creates an array of three integers. Each integer inside this array will have a corresponding number, starting at 0. So in this case the three integers are myArray[0], myArray[1], and myArray[2]. Since 0 counts, there is not myArray[3]! Everything else is exactly the same.

You can also use arrays to store a string of text by creating an array of characters. Here you would make the array the max size of characters you want plus one, since strings must end the null character (null mean nothing, not 0, just nothing). We will look more into strings in a latter lesson though.

Two Dimensional Arrays
2D arrays work just like normal arrays except they have two numbers per variable. In order to declare one you would add an extra pair of brackets (int my2dArray[3][3]). Here is a graphical representation of a 2D array:
XXX
XXX
XXX

These will come in handy when you are programming graphics and animations, lets see an example program:
#include 

using namespace std;

int main(){

int myArray[10][10];
for (int i = 0; i <= 9; ++i){

for (int t = 0; t <=9; ++t){

myArray[i][t] = i+t; //This will give each element a value

}

}

for (int i = 0; i <= 9; ++i){

for (int t = 0; t <=9; ++t){

cout << myArray[i][t];

}

}

system("pause");

}

Ignore the for loops for now, we will look into those in the loops lesson. This program simply assigns a value to each element in myArray and then displays each one. As you can see there is not much difference between using normal arrays and 2d arrays.

FUNGTION

Functions are used to define a block of code, unlike the loops we discussed earlier, functions can be called from any place in your program so that you do not have to repeat the same code over and over again. Here is a basic function at work:
#include 

using namespace std;

int addNumbers( int a, int b){

return a+b;

}

int main(){

int a;
int b;

cout << "Enter a number: ";
cin >> a;

cout << "Enter an other number: ";
cin >> b;

cout << "Sum of the two numbers is: " << addNumbers( a, b) << "\n";

system("pause");

return 0;

}
Here we create a function called addNumbers, which returns an integer. main() collects the data from the user and then sends it to addNumbers(), notice how I declared the integers in both main() and addNumbers. This is because the ones in main() are local variables which cannot be touched by other functions. The parameters for addNumbers() does not have to be the same as the variables containing the values being sent to addNumbers(). Once addNumbers() is called, it takes the values given to it by main() and returns the sum of them to the function that called it, which in this case is main(). Also notice how addNumbers() goes before main(). If you flip them around it will error out. If a function is being called by a function that apears before it in your source file, it must be declared at before it is called. Here is an example of this:
#include 

using namespace std;

int addNumbers( int a, int b);

int main(){

int a;
int b;

cout << "Enter a number: ";
cin >> a;

cout << "Enter an other number: ";
cin >> b;

cout << "Sum of the two numbers is: " << addNumbers( a, b);

system("pause");

return 0;

}

int addNumbers( int a, int b){

return a+b;

}

ANIMATION

Animation
If you just finished reading the lessons listed before this one, you should check Tic-Tac-Toe in the "Example Games" section just to be sure you really understand whats going on. Now lets look more into making an object move across the screen. Here is some example code:
#include 
#include

int x = 100;
int y = 100;

int tempX = 100;
int tempY = 100;

int dir = 1; //This will keep track of the circles direction
//1= up and left, 2 = down and left, 3 = up and right, 4 = down and right

void moveCircle(){

tempX = x;
tempY = y;

if (dir == 1 && x != 20 && y != 20){

--x;
--y;

} else if (dir == 2 && x != 20 && y != 460){

--x;
++y;

} else if (dir == 3 && x != 620 && y != 20){

++x;
--y;

} else if (dir == 4 && x != 620 && y != 460){

++x;
++y;

} else {

dir = rand() % 4 + 1;

}

acquire_screen();
circlefill ( screen, tempX, tempY, 20, makecol( 0, 0, 0));
circlefill ( screen, x, y, 20, makecol( 128, 255, 0));
release_screen();

rest(10);

}

int main(){

allegro_init();
install_keyboard();
set_color_depth(16);
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);

while( !key[KEY_ESC]){

moveCircle();

}

return 0;

}
END_OF_MAIN();

Most of the code should look familliar aside from the new header file and the rand() function.

cstdlib contains the rand() function which is used to generate random numbers. In this case, it is used to change the direction of the circle.

Lets break down the code. main() get Allegro ready for action and then goes into a while loop which doesnt stop until the player presses ESC.

moveCircle() will add or subtract to x and y depending on the direction the circle is going in (which is stored in dir). If the circle has hit the top, bottom, or side of the screen, it will change direction.

dir = rand() % 4 +1; gives dir a random value between 1 and 4. rand() % 4 would return a random number between 0 and 3 ( 1 - 4) so we add 1 so we get a number between 1 and 4. If you wanted a number between 3 and 4 the code would be rand() % 2 + 3, since rand() % 2 would return either 0 or 1 so we would have to add 3. There will be more on the rand() function later. Afterwards, a black circle is drawn in order to cover up the old one, and then a green circle is drawn in the new position.

Fairly simple isn't it? But there is one problem with the example, which is the flickering! Needless to say a flickering video game would be quite annoying... Lets fix this.

Double Buffering
The answer to all the flickering? Double buffering. What this means is that instead of drawing straight to the screen, we will draw to a temporary bitmap and then have one call to a function which will draw it to the screen. Since this will reduce the amount of times the screen is being accessed, the animation should run smoother. Here is how its done:
#include 
#include

int x = 100;
int y = 100;

int tempX = 100;
int tempY = 100;

int dir = 1; //This will keep track of the circles direction
//1= up and left, 2 = down and left, 3 = up and right, 4 = down and right

BITMAP *buffer; //This will be our temporary bitmap for double buffering

void moveCircle(){

tempX = x;
tempY = y;

if (dir == 1 && x != 20 && y != 20){

--x;
--y;

} else if (dir == 2 && x != 20 && y != 460){

--x;
++y;

} else if (dir == 3 && x != 620 && y != 20){

++x;
--y;

} else if (dir == 4 && x != 620 && y != 460){

++x;
++y;

} else {

dir = rand() % 4 + 1;

}

acquire_screen();
circlefill ( buffer, tempX, tempY, 20, makecol( 0, 0, 0));
circlefill ( buffer, x, y, 20, makecol( 128, 255, 0));
draw_sprite( screen, buffer, 0, 0);
release_screen();

rest(10);

}

int main(){

allegro_init();
install_keyboard();
set_color_depth(16);
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);

buffer = create_bitmap( 640, 480);

while( !key[KEY_ESC]){

moveCircle();

}

return 0;

}
END_OF_MAIN();
There you have it, the flickering is no more! Here we create a bitmap called buffer and using create_bitmap() we make it the same size as the screen. After this, anywhere you would have normally used screen, use buffer instead ( circlefill ( buffer, tempX, tempY, 20, makecol( 0, 0, 0)); ). Once everything has been drawn, copy the buffer onto the screen and there you have it!

Animation
If you just finished reading the lessons listed before this one, you should check Tic-Tac-Toe in the "Example Games" section just to be sure you really understand whats going on. Now lets look more into making an object move across the screen. Here is some example code:
BARAKUDA

KALKULATOR SEDERHANA

cara buat kalkulator

First open VB, pilih standar exe,lalu buat form yg berisi 3 TextBox dan 3 Command Button ( kita buat yg sederhana aja ya, entar kembangin sendiri. PASTI BISA)
Tampilannya seperti ini Bos..
















Gambar 1.0: Form awal

Lalu ubah jadi kayak gini






Tunjukkan semua










Gambar: 2.0: Form yg telah di permak

(Tau kan cara buat form kayak gitu???)

Ni caranya kalo kalian lupa/ga tw.

Klik text1, trus di properti kalian hapus properti text, lakuin perlakuan yg sama ama text2 dan 3.

Trus cara ngrubah Command1 adalah pada properti Caption kalian hapus trus ganti pake tanda +, lakuin langkah yang sama untuk Command2 dan Command3.

Udah jadi kan kayak form di gambar 2.0

.

Oke kita lanjut ke penulisan code.

Klik 2 x pada Command1, dan ketik code di bawah ini di antara

Private Sub Command1_Click() dan End Sub

Kayak ini bos..

Private Sub Command1_Click()

hasil = Val(Text1) + Val(Text2)

Text3 = hasil

End Sub

Nah selesai deh untuk penjumlahan, kalian bisa coba jalankan program dan masukin angka di text1 dan text2 lalu tekan Command1. Benerkan hasilnya ??!!

Lakuin hal yang serupa pada Command2, klik 2 x trus kita hanya perlu mengubah tanda + menjadi * pada code programnya.

Kayak gini

Private Sub Command2_Click()

hasil = Val(Text1) * Val(Text2)

Text3 = hasil

End Sub

(Gampang kan, buat program ini gak susah kok)

Pada Command3 kita juga rubah tanda + menjadi -, beres deh..

Kayak gini

Private Sub Command3_Click()

hasil = Val(Text1) - Val(Text2)

Text3 = hasil

End Sub

Program kita udah jadi Bos.

FUZZY


Pendahuluan

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 Fuzzy

Keberhasilan 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):
  1. 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.
  2. Belum banyak terdapat kursus/balai pendidikan dan buku-buku teks yang menjangkau setiap tingkat pendidikan (undergraduate, postgraduate, dan on site training)
  3. Hingga kini belum ada pengetahuan sistematik yang baku dan seragam tentang metodologi pemecahan problema kendali menggunakan pengendali fuzzy.
  4. 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).

Kendali Fuzzy, Klasifikasi Fuzzy, dan Diagnosis Fuzzy

Aplikasi yang menggunakan logika fuzzy, selalu identik dengan pengendalian fuzzy. Walaupun sebenarnya aplikasi itu tergolong dalam klasifikasi fuzzy atau diagnosis fuzzy. Kejadian ini bukanlah masalah yang dominan dan pelik dalam sistem fuzzy, karena istilah "fuzzy" sebenarnya sudah kabur dan sering disamakan dengan istilah-istilah yang ada pada teori himpunan fuzzy, topologi fuzzy, atau dalam pengertian yang lebih sempit lagi sering disebut sebagai approximate reasoning dalam logika keputusan. Dengan cara pandang yang sama sistem kendali fuzzy sering sekali dinyatakan sebagai bagian teori himpunan fuzzy yang digunakan pada aplikasi-aplikasi dalam bentuk sistem lingkar tertutup. Namun tujuan utama tulisan ini adalah membedakan antara sistem kendali fuzzy dengan sistem klasifikasi fuzzy dan sistem diagnosis fuzzy. Pada ruang lingkup yang lebih luas lagi, masih ada sistem lainnya yang cukup sukses digunakan seperti sistem pakar fuzzy, sistem analisa data fuzzy, sistem pengolahan citra fuzzy, dan berbagai ragam aplikasi sistem fuzzy yang sudah ada.

Pada dasarnya penggunaan istilah klasifikasi dan diagnosis bukanlah merupakan penamaan yang baku, karena keduanya mempunyai pengertian atau makna yang hampir sama dan batas-batas perbedaannya juga tidak begitu jelas. Namun yang teramat penting adalah kedua istilah tadi menunjukkan perbedaan antara kedua sistem aplikasi berbasis logika fuzzy.

Gambar 1

Sistem fuzzy secara umum dapat dilihat pada Gambar 1. Pada gambar tersebut terdapat blok proses, sistem fuzzy, dan sistem pengembangan (development system). Pihak developer diletakkan paling atas pada gambar ini. Selain itu, terdapat dua operator, yaitu seorang yang bertanggung jawab atas masukan untuk sistem fuzzy dan keluaran dari proses, dan seorang lagi bertugas mambawa masukan ke dalam proses dan menentukan keluaran dari sistem fuzzy. Operator ini sebenarnya tidak mesti seorang operator manusia, biasanya sistem fuzzy atau non-fuzzy yang berfungsi mengantarkan masukan atau keluaran sinyal proses. Dari gambar ini dapat diturunkan beberapa sistem sistem fuzzy, seperti pengendali fuzzy, klasifikator fuzzy, dan sistem pendiagnosaan fuzzy.
Gambar 2
Sebuah kendali fuzzy yang digambarkan pada Gambar 2 merupakan suatu sistem lingkar tertutup, di mana tidak terdapat operator yang menjadi bagian dari sistem lingkar kendali (control loop). Contoh dari sistem kendali ini adalah vacuum cleaner. Sistem pada alat ini mengatur daya motor penghisap tergantung pada banyaknya debu di lantai atau karpet. Contoh lain dari sistem kendali fuzzy adalah optimisasi torsi dalam sistem anti slip yang digunakan kereta listrik dan sistem kereta bawah tanah. Masukan sistem kendali berupa kecepatan kereta dan koefisien resistansi rel.
Gambar 3
Pada sistem klasifikasi fuzzy (Gambar 3) tidak terdapat loop tertutup. Sistem ini hanya menerima masukan dan keluaran dari proses untuk selanjutnya memberikan informasi berupa kondisi (state) dari proses tadi. Informasi kondisi ini dapat digunakan untuk mmengendalikan sistem atau memberikan tanggung jawab kendali kepada operator. Secara matematis, sistem klasifikasi lebih dekat pada teori himpunan daripada teori fungsi. Pada sistem ini, sifat kesamaan (Vagueness) sering ditemui pada opini pakar dan jarang menggunakan model relasi fuzzy (4).

Contoh dari sistem klasifikasi fuzzy adalah mesin cuci fuzzy. Beberapa variabel/parameter mesin cuci ditentukan berdasarkan jumlah dan jenis pakaian. Keluaran atau informasi dari sistem klasifikasi ini digunakan untuk menentukan jenis spin-dry serta lembut atau kasar gesekan pakaian yang optimal. Contoh ke dua dari sistem fuzzy ini adalah sistem transmisi otomatik fuzzy. Sistem ini menggunakan beberapa sensor yang ditaruh pada sistem ABS, sistem power steering, sistem kendali motor, dan bagian penting lainnya. Selama kendaraan berjalan, sistem ini akan terus memantau dan menilai kondisi mobil tersebut, seperti beban kendaraan, kondisi mobil pada saat melewati jalan yang menanjak atau menurun dan kondisi-kondisi lainnya. Pada Gambar 3, gambar operator manusia pada kiri dan kanan sistem klasifikasi fuzzy, biasanya merupakan suatu sistem khusus yang bertugas memberikan informasi yang diperlukan untuk kemudian di proses.
Gambar 4
Pada sistem diagnosis fuzzy (Gambar 4) peranan manusia/operator lebih dominan. Pengiriman data dilaksanakan oleh operator ke dalam sistem, ketika sistem memerlukan data tambahan. Selain itu operator dapat meminta atau menanyakan informasi dari sistem diagnosis berupa hasil konklusi diagnosis atau prosedur detail hasil diagnosis oleh sistem. Dari sifat sistem ini, sistem diagnosis fuzzy dapat digolongkan pada sistem pakar fuzzy. Sistem pakar fuzzy adalah sistem pakar yang menggunakan notasi fuzzy pada aturan-aturan dan proses inferensi (logika keputusan). Salah satu kelebihan sistem pakar fuzzy dibandingkan sistem pakar konvensional adalah jumlah aturan lebih sedikit, sehingga sistem lebih transparan untuk dianalisa. Kekurangannya adalah kehandalan sistem sangat tergantung pada baik-buruknya proses pengumpulan aturan seperti prosedur pertanyaan dan komponen-komponen kuisioner, serta sering terjadi kesulitan untuk menyimpulkan suatu pernyataan tertentu oleh operator.

Bidang aplikasi sistem diagnosis ini biasanya suatu proses yang besar dan kompleks, sehingga sangat sulit dianalisa menggunakan algoritma eksak dan dimodelkan dengan model matematika biasa. Pada permulaan persiapan sistem, jumlah aturan yang digunakan ini biasanya sangat banyak. Namun pada tahap akhir, jumlah aturan akan lebih sedikit dan mudah dibaca. Ini merupakan sifat sistem pakar fuzzy, seperti yang dikatakan oleh Prof. Zadeh, bahwa sistem pakar fuzzy akan menggunakan aturan-aturan yang lebih sedikit dibandingkan sistem pakar konvensional sehingga mudah dibaca dan membantu menghindarkan inkonsistensi dan inkomplit sistem pengendali (4). Contoh dari sistem pakar fuzzy ini adalah proyek diagnosa kebocoran-H2 pada sistem pendingin high-performance generator. Salah satu contoh aturan sistem diagnostik ini adalah :

"Jika konsumsi H2 tinggi dan daya yang tersedia rendah dan suhu gas rendah dan tekanan H2 generator tidak rendah/menurun, maka tingkatkan konsumsi H2 (untuk menurunkan temperatur)"

Yang perlu diperhatikan pada sistem diagnostik ini adalah, tidak berlakunya proses defuzzifikasi, karena sistem ini hanya menghasilkan sifat keluaran berupa aproksimasi linguistik yang merupakan suatu pernyataan atau jawaban yang mudah dipahami oleh operator.

Kesimpulan

Teknologi sistem fuzzy telah berkembang cukup jauh, dan memberikan berbagai keuntungan dan perbaikan unjuk kerja pada sistem kendali yang pernah ada. Perkembangan sistem ini menuntut mutu sumber daya manusia yang berpendidikan, seperti ilmuwan dan enjineer yang ahli di bidang teknik sistem fuzzy dan tidak lepas dari kondisi pendidikan dan kelengkapan alat-alat yang mendukung pengembangan teknologi ini.

Di bidang aplikasi fuzzy, tidak hanya terdapat sistem kendali fuzzy, melainkan juga ada klasifikasi fuzzy dan diagnosis fuzzy. Jadi sistem fuzzy pada keadaan riil, mempunyai ragam metode dan strategi pengembangan yang dapat diterapkan pada masalah-masalah kendali saat ini.

Sumber Pustaka

  1. Bartos, Frank J., Fuzzy Logic is Clearly Here to Stay, McGraw-Hill Pub. Control engineering, Juli 1992
  2. Duda, Walter H. Dipl-Ing., Cement-Data-Book, Vol. 2 Bauverlag Gmbh. Weisbaden Und Berlin, 1991.
  3. Erdman, Denise., Fuzzy Logic more than a play on words, Chemical Engineering, McGraw-Hill Pub, 1993.
  4. Hellendoorn, Hans dan Palm, Rainer., Fuzzy system technologies at Seimens R & D, Fuzzy Sets and System 63, North-Holland, 1994.q

tak berjudul

Kami memang mahasiswa kurang mampu,tapi bkn bearti otak kami kurang mampu.Jika saja kampus kami mampu(lengkap/lumayan lah)mungkin kita ta'kan bernasip seperti ini.Lalu pantaskah kami yang disalahkan jika kami menuntut hak2 kami...???Kami ibarat "BAYI PREMATUR".Bayi yg hny di suapi dgn janji2 palsu,mana bisa sehat,ditelantarkan oleh orang tua.Kita tak ingin adik2 kami bernasip serupa.Kita sdh cukup menderita,cukup kami saja yg jadi KELINCI PERCOBA'AN...!!!!!!
Kami MBB,sudah ckup menderita...FIGHT TO FREEDOM!!!!