Sabtu, 08 Mei 2010

HARD COMPUTING


Hard Computing atau Komputasi Keras, mungkin diantara kita banyak yang kesulitan menemukan definisi dari istilah tersebut. Penulis sendiri cukup kesulitan mencari definisi dari hard computing ini. Namun setelah memahami definisi soft computing—yang merupakan kebalikan dari hard computing dan saat ini lebih popular, penulis mulai memahami arti dari hard computing ini.

Mari kita coba pahami dulu definisi dari soft computing. Wikipedia mendefinisikan soft computing sebagai salah satu bidang komputasi yang menggunakan solusi non-eksak untuk memecahkan perhitungan yang sangat kompleks seperti identifikasi DNA dalam bidang biologi, atau penemuan bintang dalam bidang astronomi.

Solusi non-eksak adalah suatu metode pemecahan masalah yang hasilnya tidak pasti benar namun diharapkan mendekati hasil seharusnya. Metode non-eksak seperti Artificial Neural Network atau Fuzzy Logic banyak digunakan karena banyak permasalahan saat ini sangat sulit—jika tidak dikatakan mustahil—untuk dipecahkan dengan solusi eksak. Algoritma diatas dapat menghasilkan keluaran yang mungkin berbeda dengan apa yang dibayangkan pembuatnya. Namun hal itu belum tentu salah, karena biasanya aplikasi yang menerapkan algoritma tersebut digunakan untuk membantu pengambilan keputusan.

Berbeda dengan soft computing, hard computing menggunakan metode eksak untuk memecahkan masalah komputasi. Metode eksak disini adalah algoritma statis yang hasilnya harus selalu sama dengan prediksi yang dilakukan manusia sebelumnya, jika tidak maka algoritma tersebut dianggap gagal. Biasanya hard computing digunakan pada aplikasi yang menghasilkan keluaran sama namun dilakukan berulang (looping).

Dibawah ini adalah contoh kode dalam bahasa pemrograman BASIC yang dapat dikatakan sebagai hard computing :
DIM I AS INTEGER
BEGIN
                  FOR I = 1 to 100 DO
PRINT I
                                NEXT I
END

Jika di-compile menggunakan BASIC, kode diatas akan mencetak nilai 1 hingga 100 di monitor anda. Sekilas fungsi dari program diatas patut dipertanyakan. Namun program berbasis hard computing tersebut ternyata  bisa sangat berguna, misalnya sebagai counter untuk proses lain, atau digunakan untuk membuat nomor urut. Kode diatas dinamakan hard code dan proses pembuatannya biasa disebut dengan hard coding.

Definisi hard coding dari Wikipedia.org adalah “proses pengembangan perangkat lunak yang proses input dan konfigurasi datanya ada dalam kode sumber, sehingga tidak dimungkinkan bagi aplikasi untuk mendapatkan data dari sumber luar. Dengan kata lain aplikasi hanya dapat memproses dan menghasilkan output dari data yang dimilikinya”. Istilah hard code dikemukakan oleh R. Galichon—seorang programmer dan analis perusahaan Mobil—pada tahun 1990. Istilah ini digunakan sebagai analogi untuk hardwiring-circuit dan dimaksudkan untuk mengirimkan hasil yang tidak fleksibel dari penggunaan desain dan implementasi perangkat lunak.

Sekilas terlihat bahwa program yang dikembangkan dengan  hardcoding tidak berguna. Namun fungsi program ini ternyata sangat penting. Hard code biasa digunakan dalam low level program, artinya fungsi dari program ini berhubungan langsung dengan perangkat keras dan inti system operasi (kernel). Program-program yang membangun kernel system operasi, haruslah cepat sehingga penggunakan program yang rumit namun lambat sangat tidak disarankan. Ini adalah salah satu kelebihan hard computing.

Implementasi hard computing juga sering digunakan dalam Hak Kekayaan Intelektual, khususnya untuk mencegah pembajakan aplikasi perangkat lunak. Banyak perusahaan menawarkan aplikasi percobaan bagi pengguna yang ingin mencoba aplikasi yang dibuatnya. Versi percobaan memiliki beberapa keterbatasan dibandingkan versi berbayarnya, seperti waktu penggunaan yang dibatasi, fitur-fitur yang dikurangi, atau kewajiban untuk selalu terhubung ke internet setiap menggunakan aplikasi tersebut.

Hard code dapat diterapkan dalam aplikasi percobaan. Contohnya kode counter yang menghitung berapa kali suatu aplikasi digunakan. Jika telah mencapai batas tertentu, maka aplikasi tersebut tidak dapat digunakan lagi. Kode ini dapat dimasukan langsung kedalam kode sumber. Pembajak akan kesulitan meng-crack aplikasi karena kode counter ini ikut terkompilasi bersama aplikasinya. Pengguna bisa mendapatkan aplikasi yang bebas kode counter ini, namun tidak gratis tentunya.

Kelebihan lain dari hard computing adalah kemudahannya. Selama kita tahu apa yang ingin kita buat, memiliki algoritma untuk pengembangannya, dan dengan pengetahuan tentang pemrograman secukupnya, kita dapat membuat aplikasi yang diinginkan dengan mudah. Dapat dibayangkan betapa sulitnya belajar pemrograman jika aplikasi pertama yang harus anda buat adalah AI yang dapat membalas chatting teman anda di Facebook. Itulah mengapa aplikasi pencetak “Hello World” selalu jadi favorit programmer.

Sumber :
http://en.wikipedia.org/wiki/Hard_coding
http://en.wikipedia.org/wiki/Soft_Computing

1 komentar:

Anonim mengatakan...

jadi, hard-code sama perfect-code tu beda ya mas?

Posting Komentar