Dosen adalah pendidik profesional dan ilmuwan dengan tugas utama mentransformasikan, mengembangkan, dan menyebarluaskan ilmu pengetahuan, teknologi melalui pendidikan, penelitian, dan pengabdian kepada masyarakat (Permendikbud 49/2014 Pasal 1:14)

Sekolah Tinggi Teknologi Garut

Diselenggarakan mulai tahun 1991 dan bernaung di bawah Yayasan Al-Musaddadiyah. http://www.sttgarut.ac.id/

Program Studi Teknik Informatika

Berdiri pada tanggal 30 Juni 1998 dan terakreditasi B. http://informatika.sttgarut.ac.id/

Rinda Cahyana

Dosen PNS Kementrian Riset, Teknologi, dan Pendidikan Tinggi, dpk Sekolah Tinggi Teknologi Garut sejak tahun 2005

Sabtu, 21 Juni 2008

Selamat Hari Muslimah

Tanggal 20 Jamadi-ul-Sani ini merupakan hari lahirnya Hazrate Fatemeye Zahra, puteri Rasululloh SAW. Ini merupakan hari Muslimah di dunia Islam. Selamat hari Muslimah bagi semua Muslimah di dunia ini, Semoga dengannya Muslimah dapat lebih memainkan perannya sebagai pengelola Rumah Tangga yang handal dan menjadi tiang bagi Negara dengan kemampuannya dalam mendidik generasi penerus bangsa. Amien



Semoga menjadi Ummi yang dapat mendidik anak sebaik-baiknya



Semoga hak-haknya dipenuhi oleh semua negara

Sabtu, 14 Juni 2008

Bahasa Permograman Semesta Raya

Sesungguhnya dalam penciptaan langit dan bumi, silih bergantinya malam dan siang, bahtera yang berlayar di laut membawa apa yang berguna bagi manusia, dan apa yang Allah turunkan dari langit berupa air, lalu dengan air itu Dia hidupkan bumi sesudah mati (kering) -nya dan Dia sebarkan di bumi itu segala jenis hewan, dan pengisaran angin dan awan yang dikendalikan antara langit dan bumi; Sungguh (terdapat) tanda-tanda (keesaan dan kebesaran Allah) bagi kaum yang memikirkan. (Q.S.2:164)

Seandainya anda ditanya tentang manakah dari sejumlah bilangan dari 0 sampai 1 juta yang terkecil, maka sepontan anda akan menjawab 0. Jawaban anda berdasarkan pengalaman. Karena dulu anda pernah mendengar bahwa 0 adalah bilangan lebih kecil dari 1, dan 1 lebih kecil dari 1 juta. Anda bahkan pernah melihat bagaimana angka diurutkan dari 0 sampai angka tertentu.

Saat anda dihadapkan pada tuntutan untuk membuat agar komputer dapat menjawab persis seperti jawaban anda tadi, maka tantangannya banyak. Anda tahu bahwa posisi komputer saat diberi pertanyaan akan seperti saat anda tidak tahu bilangan dan urutannya dari yang terkecil hingga terbesar. Anda dituntut untuk mencari tahu bagaimana dalam waktu yang singkat, komputer memiliki kemampuan membedakan angka yang anda peroleh dulu berbulan-bulan bahkan mungkin bertahun-tahun.

Hingga kemudian anda melirik kepada kemampuan logika komputer yang ada berkat komponen Aritmatic and Logic Unit pada CPU-nya. Dengan kemampuan logikanya, komputer bisa menjawab benar (ada arus listrik) dan salah (tidak ada arus listrik) terhadap operasi logika X <> Y. Dan dengan kemampuannya untuk menjawab benar dan salah, maka ada harapan bagi komputer untuk dapat segera memiliki kemampuan membedakan angka.

Selanjutnya anda mengambil sample angka yang akan diurutkan, misalnya: 7, 2, 9, 0, 1. Anda berfikir tentang bagaimana anda bisa menyimpulkan bahwa 9 itu lebih besar dari yang lainnya. Hingga akhirnya anda mengetahui bahwa salah satu cara untuk mengetahuinya adalah dengan membandingkan angka pertama dengan angka lainnya.

iterasi ke-1 : Max = 7
iterasi ke-2 : 7>2, maka Max tetap 7
iterasi ke-3 : 7<9>0, maka Max tetap 9
iterasi ke-5 : 9>1, maka Max tetap 9.

