BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1
Implementasi
Tahapan implementasi bertujuan untuk memastikan apakah perangkat lunak yang dibuat dapat bekerja secara efektif dan efisien sesuai dengan yang diharapkan. Sebelum program diimplementasikan maka program harus bebas dari kesalahan, kesalahan penulisan bahasa, kesalahan waktu proses, atau kesalahan logical. Program dapat diimplementasikan setelah bebas dari kesalahan setelah melakukan pengujian.
4.1.1
Lingkup Implementasi Lingkup implementasi mencakup lingkup hardware (perangkat keras) dan
software (perangkat lunak) yang digunakan penulis untuk mengimplementasikan sistem.
1. Hardware (Perangkat Keras)
Lingkup hardware
merupakan perangkat atau tools yang digunakan pada
proses implementasi dari sistem yang telah dibuat. Adapun hardware yang digunakan untuk mengimplementasikan aplikasi ini adalah:
1.
Prosesor Genuine Intel® CPU U2700 @ 1.30GHz
2.
Motherboard PORTEGE T110
3.
Memori (RAM) 3.00 GB
4.
VGA On Board
5.
Monitor, Keyboard dan Mouse 57
58
2. Software (Perangkat Lunak)
Lingkup software
merupakan aplikasi yang digunakan dalam proses
implementasi sistem yang telah dibuat. Adapun software yang digunakan untuk mengimplementasikan aplikasi ini adalah sebagai berikut:
1.
Sistem operasi Microsoft Windows 7 Home Premium 32-bit.
2.
Borland Delphi 7
3.
Macromedia Flash Profesional 8
4.1.2
Hasil Implementasi
Hasil implementasi yang akan dibahas adalah hasil implementasi pada teknik pengkodean sinyal digital serta hasil implementasi pada antarmuka.
1. Implementasi teknik pengkodean sinyal digital
Berikut ini akan dijelaskan secara rinci mengenai implementasi pada aplikasi teknik pengkodean sinyal digital. Untuk implementasi pada teknik pengkodean sinyal digital adalah sebagai berikut:
//Procedure untuk membuat program sinyal Return to Zero (RZ). //dibuat procedure untuk membentuk sinyal kode 1 dan kode 0 sebagai berikut: procedure rz_1(x,y:integer); // untuk kode 1 nama procedurenya rz_1 begin with Form2.Image1.Canvas do begin // membuat gambar pada canvas di Form2 Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; //warna garis yang dibentuk merah Form2.Image1.Canvas.MoveTo(40+x,100);//tempatkan kursor di sumbu(40x,100)
59
Form2.Image1.Canvas.LineTo(40+x,60);//buat garis dari posisi kursor ke(40x,60) Form2.Image1.Canvas.MoveTo(40+x,60); Form2.Image1.Canvas.LineTo(60+y,60); Form2.Image1.Canvas.MoveTo(60+y,60); Form2.Image1.Canvas.LineTo(60+y,100); Form2.Image1.Canvas.MoveTo(60+y,100); Form2.Image1.Canvas.LineTo(80+y,100); Form2.Image1.Canvas.Pen.Color:=clblack;// warna garis dibentuk hitam end; end; procedure rz_0(x,y:integer);//untuk kode 0 nama procedurenya rz_0 begin with Form2.Image1.Canvas do begin // membuat gambar pada canvas di Form2 Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,100);//tempatkan kursor di sumbu(40x,100) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursor ke(40x,140) Form2.Image1.Canvas.MoveTo(40+x,140); Form2.Image1.Canvas.LineTo(60+y,140); Form2.Image1.Canvas.MoveTo(60+y,140); Form2.Image1.Canvas.LineTo(60+y,100); Form2.Image1.Canvas.MoveTo(60+y,100); Form2.Image1.Canvas.LineTo(80+y,100); Form2.Image1.Canvas.Pen.Color:=clblack; end; end;
60
//Procedure untuk membuat program sinyal Return to Zero Level (NRZ-L): //dibuat procedure membentuk sinyal diatas dan dibawah garis sumbu koordinat:
procedure nrzl_atas(x:integer); //untuk sinyal atas nama procedurenya nrzl_atas begin with Form2.Image1.Canvas do begin // membuat gambar pada canvas di Form2 Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(80+x,60); //buat garis dari posisi kursor ke(80x,60) end; end; procedure nrzl_bawah(x:integer); //sinyal bawah nama procedurenya nrzl_bawah begin with Form2.Image1.Canvas do begin // membuat gambar pada canvas di Form2 Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,140); //tempatkan kursor di sumbu(40x,140) Form2.Image1.Canvas.LineTo(80+x,140); //buat garis dari posisi kursor ke(80x,140) end; end; //garis menghubungkan sinyal nama procedurenya nrzl_garis procedure nrzl_garis(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursor ke(40x,140)
61
end; end; //Procedure untuk membuat program sinyal Return to Zero Invert (NRZ-I): //dibuat procedure membentuk sinyal diatas dan dibawah garis sumbu koordinat: procedure nrzi_atas(x:integer); //untuk sinyal atas nama procedurenya nrzi_atas begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(80+x,60); //buat garis dari posisi kursor ke(80x,60) end; end; //untuk sinyal bawah nama procedurenya nrzi_bawah procedure nrzi_bawah(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,140); //tempatkan kursor di sumbu(40x,140) Form2.Image1.Canvas.LineTo(80+x,140); //buat garis dari posisi kursor ke(80x,140) end; end; //garis menghubungkan sinyal nama procedurenya nrzi_garis procedure nrzi_garis(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred;
62
Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursor ke(40x,140) end; end; //Procedure untuk membuat program sinyal Manchester: //dibuat procedure membentuk sinyal diatas dan dibawah garis sumbu koordinat: procedure mcs_atas(x:integer); //untuk sinyal atas nama procedurenya mcs_atas begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,140); //tempatkan kursor di sumbu(40x,140) Form2.Image1.Canvas.LineTo(60+x,140); //buat garis dari posisi kursor(60x,140) Form2.Image1.Canvas.MoveTo(60+x,60); Form2.Image1.Canvas.LineTo(60+x,140); Form2.Image1.Canvas.MoveTo(60+x,60); Form2.Image1.Canvas.LineTo(80+x,60); end; end; //untuk sinyal bawah nama procedurenya mcs_bawah procedure mcs_bawah(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 points Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(60+x,60); //buat garis dari posisi kursor ke(60x,60) Form2.Image1.Canvas.MoveTo(60+x,60); Form2.Image1.Canvas.LineTo(60+x,140);
63
Form2.Image1.Canvas.MoveTo(60+x,140); Form2.Image1.Canvas.LineTo(80+x,140); end; end; //untuk sinyal garis nama procedurenya mcs_garis procedure mcs_garis(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursor ke(40x,140) end; end; //Procedure untuk membuat program sinyal Differensial Manchester: //dibuat procedure membentuk sinyal diatas dan dibawah garis sumbu koordinat: procedure dmcs_atas(x:integer); //untuk sinyal atas nama procedurenya dmcs_atas begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(60+x,60); //buat garis dari posisi kursor ke(60x,60) Form2.Image1.Canvas.MoveTo(60+x,60); Form2.Image1.Canvas.LineTo(80+x,60); end; end;
64
//untuk sinyal bawah nama procedurenya dmcs_bawah procedure dmcs_bawah(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,140); //tempatkan kursor di sumbu(40x,140) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursorke(40x,140) end; end; //untuk sinyal garis nama procedurenya dmcs_garis procedure dmcs_garis(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60) Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursorke(40x,140) Form2.Image1.Canvas.MoveTo(80+x,140); Form2.Image1.Canvas.LineTo(60+x,140); end; end; //untuk inputan 0 nama procedurenya dmcs_nol procedure dmcs_nol(x:integer); begin with Form2.Image1.Canvas do begin Pen.Width:=4; //lebar pen 4 point Form2.Image1.Canvas.Pen.Color:=clred; Form2.Image1.Canvas.MoveTo(40+x,60); //tempatkan kursor di sumbu(40x,60)
65
Form2.Image1.Canvas.LineTo(40+x,140); //buat garis dari posisi kursorke(40x,140) Form2.Image1.Canvas.MoveTo(60+x,140); Form2.Image1.Canvas.LineTo(40+x,140); Form2.Image1.Canvas.MoveTo(60+x,60); Form2.Image1.Canvas.LineTo(60+x,140); end; end;
//Procedure untuk konversi data digital ke bentuk sinyal RZ adalah sebagai berikut: //dari procedure yang telah dibuat diatas, diimplementasikan dalam program: //deklarasi variabel yang dibutuhkan yaitu i, x dan y type integer, var data type string var i,x,y:integer; data:string; begin Form2.Image1.Picture:=nil; //membersihkan kolom output dari tampilan sebelumnya x:=0; y:=0; // pemberian nilai pada variabel x dan y data:=Form2.inputan.text; // variabel data adalah dari label bernama inputan.text Form2.keterangan.caption :='RZ' ; //label keterangan diisi dengan RZ keterangan.Font.Color := clYellow; //memanggil procedure yang sudah dibuat untuk menampilkan sinyal kode 1 dan 0 //dilakukan looping sepanjang banyaknya data yang diinput pada label inputan.text //dalam hal ini penulis membatasi panjang karakter yang diinput maksimal 10 angka: //berikut programnya untuk implementasi sinyal yang dipilih Return to Zero (RZ): for i:=1 to length(Form2.inputan.Text) do // begin if data[i]='1' then begin rz_1(x,y); end ; if data[i]='0' then begin rz_0(x,y);
end;
66
y:=y+40;
x:=x+40;
end; end;
//berikut programnya untuk implementasi sinyal yang dipilih NRZ-L:
var i,x:integer; data:string; begin Form2.Image1.Picture:=nil; x:=0; data:=Form2.inputan.text; Form2.keterangan.caption :='NRZL' ; keterangan.Font.Color := clYellow; for i:=1 to length(Form2.inputan.Text) do begin if data[i]='1' then begin nrzl_bawah(x);
end;
if data[i]<>data[i-1] then nrzl_garis(x);
end;
if data[i]='0' then nrzl_atas(x);
begin
begin
end;
x:=x+40; end; end;
//berikut programnya untuk implementasi sinyal yang dipilih NRZ-I:
var i,x:integer; data:string;
67
a:boolean; begin Form2.Image1.Picture:=nil; x:=0; a:=false; data:=Form2.inputan.Text; Form2.keterangan.caption :='NRZI' ; keterangan.Font.Color := clYellow; for i:=1 to length(Form2.inputan.Text) do begin if data[i]='1' then a:= not a; if a =true then nrzi_atas(x) else nrzi_bawah(x); if data[i]='1' then nrzi_garis(x); x:=x+40; end; end;
//berikut programnya untuk implementasi sinyal yang dipilih Differensial Manchester:
procedure TForm2.Button6Click(Sender: TObject); var i,x:integer; data:string; begin Form2.Image1.Picture:=nil; x:=0;
68
data:=Form2.inputan.Text; Form2.keterangan.caption :='Differensial Manchester' ; keterangan.Font.Color := clYellow; for i:=1 to length(Form2.inputan.Text) do begin if data[i]='0' then
begin
mcs_atas(x); end; if data[i]= data[i-1] then
begin
mcs_garis(x); end; if data[i]='1' then begin mcs_bawah(x); x:=x+40;
end;
end;
end;
//berikut programnya untuk implementasi sinyal yang dipilih Manchester:
var i,x:integer; data:string; begin Form2.Image1.Picture:=nil; x:=0; data:=Form2.inputan.Text; Form2.keterangan.caption :='Manchester' ; keterangan.Font.Color := clYellow; for i:=1 to length(Form2.inputan.Text) do begin if data[i]='1' then begin mcs_atas(x);
end;
if data[i]= data[i-1] then begin
69
mcs_garis(x); if data[i]='0' then mcs_bawah(x);
end; begin end;
x:=x+40; end; end;
//berikut implementasi untuk proses pengujian, memfilter data input 0 dan 1: //input data yang bisa diterima hanyalah angka 0, 1 dan tombol backspace //jika data yang diinput selain itu maka akan ditampilkan // pesan kesalahan 'Hanya untuk angka 0 atau 1 !’, implementasinya berikut ini: begin // #8 is Backspace if not (Key in [#8,'0'..'1']) then begin ShowMessage('Hanya untuk angka 0 atau 1 !'); // Discard the key Key := #0; end; end;
4.1.3 Implementasi antarmuka
Implementasi antarmuka diimplementasikan pada setiap halaman aplikasi yang dibuat dan pengkodeannya dalam bentuk file program. Berikut ini adalah implementasi antarmuka yang dibuat.
Tabel 4.1 Nama File Antarmuka Form Menu Utama
Nama File MainMenu.pas
Deskripsi Menu untuk menampilkan menu utama aplikasi
70
Tabel 4.1 Nama File Antarmuka(lanjutan) Form
Nama File
Deskripsi pembelajaran pengkodean sinyal digital.
Menu Modul
Unit1.pas
Form untuk menampilkan modul teori.
Modulkode.swf
File yang berisi modul teori, yang dibuat dengan menggunakan flash macromedia 8, yang diintegrasikan dengan program Delphi 7.
Menu Simulasi
Unit2.pas
Form untuk menampilkan menu simulasi pengkodean sinyal digital.
Menu Latihan
Unit3.pas
Form untuk menampilkan halaman kuis latihan soalsoal.
kuisdelphi.swf
File yang berisi latihan soalsoal, yang dibuat dengan menggunakan flash macromedia 8, yang diintegrasikan dengan program Delphi 7.
banksoal.txt
File yang berisi database soal-soal pertanyaan.
Menu Profil
Unit5.pas
Form untuk menampilkan menu profil penulis.
71
Untuk implementasi tampilan antarmukanya adalah sebagai berikut: 1.
Form Menu Utama Berikut ini adalah implementasi tampilan form menu utama.
Gambar 4.1 Form Menu Utama 2.
Form Menu Modul Berikut ini adalah implementasi tampilan form menu modul.
72
Gambar 4.2 Form Menu Modul
3.
Form Menu Simulasi Berikut ini adalah implementasi tampilan form menu Simulasi.
Gambar 4.3 Form Menu Simulasi
73
4.
Form Menu Latihan Berikut ini adalah implementasi tampilan form Menu Latihan.
Gambar 4.4 Form Menu Latihan
5.
Form Menu Profil Berikut ini adalah implementasi tampilan form Menu Profil.
74
Gambar 4.5 Form Menu Profil
4.2
PENGUJIAN
Pengujian program aplikasi dilakukan dengan metode black box testing. Metode black box ini merupakan pengujian berdasarkan fungsi dari program yang bertujuan untuk menemukan kesalahan fungsi pada program. Pengujian dilakukan dengan cara memberikan sejumlah masukkan (input) pada program aplikasi yang kemudian diproses sesuai dengan kebutuhan fungsionalnya untuk melihat apakah program aplikasi menghasilkan keluaran (output) yang diinginkan dan sesuai dengan fungsi dari program aplikasi tersebut.
4.2.1 Skenario Uji
Berikut ini akan ditampilkan skenario uji dari form simulasi dan form menu utama.
75
Tabel 4.2 Skenario Uji form Simulasi
No.
1.
Item Uji
Menguji
Skenario
- Pengguna
Hasil yang
Hasil
diharapkan
pengujian
- Akan keluar
Sesuai.
penulisan input
menjalankan
pesan kesalahan
jika data yang
aplikasi.
“'Hanya untuk
dimasukkan selain angka 0 dan 1
- Pengguna memilih
angka 0 atau 1 !”
menu simulasi.
- Pengguna tidak
- Pengguna
dapat melanjutkan
mengetikkan
menjalankan
karakter atau angka
aplikasi sampai
selain 0 dan 1 pada
angka yang
kolom inputan.
dimasukkan 0 atau 1.
2.
Menguji
- Pengguna
- Akan
penulisan input
menjalankan
membersihkan
yang valid
aplikasi.
tampilan grafik
berupa angka 0 - Pengguna memilih
sinyal
dan 1.
sebelumnya.
menu simulasi. - Pengguna
-Akan
Sesuai.
76
Tabel 4.2 Skenario Uji form Simulasi (lanjutan) No.
Item Uji
Skenario
Hasil yang
Hasil
diharapkan
pengujian
mengetikkan karakter
menampilkan
atau angka selain 0
bentuk sinyal
dan 1 pada kolom
sesuai tombol
inputan.
konversi yang
- Pengguna memilih
dipilih pengguna.
salah satu tombol simulasi.
3.
Menguji tombol clear.
- Pengguna
Aplikasi
menjalankan
membersihkan
aplikasi.
kolom input dan
- Pengguna memilih
Sesuai.
kolom output.
menu simulasi. - Pengguna menekan tombol Clear. 4.
Menguji tombol keluar.
- Pengguna
Akan keluar dari
menjalankan
menu simulasi
aplikasi.
dan kembali ke menu utama.
- Pengguna memilih menu simulasi.
- Pengguna menekan tombol Exit.
Sesuai.
77
Tabel 4.3 Skenario Uji form Menu Utama No.
Item Uji
1. Halaman menu
Skenario
- Pengguna
Hasil yang
Hasil
diharapkan
pengujian
- Aplikasi
Sesuai.
utama, menu
menjalankan
terbuka.
modul.
aplikasi.
- Menampilkan
- Pengguna memilih menu modul. - Pengguna menekan tombol next. - Pengguna menekan tombol back. - Pengguna menekan tombol home.
halaman awal menu modul teori. - Menampilkan halaman selanjutnya. - Menampilkan halaman belumnya. - Menampilkan halaman awal menu modul.
2. Halaman menu
- Pengguna
utama, menu
menjalankan
latihan.
aplikasi. - Pengguna memilih menu Latihan. - Pengguna mengetik nama. - Pengguna menekan tombol mulai. - Pengguna mendapatkan satu pertanyaan soal
- Aplikasi terbuka.
- Menampilkan halaman awal menu latihan. - Menampilkan satu buah soal. - Menghitung mundur waktu dari 100 detik.
Sesuai.
78
Tabel 4.3 Skenario Uji form Menu Utama (lanjutan) No.
Item Uji
Skenario
Hasil yang
Hasil
diharapkan
pengujian Sesuai.
Halaman menu
pilihan ganda.
- Menampilkan
utama, menu
- Pengguna memilih
nilai hasil pilihan
latihan.
salah satu jawaban
jawaban
yang dianggap benar pengguna, 10 dengan mengklik
untuk satu soal
radio button.
yang benar, dan 0
- Pengguna menekan tombol jawab.
untuk yang salah. - Menampilkan
- Pengguna mendapat
satu pertanyaan
nilai 10 jika benar,
baru yang telah
dan nilai 0 jika
diacak.
jawaban salah.
- Menghitung
- Pengguna
mundur waktu
mendapatkan satu
sisa dari 100
soal baru.
detik.
- Pengguna menekan tombol stop. - Pengguna
- Menghentikan pertanyaan dan menampilkan
mendapatkan nilai
halaman penutup
total dari jawaban
menu latihan.
yang benar.
- Menampilkan
- Pengguna menekan tombol home.
total nilai. - Menuju ke halaman awal menu latihan.
79
4.2.2 Kesimpulan Hasil Pengujian
Berdasarkan hasil pengujian dengan skenario-skenario uji diatas dapat ditarik kesimpulan bahwa sistem sudah berjalan sesuai dengan semestinya, output sesuai dengan apa yang diharapkan dan sistem dapat memfilter jika terjadi kesalahankesalahan.