BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1
IMPLEMENTASI
Setelah melakukan analisi dan perancangan sistem terhadap Aplikasi Bengkel yang akan dibangun, tahapan selanjutnya adalah implementasi dan pengujian, pada tahapan impelmentasi sistem terdapat dua kebutuhan yaitu spesifikasi kebutuhan sistem yang meliputi perangkat keras (hardware) dan perangkat lunak (software), dan implementasi dari situs aplikasi ini meliputi proses pengkodean, implementasi basis data, dan desain antarmuka.
4.1.1.
Implementasi Aplikasi Bengkel
Pada sub bab ini diterangkan secara rinci mengenai tahapan-tahapan implementasi Aplikasi Bengkel yang meliputi proses pengkodean, implementasi basis data, dan bentuk tampilan layar.
4.1.1.1
Pengkodean
Pada proses pengkodean aplikasi, perlu terlebih dahulu dibuat pemodulan. Modularisasi merupakan pembuatan program berdasarkan modul-modul. Modul
43
44
dapat berfungsi atau prosedur. Statement yang digunakan penulis untuk modularisasi adalah uses. Dalam pemrograman Aplikasi Bengkel dengan menggunakan Delphi, implementasi dari modularisasi tersebut adalah sebuah file yang dibuat untuk koneksi ke dalam basis data. Listing programnya adalah: UnitMain.pas function GetConnectionString: String; begin case GetdbSecurity of True : if Trim(GetdbPassword) = '' then Result:='Provider=SQLOLEDB.1;' + 'User ID=' + GetdbUserID + ';Data Source=' + GetDataSource + ';Initial Catalog=' GetDatabaseName + ';Persist Security Info=True' else Result:='Provider=SQLOLEDB.1;' + 'User ID=' + GetdbUserID ';Password=' + GetdbPassword + ';Data Source=' + GetDataSource + ';Initial Catalog=' GetDatabaseName + ';Persist Security Info=True'; False : Result:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=' + GetDataSource + ';Initial Catalog=' + GetDatabaseName ';Persist Security Info=False'; end; end;
+
+ +
+
Perintah di atas menggunakan koneksi dengan ODBC (Open Database Connectivity) yang merupakan standar protocol untuk pengaksesan relational database yang berbasiskan pada SQL. Sedangkan untuk memanggil file UnitMain.pas digunakan perintah sebagai berikut: uses UnitMain.pas procedure TGlobal.MSConnection1BeforeConnect(Sender: TObject); begin MSConnection1.ConnectString:=GetConnectionString; end;
Tujuan dilakukannya pemodulan program adalah untuk menghindari penulisan berulang-ulang untuk perintah yang sama dan jika ada perubahan pada
45
nama basis datanya, maka hal yang perlu dilakukan adalah hanya dengan merubah isi dari file UnitMain.pas saja. Penggunaan file UnitMain.pas pada Aplikasi Bengkel ini digunakan pada setiap Form menu yang terkoneksi ke basis data. Selain terdapat file UnitMain.pas pada Form yang terkoneksi dengan basis data juga terdapat perintah-perintah untuk mengelola basis data, perintah tersebut antara lain digunakan pada: 1. Menampilkan data Secara umum perintah yang digunakan untuk mengambil data dari basis data adalah: uses UnitMain.pas if UseSQLCustomize = False then with qrMain do begin SQL.Clear; SQL.Add('Select * From ' + QUERY_NAME); SQL.Add('WHERE id IS NOT NULL'); if pnlBranch.Enabled then begin if cbxOffice.EditValue <> '0' then SQL.Add('AND QuotedStr(cbxOffice.EditValue)); end; if pnlDate.Enabled then begin if Trim(cbdStart.Text) <> '' then SQL.Add('AND ' + FIELDDATE + ' QuotedStr(FormatDateTime('mm/dd/yyyy',cbdStart.Date))); if Trim(cbdEnd.Text) <> '' then SQL.Add('AND ' + FIELDDATE + ' QuotedStr(FormatDateTime('mm/dd/yyyy',cbdEnd.Date))); end; CustomizableSQLCondition; SQL.Add('Order by ' + FIELDINDEX); Open; end else CustomizableSQLCondition;
idoffice
=
'
+
>=
'
+
<=
'
+
Dari perintah di atas dapat digambarkan bahwa object qrMain merupakan object yang digunakan untuk menampung data dari database.
Fungsi Open
digunakan untuk mernjalankan perintah yang terdapat di SQL pada qrMain yang hasilnya akan ditampilkan pada Grid.
46
2.
Memasukkan data Secara garis besar perintah yang digunakan untuk memasukkan (insert) data
adalah sebagai berikut: uses UnitMain.pas with qrInput do begin SQL.Clear; SQL.Add('INSERT INTO ' + TABLE_NAME + '('); for i:= 0 to High(PeekData) do begin if i = High(PeekData) then SQL.Add(PeekData[i].DataField.FieldName) else SQL.Add(PeekData[i].DataField.FieldName + ','); end; SQL.Add(')'); SQL.Add('VALUES('); for i:= 0 to High(PeekData) do begin SQL.Add(SaveIndex(i)); if i = High(PeekData) then SQL.Add('') else SQL.Add(','); end; SQL.Add(')'); Execute; end;
Pada perintah di atas, kata kuncinya adalah INSERT INTO yang berarti memasukkan nilai (values) ke dalam field tabel. Penggunaan perintah INSERT banyak dipakai pada Form menu input dimana perintah ini digunakan untuk menyimpan data yang telah dimasukkan ke dalam basis data. 3.
Memperbaharui data Merubah (edit) data merupakan kegiatan melakukan perubahan terhadap
data. Ketika kegiatan tersebut selesai, maka terjadi proses pembaharuan data yang akan ditampilkan (update). Perintah yang digunakan untuk proses update adalah:
47
uses UnitMain.pas with qrInput do begin SQL.Clear; SQL.Add('UPDATE ' + TABLE_NAME + ' SET'); for i:= 0 to High(PeekData) do begin SQL.Add(PeekData[i].DataField.FieldName + ' = ' + SaveIndex(i)); if i = High(PeekData) then SQL.Add('') else SQL.Add(','); end; SQL.Add('WHERE id = ' + QuotedStr(TempID)); Execute; end;
Kata kunci dari perintah di atas adalah UPDATE. Argumen kriteria merupakan perubahan dan pembaharuan terhadap isi atribut suatu Field. 4.
Menghapus data Pada proses menghapus (delete) data, perintah yang digunakan hampir sama
dengan perintah update. Secara umum perintah DELETE adalah: uses UnitMain.pas try Modul.MSConnection1.StartTransaction; {Delete Data others table if necessary} DELETEProcessing; {Delete Data others table if necessary} Modul.DeleteData(TABLE_NAME_MST,'id = ' + QuotedStr(qrMainid.AsString)); Modul.MSConnection1.Commit; finally
Perintah diatas memiliki kesamaan dengan perintah update, yaitu sama-sama menggunakan variabel ID sebagai alat bantu. Perintah yang sama juga dilakukan pada tabel-tabel lainnya, hanya tinggal disesuaikan dengan nama tabel dan atribut-atribut tabelnya.
4.1.1.2 Implementasi Basis Data
48
Dalam membuat basis data dengan menggunakan SQL Server, terlebih dahulu kita harus meng-install MSDE, namun pada sub bab ini penulis tidak menjelaskan langkah-langkah instalasi MSDE. Langkah-langkah membuat basis data dijelaskan sebagai berikut: 1. Buka Start – Program – Microsoft SQL Server. Lalu klik menu “Enterprise Manager”, setelah itu akan tampil form SQL Server seperti pada gambar 4.1.
Gambar 4.1 Form utama Enterprise Manager 2. Klik kanan pada menu “Database” lalu klik “new database”, setelah itu akan tampil form berikutnya seperti gambar 4.2.
49
Gambar 4.2 Form New Database Pada form ini kita dapat membuat database baru yaitu “db_Bengkel”. Pada form tersebut kita akan membuat tabel satu persatu dengan memasukkan nama tabel dan jumlah atributnya (fields). 3. Tabel User
50
Gambar 4.3 Tabel user Struktur dari tabel user, yaitu: 4. CREATE TABLE [TsysUser] ( 5. [id] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL , 6. [idtable] [bigint] IDENTITY (1, 1) NOT NULL , 7. [idbranch] [varchar] (5) COLLATE Latin1_General_CI_AS NULL , 8. [nama] [varchar] (20) COLLATE Latin1_General_CI_AS NULL , 9. [pass] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , 10. [idgroup] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , 11. [fullname] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , 12. [alamat] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , 13. [divisi] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , 14. [active] [bit] NULL , 15. CONSTRAINT [PK_TsysUser] PRIMARY KEY CLUSTERED 16. ( 17. [id] 18. ) ON [PRIMARY] , 19. CONSTRAINT [FK_TsysUser_TsysBranch] FOREIGN KEY 20. ( 21. [idbranch] 22. ) REFERENCES [TsysBranch] ( 23. [id] 24. ) ON UPDATE CASCADE NOT FOR REPLICATION ,
51
25. CONSTRAINT [FK_TsysUser_TsysGroup] FOREIGN KEY 26. ( 27. [idgroup] 28. ) REFERENCES [TsysGroup] ( 29. [id] 30. ) ON DELETE CASCADE ON UPDATE CASCADE NOT FOR REPLICATION 31. ) ON [PRIMARY] 32. GO 33.
34. Tabel Barang
Gambar 4.4 Tabel Barang Struktur dari tabel barang, yaitu: CREATE TABLE [TmstPart] ( [id] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL , [idtable] [bigint] IDENTITY (1, 1) NOT NULL , [kode] [varchar] (30) COLLATE Latin1_General_CI_AS NULL , [nama] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [idkategori] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [idsubkategori] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
52
[idpabrikan] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [partno] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [hargabeli] [float] NULL , [hargajual] [float] NULL , [het] [float] NULL , [minstock] [int] NULL , [lokasi] [varchar] (10) COLLATE Latin1_General_CI_AS NULL , [menitjasapasang] [int] NULL , [FRjasapasang] [float] NULL , [jasapasang] [float] NULL , [tipemotor] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [keterangan] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [point] [int] NULL , [pointreward] [int] NULL , [satuan] [varchar] (10) COLLATE Latin1_General_CI_AS NULL , CONSTRAINT [PK_TmstPart] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] , CONSTRAINT [FK_TmstPart_TmstKategori] FOREIGN KEY ( [idkategori] ) REFERENCES [TmstKategori] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TmstPart_TmstPabrikan] FOREIGN KEY ( [idpabrikan] ) REFERENCES [TmstPabrikan] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TmstPart_TmstSubKategori] FOREIGN KEY ( [idsubkategori] ) REFERENCES [TmstSubKategori] ( [id] ) NOT FOR REPLICATION ) ON [PRIMARY] GO
53
35. Tabel Service
Gambar 4.5 Tabel service Struktur dari tabel service, yaitu: CREATE TABLE [TmstJasa] ( [id] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL , [idtable] [bigint] IDENTITY (1, 1) NOT NULL , [kode] [varchar] (10) COLLATE Latin1_General_CI_AS NULL , [nama] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [jenisjasa] [varchar] (20) COLLATE Latin1_General_CI_AS NULL , CONSTRAINT [PK__TmstJasa__00DF2177] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] ) ON [PRIMARY] GO
54
36. Tabel Customer
Gambar 4.6 Tabel customer Struktur dari tabel customer, yaitu: CREATE TABLE [TposCustomer] ( [id] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL , [idtable] [bigint] IDENTITY (1, 1) NOT NULL , [idoffice] [varchar] (5) COLLATE Latin1_General_CI_AS NULL , [platno] [varchar] (10) COLLATE Latin1_General_CI_AS NULL , [idmodel] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [warna] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [nochasis] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [nomesin] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [tahun] [varchar] (5) COLLATE Latin1_General_CI_AS NULL , [nama] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [alamat] [varchar] (200) COLLATE Latin1_General_CI_AS NULL , [kota] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [propinsi] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [kodepos] [varchar] (10) COLLATE Latin1_General_CI_AS NULL , [idgroupcustomer] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [StEdit] [bit] NULL CONSTRAINT [DF_TposCustomer_StEdit] DEFAULT (1), [tglinput] [datetime] NULL CONSTRAINT [DF_TposCustomer_tglinput] DEFAULT (getdate()),
55
CONSTRAINT [PK_TmstCustomer] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] , CONSTRAINT [FK_TposCustomer_TmstModel] FOREIGN KEY ( [idmodel] ) REFERENCES [TmstModel] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TposCustomer_TposGroupCustomer] FOREIGN KEY ( [idgroupcustomer] ) REFERENCES [TposGroupCustomer] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TposCustomer_TsysOffice] FOREIGN KEY ( [idoffice] ) REFERENCES [TsysOffice] ( [id] ) NOT FOR REPLICATION ) ON [PRIMARY] GO
37. Tabel Penjualan
Gambar 4.7 Tabel penjualan
56
Struktur dari tabel penjualan, yaitu: CREATE TABLE [TposJual] ( [id] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL , [idtable] [bigint] IDENTITY (1, 1) NOT NULL , [idoffice] [varchar] (5) COLLATE Latin1_General_CI_AS NULL , [nofaktur] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [nokwitansi] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [tanggal] [datetime] NULL , [antrian] [int] NULL , [idcustomer] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [pengendara] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [notelp] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [email] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , [kilometer] [int] NULL , [kondisibensin] [varchar] (2) COLLATE Latin1_General_CI_AS NULL , [noref] [varchar] (20) COLLATE Latin1_General_CI_AS NULL , [kondisimotor] [varchar] (200) COLLATE Latin1_General_CI_AS NULL , [keluhan] [varchar] (200) COLLATE Latin1_General_CI_AS NULL , [idkaryawan] [varchar] (50) COLLATE Latin1_General_CI_AS NULL , NULL , [jenispembayaran] [varchar] (20) COLLATE Latin1_General_CI_AS NULL , [status] [varchar] (10) COLLATE Latin1_General_CI_AS NULL CONSTRAINT [DF_TposJual_status] DEFAULT ('TUNGGU'), [lastuser] [varchar] (20) COLLATE Latin1_General_CI_AS NULL , CONSTRAINT [PK_TposJual] PRIMARY KEY CLUSTERED ( [id] ) ON [PRIMARY] , CONSTRAINT [FK_TposJual_TposCustomer] FOREIGN KEY ( [idcustomer] ) REFERENCES [TposCustomer] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TposJual_TposKaryawan] FOREIGN KEY ( [idkaryawan] ) REFERENCES [TposKaryawan] ( [id] ) NOT FOR REPLICATION , CONSTRAINT [FK_TposJual_TposKupon] FOREIGN KEY ( [idkupon] ) REFERENCES [TposKupon] ( [id] ) NOT FOR REPLICATION ,
57
CONSTRAINT [FK_TposJual_TsysOffice] FOREIGN KEY ( [idoffice] ) REFERENCES [TsysOffice] ( [id] ) NOT FOR REPLICATION ) ON [PRIMARY] GO
4.1.1.3 Antarmuka
Pada Form ini dilakukan proses Login bagi Admin atau pemakai. Terdapat kotak input untuk mengisi User dan Password.
Masing-masing username dan
password akan mentukan apakah pemakai akan berfungsi sebagai admin atau user biasa.
Gambar 4.8 Form Login AplikasiBengkel Berikut adalah form Utama Aplikasi, dimana disini terdapat menu-menu yang akan untuk pengoperasian program ini.
58
Gambar 4.9 Form Utama Aplikasi
Berikut ini pada gambar 4.10 adalah Form Input Data Barang, dimana setiap barang harus diinput terlebih dahulu sebelum dilakukan penjualan. Di dalam Form lihat profil terdapat kode barang, nama barang, harga jual, dan sebagainya.
59
Gambar 4.10 Form Input Barang Berikut ini pada gambar 4.11 adalah Form Input Layanan Service. Form ini digunakan untuk mendata seluruh service dan jasa yang akan dilayani. Pada Form ini terdapat kode service, nama service, jenis service.
Gambar 4.11 Form input Service
Berikut ini pada gambar 4.12 adalah Form Input Customer. Pada Form inilah semua customer atau pelanggan didaftarkan.
60
Gambar 4.12 Form Input Customer
Berikut ini pada gambar 4.13 adalah Form Transaksi Penjualan, dimana pada form inilah tempat transaksi penjualan dilakukan. Pada form ini terdapat no.faktur. nama customer, detail penjualan, dan sebagainya.
61
Gambar 4.13 Form Transaksi Penjualan
4.2
PENGUJIAN
Pengujian Program aplikasi dimaksudkan untuk
memastikan bahwa
program aplikasi sudah dapat berjalan sesuai dengan rancangan yang dibuat dan untuk mengetahui apabila masih terdapat kekurangan atau kesalahan 4.2.1
Lingkungan Pengujian
Dalam membuat dan melakukan pengujian sistem di atas, penulis menggunakan Personal Computer (PC) dengan konfigurasi perangkat keras dan juga instalasi bermacam perangkat lunak dengan spesifikasi sebagai berikut: 1. Perangkat keras (hardware)
62
a. Processor : AMD Sempron LE-1200 2.1 GHz b. RAM
: 1 Gb
c. Hardisk
: Maxtor 80 Gb
2. Perangkat lunak (software) a. SQL Server 2000 b. Borland Delphi 7 Enterprise c. Microsoft Windows XP Profesional sebagai sistem operasi
4.2.2
Metode pengujian
Ada 2 metode untuk melakukan unit testing, yaitu Black Box Testing dan White Box Testing. Black Box Testing dilakukan dengan memfokuskan pada apakah unit program memenuhi kebutuhan (requirement) yang disebutkan dalam spesifikasi. Pada black box testing cara pengujian hanya dilakukan dengan menjalankan atau mengeksekusi unit atau modul, kemudian diamati apakah hasil dari unit itu sesuai dengan proses yang diinginkan atau tidak. Sedangkan White Box Testing adalah pengujian dengan melihat kedalam modul untuk meneliti kode-kode program yang ada. Dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang
63
tidak sesuai dengan proses bisnis yang dilakukan. Maka baris-baris program, variable, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di compile ulang.
Pengujian program aplikasi ini dilakukan dengan menggunakan metode Black box Testing karena proses testing ini dilakukan berdasarkan kebutuhan (requirement). Metode Black Box Testing ini merupakan pengujian program berdasarkan fungsi dari program. Tujuan dari metode Black Box Testing ini adalah untuk menemukan kesalahan fungsi pada program.
Pengujian Program Aplikasi dengan cara melakukan input data kedalam aplikasi bengkel berdasarkan data yang dimiliki penulis yaitu dengan menggunakan input data barang, input data service, input customer dan input data penjualan.
4.2.3
Skenario Pengujian
Skenario pengujian dengan memasukan beberapa data ke dalam program aplikasi, kemudian melakukan proses edit ataupun delete terhadap data yang sudah diinput dan mencoba tombol-tombol atau fungsi yang terdapat pada program aplikasi untuk melihat apakah program aplikasi sudah dapat berjalan sesuai dengan harapan.
64
Tabel 4.1 Tabel Skenario Pengujian Program Aplikasi No Antar Muka
Bagian yang diuji
Input
Hasil yang diharapkan
yang diuji 1
Form
Tabel User
Memasukan user name dan
Login
Hasil yang diharapkkan munculnya menu utama aplikasi
password 2
Menu
Tabel Item Barang
Memasukan dan menghapus data
Barang
Akan menampilkan Data barang yang sudah tersimpan
Barang 3
Menu Service
Tabel Service
Memasukan dan menghapus data
Akan menampilkan Data Service yang sudah tersimpan
Service 4
Menu Customer
Tabel Customer Memasukan dan menghapus data
Akan menampilkan Data Customer yang sudah tersimpan
Customer 5
Menu Penjualan
Tabel Penjualan Memasukan dan menghapus data Penjualan
Akan menampilkan data Penjualan yang sudah tersimpan
65
4.2.4 Hasil Pengujian
Dari hasil skenario pengujian yang dilakukan dapat dilihat bahwa menumenu ataupun proses yang dilakukan pengujian telah sesuai dengan hasil yang diperoleh.
Tabel 4.2 Tabel Hasil Pengujian
No Antar Muka Bagian yang diuji yang diuji 1
Form
Tabel User
Input
Memasukan user name dan
Login
Hasil yang diperoleh
Data ditampilkan dan tersimpan dalam database
password 2
Menu
Tabel Item Barang
Memasukan dan menghapus data
Barang
Data ditampilkan dan tersimpan dalam database
Barang 3
Menu Service
Tabel Service
Memasukan dan menghapus data
Data ditampilkan dan tersimpan dalam database
Service 4
Menu Customer
Tabel Customer Memasukan dan menghapus data Customer
Data ditampilkan dan tersimpan dalam database
66
5
Menu Penjualan
Tabel Penjualan Memasukan dan menghapus data Penjualan
Data ditampilkan dan tersimpan dalam database