Pengujian Keseluruhan Sistem Pengujian Perangkat Lunak Sistem

TP5 TP6 TP7 TP8 TP9 TP10 TP11 TP12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

IV.2. Pengujian Keseluruhan Sistem

Langkah-lanagkah pengujian keseluruhan adalah sebagai berikut : 1. Siapkan semua komponen sistem yang akan diuji 2. Periksa semua komponen apakah telah terhubung dengan baik 3. Aktifkan Catu Daya 4. Amati pesan pada tampilan 7segment, apakah berfungsi dengan baik 5. Berikan masukan set point ke sistem melalui keypad 6. Jalankan sistem dengan tombol ENTER 7. Perhatikan apakah sistem berkerja dengan baik 8. Lakukan perbaikan atau penyempurnaan bila terdapat kekurangan-kekurangan Keterangan : Dari hasil pengujian diatas diperoleh kesimpulan bahwa sistem berkerja dengan cara membaca masukan set point, lalu system akan melakukan penguncian selang infus dengan cara memutar mekanisme penjepit dengan motor dan sebaliknya disesuaikan dengan pilihan dari tombol yang ditekan. Universitas Sumatera Utara Dari hasil pengamatan tersebut diperlihatkan bahwa motor penjepit selang infus senantiasa bergerak melakukan penyesuaian hingga diperoleh hasil sama dengan set point. Adapun kesalahan yang ditimbulkan adalah kesalahan mekanisme pergerakan penjepit selang.

IV.3. Pengujian Perangkat Lunak Sistem

