Anda di halaman 1dari 16

LAPORAN PRAKTIKUM 7

“INPUTAN KEYBOARD”

DISUSUN
OLEH

NAMA : Akmal Sutansyah

KELAS : TI - 1B

NIM : 2021573010002

JURUSAN : Teknologi Informasi dan Komputer

PRODI : Teknik Informatika


DOSEN PEMBIMBING : Azhar, S. T., M.T

KEMENTRIAN RISET,TEKNOLOGI DAN PENDIDIKAN TINGGI

POLITEKNIK NEGERI LHOKSEUMAWE TAHUN

AJARAN 2022-2023

1
LEMBARAN PENGESAHAN

No. Praktikum : 07/PBA/TI 1B/2021

Nama Praktikum : PRAKTIKUM BAHASA ASSEMBLY

Judul Pratikum : INPUTAN KEYBOARD

Tanggal Pratikum : 3 JUNI 2022

Tanggal Penyerahan Laporan : 30 JUNI 2022

Nama Praktika : Akmal Sutansyah

NIM/Kelas : 2021573010002 / TI 1.B


Nilai :
Keterangan :

MENGETAHUI,
DOSEN PMBIMBING MAHASISWA

Azhar, S. T., M.T AKMAL SUTANSYAH


NIP .196408301990031005 NIM. 2021573010002

2
DAFTAR ISI

LEMBAR PENGESAHAN........................................................................................................i
DAFTAR ISI..............................................................................................................................ii
DAFTAR GAMBAR................................................................................................................iii
PRAKTIKUM IV.......................................................................................................................4
1.1 Tujuan Praktikum........................................................................................................4
1.2 Dasar Teori..................................................................................................................4
1.3 Percobaan....................................................................................................................8
1.3.1 Input keyboard untuk 1 karakter..........................................................................8
1.3.2 Input Sembarang Dari Keyboard.......................................................................10
1.3.3 Input Kalimat Dari Keyboard.............................................................................12

3
DAFTAR GAMBAR
Gambar 1 Hasil output dari input keyboard satu kalimat....................................................................10
Gambar 2 Hasil output dari Input Sembarang Dari Keyboard..............................................................12
Gambar 3 Hasil output dari Input Kalimat Dari Keyboard...................................................................14

4
PRAKTIKUM IV
MENGOLAH INPUT DARI KEYBOARD

1.1 Tujuan Praktikum

 Mahasiswa mampu melakukan pemrograman assembly menggunakan Turbo


Assembler.
 Mahasiswa mampu melakukan pemrograman assembly untuk mengolah masukkan
dari keyboard, baik berupa karakter maupun kalimat.

1.2 Dasar Teori

Keyboard merupakan salah satu dari sekian banyak macam piranti masukkan yang
dapat dikenali oleh komputer. Secara hardware, maka keyboard merupakan kumpulan saklar
yang memiliki kode dan sinyal yang berbeda-beda. Kode ini biasanya disebut sebagai scan
code. Scan code secara default merupakan kode sinyal mentah yang masih harus
ditranslasikan ke kode ASCII yang dapat dimengerti oleh pengguna. Selain itu terdapat juga
extended code. Kode ASCII yang dipergunakan untuk menyatakan penekanan tombol
normal, seperti tombol A, b, x, 1, 3, # dapat diakses melalui keyboard dengan kode non
extended. Sedangkan extended code merupakan kode yang mana dipergunakan keyboard
untuk menyatakan fungsi-fungsi khusus seperti F1-F12, Home, Page Up, Page Down, dan
sebagainya. Untuk tabel kode keyboard baik yang non extended maupun extended dapat
dilihat pada tabel berikut :

5
Tabel 1. Tabel Scan Code Normal

6
Tabel 2. Tabel Scan Code Extended

Untuk mengakses penekanan 1 karakter pada keyboard maka mikroprosesor akan


melakukan langkah-langkah sebagai berikut :
1. Isi register AH dengan 0 sebagai nomor servis interupsinya
2. Jalankan INT 16
3. Cek register AL untuk melihat tipe key yang dihasilkan :
• AL = 0 maka keyscan extended dengan AH berisi kode extended
• AL <> 0 maka keyscan biasa dengan AL berisi kode ASCII keyboard sedang AH
berisi kode keyscannya

