57 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
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)
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;
//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)
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.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.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;
//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.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;
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 begin nrzl_garis(x); end;
if data[i]='0' then begin nrzl_atas(x); end; x:=x+40; end; end;
//berikut programnya untuk implementasi sinyal yang dipilih NRZ-I:
var i,x:integer; data:string;
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;
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); end; x:=x+40; 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;
mcs_garis(x); end; if data[i]='0' then begin mcs_bawah(x); 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 Nama File Deskripsi
Menu Utama MainMenu.pas Menu untuk menampilkan menu utama aplikasi
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 soal-soal.
kuisdelphi.swf File yang berisi latihan soal-soal, 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
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
Gambar 4.2 Form Menu Modul
3. Form Menu Simulasi
Berikut ini adalah implementasi tampilan form menu Simulasi.
4. Form Menu Latihan
Berikut ini adalah implementasi tampilan form Menu Latihan.
Gambar 4.4 Form Menu Latihan
5. Form Menu Profil
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.
Tabel 4.2 Skenario Uji form Simulasi
No. Item Uji Skenario Hasil yang diharapkan
Hasil pengujian 1. Menguji
penulisan input jika data yang dimasukkan selain angka 0 dan 1 - Pengguna menjalankan aplikasi. - Pengguna memilih menu simulasi. - Pengguna mengetikkan karakter atau angka selain 0 dan 1 pada kolom inputan. - Akan keluar pesan kesalahan “'Hanya untuk angka 0 atau 1 !” - Pengguna tidak dapat melanjutkan menjalankan aplikasi sampai angka yang dimasukkan 0 atau 1. Sesuai. 2. Menguji penulisan input yang valid berupa angka 0 dan 1. - Pengguna menjalankan aplikasi. - Pengguna memilih menu simulasi. - Pengguna - Akan membersihkan tampilan grafik sinyal sebelumnya. -Akan Sesuai.
Tabel 4.2 Skenario Uji form Simulasi (lanjutan) No. Item Uji Skenario Hasil yang
diharapkan
Hasil pengujian mengetikkan karakter
atau angka selain 0 dan 1 pada kolom inputan.
- Pengguna memilih salah satu tombol simulasi. menampilkan bentuk sinyal sesuai tombol konversi yang dipilih pengguna. 3. Menguji tombol clear. - Pengguna menjalankan aplikasi. - Pengguna memilih menu simulasi. - Pengguna menekan tombol Clear. Aplikasi membersihkan kolom input dan kolom output. Sesuai. 4. Menguji tombol keluar. - Pengguna menjalankan aplikasi. - Pengguna memilih menu simulasi. - Pengguna menekan tombol Exit.
Akan keluar dari menu simulasi dan kembali ke menu utama.
Tabel 4.3 Skenario Uji form Menu Utama No. Item Uji Skenario Hasil yang
diharapkan Hasil pengujian 1. Halaman menu utama, menu modul. - Pengguna menjalankan aplikasi. - Pengguna memilih menu modul. - Pengguna menekan tombol next. - Pengguna menekan tombol back. - Pengguna menekan tombol home. - Aplikasi terbuka. - Menampilkan halaman awal menu modul teori. - Menampilkan halaman selanjutnya. - Menampilkan halaman belumnya. - Menampilkan halaman awal menu modul. Sesuai. 2. Halaman menu utama, menu latihan. - Pengguna menjalankan 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.
Tabel 4.3 Skenario Uji form Menu Utama (lanjutan) No. Item Uji Skenario Hasil yang
diharapkan Hasil pengujian Halaman menu utama, menu latihan. pilihan ganda. - Pengguna memilih
salah satu jawaban yang dianggap benar dengan mengklik radio button. - Pengguna menekan
tombol jawab. - Pengguna mendapat
nilai 10 jika benar, dan nilai 0 jika jawaban salah. - Pengguna mendapatkan satu soal baru. - Pengguna menekan tombol stop. - Pengguna mendapatkan nilai total dari jawaban yang benar.
- Pengguna menekan tombol home.
- Menampilkan nilai hasil pilihan jawaban
pengguna, 10 untuk satu soal yang benar, dan 0 untuk yang salah. - Menampilkan satu pertanyaan baru yang telah diacak. - Menghitung mundur waktu sisa dari 100 detik. - Menghentikan pertanyaan dan menampilkan halaman penutup menu latihan. - Menampilkan total nilai. - Menuju ke halaman awal menu latihan. Sesuai.
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 kesalahan-kesalahan.