Latihan Kode Program Pascal: Konversi Bilangan Biner ke Desimal

Latihan kode program bahasa Pascal kali ini akan membahas cara konversi angka biner ke angka desimal. Ini merupakan kebalikan dari latihan konversi bilangan desimal ke biner. Materi soal menguji pemahaman terkait logika matematika, array, serta konsep perulangan for.


Soal Konversi Bilangan Biner ke Desimal

Buatlah kode program dalam bahasa Pascal yang menerima satu inputan angka biner (basis 2), dan menampilkan output dalam bentuk angka desimal (basis 10).

Berikut contoh hasil yang diinginkan (1):

##  Program Pascal Konversi Biner ke Desimal  ##
================================================

Input angka biner: 11101011
Angka desimal dari biner 11101011 adalah = 235

Berikut contoh hasil yang diinginkan (2):

##  Program Pascal Konversi Biner ke Desimal  ##
================================================

Input angka biner: 1101101001110
Angka desimal dari biner 1101101001110 adalah = 6990

Tips Membuat Kode Program Konversi Biner ke Desimal

Soal ini melatih pemahaman terkait logika matematika, tipe data array dan konsep perulangan (looping). Berikut tutorial pendahuluan yang bisa diikuti:

Pemecahan dari soal ini sangat bergantung ke rumus cara konversi angka biner menjadi angka desimal. Salah satu solusi yang sering dipakai adalah membuat tabel pangkat 2, lalu mengalikan setiap angka biner.

Sebagai contoh, berapakah angka desimal dari 1101? Pertama, silahkan buat tabel berikut:

Biner 1 1 0 1
2x 23 = 8 22 = 4 21 = 2 20 = 1
Biner * 2x 8 4 0 1

Baris paling bawah didapat dengan mengalikan angka biner di posisi tersebut dengan pangkat 2 yang bersesuaian. Kemudian kita tinggal tambah semua angka = 8+4+0+1 = 13. Jadi, 1101 biner sama dengan 13 desimal.

Contoh lain, berapakah angka desimal dari 1100101? Kembali, kita perlu bantuan tabel:

Biner 1 1 0 0 1 0 1
2x 26 = 64 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
Biner * 2x 64 32 0 0 4 0 1

Dengan menambah semua angka di baris paling bawah, maka 1100101 biner = 64+32+0+0+4+0+1 = 101 desimal.

Membuat proses konversi biner ke desimal dengan bantuan tabel memang cukup mudah. Tapi bagaimana menulisnya ke dalam kode program?

Salah satu cara bisa dengan memanfaatkan operator modulus (sisa hasil bagi). Masih menggunakan contoh yang sama, berikut cara mencari angka desimal dari 1101 biner :

  • 1101/10 = 110, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 110/10 = 11, sisa 0. Desimal di posisi ini = 0 * 21 = 0
  • 11/10 = 1, sisa 1. Desimal di posisi ini = 1 * 22 = 4
  • 1/10 = 0, sisa 1. Desimal di posisi ini = 1 * 23 = 8

Total desimal = 1 + 0 + 4 + 8 = 13

Dan berikut cara mencari angka desimal dari 1100101 biner:

  • 1100101/10 = 110010, sisa 1. Desimal di posisi ini = 1 * 20 = 1
  • 110010/10 = 11001, sisa 0. Desimal di posisi ini = 0 * 21 = 0
  • 11001/10 = 1100, sisa 1. Desimal di posisi ini = 1 * 22 = 4
  • 1100/10 = 110, sisa 0. Desimal di posisi ini = 0 * 23 = 0
  • 110/10 = 11, sisa 0. Desimal di posisi ini = 0 * 24 = 0
  • 11/10 = 1, sisa 1. Desimal di posisi ini = 1 * 25 = 32
  • 1/10 = 0, sisa 1. Desimal di posisi ini = 1 * 26 = 64

Total desimal = 1 + 0 + 4 + 0 + 0 + 32 + 64 = 101

Konsep inilah yang akan kita tulis ke dalam kode program.