7
Jika kita hanya akan mengetahui apakah ada tombol yang ditekan atau tidak maka
dipergunakan nomor servis 1 dari INT 16h dengan langkah sebagai berikut :
1. Isi register AH dengan 1
2. Jalankan INT 16h
3. Cek flag zero ZF :
• ZF = 1 maka tidak ada tombol yang ditekan
• ZF = 0 maka ada tombol yang ditekan dengan AL berisi kode ASCII
tombolnya dan AH berisi scan codenya
Untuk mengambil sebuah kalimat dari keyboard maka langkahnya lebih kompleks karena
kita harus menyiapkan sebuah buffer yang nantinya akan diisi oleh karakter yang kita
masukkan via keyboard. Untuk ini maka dipergunakan nomor servis 0Ah dari INT 21h
dengan langkah sebagai berikut :
1. Isi register AH dengan 0Ah
2. Isi register DS:DX dengan alamat dari buffer yang sudah disiapkan
3. Run INT 21h
Lalu untuk membuat sebuah label yang berisi buffer untuk karakternya, maka dipergunakan
sintaks :
X, Y, Z DUP(?)
• X untuk menunjukkan banyaknya karakter yang ingin dibaca ditambah 1 untuk
karakter 0Dh sebagai penanda akhir kalimatnya
• Y untuk menunjukkan banyak karakter yang telah diketikkan. Karena nantinya
dinamis, maka diset ke ?
• Z untuk awal kalimatnya dan harus diisi sama dengan nilai X

8
1.3 Percobaan

1.3.1 Input keyboard untuk 1 karakter

 Program Assembly
;========================================;
; Program : kbd00.ASM ;
; Fungsi : Input satu karakter ;
; dari keyboard. ;
;==========================================;
; INTERUPSI 16h ;
;==========================================;
; Input: OutPut: ;
; AH = 0 Jika tombol biasa, maka: ;
; AL = ASCII ;
; AH = SCAN ;
;;
; Jika Tombol khusus, maka ;
; AL = 00 ;
; AH = Extended ;
;;
;========================================;

.Model Small
.Code
ORG 100h

TData :
JMP Proses
T_ASCII db 13,10,'Ini adalah tombol ASCII : $'
T_Extended db 13,10,'Ini adalah tombol Extended $'

Proses :
MOV AH,0 ; Servis Input satu karakter
INT 16h ; Laksanakan
PUSH AX ; Simpan hasil pembacaan pada stack
CMP AL,00 ; Apakah ini karakter extended ?
JE Extended ; Ya !, Lompat ke Extended

ASCII:
LEA DX,T_ASCII ; Ambil alamat efektif T_ASCII
MOV AH,09 ; Servis cetak kalimat
INT 21h ; Cetak kalimat !
POP AX ; Ambil kembali nilai AX pada stack
MOV DL,AL ; Ambil kode ASCII yang ditekan
MOV AH,2 ; Servis cetak karakter

9
INT 21h ; Cetak karakter !
CMP AL,'Q' ; Apakah yang ditekan huruf 'Q' ?
JE exit ; Ya !, lompat ke Exit
CMP AL,'q' ; Apakah yang ditekan huruf 'q' ?
JE exit ; Ya !, lompat ke Exit
JMP Proses ; Lompat ke Proses

Extended:
LEA DX,T_Extended ; Ambil alamat efektif T_Extended
MOV AH,09 ; Servis cetak kalimat
INT 21h ; Cetak kalimat !
JMP Proses ; Lompat ke Proses

exit:
INT 20h ; Kembali ke DOS !

End TData

10
 Hasil Output

Gambar 1 Hasil output dari input keyboard satu kalimat

Analisa :
Jika dilihat dari output diatas, ada dua output yang akan keluar tergantung dari apa
yang di inputkan. Jika yang dimasukan adalah tombol ASCII maka outputnya akan
menampilkan komentar “ini adalah tombol ASCII : (lalu disertai dengan tampilan
tombol yang di input)”, namun jika yang di inputkan adalah tombol extended makan
outputnya akan menampilkan “ini adalah tombol extended”. Dan program akan
berhenti jika tombol “q” atau “Q” ditekan.

11
1.3.2 Input Sembarang Dari Keyboard

 Program Assembly