Setelah semua angka dibandingkan, diketahui Max atau bilangan terbesar adalah 9.

Kemudian anda merumuskan prosesnya dalam bentuk algoritma sebagai berikut:

1. Tetapkan sejumlah angka yang akan dikenali
2. Tetapkan angka terbesar adalah angka yang pertama (atau angka urutan acak)
3. Bandingkan angka terbesar dengan angka-angka berikutnya
3.1. Apabila angka yang dibandingkan lebih besar dari angka terbesar, maka tetapkan angka yang dibandingkan sebagai angka terbesar.
4. Tampilkan di layar angka terbesar.

Dengan pengetahuan Bahasa Pemrograman Pascal dan Struktur Data, kemudian algoritma tersebut dikodekan sehingga diperoleh :

uses Crt;
var Data : array [word] of word; i,Max:word;
begin
Data[1]:=7;
Data[2]:=2;
Data[3]:=9;
Data[4]:=0;
Data[5]:=1;
Max:=Data[1];
for i := 1 to 5 do
if Data[i]>Max then Max:=Data[i];
writeln(Max];
end.

Setelah dikompilasi oleh kompilator Pascal, dan dijalankan, komputer memberikan hasil yang sama dengan anda, bahwa bilangan terbesar adalah 9. Jika anda ubah angkanya, komputer masih akan menjawab dengan jawaban yang benar. Kemudian anda penasaran dan ingin agar komputer mengidentifikasi angka terbesar dari 10 angka yang diberikan secara acak dengan program berikut ini:

uses Crt;
var Data : array [word] of word; i,Max,ulang:word;label 1;
begin
Randomize;
1:
Clrscr;
Write('Angka : ');
for i:=1 to 10 do
begin
Data[i]:=Random(1000);
write('Data ke-',i,' = ',Data[i]);
end;
writeln;
Max:=Data[1];
for i := 1 to 10 do
if Data[i]>Max then Max:=Data[i];
writeln('Angka terbesar: ',Max];
write('Pilih 1 untuk mengulang, selainnya untuk keluar dari program. Pilihan anda ? ');
readln(ulang);
if ulang=1 then goto 1;
end.

Anda meyakini setelah berulang-ulang dicoba, hasilnya komputer selalu memberi jawaban yang benar. Artinya anda berhasil menerjemahkan proses dalam fikiran anda ke dalam kode program, yang kemuidan dengan bantuan kompiler akhirnya komputer mewarisi kecerdasan anda melalui perangkat lunak.

Kode program adalah bentuk sederhana dari program yang ada dalam benak anda.

Saat anda merumuskan pemecahan masalah, sesungguhnya anda tengah membedah program pemecahan masalah dari otak anda. Anda telusuri fikiran untuk mendapatkan detail urutan dari program tersebut. Selanjutnya fikiran tersebut diterjemahkan dengan bahasa natural (algoritma). Dengan merujuk kepada algoritma anda kemudian menerjemahkannya ke dalam bahasa pemrograman komputer.

Program di otak anda -> analisa program melalui media fikiran -> diterjemahkan ke dalam algoritma dan model -> dikode dengan menggunakan bahasa pemrograman komputer untuk mendapatkan program komputer.

Dari urutan proses di atas maka wajarlah jika disebutkan bahwa kecerdasan programmer diturunkan kepada Komputer melalui perangkat lunak yang dibuatnya. Itu apabila algoritma dibuat oleh programmer. Kalau desainer yang membuatnya, maka desainerlah yang telah menurunkan kecerdasan itu, dan programmer /coder yang menerjemahkan desain adalah orang yang menjadi pembentuk kecerdasan tersebut pada komputer. Atau dengan kata lain, kecerdasan komputer adalah sebagian dari kecerdasan perancangnya yang diwujudkan pada komputer oleh coder nya.

Sesungguhnya komputer adalah ayat-ayat kebesaran Alloh yang dapat dijadikan jalan bagi manusia untuk menyaksikan kekuasaan dan kehebatan Alloh dalam mendesain, mengkode (menciptakan), dan menjaga Semesta Raya beserta isinya.

Saat anda mengalami proses pemahaman, maka secara tidak sadar terbangun program di dalam benak anda sehingga tingkat kecerdasan anda bertambah. Dan baru saja anda menggambarkan bagaimana bentuk program itu dengan bahasa pemrograman komputer.

