FLOPS dan Floating Point, Apakah Itu?? (Bagian 1)

Posted: December 15, 2009 in Bermain-main Angka & Matematika
Tags: , , , , , ,

Bagi anda yang sedang mencari-cari VGA card baru untuk PC anda, tentu anda kenal istilah ini: FLOPs. Singkatan dari FLoating-point OPeration per Second. Bagi Anda programmer yang menggunakan Bahasa C atau Java, anda juga mungkin sudah familiar dengan istilah Floating Point (Saya rasa, programmer Java dan Game Developer tidak perlu membaca tulisan ini, karena mereka tentunya jauh lebih paham tentang topik ini daripada saya). Anyway, apakah Floating Point dan FLOPs itu???

ATI RADEON HD 5970. Graphic Processing Unit (GPU / VGA Card) tercepat saat ini dengan kecepatan kalkulasi hingga 4.64 TeraFLOPS (Single Precision)

Kalau anda pernah belajar Matematika/Fisika Dasar waktu SMU atau kuliah dulu, anda tentu ingat ada materi tentang Aturan Angka Penting. Saya tidak ingin bertele-tele. Mari langsung contoh saja.

0,150 x 0,150 = 0,0225

Tapi tunggu dulu. Kedua pengali, yaitu angka 0.150 hanya memiliki tiga angka penting saja. Karena itu, hasilnya pun harus dituliskan sampai tiga angka penting saja. Jadi:

0.150 x 0.150 = 0.023

Itulah kurang lebih operasi numerik (dan juga operasi komputasional) bila didasarkan pada angka biasa (dalam hal ini kita menyebutnya Fixed Point). Dalam kasus komputasional, sebenarnya bukan Aturan Nilai Penting yang menyebabkan hilangnya digit dalam perhitungan di atas. Dalam komputasi, hal ini disebabkan oleh  ketidakmampuan system untuk menampilkan seluruh angka. Ketidakmampuan ini disebabkan karena titik desimal (yaitu simbol “.” atau “,” dalam sistem aljabar di Indonesia) sudah ditetapkan pada posisi tertentu.

Dalam kasus di atas, posisi koma desimal ditetapkan pada satu digit sesudah angka pertama:

0,15

0,0225

Dan karena hanya tiga angka yang bisa muncul, maka mau tidak mau digit terakhir tidak bisa ditampilkan.

0,022 5 menjadi     0,023

Untuk satu operasi di atas, sepertinya tidak menjadi masalah, karena nilai yang dihapus juga kecil. Tapi bagaimana kalau hasil operasi di atas digunakan untuk operasi berikutnya?? Bagaimana kalau nanti angka 0,0225 akan digunakan untuk perhitungan lainnya, katakanlah untuk dikalikan dengan 10.000?

0,0225 x 10.000 = 225

0,023    x 10.000 = 230

Selisihnya menjadi cukup besar bukan??? Bagaimana kalau hasil ini digunakan untuk operasi berikutnya. Dan seterusnya dan seterusnya… Maka satu deviasi kecil akan berpengaruh besar pada keseluruhan operasi.

Untuk mengatasinya, maka dibuatlah sistem Floating Point.

Yaitu sistem angka dimana titik atau koma desimal bisa floating “mengambang” atau berpindah2 tempat. Menggunakan sistem floating point, operasi di atas bisa dikalkulasi sebagai berikut.

Tidak ada angka yang hilang bukan??

Mungkin untuk melihat lebih jelas bedanya, saya berikan contoh lagi.

Katakanlah, untuk sebuah komputasi, nilai dari angka yang digunakan dinyatakan dalam 8 digit angka. Aturannya: posisi koma desimal selalu berada di tengah-tengah (sesudah digit keempat). Ingat aturan kita untuk simulasi ini: semua angka dinyatakan dalam 8 digit angka, dengan posisi koma desimal tepat sesudah digit keempat!!

Misalnya ada string atau pernyataan angka 00000150. Dalam sistem kita dengan aturan di atas, pernyataan atau string angka tersebut adalah sama dengan 0.0150. Kalau kita kuadratkan, berapa hasilnya?? Hasil sebenarnya adalah 0.000225. Tapi, karena aturan komputasi kita, kita hanya bisa menampilkan 8 digit saja. Terlebih lagi, koma desimal diletakkan di digit keempat. Artinya, hasil perhitungan di atas hanya bisa dinyatakan sebagai: 00000002

Begini:

Kalkulasi Manusia     : 0.0150 x 0.0150 = 0.000225

Kalkulasi Komputer : 00000150 x 00000150 = 00000002

Anda lihat?? Dua digit terbuang. Hilang begitu saja.

Itu untuk angka kecil.

Bagaimana dengan angka besar?? Kita coba dengan aturan komputasi yang sama, mari kita lakukan perkalian 150 x 150. Ingat aturannya: Angka dinyatakan dalam 8 digit dan koma desimal diletakkan ditengah-tengah sesudah digit keempat)

Kalkulasi Manusia     : 150 x 150 =22500

Kalkulasi Komputer : 0150000001500000 = ERROR

Lho koq bisa error???

Ya iya lah. Karena hasil yang hendak ditampilkan berada di luar rentang kemampuan komputasi. hasilnya khan 22500. Sedangkan Komputasi hanya bisa menampilkan maksimum 9999,9999. Bingung???

Angka maksimum yang bisa dihitung maupun ditampilkan oleh sistem kita adalah: 9999,9999. Yang dinyatakan dengan 99999999 (Ingat: 8 digit angka, koma desimal tepat sesudah digit keempat!!!). Hasil perhitungan kita adalah 22500, lebih besar daripada kemampuan komputasi system kita.

Jadi, anda sudah lihat khan ternyata sistem numerik biasa (kita sebut sebagai Fixed Point), memiliki keterbatasan di sini. Dia memiliki rentang yang kecil dan ketelitian yg kecil pula. Karenanya, untuk sistem yang kompleks seperti banyak sistem komputasi kita saat ini (diantaranya adalah game-game modern, software engineering semacam HYSYS dan HTRI, Software matematika canggih seperti MatLab dan Wolfram Mathematica, software simulasi astronomi seperti Celestia dan Stellarium, bahkan software-software kecil sekalipun) menggunkan sistem komputasi berbasis Floating Point.

Dan bagaimanakah Floating Point tersebut? Bagaimana dia bisa mengatasi masalah yang tidak bisa diselesaikan oleh Fixed Point??? Sekilas sudah saya sampaikan di atas. Namun, supaya Anda bisa menarik nafas, akan saya bahas pada tulisan berikutnya. Keep Reading & Learning !!

Comments
  1. Agust Andy says:

    Nice info gan! Btw, HYSYS itu software buat apaan se?

    • thing2think says:

      Thanks. Ini artikel sok-sok-an sebenarnya. Lha backgroundku khan jauh dari ini (^o^)… Hysys itu software simulasi khusus bidangku Boss. Program yang dari jaman kuliah sampe sekarang terus aku “Bajak”. Tapi karena bajakan itu lah aku jadi lebih menguasai bidangku. Ironis :-))

  2. thing2think says:

    Hmmm,,, Bisa juga dipake anak minyak. Tapi itu software lebih ke downstream (hilir), bukan upstream (hulu)… Yaaa, itu software orang jualan minyak gitu bozz. Bukan software orang yg melek IT kayak ente (^_^)

  3. muhamatdain says:

    Nice… Nmbh ilmu lg..

  4. kokonaro says:

    Njay Thx ilmu nya gan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s