Home / Pemrograman / C / Matematika Dan Pemrograman Yang Wajib Diketahui Programmer

Matematika Dan Pemrograman Yang Wajib Diketahui Programmer

Matematika Dan Pemrograman, Sisi Lain !

Membaca judul tulisan saya di atas tentunya Anda akan bertanya-tanya apa maksud dari kalimat tersebut. Matematika tidak berlaku di dunia pemrograman, ya itulah kenyataannya. Kenapa ? karena komputer memiliki keterbatasan dalam melakukan proses perhitungan aritmatika, tidak sama seperti ketika kita belajar matematika dasar di sekolah dasar. Untuk membuktikan pernyataan saya pada judul di atas, saya akan membuktikan melalui sebuah sourcecode program sederhana yang melakukan proses perhitungan sederhana yaitu penjumlahan dan pengurangan. Hasil dari operasi tersebut akan kita tampilkan di layar monitor, kemudian kita bandingkan dengan teori ilmu matematika dasar yang telah kita pelajari sejak SD dulu :). Sourcecode programnya sangat sederhana, dapat Anda lihat di bawah ini.

#include<stdio.h>
#include<stdlib.h>
int main() {
 int a, b, c;
 a = 2147483647;
 b = 1;
 c = a + b;
 printf("Hasil penjumlahan 2147483647 + 1 = %dn",c);
 a = -2147483648;
 b = 1;
 c = a - b;
 printf("Hasil pengurangan -2147483648 - 1 = %dn",c);
 system("pause");
 return 0;
}

Setelah dikompilasi dan dijalankan maka program di atas akan menghasilkan output seperti di bawah ini.

Matematika Dan Pemrograman
Matematika Dan Pemrograman

 

Ada yang aneh ? Ya, memang aneh ! Hasil penjumlahan 2147483647 + 1 bukannya 2147483648 ? Kenapa output pada program tertulis -2147483648 ? Begitu juga dengan hasil pengurangan -2147483648 – 1, kenapa hasilnya tidak -2147483649 ? Ya itulah komputer, kadang justru membuat kita bingung dengan kenyataan. Tapi yang menjadi pertanyaan kita kenapa hal itu dapat terjadi ? Apakah terdapat sintak error atau logic error ? Jawabannya adalah tidak !! Lalu apa yang dapat menyebabkan hal itu terjadi ?  Saya akan sedikit jelaskan pada pembahasan kali ini.

Tentunya kita semua sudah paham dengan tipe data, pada listing program diatas saya mendeklarasikan variabel dengan tipe data integer. Tipe data integer merupakan tipe data yang dapat menampung data sebesar 32bit. Karena tipe datanya integer (bisa bernilai positif dan bernilai negatif) maka dapat dikatakan bahwa nilai yang dapat ditampung oleh variabel yang bertipe data integer adalah antara −2.147.483.648 sampai 2.147.483.647. Contohnya pada saat penjumlahan 2147483647 + 1 seharusnya komputer menampilkan nilai 2147483648. Namun karena tipe data yang kita gunakan adalah integer dan nilai max tipe data integer adalah 2147483647, karena hasil penjumlahan melebihi nilai max-nya maka hasil penjumlahan akan menjadi -2147483648 (nilai minimum integer). Kenapa bisa terjadi seperti itu ? Karena pada proses penjumlahan yang dilakukan oleh komputer, jika ternyata hasil penjumlahannya lebih besar dari nilai max tipe datanya maka proses penjumlahan akan dilakukan secara berputar (kembali ke nilai minimum tipe datanya). Begitu juga yang terjadi pada proses pengurangan. Jika ternyata hasil pengurangan lebih kecil dari nilai minimum tipe datanya maka proses pengurangan akan terjadi secara berputar kembali dari nilai maximum-nya.

Sebagai contoh adalah sebagai berikut

2147483647 + 1 = -2147483648
2147483647 + 2 = -2147483647
2147483647 + 3 = -2147483646
dan seterusnya

-2147483648 – 1 = 2147483647
-2147483648 – 2 = 2147483646
-2147483648 – 3 = 2147483645
dan seterusnya

Semoga beberapa contoh di atas dapat menjawab keanehan di dunia komputer yang tidak sesuai dengan realita matematika 🙂

About Eko Rudiawan

Seorang lelaki yang punya ketertarikan dengan dunia elektronika dan robot yang saat ini sedang serius belajar tentang dunia bisnis dan internet marketing. My dream to be success technopreneur

Check Also

Software Bahasa C Di Linux Untuk Belajar Pemrograman

Software Bahasa C Di Linux Belajar bahasa pemrograman C tidak hanya bisa dilakukan pada sistem …

2 comments

  1. lah, itu mah buat ngitung. program tuh bukan aritmatika

  2. bedakan antara program dengan aritmatika bro

Leave a Reply

Your email address will not be published. Required fields are marked *

twenty − nine =