Kode Program Bahasa Pascal Konversi Biner ke Desimal

Berdasarkan teori perhitungan sebelumnya, berikut kode program bahasa Pascal untuk proses konversi bilangan biner ke desimal:

program konversi_biner_ke_desimal;
uses crt;
var
  angka_biner, angka_desimal, i, digit: qword;
begin
  clrscr;
  writeln('##  Program Pascal Konversi Biner ke Desimal  ##');
  writeln('================================================');
  writeln;

  write('Input angka biner: ');
  readln(angka_biner);
  
  write('Angka desimal dari biner ', angka_biner);

  angka_desimal := 0;
  i := 1;
  while (angka_biner <> 0) do 
    begin
      digit := angka_biner mod 10;
      angka_desimal := angka_desimal + (digit*i);
      i := i*2;
      angka_biner := angka_biner div 10; 
    end;
  
  write(' adalah = ',angka_desimal);

  readln;
end.

Latihan Kode Program Pascal - Konversi Bilangan Biner ke Desimal

Di baris 4 terdapat pendefinisian 4 variabel:

  • angka_biner untuk menampung digit angka biner yang diinput oleh user.
  • angka_desimal untuk menampung hasil dari proses konversi ke angka desimal.
  • i untuk menandakan posisi digit (mencari angka pangkat 2).
  • digit sebagai variabel bantu saat proses perulangan.

Keempat variabel ini bertipe qword agar bisa menampung angka bulat yang cukup besar.

Di baris 12, inputan user akan ditampung ke dalam variabel angka_biner.

Perulangan while di baris 18-24 dipakai untuk mencari total angka desimal. Selama variabel angka_biner tidak 0, maka jalankan terus perulangan.

Di awal perulangan, ambil 1 digit paling kanan dan simpan ke variabel digit. Ini dilakukan dengan perintah digit := angka_biner mod 10.

Kemudian cari nilai desimal dari 1 digit tadi dengan perintah angka_desimal := angka_desimal + (digit*i).

Lanjut di baris 22, nilai variabel i dikali 2 untuk persiapan ke iterasi berikutnya.

Di baris 23, variabel angka_biner dibagi 10 agar 1 digit paling kanan terhapus. Ini dilakukan dengan operator div untuk pembagian bilangan bulat.

Kita sudah selesai di 1 digit paling kanan, dan karena variabel angka_biner masih berisi sesuatu, maka perulangan akan kembali ke baris 18, ambil 1 digit lagi, cari angka desimalnya, naikkan nilai i, lalu hapus 1 digit paling kanan, dst.

Prinsip yang dipakai sama seperti teori sebelumnya. Sebagai contoh, kita akan konversi biner 1101:

  • 1101 mod 10 = 1. Isi variabel i di posisi ini = 0, maka desimal saat ini = 0 + (1*20) = 1. Hapus satu digit paling kanan.
  • 110 mod 10 = 0. Isi variabel i di posisi ini = 1, maka desimal saat ini = 1 + (0*21) = 1. Hapus satu digit paling kanan.
  • 11 mod 10 = 1, Isi variabel i di posisi ini = 2, maka desimal saat ini = 1 + (1*22) = 5. Hapus satu digit paling kanan.
  • 1 mod 10 = 1, Isi variabel i di posisi ini = 3, maka desimal saat ini = 5 + (1*23) = 13. Hapus satu digit paling kanan.

Perulangan yang dipakai memang sedikit kompleks. Silahkan luangkan waktu sebentar untuk mempelajarinya.


Demikian kode program konversi bilangan biner ke desimal menggunakan bahasa Pascal. Semoga tutorial ini bisa bermanfaat.


eBook Pascal Uncover Duniailkom
Apabila anda serius ingin mempelajari Pascal dan butuh materi Pascal yang jauh lebih lengkap, Duniailkom telah menerbitkan eBook Pascal Uncover yang membahas bahasa pemrograman Pascal dari dasar hingga procedure, function dan contoh kasus. Penjelasan lebih lanjut bisa ke eBook Pascal Uncover Duniailkom.

Add Comment