Artikel ini merupakan lanjutan dari cara mengubah sistem bilangan. Silahkan baca dan mempelajarinya sebelum belajar operasi aritmatika pada sistem bilangan.
Daftar isi
Operasi Penjumlahan
Dimulai dengan penjumlahan karena penjumlahan adalah operasi aritmatika yang paling mudah dibandingkan yang lain.
Penjumlahan pada Desimal
Seperti biasa bahwa kita harus mempelajari sistem desimal sebelum yang lain karena kita bisa menggunakannya untuk perbandingan. Hal yang sudah kita ketahui adalah jika penjumlahan bilangan lebih dari 9, maka akan ada carry yang fungsinya untuk menyimpan bilangan depan.
Misalkan 7+8, maka hasilnya adalah 15. Angka 1 adalah carry yang nantinya kita akan menggunakannya untuk menambahkan bilangan depannya.
Untuk lebih jelasnya, ambil contoh 17 + 48. 7+8 akan bernilai 5 dengan carry 1. Kemudian 1 + 4 + carry sebelumnya, sehingga menghasilkan nilai 65.
Penjumlahan pada Biner
Hasil penjumlahan dua bit bilangan biner adalah 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 dan 1 + 1 = 0 + C. Dalam sistem desimal, 1 + 1 seharusnya bernilai 2, namun karena pada biner hanya ada 0 dan 1, maka hasilnya 0 dengan carry 1. Sehingga 1+1 hasilnya (10)2.
Contoh lain dari penjumlahan biner:
Penjumlahan sistem biner sama seperti penjumlahan desimal yang perhitungannya dari kanan dan seterusnya ke kiri. Bahkan sebenarnya hal ini berlaku untuk semua sistem bilangan.
Penjumlahan pada Oktal
Karena basis dari sistem oktal adalah 8, maka penjumlahan angka yang melebihi 7 harus dikurangi dengan (8)10 dan menambahkan 1 sebagai carry.
Misalnya penjumlahan 6 dengan 7. Pada sistem desimal, penjumlahan tersebut menghasilkan nilai 13. Namun karena ini pada sistem oktal dengan basis 8, maka hasilnya adalah dengan mengurangi (13)10 dengan (8)10 = 5 dengan carry 1. Sehingga 6 + 7 = (15)8.
Penjumlahan pada Heksadesimal
Bedanya penjumlahan pada sistem heksadesimal adalah adanya huruf yang dimulai dari A sebagai 10 dalam desimal dan terakhir F sebagai 15. Karena itu pula penjumlahan dua angka yang melebihi (15)10 harus ada pengurangan dengan 16 dan penambahan carry.
Contoh:
Operasi Pengurangan
Pengurangan adalah operasi aritmatika pada sistem bilangan termudah kedua setelah penjumlahan. Seperti yang telah kita ketahui bahwa apabila pengurang lebih besar daripada yang dikurangi, maka yang dikurangi harus pinjam digit kirinya.
Contoh:
Dari contoh kedua setiap sistem bilangan terlihat agak menyulitkan, oleh karena itu ada operasi yang melakukan pengurangan dengan cara penjumlahan, yaitu operasi komplemen. Untuk melakukan cara ini, cukup cari komplemen dari pengurang saja.
Ada dua macam komplemen, yaitu komplemen basis/radix (komplemen r) dan komplemen satu kurang dari komplemen basis (komplemen r-1). Komplemen ini dapat dicari dengan membuat digit-digit bilangan menjadi (basis – 1 – digit awal). Agar lebih mudah, perhatikan contoh.
Komplemen Desimal
Misalkan ada bilangan (376)10, (675)10, (977)10 dan (2020)10.
Untuk mencari komplemen r-1 dari masing-masing bilangan, carilah nilai yang membuat masing-masing posisi menjadi 9.
Pada (376)10, agar 3 menjadi 9, maka tambahkan dengan 6. Agar 7 menjadi 9, tambahkan 2. Begitu pula dengan bagian terakhir, agar menjadi 9 perlu menambah 3. Dengan demikian komplemen r-1 dari (376)10 adalah 623.
Dengan cara yang sama, komplemen dari (675)10, (977)10 dan (2020)10 adalah 324, 22, 7979.
Itu merupakan komplemen dari r-1, sedangkan komplemen r dari setiap bilangan adalah dengan menambahkan 1 pada masing-masing komplemennya.
Komplemen 10 dari 376 = komplemen 9 + 1 = 623 + 1 = 624. Sehingga komplemen r dari bilangan lainnya adalah 325, 23, 7980.
Lalu untuk operasi pengurangannya bisa dengan 2 cara, yaitu komplemen r atau r-1. Jika menggunakan komplemen r-1, maka lihat carry. Jika carry bernilai 0, maka hasilnya pasti negatif. Namun jika carry bernilai 1, jumlahkan dengan angka terakhir.
Sedangkan untuk komplemen r, jika carry bernilai 0, hasilnya pasti negatif. Jika carry bernilai 1, abaikan.
Perhatikan bahwa jika carry bernilai 0, hasil pengurangan yang sebenarnya adalah komplemen dari hasil penjumlahan.
Contoh:
Komplemen Biner
Pada sistem biner, ada komplemen 1 dan 2. Caranya sama seperti sebelumnya. Komplemen 1 dari 1 adalah 0, komplemen 1 dari 0 adalah 2. Kita bisa mengetahui komplemen 2 dari komplemen 1 ditambah 1.
Komplemen 1 dari 1011 adalah 0100, dengan komplemen 2nya 0101. Contoh lain, komplemen 1 dari 101101001 adalah 010010110.
Berikut adalah contoh pengurangan dengan menggunakan komplemen:
Mungkin ada yang penasaran kenapa carry pada contoh terakhir bernilai 0? Sebenarnya sama seperti sebelumnya bahwa pada hasil penjumlahan terakhir tidak menghasilkan nilai baru (puluhan baru). Sehingga nilai carry adalah 0.
Komplemen Oktal
Dalam sistem oktal ada komplemen 7 dan 8. Sama seperti sebelumnya bahwa dengan komplemen, menghitung pengurangan jadi lebih mudah.
Contoh pengurangan sistem oktal dengan komplemen:
Komplemen Heksadesimal
Karena penjelasan-penjelasan sebelumnya sudah ada, maka kita langsung lihat contoh pada pengurangan heksadesimal dengan menggunakan komplemen.
Operasi Perkalian dan Pembagian
Kita pastinya sudah tahu bagaimana cara mengalikan dan pembagian dua buah bilangan pada sistem bilangan desimal, sehingga fokus saat ini kepada yang lainnya.
Biner
Perkalian dan pembagian biner lebih mudah daripada desimal dan jauh lebih mudah daripada heksadesimal. Hal ini karena biner hanya terdiri dari 0 dan 1. Perkalian dengan 0 akan menghasilkan nilai 0, sedangkan perkalian dengan 1 akan menghasilkan bilangan itu sendiri.
Memang akan sangat panjang mengingat sebuah bilangan biner memiliki barisan digit yang panjang. Contoh perkalian:
Pada pembagian biner, sama saja hanya ada 2 kondisi. Dengan menggunakan pembagian bersusun jika pembagi lebih besar, hasilnya 0. Jika bisa membagi, hasilnya 1. Contoh:
Oktal
Memiliki konsep yang sama seperti desimal dan biner, namun karena basisnya hampir sama dengan desimal, maka bisa saja ada kesalahan jika tidak teliti. Oleh karena itu, berikut tabel perkalian sistem oktal.
Pembagian sistem bilangan oktal bisa menggunakan pembagian bersusun. Hasil tiap-tiap pembagian bisa juga menggunakan tabel perkalian di atas.
Heksadesimal
Tentu saja masih sama. Tapi karena terlalu banyak bilangan, maka akan lebih mudah jika mengubahnya terlebih dahulu menjadi desimal yang kemudian melakukan operasi baik perkalian maupun pembagian.
Penutup
Itulah operasi aritmatika pada empat sistem bilangan. Jika ingin berlatih silahkan copas kode berikut.
//CAHINFOR.COM #include <bits/stdc++.h> #include <ctime> #include <cstdlib> using namespace std; void awal(); void random(int a){ system("cls");system("clear"); srand(time(NULL)); char arr[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int digit; cout<<"Masukkan digit yang diinginkan:\t"; cin>>digit; cout<<endl<<"hasil = "; if(a==1){ int random; for(int i=0;i<digit;i++){ random = rand()%10; cout<<arr[random]; } } else if(a==2){ int random; for(int i=0;i<digit;i++){ random = rand()%2; cout<<arr[random]; } } else if(a==3){ int random; for(int i=0;i<digit;i++){ random = rand()%8; cout<<arr[random]; } } else{ int random; for(int i=0;i<digit;i++){ random = rand()%16; cout<<arr[random]; } } cout<<"\n\nLagi?\n1. Ya\n2. Tidak\n"; string nxt; cin>>nxt; for_each(nxt.begin(),nxt.end(), [](char & c){ c = ::tolower(c); }); if(nxt=="1"||nxt=="ya") awal(); else return; } void awal(){ system("cls");system("clear"); cout<<"\t\t\tcahinfor.com\n\n"; string sistem_bilangan; cout<<"Masukkan jenis sistem bilangan:\n1. Desimal\n2. Biner\n3. Oktal\n4. Heksadesimal\n"; cin>>sistem_bilangan; for_each(sistem_bilangan.begin(),sistem_bilangan.end(), [](char & c){ c = ::tolower(c); }); if(sistem_bilangan=="desimal" || sistem_bilangan=="1") random(1); else if(sistem_bilangan=="biner" || sistem_bilangan=="2") random(2); else if(sistem_bilangan=="oktal" || sistem_bilangan=="3") random(3); else if(sistem_bilangan=="heksadesimal" || sistem_bilangan=="4") random(4); else{ cout<<"Sistem bilangan tidak dalam daftar\n"; awal(); } } int main() { awal(); return 0; } /* Jika mencoba di IDEONE: Pertama masukkan jenis sistem bilangan yang ingin didapatkan 1. Desimal 2. Biner 3. Oktal 4. Heksadesimal Bisa menggunakan nomor, atau ketik jenisnya, tak masalah besar kecilnya huruf, asalkan sesuai. Kemudian baris kedua berisi jumlah digit yang diinginkan. Jika ingin ada nomor yang dirandom lagi, pilih 1 atau 'ya'. Jika tidak, ketik 2 atau 'tidak'. Lebih jelasnya ada di contoh input. */
Atau bisa menjalankan langsung secara online di Ideone.