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.