Anda di halaman 1dari 5

Calvin Institute of Technology SCCE-2041 Metode Numerik

Nama: Angellie Naomi Semester Ganjil 2021-2022


NIM: 202000439
Dosen: Ezra Tjung

Laporan Tugas 1

Tugas ini bertujuan agar mahasiswa dapat lebih mengenal bahasa pemrograman python dan
mengenal bilangan binary. Binary adalah bilangan berbasis 2.

1. Binary to Integer

Cara untuk mengubah bilangan dalam bentuk binary menjadi integer adalah dengan
menggunakan program dengan bahasa python. Caranya adalah sebagai berikut.
a. Import sys. Sys digunakan agar dapat meng-input teks pada saat program dijalankan.
Teks yang dimaksud adalah bilangan binary. Penulisan suatu bilangan binary pada
saat program dijalankan dianggap sebagai sebuah teks. Maka dari itu, kita perlu
mengubahnya menjadi bilangan.
b. Buat variabel yang menunjukkan jumlah karakter yang ada pada teks. Rumus untuk
menghitung jumlah karakter adalah len(textsys).
c. Buat variabel untuk menginput teks (textsys). Variabel ini akan dimasukkan di dalam
loop untuk mengubah tiap karakter dalam teks menjadi list angka. Cara mengubahnya
adalah sebagai berikut.
1. Memasukan teks ke dalam variabel baru (number_text) agar tiap karakter dapat
dipisah.
2. Mengubah teks (string) menjadi bilangan (integer) dengan rumus
int(number_text).
3. Bilangan akan dimasukkan ke dalam list dengan variabel baru, yaitu numbers.
d. Berikut adalah contoh dari hasil print(numbers):
(base) C:\Users\angie\Downloads\SCCE2041>python binary2integer.py 110
[1, 1, 0]

e. Setelah mendapat list angka, setiap angka binary akan dimasukkan ke dalam rumus
agar berubah menjadi integer. Rumus dari binary menjadi integer adalah
Misal bilangan binary adalah “abc”, maka rumus dari binary menjadi integer adalah
(𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑖𝑙𝑎𝑛𝑔𝑎𝑛 − 1) (𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑖𝑙𝑎𝑛𝑔𝑎𝑛 −2) (𝑗𝑢𝑚𝑙𝑎ℎ 𝑏𝑖𝑙𝑎𝑛𝑔𝑎𝑛 −3)
𝑖𝑛𝑡𝑒𝑔𝑒𝑟 = (𝑎 × 2 ) + (𝑏 × 2 ) + (𝑐 × 2 )
Maka dari itu, rumus dari pangkatnya adalah jumlah bilangan - urutan angka (dimulai
dari kiri ke kanan, kiri dimulai dari 0) - 1. Proses ini tidak akan dilakukan secara
manual, namun dengan looping. Caranya adalah sebagai berikut.
1. Memasukkan angka ke dalam variabel baru (product) agar tiap angka dapat
dipisah.
2. Menuliskan rumus pangkat dan rumus menghitung integer.
3. Menjumlahkan seluruh hasil integer.

1
Calvin Institute of Technology SCCE-2041 Metode Numerik
Nama: Angellie Naomi Semester Ganjil 2021-2022
NIM: 202000439
Dosen: Ezra Tjung

f. Print(total) untuk melihat hasilnya.


g. Seluruh program tertera di bawah ini.
import sys

# input berasal dari teks yang dimasukkan di anaconda


textsys = sys.argv[1]
numbers = []
# len digunakan untuk menghitung jumlah karakter keseluruhan
amount = len(textsys)

# for loop digunakan untuk membuat text menjadi list angka


for i in range(0, amount):
number_text = textsys[i]
# text (string) diubah menjadi angka (integer)
number = int(number_text)
# list angka dibuat dengan rumus berikut
numbers.append(number)
# hasil dari program di atas adalah akan terbentuk list angka, seperti
# numbers = [1, 2, 3]

# basis awal
total = 0
pangkat = 0

# mengubah binary ke integer


for k in range(amount-1, -1, -1):
# produk adalah angka yang diinput di anaconda
produk = numbers[k]
# pangkat menggunakan fungsi (panjang data - urutan angka ke-n - 1)
pangkat = amount - k - 1
# hasil adalah perkalian angka ke-n menjadi integer
hasil = produk*(2**pangkat)
total=total+hasil

print(total)

h. Hasil yang didapat adalah sebagai berikut.


(base) C:\Users\angie\Downloads\SCCE2041>python binary2integer.py 110
6

2. Binary to Decimal

Cara untuk mengubah bilangan binary menjadi desimal sebenarnya mirip dengan
mengubah bilangan binary menjadi integer. Caranya adalah sebagai berikut.
a. Mengubah teks menjadi list angka sama dengan cara yang telah dilakukan di nomor 1
pada bagian a sampai d. Namun, tanda “.” tidak dimasukkan ke dalam list, sehingga
dalam loop, diberikan fungsi if. Apabila di dalam variabel number_text terdapat

2
Calvin Institute of Technology SCCE-2041 Metode Numerik
Nama: Angellie Naomi Semester Ganjil 2021-2022
NIM: 202000439
Dosen: Ezra Tjung

karakter “.”, karakter tersebut dihilangkan dan dilanjutkan dengan karakter