Untuk memudahkan pengenalan masing-masing port dalam pemograman, dibutuhkan sebuah inisialisasi masing-masing port tersebut, adapun port-port yang digunakan haruslah diberi alamat dari masing-masing port tersebut. Untuk port p0 memiliki alamat 080h sedangkan port p3 alamatnya 0b0h. p0 equ 080h p1 equ 090h p2 equ 0a0h p3 equ 0b0h buff equ 030h status equ 031h one equ 032h step1 equ 033h step2 equ 034h step3 equ 035h step4 equ 036h step5 equ 037h step6 equ 038h Pada proses pembuatan program selalu diawali dengan penempatan awal dari program, hal ini dilakukan dengan pemberian alamat awal 0000h seperti pada perintah dibawah ini : org 0000h Universitas Sumatera Utara Kemudian pada rutin setting, pertama-tama program akan melakukan pengecekan terhadap tombol, jika port p3.0 ditekan maka program akan lompat ke rutin set_tekan, namun jika tidak maka program akan memeriksa port p3.1, jika berlogika 0 maka program akan lompat ke rutin set_lepas, demikian seterusnya hingga port p3.2, jika tidak ada yang berlogika 0 maka program akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke rutin setting. setting: jnb p3.0,set_tekan jnb p3.1,set_lepas jnb p3.2,check_1 mov p1,00h jmp setting Kemudian pada rutin set_tekan, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port p3.0 namun jika tidak mengalami penekanan maka program akan lompat ke rutin tekan dan dilanjutkan dengan lompat ke rutin setting. set_tekan: jnb p3.0, call tekan jmp setting Pada rutin set_lepas, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port p3.1 namun jika tidak mengalami penekanan maka program akan lompat ke rutin lepas dan dilanjutkan dengan lompat ke rutin setting. set_lepas: jnb p3.1, call lepas jmp setting Pada rutin check_1, program akan melakukan pengecekan terhadap port p3.2, jika port p3.2 masih berlogika 0 maka program akan terus menerus memeriksa port Universitas Sumatera Utara p3.2 namun jika tidak mengalami penekanan maka program akan lompat ke rutin delay dan dilanjutkan dengan lompat ke rutin beep. check_1: jnb p3.2, call delay call beep Pada rutin check_1again, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin tekan1, jika berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1 berlogika 0 maka program akan lompat ke rutin lepas1, jika berlogika 1 maka program akan memeriksa port p3.2, apakah berlogika 0 atau 1, jika berlogika 0 maka program akan lompat ke rutin setting_zero, sedangkan jika berlogika 1 aka data 00h dimasukkan ke port p1 dan dilanjutkan dengan lompat ke rutin check_1again. check_1again:jnb p3.0,tekan1 jnb p3.1,lepas1 jnb p3.2,setting_zero mov p1,00h jmp check_1again Pada subrutin tekan program memasukkan data 11111000b f8h ke port 1 P1. Lalu diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110100b f4h, 11110010b f2h dan 11110001b f1h dimasukkan ke port p1 lalu lompat ke rutin dly_lo kemudian di akhir program akan lompat ke rutin yang memanggil. tekan: mov p1,11111000b call dly_lo mov p1,11110100b call dly_lo mov p1,11110010b call dly_lo Universitas Sumatera Utara mov p1,11110001b call dly_lo mov p1,00h ret Pada subrutin lepas program memasukkan data 11110001b f1h ke port 1 P1. Lalu diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110010b f2h, 11110100b f4h dan 11111000b f8h dimasukkan ke port p1 lalu lompat ke rutin dly_lo kemudian di akhir program akan lompat ke rutin yang memanggil. lepas: mov p1,11110001b call dly_lo mov p1,11110010b call dly_lo mov p1,11110100b call dly_lo mov p1,11111000b call dly_lo mov p1,00h ret Pada rutin tekan1, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port p3.0 namun jika tidak mengalami penekanan maka program akan memasukkan data step1 ke akumulator lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin get_tekan namun jika sama maka program akan lompat ke rutin check_1again. tekan1: jnb p3.0, mov a,step1 cjne a,00h,get_tekan jmp check_1again Pada rutin get_tekan data dari step1 dimasukkan ke akumulator lalu isi dari step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan dengan angka 0ffh, jika tidak sama maka program akan lompat ke tekanj namun jika Universitas Sumatera Utara sama maka program akan memasukkan data 00h ke step1 dan dilanjutkan dengan lompat ke check_1again. get_tekan: mov a,step1 dec a mov step1,a cjne a,0ffh,tekanj mov step1,00h jmp check_1again Pada rutin tekanj program akan lompat ke rutin tekan, lalu lompat ke rutin check_1again. tekanj: call tekan jmp check_1again Pada rutin lepas1, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port p3.1 namun jika tidak mengalami penekanan maka program akan memasukkan data step1 ke akumulator lalu dibandingkan dengan data 0ffh, jika tidak sama maka program akan lompat ke rutin get_lepas namun jika sama maka program akan lompat ke rutin check_1again. lepas1: jnb p3.1, mov a,step1 cjne a,0ffh,get_lepas jmp check_1again Pada rutin get_lepas data dari step1 dimasukkan ke akumulator lalu isi dari step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan dengan angka 00h, jika tidak sama maka program akan lompat ke lepasj namun jika sama maka program akan memasukkan data 0ffh ke step1 dan dilanjutkan dengan lompat ke check_1again. Universitas Sumatera Utara get_lepas: mov a,step1 inc a mov step1,a cjne a,00h,lepasj mov step1,0ffh jmp check_1again Pada rutin lepasj program akan lompat ke rutin lepas, lalu lompat ke rutin check_1again. lepasj: call lepas jmp check_1again Pada rutin setting_zero data dari step1 dimasukkan ke akumulator lalu isi dari akumulator dimasukkan ke register one lalu program lompat ke rutin tekan, kemudian isi dari register one dikurangkan dengan 1 lalu dibandingkan dengan angka 00h, jika tidak sama maka program akan lompat ke next_tekan namun jika sama maka program akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke check_tombol. setting_zero:mov a,step1 mov one,a next_tekan: call tekan mov a,one dec a mov one,a cjne a,00h,next_tekan mov p1,00h jmp check_tombol Pada rutin check_tombol, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin satu, jika berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1 berlogika 0 maka program akan lompat ke rutin dua, jika berlogika 1 maka program akan memeriksa port p3.2, apakah berlogika 0 atau 1, jika berlogika 0 maka program Universitas Sumatera Utara akan lompat ke rutin tiga, demikan seterusnya hingga port p2.0 dicek apakah berlogika 0 atau berlogika 1namun jika berlogika 1 maka program akan lompat ke rutin check_tombol. check_tombol:jnb p3.0,satu jnb p3.1,dua jnb p3.2,tiga jnb p3.3,empat jnb p3.4,lima jnb p3.5,enam jnb p3.6,action jnb p2.0,infus_kosong jmp check_tombol Pada rutin satu, program akan melakukan pengecekan terhadap port p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port p3.0 namun jika tidak mengalami penekanan maka program akan memasukkan data 01h ke status lalu memasukkan data 01h ke port p0 kemudian program akan lompat ke rutin check_tombol. satu: jnb p3.0, mov status,01h mov p0,01h jmp check_tombol Pada rutin dua, program akan melakukan pengecekan terhadap port p3.1, jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port p3.1 namun jika tidak mengalami penekanan maka program akan memasukkan data 02h ke status lalu memasukkan data 02h ke port p0 kemudian program akan lompat ke rutin check_tombol. dua: jnb p3.1, mov status,02h mov p0,02h jmp check_tombol Universitas Sumatera Utara Pada rutin tiga, program akan melakukan pengecekan terhadap port p3.2, jika port p3.2 masih berlogika 0 maka program akan terus menerus memeriksa port p3.2 namun jika tidak mengalami penekanan maka program akan memasukkan data 03h ke status lalu memasukkan data 03h ke port p0 kemudian program akan lompat ke rutin check_tombol. tiga: jnb p3.2, mov status,03h mov p0,03h jmp check_tombol Pada rutin empat, program akan melakukan pengecekan terhadap port p3.3, jika port p3.3 masih berlogika 0 maka program akan terus menerus memeriksa port p3.3 namun jika tidak mengalami penekanan maka program akan memasukkan data 04h ke status lalu memasukkan data 04h ke port p0 kemudian program akan lompat ke rutin check_tombol. empat: jnb p3.3, mov status,04h mov p0,04h jmp check_tombol Pada rutin lima, program akan melakukan pengecekan terhadap port p3.4, jika port p3.4 masih berlogika 0 maka program akan terus menerus memeriksa port p3.4 namun jika tidak mengalami penekanan maka program akan memasukkan data 05h ke status lalu memasukkan data 05h ke port p0 kemudian program akan lompat ke rutin check_tombol. lima: jnb p3.4, mov status,05h mov p0,05h jmp check_tombol Universitas Sumatera Utara Pada rutin enam, program akan melakukan pengecekan terhadap port p3.5, jika port p3.5 masih berlogika 0 maka program akan terus menerus memeriksa port p3.5 namun jika tidak mengalami penekanan maka program akan memasukkan data 06h ke status lalu memasukkan data 06h ke port p0 kemudian program akan lompat ke rutin check_tombol. enam: jnb p3.5, mov status,06h mov p0,06h jmp check_tombol Pada rutin infus_kosong program akan lompat ke rutin beep, kemudian program akan memeriksa apakah port p2.0 berlogika 0 atau 1, jika berlogika 0 maka program akan lompat ke rutin infus_kosong, namun jika berlogika 1 maka program akan lompat ke rutin check_tombol. infus_kosong:call beep jnb p2.0,infus_kosong jmp check_tombol Pada rutin action data pada status dimasukkan ke akumulator lalu dibandingkan dengan data 01h, jika tidak sama maka program lompat ke rutin act2, jika sama maka program akan lompat ke rutin satutetes. Demikian halnya untuk rutin act2 hingga act6 hal yang sama akan dilakukan namun jika tidak sama maka program akan lompat ke rutin check_tombol. action: mov a,status cjne a,01h,act2 jmp satutetes act2: cjne a,02h,act3 jmp duatetes act3: cjne a,03h,act4 jmp tigatetes act4: cjne a,04h,act5 Universitas Sumatera Utara jmp empattetes act5: cjne a,05h,act6 jmp limatetes act6: cjne a,06h,actend jmp enamtetes actend: jmp check_tombol Pada rutin satutetes data 01h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextsatul, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan data pada step1 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextsatut, namun jika sama maka program akan lompat ke rutin check_tombol. satutetes: mov p0,01h mov a,step1 nextsatul: call lepas mov buff,a dec a mov buff,a cjne a,00h,nextsatul jb p3.6, jnb p3.6, mov p0,0ffh mov a,step1 nextsatut: call tekan mov buff,a dec a mov buff,a cjne a,00h,nextsatut jmp check_tombol Pada rutin duatetes data 02h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator Universitas Sumatera Utara dengan data 0bh, kemudian hasilnya dimasukkan ke step2 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextdual, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan data pada step2 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextduat, namun jika sama maka program akan lompat ke rutin check_tombol. duatetes: mov p0,02h mov a,step1 subb a,0bh mov step2,a nextdual: call lepas mov buff,a dec a mov buff,a cjne a,00h,nextdual jb p3.6, jnb p3.6, mov p0,0ffh mov a,step2 nextduat: call tekan mov buff,a dec a mov buff,a cjne a,00h,nextduat jmp check_tombol Pada rutin tigatetes data 03h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator dengan data 0fh, kemudian hasilnya dimasukkan ke step3 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff Universitas Sumatera Utara dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextigal, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan data pada step3 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nexttigat, namun jika sama maka program akan lompat ke rutin check_tombol. tigatetes: mov p0,03h mov a,step1 subb a,0fh mov step3,a nexttigal: call lepas mov buff,a dec a mov buff,a cjne a,00h,nexttigal jb p3.6, jnb p3.6, mov p0,0ffh mov a,step3 nexttigat: call tekan mov buff,a dec a mov buff,a cjne a,00h,nexttigat jmp check_tombol Pada rutin empattetes data 04h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator dengan data 11h, kemudian hasilnya dimasukkan ke step4 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextempatl, jika sama maka Universitas Sumatera Utara program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan data pada step4 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextempatt, namun jika sama maka program akan lompat ke rutin check_tombol. empattetes: mov p0,04h mov a,step1 subb a,11h mov step4,a nextempatl: call lepas mov buff,a dec a mov buff,a cjne a,00h,nextempatl jb p3.6, jnb p3.6, mov p0,0ffh mov a,step4 nextempatt: call tekan mov buff,a dec a mov buff,a cjne a,00h,nextempatt jmp check_tombol Pada rutin limatetes data 05h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator dengan data 16h, kemudian hasilnya dimasukkan ke step5 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextlimal, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan Universitas Sumatera Utara data pada step5 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextlimat, namun jika sama maka program akan lompat ke rutin check_tombol. limatetes: mov p0,05h mov a,step1 subb a,16h mov step5,a nextlimal: call lepas mov buff,a dec a mov buff,a cjne a,00h,nextlimal jb p3.6, jnb p3.6, mov p0,0ffh mov a,step5 nextlimat: call tekan mov buff,a dec a mov buff,a cjne a,00h,nextlimat jmp check_tombol Pada rutin enamtetes data 06h dimasukkan ke port p0, lalu data pada step1 dimasukkan ke akumulator kemudian program akan mengurangkan isi akumulator dengan data 16h, kemudian hasilnya dimasukkan ke step5 lalu program dilanjutkan dengan lompat ke rutin lepas. Selanjutnya data pada akumulator dimasukkan ke buff dan kemudian isi akumulator dikurangkan dengan 1 lalu dibandingkan dengan data 00h, jika tidak sama maka program akan lompat ke rutin nextenaml, jika sama maka program akan memeriksa port p3.6 apakah berlogika 0, jika berlogika 0 maka program akan memasukkan data 0ffh ke port p0 dan dilanjutkan dengan memasukkan data pada step6 ke akumulator kemudian lompat ke rutin tekan. Selanjutnya isi akumulator dikurangkan dengan 1 dan dibandingkan dengan data 00h, jika tidak sama Universitas Sumatera Utara maka program akan lompat ke rutin nextenamt, namun jika sama maka program akan lompat ke rutin check_tombol. enamtetes: mov p0,06h mov a,step1 subb a,18h mov step6,a nextenaml: call lepas mov buff,a dec a mov buff,a cjne a,00h,nextenaml jb p3.6, jnb p3.6, mov p0,0ffh mov a,step6 nextenamt: call tekan mov buff,a dec a mov buff,a cjne a,00h,nextenamt jmp check_tombol Pada rutin beep port p1.7 diberi logika 1 dan p2.7 diberi logika 0, lalu program lompat ke rutin delay, kemudian port p1.7 diberi logika 0 dan p2.7 diberi logika 1 dan diikuti dengan lompat ke rutin delay, serta diakhiri dengan perintah untuk kembali ke yang memanggil. beep: setb p1.7 clr p2.7 call delay clr p1.7 setb p2.7 call delay ret Subrutin dly_lo berisikan proses penundaan waktu bergantung dari nilai r2 dan r3, apabila nilai tersebut dinaikkan maka akan menyebabkan penundaan waktu yang lebih lama. Demikian sebaliknya jika nilai r2 dan r3 dikurangidikecilkan maka akan mengakibatkan penundaan waktu yang lebih cepat. dly_lo: mov r2,0a3h Universitas Sumatera Utara del2s: mov r3,22h djnz r3, djnz r2,del2s ret Subrutin delay berisikan proses penundaan waktu bergantung dari nilai r2, r3 dan r4, apabila nilai tersebut dinaikkan maka akan menyebabkan penundaan waktu yang lebih lama. Demikian sebaliknya jika nilai r2, r3 dan r4 dikurangidikecilkan maka akan mengakibatkan penundaan waktu yang lebih cepat. delay: mov r2,03h del2: mov r3,0ffh del1: mov r4,0ffh djnz r4, djnz r3,del1 djnz r2,del2 ret Pada akhir dari program akan selalu diakhiri dengan perintah end. end IV.4. ANALISA PENGUKURAN IV.4.1. Analisa pengukuran terhadap waktu t.