Bagaimana Mengkonversi Bilangan Lebih dari 1 byte di Ms.Excel ?
Kali ini saya coba berbagi function VBA yang dapat digunakan untuk mengkonversi bilangan yang lebih besar dari 1 byte di Ms. Excel.
Seperti yang telah kita ketahui bahwa pada fungsi konversi yang telah disediakan oleh Excel, hanya mampu mengkonversi biner dengan jumlah digit 10 digit bit. Hal ini tentu menyulitkan kita bila jumlah digit bit yang kita konversi lebih dari 10 digit, misalnya 2 byte (16 bit) atau diatasnya.
Hal ini dapat kita selesaikan dengan menambahkan fungsi-fungsi konversi pada modul VBA yang telah disediakan oleh Office.
Baik, langsung saja kita mulai...langkah-langkah yang kita lakukan adalah :
1. Buka microsoft Excel
2. Aktifkan lembar VBA (aktifkan halaman lunch visual basic editor) atau tekan tombol Alt + F11
3. Klik kanan pada bagian VBAPRoject (Book1)
4. Pilih Insert, kemudian pilih Modul
Maka akan muncul jendela visual basic editor seperti di bawah ini :
5. Silahkan ketik beberapa function berikut ini pada modul1:
a. Function untuk konversi decimal ke biner :
Function RubahDecKeBiner(ByVal jlhDec As Variant, Optional jlhBit As Variant) _As String
RubahDecKeBiner = ""
jlhDec = CDec(jlhDec)
Do While jlhDec <> 0
RubahDecKeBiner = Trim$(str$(jlhDec - 2 * Int(jlhDec / 2))) _
& RubahDecKeBiner
jlhDec = Int(jlhDec / 2)
Loop
If Not IsMissing(jlhBit) Then
If Len(RubahDecKeBiner) > jlhBit Then
jlhDec = "Terjadi Kesalahan - Nilai terlalu besar"
Else
jlhDec = Right$(String$(jlhBit, "0") & jlhDec, jlhBit)
End If
End If
Dim xLengthBin, TambahBit As Integer
xLengthBin = Len(RubahDecKeBiner)
Dim strBaru As String
If xLengthBin < 32 Then
TambahBit = 32 - xLengthBin
strBaru = String(TambahBit, "0")
RubahDecKeBiner = strBaru & RubahDecKeBiner
End If
End Function
RubahDecKeBiner = ""
jlhDec = CDec(jlhDec)
Do While jlhDec <> 0
RubahDecKeBiner = Trim$(str$(jlhDec - 2 * Int(jlhDec / 2))) _
& RubahDecKeBiner
jlhDec = Int(jlhDec / 2)
Loop
If Not IsMissing(jlhBit) Then
If Len(RubahDecKeBiner) > jlhBit Then
jlhDec = "Terjadi Kesalahan - Nilai terlalu besar"
Else
jlhDec = Right$(String$(jlhBit, "0") & jlhDec, jlhBit)
End If
End If
Dim xLengthBin, TambahBit As Integer
xLengthBin = Len(RubahDecKeBiner)
Dim strBaru As String
If xLengthBin < 32 Then
TambahBit = 32 - xLengthBin
strBaru = String(TambahBit, "0")
RubahDecKeBiner = strBaru & RubahDecKeBiner
End If
End Function
b. Function untuk mengkonversi Biner ke Desimal :
Function KonvertBinKeDec(BinaryString As String) As Variant
Dim X As Integer
For X = 0 To Len(BinaryString) - 1
KonvertBinKeDec = CDec(KonvertBinKeDec) + Val(Mid(BinaryString, _
Len(BinaryString) - X, 1)) * 2 ^ X
Next
End Function
c. Fungsi untuk XOR biner :
Public Function XOR_biner(b1, b2) As String
Dim len_b1
Dim len_b2
Dim len_diff
Dim i
Dim bit1
Dim bit2
' pengecekan jlh biner, jika tidak sama maka ditambahakn bit 0
' pada awal biner yang lebih pendek
len_b1 = Len(b1)
len_b2 = Len(b2)
len_diff = len_b1 - len_b2
Select Case len_diff
Case Is < 0
' b2 bila lebih banyak
b1 = String(Abs(len_diff), "0") & b1
Case Is = 0
' bila jumlahnya sama
Case Is > 0
' b1 bila lebih banyak
b2 = String(len_diff, "0") & b2
End Select
XOR_biner = ""
For i = Len(b2) To 1 Step -1
bit1 = CInt(Mid(b1, i, 1))
bit2 = CInt(Mid(b2, i, 1))
XOR_biner = CInt(bit1 Xor bit2) & XOR_biner
Next i
End Function
d. Fungsi untuk membalikkan penulisan string bit (dari kanan ke kiri)
Function BalikkanBiner(Str As String) As String
BalikkanBiner = StrReverse(Trim(Str))
End Function
6. Setelah anda copas coding function di atas, maka silahkan anda simpan document excel anda
dengan save as type = Excel Macro - Enabled Workbook
7. Silahkan konversi bilangan yang anda inginkan dengan function yang telah dibuat pada VBA tadi
dengan formula yang diawali tanda = diikuti oleh nama function pada VBA.
selamat mencba...., semoga berhasil......
Tidak ada komentar:
Posting Komentar