BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Aplikasi
Setelah dilakukan tahap analisis dan perancangan pada bab III, maka tahap selanjutnya yaitu tahap implementasi. Pada bab ini akan dibahas mengenai implementasi pembuatan basis data dan implementasi halaman aplikasi ini.
Spesifikasi Kebutuhan
Pengujian pada aplikasi ini meliputi perangkat keras dan perangkat lunak. Spesifikasi masing – masing adalah sebagai berikut :
A. Spesifikasi perangkat keras
1. Komputer denga prosesor intel Pentium IV 2.2 GHz 2. Memori 1GB
3. Hard disk 40 GB 4. VGA 64 MB 5. Monitor
6. Mouse dan keyboard B. Spesifikasi perangkat lunak
1. Microsoft windows xp atau di atasnya, sistem operasi yang digunakan pada aplikasi ini.
2. Eclipse digunakan untuk membuat program
3. Macromedia Dreamweaver digunakan untuk membuat desain aplikasi 4. MySQL server.
4.2 Implementasi Basis Data
Pada implementasi ini aplikasi ini dibagi menjadi 2 bagian, yaitu implementasi table-tabel transaksi & master dan implementasi view.
A. Implementasi Tabel
Terdapat 8 table yaitu: customer, dealer, deposit, pembelian, penjualan,
status_server, user_application, voucher_pulsa. Berikut table – table yang
dibutuhkan:
1. Tabel Customer
Tabel 4.1 Tabel Customer
SQL Script:
CREATE TABLE customer (
ID int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
NAMA varchar(64) NULL,
ALAMAT varchar(64) NULL,
HANDPHONE varchar(20) NULL,
PASSWD varchar(20) NULL,
SALDO float NULL,
PRIMARY KEY(ID)
2. Tabel Dealer
Tabel 4.2 Tabel Dealer
SQL Script:
CREATE TABLE dealer (
ID int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
NAMA_DEALER varchar(32) NULL,
VOUCHER varchar(32) NULL,
HARGA float NULL,
PRIMARY KEY(ID) )ENGINE = InnoDB 3. Tabel Deposit Tabel 4.3 Tabel Deposit SQL Script:
CREATE TABLE deposit (
ID int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
CUSTOMER_ID int(10) UNSIGNED NOT NULL,
TANGGAL datetime NULL,
NOMINAL float NULL,
PRIMARY KEY(ID)
4. Tabel Pembelian
Tabel 4.4 Tabel Pembelian
SQL Script:
CREATE TABLE "pembelian" (
"ID" int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
"DEALER_ID" int(10) UNSIGNED NOT NULL,
"VOUCHER_PULSA_ID" int(10) UNSIGNED NOT NULL,
"TANGGAL" datetime NULL,
"HARGA" float NULL,
PRIMARY KEY("ID")
);
CREATE INDEX "PEMBELIAN_FKIndex2"
ON "pembelian"("DEALER_ID");
CREATE INDEX "PEMBELIAN_FKIndex1"
ON "pembelian"("VOUCHER_PULSA_ID");
ALTER TABLE "pembelian"
ADD CONSTRAINT "pembelian_ibfk_2"
FOREIGN KEY("DEALER_ID")
REFERENCES "dealer"("ID")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "pembelian"
ADD CONSTRAINT "pembelian_ibfk_1"
REFERENCES "voucher_pulsa"("ID") ON DELETE NO ACTION ON UPDATE NO ACTION, ; 5. Tabel Penjualan Tabel 4.5 Tabel Penjualan SQL Script:
CREATE TABLE "penjualan" (
"ID" int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
"VOUCHER_PULSA_ID" int(10) UNSIGNED NOT NULL,
"CUSTOMER_ID" int(10) UNSIGNED NOT NULL,
"TANGGAL" datetime NULL,
"HARGA" float NULL,
"HP_TUJUAN" varchar(20) NULL,
"STATUS_TRANSAKSI" int(2) UNSIGNED NULL,
PRIMARY KEY("ID")
);
CREATE INDEX "PENJUALAN_FKIndex1"
ON "penjualan"("CUSTOMER_ID");
CREATE INDEX "PENJUALAN_FKIndex2"
ON "penjualan"("VOUCHER_PULSA_ID");
ALTER TABLE "penjualan"
ADD CONSTRAINT "penjualan_ibfk_2"
FOREIGN KEY("VOUCHER_PULSA_ID")
REFERENCES "voucher_pulsa"("ID")
ON UPDATE NO ACTION ;
ALTER TABLE "penjualan"
ADD CONSTRAINT "penjualan_ibfk_1"
FOREIGN KEY("CUSTOMER_ID")
REFERENCES "customer"("ID")
ON DELETE NO ACTION
ON UPDATE NO ACTION, ;
6. Tabel Status Server
Tabel 4.6 Tabel Status Server
SQL Script:
CREATE TABLE "status_server" (
"ID" int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
"STATUS_NAME" varchar(32) NULL,
"VALUE" varchar(32) NULL,
PRIMARY KEY("ID")
);
7. Tabel User Application
Tabel 4.7 Tabel User Application
SQL Script:
"ID" int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
"NAME" varchar(32) NULL,
"UNAME" varchar(32) NULL,
"PASSWD" varchar(32) NULL,
PRIMARY KEY("ID")
);
8. Tabel Voucher Pulsa
Tabel 4.8 Tabel Voucher Pulsa
SQL Script:
CREATE TABLE "voucher_pulsa" (
"ID" int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
"NAMA_VOUCHER" varchar(32) NULL,
"OPERATOR" varchar(32) NULL,
"NOMINAL" float NULL,
"HARGA" float NULL,
"SALDO" float NULL,
PRIMARY KEY("ID")
);
B. Implementasi View
Pada sistem ini terdapat 12 view, yaitu: deposit_harian, deposit_bulanan,
deposit_tahunan, penjualan_harian, penjualan_bulanan, penjualan_tahunan, pembelian_harian, pembelian_bulanan, pembelian_tahunan, transaksi_harian, transaksi_bulanan, transaksi_tahunan. Berikut SQL Script untuk masing-masing
a. View Deposit Harian
Tabel 4.9 View Deposit Harian
SQL Script:
CREATE OR REPLACE VIEW deposit_harian as
select distinct DATE_FORMAT(d.TANGGAL, '%d-%c-%Y') as
'TANGGAL', sum(d.NOMINAL) as 'NOMINAL'
from deposit d, customer c
where d.CUSTOMER_ID=c.ID
group by DATE_FORMAT(d.TANGGAL, '%d-%c-%Y');
b. View Deposit Bulanan
Tabel 4.10 View Deposit Bulanan
SQL Script:
select distinct DATE_FORMAT(d.TANGGAL, '%c') as 'BULAN',
DATE_FORMAT(d.TANGGAL, '%Y') as 'TAHUN', c.NAMA, sum(d.NOMINAL)
as 'NOMINAL'
from deposit d, customer c
where d.CUSTOMER_ID=c.ID
group by DATE_FORMAT(d.TANGGAL, '%c'), DATE_FORMAT(d.TANGGAL,
'%Y'),c.NAMA;
c. View Deposit Tahunan
Tabel 4.11 View Deposit Tahunan
SQL Script:
CREATE OR REPLACE VIEW deposit_tahunan as select distinct
DATE_FORMAT(d.TANGGAL, '%Y') as 'TAHUN', c.NAMA, sum(d.NOMINAL)
as 'NOMINAL' from deposit d, customer c where
d.CUSTOMER_ID=c.ID
d. View Pembelian Harian
Tabel 4.12 View Pembelian Harian
SQL Script:
CREATE OR REPLACE VIEW pembelian_harian as
select distinct DATE_FORMAT(p.TANGGAL, '%d-%c-%Y') as
'TANGGAL',count(v.ID) as 'JUMLAH'
from pembelian p, voucher_pulsa v
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%d-%c-%Y');
e. View Pembelian Bulanan
Tabel 4.13
View Pembelian Bulanan
SQL Script:
CREATE OR REPLACE VIEW pembelian_bulanan as
select distinct DATE_FORMAT(p.TANGGAL, '%c') as 'BULAN',
DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN', v.OPERATOR,
count(v.ID) as 'JUMLAH'
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%c'), DATE_FORMAT(p.TANGGAL,
'%Y'), v.OPERATOR;
f. View Pembelian Tahunan
Tabel 4.14
View Pembelian Tahunan
SQL Script
CREATE OR REPLACE VIEW pembelian_tahunan as
select distinct DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN',
v.OPERATOR, count(v.ID) as 'JUMLAH'
from pembelian p, voucher_pulsa v
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%Y'), v.OPERATOR;
g. View Penjualan Harian
Tabel 4.15 View Penjualan Harian
SQL Script
CREATE OR REPLACE VIEW penjualan_harian as
select distinct DATE_FORMAT(p.TANGGAL, '%d-%c-%Y') as
'TANGGAL', count(v.ID) as 'JUMLAH'
from penjualan p, voucher_pulsa v
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%d-%c-%Y');
h. View Penjualan Bulanan
Tabel 4.16 View Penjualan Bulanan
SQL Script
CREATE OR REPLACE VIEW penjualan_bulanan as
select distinct DATE_FORMAT(p.TANGGAL, '%c') as 'BULAN',
DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN', v.OPERATOR,
count(v.ID) as 'JUMLAH'
from penjualan p, voucher_pulsa v
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%c'), DATE_FORMAT(p.TANGGAL,
i. View Penjualan Tahunan
Tabel 4.17
View Penjualan Tahunan
SQL Script
CREATE OR REPLACE VIEW penjualan_tahunan as
select distinct DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN',
v.OPERATOR, count(v.ID) as 'JUMLAH'
from penjualan p, voucher_pulsa v
where p.VOUCHER_PULSA_ID = v.ID
group by DATE_FORMAT(p.TANGGAL, '%Y'), v.OPERATOR;
j. View Status Transaksi Harian
Tabel 4.18
View Status Transaksi Harian
SQL Script
CREATE OR REPLACE VIEW transaksi_harian as
select distinct DATE_FORMAT(p.TANGGAL, '%d-%c-%Y') as
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, '%d-%m-%Y') = DATE_FORMAT(d.TANGGAL,
'%d-%m-%Y') and d.STATUS_TRANSAKSI=1) as 'SUKSES',
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, '%d-%m-%Y') = DATE_FORMAT(d.TANGGAL,
'%d-%m-%Y') and d.STATUS_TRANSAKSI=2) as 'GAGAL'
from penjualan p
group by DATE_FORMAT(p.TANGGAL, '%d-%c-%Y');
k. View Status Transaksi Bulanan Tabel 4.19
View Status Transaksi Bulanan
SQL Script
CREATE OR REPLACE VIEW transaksi_bulanan as
select distinct DATE_FORMAT(p.TANGGAL, '%c') as 'BULAN',
DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN',
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, %Y') = DATE_FORMAT(d.TANGGAL,
'%m-%Y') and d.STATUS_TRANSAKSI=1) as 'SUKSES',
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, %Y') = DATE_FORMAT(d.TANGGAL,
'%m-%Y') and d.STATUS_TRANSAKSI=2) as 'GAGAL'
from penjualan p
group by DATE_FORMAT(p.TANGGAL, '%c'), DATE_FORMAT(p.TANGGAL,
l. View Status Transaksi Tahunan Tabel 4.20
View Status Transaksi Tahunan
SQL Script
CREATE OR REPLACE VIEW transaksi_tahunan as
select distinct DATE_FORMAT(p.TANGGAL, '%Y') as 'TAHUN',
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, '%Y') = DATE_FORMAT(d.TANGGAL, '%Y') and
d.STATUS_TRANSAKSI=1) as 'SUKSES',
(select count(d.id) from penjualan d where
DATE_FORMAT(p.TANGGAL, '%Y') = DATE_FORMAT(d.TANGGAL, '%Y') and
d.STATUS_TRANSAKSI=2) as 'GAGAL'
from penjualan p
4.3 Implementasi Tampilan
A. Tampilan Login Gambar 4.1 Halaman Login B. Tampilan Dashboard Gambar 4.2 Halaman DashboardC. Tampilan Rekap Penjualan
Gambar 4.3 Halaman Rekap Penjualan
D. Tampilan Rekap Pembelian
Gambar 4.4
E. Tampilan Status Transaksi
Gambar 4.5 Halaman Status Transaksi
F. Tampilan Deposit Pelanggan
Gambar 4.6
G. Tampilan Status Server
Gambar 4.7 Halaman Status Server
4.4 Pengujian
A. Skenario Pengujian
Skenario pengujian meliputi pengujian perangkat lunak terhadap fungsionalitas aplikasi yang dibangun berfungsi untuk melakukan pengujian proses yang terjadi pada perangkat lunak yang dibangun dengan proses yang terjadi didalam sistem dan menguji kelayakan sebuah aplikasi yang akan digunakan.
Apabila keluaran proses tidak menghasilkan sesuai dengan yang diinginkan, maka program aplikasi masih terdapat kesalahan yang harus diperbaiki pada program aplikasi tersebut. Dan apabila keluaran proses
menghasilkan kebutuhan fungsionalnya, maka program aplikasi tersebut benar.
Web broser mozila firefox digunakan untuk melakukan pengujian pada proses aplikasi ini. Dengan cara mengetikkan alamat URL sebagai berikut:http://<ip-server>:port/skripsi(contoh:http://localhost:8080/skripsi/).
Aplikasi ini dimulai dari menu login semua menu yang terdapat pada aplikasi sampai dengan logout dari aplikasi.
Tabel 4.8 Skenario Pengujian No Deskripsi fungsional Kelompok uji
Kasus uji Hasil yang diharapkan
1 Login Pemilik Benar Input User_id dan password yang benar
Akan menampilkan halaman dashboard dan menu yang tampil adalah
Dashboard, Rekap Penjualan, Rekap Pembelian, Status Transaksi, Deposit Pelanggan
Salah Input User_id dan password yang salah
Menampilkan pesan salah dan harus login ulang
2 Login Admin Benar Input User_id dan password yang benar
Akan menampilkan halaman status server dan
menu yang tampil adalah Status Server
Salah Input User_id dan password yang salah
Menampilkan pesan salah dan harus login ulang
3 Rekap Penjualan Benar Masuk ke menu Rekap Penjualan dan data berhasil di dapatkan
Muncul grafik penjualan pertahun dan perbulan
Salah Data kosong Grafik tidak muncul dan terdapat pesan “no data”
4 Rekap Pembelian Benar Masuk ke menu Rekap Pembelian dan data berhasil di dapatkan
Muncul grafik pembelian pertahun dan perbulan
Salah Data kosong Grafik tidak muncul dan terdapat pesan “no data” 5 Status Transaksi Benar Masuk ke menu
Status Transaksi dan data berhasil di dapatkan
Muncul grafik status transaksi pertahun dan perbulan
Salah Data kosong Grafik tidak muncul dan terdapat pesan “no data” 5 Deposit Pelanggan Benar Masuk ke menu
Deposit Pelanggan dan data berhasil di dapatkan
Muncul grafik deposit pelanggan pertahun dan perbulan
terdapat pesan “no data”
6 Status Server Benar Masuk ke menu Status Server dan data berhasil di dapatkan
Muncul grafik status server
Salah Data kosong Grafik tidak muncul dan terdapat pesan “no data”
B. Analisa Pengujian
Berikut adalah analisa yang telah dilakukan berdasarkan hasil pengujian yang telah dilakukan. Halaman login adalah halaman yang pertama kali muncul ketika seorang pengguna ingin masuk ke halaman menu utama.
Pilihan status login hanya ada 2, yaitu: Pemilik dan Admin. Kasus uji yang dilakukan adalah memasukan username dan password, dengan melakukan dua kelompok uji. Pada kelompok uji benar memasukan data yang benar, maka akan dibagi jika:
a. Pemilik: akan menampilkan halaman dashboard dan menu yang tampil adalah Dashboard, Rekap Penjualan, Rekap Pembelian, Status Transaksi, Deposit Pelanggan.
b. Admin: akan menampilkan halaman status server dan menu yang tampil adalah Status Server.
Sedangkan pada kelompok uji yang salah akan muncul pesan kesalahan dan pengguna harus melakukan login ulang. Modul ini telah dilakukan pengujian dan hasilnya dapat dijalankan sesuai dengan rancangan yang dibangun.
Pada kasus uji melihat laporan/grafik, baik oleh Pemilik/Admin yang dilakukan adalah memilih grafik yang di inginkan pada menu yang tersedia, kemudian grafik tersebut akan meminta data ke server, jika data tersedia maka akan muncul di grafik, sesuai tipe grafik yang telah dipilih. Jika tidak, akan muncul pesan bahwa data kosong. Modul ini telah dilakukan pengujian dan atau dapat dijalankan sesuai dengan rancangan yang telah dibangun.
Logout digunakan untuk keluar dari aplikasi, setelah proses logout diesekusi sistem akan menampilkan kembali halaman login. Modul ini telah dilakukan pengujian dan hasilnya dapat dijalankan sesuai dengan rancangan yang telah dibangun.
Hasil analisis terhadap aplikasi yang dibangun secara keseluruhan telah berfungsi dengan baik dan layak digunakan.