;=============================================;
; Program : kbd01.ASM ;
; Fungsi : Mengecek apakah ada tombol yang ditekan ;
;===============================================; ; INTERUPSI
16h ;
;===============================================;
; Input: OutPut: ;
; AH = 1 Jika Ada tombol yang ditekan ;
; ZF = 0 dan ;
; AL = kode ASCII ;
; AH = Scan Code ;
; Jika Tidak ada penekanan Tombol ZF = 1 ;
;=============================================;

.Model Small
.Code
ORG 100h

TData :
JMP Proses
Kal0 db 'Tekan sembarang tombol untuk berhenti ! '
db 13,10,'$'

Proses :
MOV AH,1 ; Servis untuk mengecek buffer keyboard
INT 16h ; Laksanakan !
JNZ EXIT ; Jika ada tombol yang ditekan, lompat Ke EXIT
MOV AH,09 ; Servis untuk cetak kalimat
LEA DX,Kal0 ; Ambil alamat efektif Kal0
INT 21h ; Cetak kalimat !
JMP Proses ; Lompat ke Proses

exit :
INT 20h ; Kembali ke DOS !

End TData

12
 Hasil Output

Gambar 2 Hasil output dari Input Sembarang Dari Keyboard

Analisa :

Jika dilihat dari output di atas perulangan akan terus menerus dilakukan. Perulangan
akan berhenti jika sembarang tombol di tekan, namun jika tidak ada satupun tombol
yang di tekan maka perulangan tidak akan pernah berhenti sampai komputer mati.

13
1.3.3 Input Kalimat Dari Keyboard

 Program Assembly

;=========================================================;
; Program : kbd02.ASM ; ; Fungsi : Input Kalimat dari ;
; keyboard. ;
;===========================================================;
; INTERUPSI 21h ;
;===========================================================;
; Input: ;
; AH = 0Ah ;
; DS:DX = Penampung dengan spesifikasi: ;
; Byte 1 = Maksimum karakter yang dapat dimasukkan ;
; Byte 2 = Akan dijadikan Indikator banyaknya ;
; karakter yang dimasukkan ;
; Byte 3 keatas = Tempat hasil masukan ditampung ;
;;
;;
;=========================================================;

.Model Small
.Code
ORG 100h

TData :
JMP Proses
T_Enter Equ 0DH
Kal0 db 'Ketikkan satu Kalimat : $'
Kal1 db 13,10,'Kalimat pada buffer : $'
Buffer db 23,?,23 DUP(?)

Proses :
MOV AH,09
LEA DX,Kal0
INT 21h ; Cetak kalimat Kal0
MOV AH,0AH ; Servis Input kalimat
LEA DX,Buffer ; DX menunjuk pada offset Buffer
INT 21h ; Input kalimat !
MOV AH,09
LEA DX,Kal1
INT 21h ; Cetak kalimat Kal1
LEA BX,Buffer+2 ; BX menunjuk byte ke 3 Buffer

14
Ulang:
CMP BYTE PTR [BX],T_Enter ; Apakah karakter Enter?
JE EXIT ; Ya! Lompat ke Exit
MOV DL,[BX] ; Masukkan karakter pada DL
MOV AH,02 ; Servis cetak karakter
INT 21h ; Cetak karakter
INC BX ; BX := BX+1
JMP Ulang ; Lompat ke Ulang

EXIT:
INT 20h ; Kembali ke DOS !

End TData

 Hasil Output

Gambar 3 Hasil output dari Input Kalimat Dari Keyboard

15
Analisa :
Setelah ada masukan dari keyboard, masukan pada output disini adalah “temanku
wibu” maka masukan tersebut akan tercetak setelah tombol enter di tekan. Namun
memiliki batasan untuk mencetak kalimat disini yaitu sebanyak 22 karakter, jika
karakter yang dimasukan lebih dari 22 karakter kalimat tersebut tidak bisa di
eksekusi atau di cetak.

Kesimpulan
 keyboard merupakan kumpulan saklar yang memiliki kode dan sinyal yang
berbeda-beda. Kode ini biasanya disebut sebagai scan code. Scan code secara
default merupakan kode sinyal mentah yang masih harus ditranslasikan ke
kode ASCII yang dapat dimengerti oleh pengguna.

 terdapat juga extended code yang berguna untuk menjangkau sinyal yang tidak
bisa dimengerti oleh kode ASCII biasa.

16

Anda mungkin juga menyukai