Manusia sekarang berhasil merumuskan berbagai proses yang terjadi di alam. Sekalipun rumus tersebut bersifat nisbi, tetapi cukup logis dan dapat membuat sesuatu yang dijalankan dengan rumus tersebut berakhir seperti umumnya kejadian. Maka seharusnya anda meyakini, bahwa semesta raya inipun bergerak dengan program yang telah dibuat oleh Tuhan Yang Maha Pencipta. Dialah Sang Programmer semesta raya.

Alloh SWT memprogram mahluknya dengan Voice Command Programming. Dan hebatnya, semua ragam ciptaan-Nya itu hanya cukup diwakili oleh perintah "Jadilah". Selanjutnya development tool yang dimiliki oleh Aloh (termasuk para Malaikat yang menjadi bagian dari development tool tersebut) mengkode sesuai dengan desain yang telah ditetapkan-Nya. Perhatikan ayat berikut ini: "Allah Pencipta langit dan bumi, dan bila Dia berkehendak (untuk menciptakan) sesuatu, maka (cukuplah) Dia hanya mengatakan kepadanya: Jadilah. Lalu jadilah ia." (Q.S.2:117). Semesta raya ini adalah sistem tempat munculnya produk pemrograman Alloh SWT, seperti manusia, jin, malaikat, planet, dan lain sebagianya. Bagi manusia, sistem itu adalah komputer dan produknya adalah perangkat lunak.

Dalam kasus penciptaan manusia, Alloh mendesain takdir manusia berikut programnya, Kemudian mendokumentasikannya di dalam Lauhil Mahfuz dengan menggunakan pena-Nya. Malaikat yang merupakan bagian dari development tool difungsikan-Nya sebagai komponen yang meletakkan program tersebut dalam diri manusia sehingga manusia memiliki karakter, kelebihan, kekuarangan, jalan hidup, dan akhir sesuai dengan programnya dan kecerdasannya. Setelah manusia tercipta dan mewarisi programnya, setiap pergerakannya dipantau dan dicatat oleh para malaikat dalam database-Nya. Record amal manusia yang terdapat dalam database tersebut kemudian dievaluasi saat Yaumil Hisab dan menentukan apakah ciptaannya akan dimuliakan-Nya dengan karunia Syurga dan wajah-Nya, atau dibuang ke dalam Neraka. Alloh menggunakan integrated development luar biasa yang meliputi alat desain, dokumentasi, pembangun kode, pemantau, pencatat trace, dan pembangun report evaluasi ciptaan-Nya.

Produk pemrograman Alloh SWT tidak hanya sebatas wujud saja, tapi juga sifat atau karakteristik dari produk tersebut. Hal tersebut sebagaimana firman Alloh SWT, "Maka tatkala mereka bersikap sombong terhadap apa yang mereka dilarang mengerjakannya, Kami katakan kepadanya: Jadilah kamu kera yang hina" (Q.S.7:166) Di dalam bahasa permograman visual kita juga melakukan hal yang seperti itu, yakni membangun antarmuka end-user dengan komponen yang tersedia, dan menuliskan kode pada modul berbasis kejadian pada komponen tertentu untuk menghasilkan kelakuan dari sistem (perangkat lunak) yang dibuat.

Sebagian dari produk programming Alloh SWT merupakan produk cerdas yang dapat ditingkatkan kemampuannya dengan pemrograman berikutnya atau dengan pengalaman prosesnya. Di dunia pemrograman produk tersebut dikenal sebagai Artificial Intelligence. Seperti misalnya manusia; Setelah diciptakan, kecerdasannya meningkat begitu Alloh memberitahukan nama-nama benda di Syurga. Perhatikan bagaimana perkembangan manusia setelah kecerdasannya bekerja: "Allah berfirman: Hai Adam, beritahukanlah kepada mereka nama-nama benda ini. Maka setelah diberitahukannya kepada mereka nama-nama benda itu, Allah berfirman: Bukankah sudah Ku katakan kepadamu, bahwa sesungguhnya Aku mengetahui rahasia langit dan bumi dan mengetahui apa yang kamu lahirkan dan apa yang kamu sembunyikan?" (Q.S.2:33) Firman-Nya "sesungguhnya Aku mengetahui rahasia langit dan bumi dan mengetahui apa yang kamu lahirkan dan apa yang kamu sembunyikan" merupakan fakta bahwa selain coder, Alloh SWT adalah juga seorang tester yang memiliki test case atau kemampuan code review luar biasa, dan penguasaan-Nya yang menyeluruh terhadap algoritma dan makna semantik dari code yang dituliskan-Nya dalam penciptaan mahluk-Nya.

