Program Assembler Konversi Mata Uang Asing ke
Dalam Rupiah
Assalamuallaikum, nongol lagi ni setelah sekian lama gak pernah muncul hehehe... Kali ini saya akan sedikit berbagi ilmu tentang pemrograman Assembler. Dari penjelasan yang diberikan Pak Dosen, katanya pemrograman Assembler si digunakan untuk merancang robot alias Micro Controller atau disebut juga pemrograman mesin. Tapi kali ini yang kita bahas adalah program Assembler untuk membuat Konversi Mata Uang Asing ke Rupiah. Untuk membuat program ini kita memerlukan sebuah software sebagai media perancangan dan juga untuk eksekusi programnya, yaitu emu8086.inc. Program emu8086.inc bisa kalian download secara gratis di link berikut emu8086.inc download. Kemudian install software emu8086.inc yang telah kalian download dan jalankan. Berikut ini tampilan emu8086.inc ketika di jalankan :
Pilih menu new untuk membuka lembar kerja baru.
Pilih empty workspace kemudian pilih OK, maka akan muncul lembar kerja yang masih kosong.
Kemudian Tulislah Script di bawah ini ke lembar kerja kalian. (Budayakan Baca Tulis) ya..
include 'emu8086.inc'
;memuat prosedur makro emu8086.inc
.model large
;tipe memori yang di gunakan
.code
;menyimpan program yang akan dijalankan
org 100h ;menempatkan
program pada offset 100h (255) byte
start: jmp mulai
;melompat menuju mulai
kurs0 db
13,10,"Konversi mata uang asing ke Rupiah",13,10,
db
"Kurs Rupiah terhadap Dollar adalah Rp. 13.000 per 1 Dollar",13,10,
db
"Kurs Rupiah terhadap Euro adalah Rp. 11.000 per 1 Euro",13,10,'$'
kurs1 db
13,10,"1. Konversi Mata Uang Dollar ke Rupiah",13,10,'$'
kurs2 db "2.
Konversi Mata Uang Euro ke Rupiah",13,10,'$'
kurs3 db "3.
Keluar",13,10,'$'
kurs5 db
"Silahkan masukkan pilihan anda : $"
kurs6 db
13,10,13,10,"masukkan nilai kurs Dollar:$"
kurs7 db
13,10,13,10,"masukkan nilai kurs Euro:$"
kurs8 db
"Nilai kurs dalam rupiah: $"
kurs12 db
".000 $"
kurs9 db
13,10,13,10,"terima kasih telah menggunakan program ini..."
kurs10 db "
$"
kurs11 db
13,10,"Kembali ke Menu awal $"
dol dw ?
eu dw ?
rup dw ?
mulai:
mov ah,09h
;memuat alamat kurs0 pada register dx
lea dx,kurs0
;mencetak string kurs0
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs1 pada register dx
lea dx,kurs1
;mencetak string kurs1
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs2 pada register dx
lea dx,kurs2
;mencetak string kurs2
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs3 pada register dx
lea dx,kurs3
;mencetak string kurs3
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs5 pada register dx
lea dx,kurs5
;mencetak string kurs5
int 21h
;menampilkan ke screen
mov ah,01h ;memuat input keyboard pada register bl
int 21h
;menampilkan ke screen
mov bl,al
cmp bl,'1'
;untuk membandingkan operand satu dengan operand lainnya
je dollar ;lompat ke bagian dollar bila reg bl = 1
cmp bl,'2'
;untuk membandingkan operand satu dengan operand lainnya
je euro ;lompat ke bagian euro bila reg bl = 2
cmp bl,'3'
;untuk membandingkan operand satu dengan operand lainnya
je selsai ;lompat ke bagian selsai bila reg bl = 3
jmp ulang
;lompat ke bagian ulang tanpa syarat
dollar:
mov ah,09h
;memuat alamat kurs6 pada register dx
lea dx,kurs6
;mencetak string kurs6
int 21h
;menampilkan ke screen
call scan_num
;memanggil prosedur scan_num
mov dol,cx
;menyimpan nilai kurs6 ke variabel dol dan di tempatkan di register cx
putc 13
;berganti baris
putc 10
mov ah,09h
;memuat alamat kurs8 pada register dx
lea dx,kurs8
;mencetak string kurs8
int 21h
;menampilkan ke screen
mov ax,dol
;memanggil variabel dol dan di konversi ke rupiah
mov bx,13
;mengisi bx dengan angka 13 (input*13)
imul bx
;mengalikan bx
mov rup,ax
;menyimpan hasil konversi ke variabel rup
call print_num
;memanggil prosedur print_num
mov ah,09h
;memuat alamat kurs12 pada register dx
lea dx,kurs12
;mencetak string kurs12
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs9 pada register dx
lea dx,kurs9
;mencetak string kurs9
int 21h
;menampilkan ke screen
putc 13 ;berganti
baris
putc 10
mov ah,09h
;memuat alamat kurs10 pada register dx
lea dx,kurs10
;mencetak string kurs10
jmp ulang
;menampilkan ke screen
euro:
mov ah,09h
;memuat alamat kurs7 pada register dx
lea dx,kurs7
;mencetak string kurs7
int 21h
;menampilkan ke screen
call scan_num
;memanggil prosedur scan_num
mov eu,cx
;menyimpan nilai kurs7 ke variabel eu dan di tempatkan di register cx
putc 13
;berganti baris
putc 10
mov ah,09h
;memuat alamat kurs8 pada register dx
lea dx,kurs8
;mencetak string kurs8
int 21h
;menampilkan ke screen
mov ax,eu
;memanggil variabel eu dan di konversi ke rupiah
mov bx,11
;mengisi bx dengan angka 11 (input*11)
imul bx
;mengalikan bx
mov rup,ax
;menyimpan hasil konversi ke variabel rup
call print_num
;memanggil prosedur print_num
mov ah,09h
;memuat alamat kurs12 pada register dx
lea dx,kurs12
;mencetak string kurs12
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs9 pada register dx
lea dx,kurs9
;mencetak string kurs9
int 21h
;menampilkan ke screen
putc 13
;berganti baris
putc 10
mov ah,09h
;memuat alamat kurs10 pada register dx
lea dx,kurs10
;mencetak string kurs10
jmp ulang ;menampilkan ke screen
define_scan_num
;mendefinisikan prosedur
define_print_num
define_print_num_uns
ulang:
mov ah,09h
;memuat alamat kurs10 pada register dx
lea dx,kurs10
;mencetak string kurs10
int 21h
;menampilkan ke screen
mov ah,09h
;memuat alamat kurs11 pada register dx
lea dx,kurs11
;mencetak string kurs11
int 21h
;menampilkan ke screen
loop start
;perulangan, mulai dari awal
selsai: ret
Setelah selesai kemudian simpan dan jalankan program tersebut dengan memilih menu Emulate (lingkaran warna merah).
Selanjutnya pilih Run ,maka program yang telah kita buat akan berjalan seperti berikut.
Sekian tutorial kali ini, semoga ilmu yang telah dibahas di atas bermanfaat bagi kita semua. Bila ada pertanyaan atau saran dari agan - agan jangan lupa tinggal komentar kalian. Sedikit saran akan memberikan banyak pelajaran...
-- Syeh Aji Ana --