berikutnya.
b. Buat variabel yang menunjukkan jumlah karakter sebelum tanda “.” yang ada pada
teks. Rumus untuk menghitung jumlah karakter adalah dengan menggunakan index
(textsys.index(“.”)). Karakter tidak dihitung semua karena angka yang ada di
belakang tanda “.” memiliki pangkat minus (-), seperti, angka pertama di belakang
titik akan diberi pangkat -1, dan seterusnya.
c. Basis awal pangkat adalah num (jumlah karakter) dikurangi 1 dan diteruskan dengan
mengurangi 1 untuk karakter berikutnya.
d. Rumus untuk mengubah binary ke desimal adalah sama dengan rumus binary ke
integer, tetapi menggunakan jumlah karakter di depan tanda “.”
e. Seluruh program tertera di bawah ini.
import sys
import numpy as np

# input berasal dari text yang dimasukkan di anaconda


textsys = sys.argv[1]
numbers = []
# index digunakan untuk menghitung jumlah angka di depan "."
num = textsys.index(".")
# len digunakan untuk menghitung jumlah data keseluruhan
amount = len(textsys)

# membuat text menjadi list angka


for i in range(0, amount):
number_text = textsys[i]
# fungsi if digunakan agar tanda "." tidak dimasukkan ke dalam list
if number_text == ".":
continue
# list dibuat dengan rumus berikut
numbers.append(number_text)

# basis awal
total = 0
# pangkat pada konversi ini berbeda dengan pangkat pada binary2integer
# pangkat ini berdasarkan pada banyak angka di depan tanda "."
pangkat = num - 1
for k in numbers:
produk = int(k)
hasil = produk * (2 ** pangkat)
pangkat = pangkat - 1
total=total+hasil

print(total)

f. Hasil yang didapat adalah sebagai berikut.


(base) C:\Users\angie\Downloads\SCCE2041>python binary2decimal.py 110.1

3
Calvin Institute of Technology SCCE-2041 Metode Numerik
Nama: Angellie Naomi Semester Ganjil 2021-2022
NIM: 202000439
Dosen: Ezra Tjung

6.5

3. Decimal to Binary
Cara mengubah bilangan desimal menjadi bilangan binary sedikit berbeda dengan
mengubah binary menjadi desimal atau integer. Caranya adalah sebagai berikut.
a. Cara meng-input teks adalah sama dengan cara yang ada pada nomor 1 dan 2. Akan
tetapi, teks tersebut dipisah menggunakan fungsi split menjadi 2 bagian, yaitu teks
yang ada di depan dan di belakang tanda titik. Kemudian teks tersebut diubah menjadi
list angka (dalam bentuk integer) dan dihitung jumlahnya (menggunakan fungsi len).
b. Buat variabel output dalam bentuk string. Output yang terbentuk adalah dalam bentuk
string, tetapi untuk perhitungan tetap menggunakan integer.
c. Untuk mengubah desimal menjadi integer, dibuat rumus untuk bilangan di depan
tanda titik dengan hasil observasi sebagai berikut. Misal n adalah bilangan desimal
sebesar 10.

n n // 2 n%2

10 5 0

5 2 1

2 1 0

1 0 1

Angka binary yang muncul berasal dari angka hasil modulo 2 dihitung mulai dari
bawah. Jadi, hasilnya adalah 1010.
d. Lain hal dengan rumus untuk bilangan di belakang titik. Bilangan di belakang tanda
titik tidak mungkin dibagi dengan 2, melainkan dikali. Rumusnya menggunakan
jumlah bilangan di belakang tanda titik (data1) adalah sebagai berikut. Misal n adalah
bilangan di belakang tanda titik. Jumlah data dalam contoh ini adalah 1

n n*2 (n * 2) - 10^data1 Binary number

8 16 6 1

6 12 2 1

4 8 -2 0

4
Calvin Institute of Technology SCCE-2041 Metode Numerik
Nama: Angellie Naomi Semester Ganjil 2021-2022
NIM: 202000439
Dosen: Ezra Tjung

dst..

Apabila n*2 lebih dari 10^data1, maka bilangan binarynya adalah 1. Rumus ini akan
dimasukkan ke dalam fungsi while loop dan berhenti apabila nilai hasil kali dikurangi
10^data1 adalah 0 supaya pengulangannya tidak berjalan terus menerus. Pembacaan
bilangan binary pada rumus ini dimulai dari yang paling atas.
e. Hasil dari bilangan binary di depan dan di belakang tanda titik digabung dengan
print(binary1 + “.” + binary2)
f. Seluruh program tertera di bawah ini.
import sys
import numpy as np

# input berasal dari text yang dimasukkan di anaconda


textsys = sys.argv[1]
decimal = textsys.split('.')
decimal0 = int(decimal[0])
decimal1 = int(decimal[1])

# variabel output
binary1 = ""
binary2 = ""

# while loop digunakan untuk melakukan perhitungan dari binary menjadi decimal
sampai bilangan decimal bernilai 0
while decimal0 != 0:
binary0 = decimal0 % 2
decimal0 = decimal0 // 2
binary1 = str(binary0) + binary1

data1 = len(decimal[1])
while decimal1 != 0:
if len(binary2) >= 10:
break
decimal1 = decimal1 * 2
if decimal1 >= (10 ** data1):
decimal1 = decimal1 - (10 ** data1)
binary2 = binary2 + "1"
else:
binary2 = binary2 + "0"

print(binary1 + "." + binary2)

g. Hasil yang didapat adalah sebagai berikut.


(base) C:\Users\angie\Downloads\SCCE2041>python decimal2binary.py 6.5
110.1

Anda mungkin juga menyukai