Alloh SWT telah mengkode semua proses sehingga setiap bagian dari semesta raya ini berjalan sesuai dengan algoritma yang telah ditentukan-Nya. Beginilah algoritma level konteks pemrograman Alloh terhadap manusia yang dipaparkan-Nya di dalam al-Qur'an: "Hai manusia, jika kamu dalam keraguan tentang kebangkitan (dari kubur), maka (ketahuilah) sesungguhnya Kami telah menjadikan kamu dari tanah, kemudian dari setetes mani, kemudian dari segumpal darah, kemudian dari segumpal daging yang sempurna kejadiannya dan yang tidak sempurna, agar Kami jelaskan kepada kamu dan Kami tetapkan dalam rahim, apa yang Kami kehendaki sampai waktu yang sudah ditentukan, kemudian Kami keluarkan kamu sebagai bayi, kemudian (dengan berangsur-angsur) kamu sampailah kepada kedewasaan, dan di antara kamu ada yang diwafatkan dan (ada pula) di antara kamu yang dipanjangkan umurnya sampai pikun, supaya dia tidak mengetahui lagi sesuatupun yang dahulunya telah diketahuinya. Dan kamu lihat bumi ini kering, kemudian apabila telah Kami turunkan air di atasnya, hiduplah bumi itu dan suburlah dan menumbuhkan berbagai macam tumbuh-tumbuhan yang indah." (Q.S.22:5) "Kemudian air mani itu Kami jadikan segumpal darah, lalu segumpal darah itu Kami jadikan segumpal daging, dan segumpal daging itu Kami jadikan tulang belulang, lalu tulang belulang itu Kami bungkus dengan daging. Kemudian Kami jadikan dia makhluk yang (berbentuk) lain. Maka Maha Suci lah Allah, Pencipta Yang Paling Baik. "(Q.S.23:14)

Detail dari tahapan algoritma level kontek tidak diterangkan oleh Alloh dalam al-Qur'an, namun beberapa diantaranya Alloh karuniakan kepada manusia sekalipun belum cukup detail melalui proses berfikir akan mahluk-Nya. Terkadang Alloh mengungkapkan detailnya melalui kejadian alam, seperti kasus jatuhnya buah apel yang melahirkan hukum grafitasi Newton. Alloh mengajari manusia dengan mahluk ciptaan-Nya yang lain untuk mengungkapkan sub algoritma dari algoritma level konteks. "Kemudian Allah menyuruh seekor burung gagak menggali-gali di bumi untuk memperlihatkan kepadanya (Kabil) bagaimana dia seharusnya menguburkan mayit saudaranya. Berkata Kabil: Aduhai celaka aku, mengapa aku tidak mampu berbuat seperti burung gagak ini, lalu aku dapat menguburkan mayit saudaraku ini? Karena itu jadilah dia seorang di antara orang-orang yang menyesal."(Q.S.5:31)

Dalam pemrograman komputer, dikenal input - proses - output. Proses merupakan serangkaian rumus yang akan menentukan bentuk output, karakter dan ukurannya. Sang Maha Programmer menetapkan ukuran dalam produk pemrogramannya, sebagaimana firman-Nya: " Dan Kami telah menghamparkan bumi dan menjadikan padanya gunung-gunung dan Kami tumbuhkan padanya segala sesuatu menurut ukuran." (Q.S.15:19) Apa yang tumbuh pada bumi dan gunung-gunung adalah output, sementara bumi dan gunung-gunung adalah sistem produk programming-Nya. Dalam ayat tersebut tidak dikemukakan apa yang menjadi inputnya. Tapi kemudian setelah manusia diberi pengetahuan oleh Alloh, sejumlah kecil input dari produk tersebut diketahui, seperti benih, air, kandungan mineral dalam tanah, dan lain sebagainya.

Ayat lainnya, "Dan tidaklah Kami ciptakan langit dan bumi dan apa yang ada di antara keduanya, melainkan dengan benar. " (Q.S.15:85) menunjukkan bahwa mahluk yang tercipta adalah produk programming yang sempurna. Yang lebih hebat lagi, sekalipun Alloh memiliki test case atau dapat melakukan code review, tapi produk tersebut tercipta tanpa melalu proses review berkat Kemahasempurnaan Ilmu-Nya. Inilah yang membedakan antara programmer manusia dengan Yang Maha Pencipta. Manusia memerlukan life cicle software engineering yang meliputi: analisa, desain, coding, dan testing. Sementara Rabb life cicle creatures engineering-Nya hanya meliputi desain (sebagai referensi malaikat) dan coding dan dilakukan hanya dengan sekali tindakan dengan Speech Command Programming.

Walau sesingkat itu, namun dalam proses programmingnya Alloh menetapkan tujuan dan waktu implementasi yang jelas, sebagaimana tersebut dalam firman-NYa, "Dan mengapa mereka tidak memikirkan tentang (kejadian) diri mereka?, Allah tidak menjadikan langit dan bumi dan apa yang ada di antara keduanya melainkan dengan (tujuan) yang benar dan waktu yang ditentukan. Dan sesungguhnya kebanyakan di antara manusia benar-benar ingkar akan pertemuan dengan Tuhannya." (Q.S.30:8) Penetapan waktu programming ini dikenal di kalangan programmer, seperti misalnya diimplementasikannya program begitu instrumen pendukungnya tersedia di pasaran atau market siap menerimanya dengan tujuan meningkatkan versi produk, merubah cara kerja pengguna, melengkapi produk sebelumnya, meningkatkan prestise software house, monopoli dagang, dan lain sebagainya.

Sebenarnya Alloh mampu menciptakan sesuatu tanpa perlu dibatasi waktu, seperti misalnya ruh dan takdir manusia. Tetapi Alloh ingin memfungsikan integrated development yang diciptakan-Nya, yang karena keterbatasan ciptaan-Nya tersebut kemudian beberapa ciptaan-Nya diciptakan dalam waktu tertentu, seperti misalnya penciptaan langit dan bumi, penciptaan dan pembangkitan manusia. Jadi adanya tenggang waktu penciptaan itu semata-mata karena keterbatasan integrated development yang diciptakan-Nya dan bukan karena kelemahan Alloh SWT. Alloh melebarkan waktu penciptaan tersebut untuk tujuan yang tidak sia-sia, yang salah satu tujuannnya agar menjadi ayat kebesaran-Nya bagi seluruh mahluk-Nya.

Alloh adalah Programmer bagi alam semesta dan mahluk di dalamnya, sebagaimana firman-Nya: "Dan kepunyaan-Nyalah siapa saja yang ada di langit dan di bumi. Semuanya hanya kepada-Nya tunduk." (Q.S.30:26) Semuanya tunduk kepada Alloh karena Allohlah yang mencode mereka. Alloh yang menetapkan proses bagi mahluk-Nya sehingga tidak ada satupun mahluk yang dapat keluar dari rencana dan kekuasaan-Nya. Secerdas apapun mahluk ciptaan-Nya, Alloh mengetahui apa yang akan dipelajarinya dan apa yang akan terjadi padanya di masa depan. Jika manusia menggunakan perangkat simulator yang dijalankan pada super computer untuk mengetahui perkembangan berikutnya dari program yang dibuatnya, Alloh tidak memerlukannya. "Sesungguhnya Allah mengetahui yang tersembunyi di langit dan di bumi. Sesungguhnya Dia Maha Mengetahui segala isi hati." (Q.S.35:38) "Dialah Yang Awal dan Yang Akhir, Yang Lahir dan Yang Batin; dan Dia Maha Mengetahui segala sesuatu." (Q.S.57:3)

Rabb adalah Programmer Sejati

Maka tidak ada alasan sedikitpun yang dapat digunakan oleh seorang programmer untuk membanggakan dirinya di hadapan Sang Pencipta, Alloh SWT. Dan Universe Coder menciptakan mahluk dan programnya menggunakan metode rekayasa luar biasa dalam Integrated Development yang sangat sempurna, sehingga produk yang dicpita-Nya tidak memiliki cacat dan tidak tersia-sia.

Proses penciptaan dan ciptaan-Nya itu memberi manfaat bagi ciptaan-Nya dan tidak menambah sedikitpun kemanfaatan bagi diri-Nya. Maha Suci Alloh, Programmer Semesta, Yang Maha Berkehendak, Berkuasa, dan Berilmu dengan Bahasa Pemrograman Sementa Rayanya berikut Integrator Developmennya, Yang Maha Indah dan Sempurna segala produk ciptaan-Nya, yang tidak memerlukan paten atas produk-Nya karena tidak akan ada satupun yang dapat menandingi-Nya, segala pujian bagi-Nya.