Skripsi
Diajukan untuk memenuhi salah satu syarat dalam menempuh ujian
Sarjana Komputer pada program studi Teknik Informatika
Oleh :
Abdul Karim
08411770040044
LEMBAR PENGESAHAN
Oleh :
ABDUL KARIM
08411770040044
Disetujui Oleh :
Pembimbing I,
Pembimbing II,
LEMBAR PENGESAHAN
Oleh :
ABDUL KARIM
08411770040044
Disetujui Oleh :
Penguji I,
Penguji II,
ABSTRAK
ABDUL KARIM
08411770040044
Konter merupakan salah satu jenis usaha yang bergerak dibidang penjualan
pulsa, handphone, dan aksesoris-aksesoris yang berhubungan dengan alat
komunikasi. Dalam kegiatan menjalankan usahanya konter melakukan banyak
pencatatan data transaksinya ke dalam sebuah buku penjualan. Di Konter Nurfa
Cell proses pencatatan laporan-laporan masih dilakukan dengan cara manual dan
belum terkomputerisasi. Dalam sarana penjualannya, Konter Nurfa Cell masih
menjual pulsanya ke wilayah dekat konter saja, sehingga jumlah para pelanggan
yang mengisi pulsa di konter tidak ada peningkatan.
Aplikasi Pengisian Pulsa Berbasis Web adalah aplikasi yang bisa digunakan
untuk mengisi pulsa melalui fasilitas internet. Dengan begitu pelanggan dari mana
saja dapat mendaftar pengisian pulsa lewat aplikasi ini. Dalam aplikasi disediakan
pula laporan transaksi yang dilakukan pelanggan yang mengisikan pulsa ke nomor
handphone yang dituju. Peneliti menggunakan bahasa pemrograman PHP dengan
databasenya menggunakan MySQL dan aplikasi sms gateway menggunakan
gammu.
Kata kunci : Pulsa, Konter, Website, Internet
ABSTRACT
ABDUL KARIM
08411770040044
Konter is one of kind of company that active in pulse sale, handphone, and
accesoriess that communication means. In activity runs the effort konter do many
the transaction data registrations into a sale book. At konter nurfa cell reports
registration process still done by manual and not yet computerized. In the sale
tool, konter nurfa cell still to sell the pulse to area near konter, so that total
customers that fill pulse at konter there is no enhanced.
Pulse admission filling application based on web application that can be
used to fill pulse pass internet facilities. That way customer from particular can
sign-up pulse admission filling via this application. In application is provided also
transaction report that done customer that fill pulse to handphone number that
aimed. Researcher uses programming language php with the database use mysql
and application sms gateway use gammu.
Keyword: pulse, konter, website, internet
ii
KATA PENGANTAR
Puji dan syukur kehadirat Allah SWT Tuhan semesta alam yang senantiasa
melimpahkan rahmat, kasih sayang dan karunia kepada seluruh makhluk-Nya
yang telah memberikan kekuatan kepada saya dalam menyelesaikan tugas akhir
Strata-I yang berjudul Desain dan Implementasi Aplikasi Pengisian Pulsa
Berbasis Web.
Tema yang diangkat dalam penyusunan tugas akhir ini berlatar belakang
sebuah tempat pengisian pulsa, yang merupakan sebuah realisasi penerapan
metode modern pada proses pengisian pulsa. Diharapkan pembuatan aplikasi
seperti ini dapat meningkatkan jumlah penjualan konter Nurfa Cell yang menjadi
bahan studi kasus dalam penelitian ini.
Penyusunan tugas
akhir ini
merupakan salah
satu
syarat
untuk
Bapak Dr.Dedi Mulyadi, S.E., M.M., selaku Dekan Fakultas Ilmu Komputer
Universitas Singaperbangsa Karawang.
iii
2.
Bapak Oman Komarudin, S.Si., M.Kom, selaku Wakil Dekan Fakultas Ilmu
Komputer Universitas Singaperbangsa Karawang pembimbing I yang telah
banyak meluangkan waktu untuk memberikan bimbingan serta pengarahan.
3.
4. Kedua orang tuaku, Bapak Endang Bahrudin dan Ibu Yati Casniati di
Karawang, yang telah memberikan dukungan moril maupun materil, serta doa,
semangat dan kasih sayang yang tak ternilai.
5. Seluruh Dosen di Fakultas Ilmu Komputer Universitas Singaperbangsa
Karawang.
6.
7.
Semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu
baik secara langsung maupun tidak langsung dalam penyusunan laporan
Tugas Akhir ini.
Dengan segala kerendahan hati penulis mengakui bahwa laporan tugas akhir
ini masih memiliki kekurangan. Oleh karena itu, penulis mengharapkan kritik dan
saran yang membangun dari semua pihak. Semoga laporan ini dapat bermanfaat.
Penulis,
iv
DAFTAR ISI
LEMBAR JUDUL
LEMBAR PENGESAHAN
ABSTRAK .........................................................................................................
BAB I
PENDAHULUAN.........................................................................
1.1
1.2
1.3
Tujuan Penelitian...................................................................
1.4
Batasan Masalah....................................................................
1.5
1.6
1.7
2.1
2.2
2.3
10
10
BAB II
2.4
12
13
14
14
15
16
17
17
2.4.5
21
21
27
27
2.5
28
2.6
Database ...............................................................................
29
2.6.1
29
2.6.2
DBMS .......................................................................
31
2.6.3
SQL ...........................................................................
33
2.6.4
Trigger .......................................................................
33
2.7
33
2.8
35
2.9
36
36
36
37
37
37
38
vi
BAB III
40
3.1
40
40
3.1.2
40
3.1.3
41
3.2
41
3.3
42
3.4
43
3.4.1
Analisis...................................................................
43
43
43
43
3.4.2
Desain .....................................................................
44
3.4.3
44
3.4.4
Pengujian ................................................................
44
3.4.5
45
46
4.1
46
4.1.1
Analisis...................................................................
46
48
48
49
4.1.2
Desain .....................................................................
50
50
70
3. Representasi Antarmuka.....................................
71
76
4.1.3
80
4.1.4
Instalasi ..................................................................
83
83
3.1.1
BAB IV
vii
84
85
4.1.5
Testing ....................................................................
86
86
88
Pembahasan ........................................................................
95
96
5.1
Kesimpulan ........................................................................
96
5.2
Saran ...................................................................................
96
DAFTAR PUSTAKA...................................................................................
xiv
xvi
4.2
BAB V
viii
DAFTAR TABEL
Tabel 1.1
Tabel 2.1
23
Tabel 2.2
25
Tabel 2.3
26
Tabel 2.4
30
Tabel 2.5
31
Tabel 2.6
38
Tabel 4.1
46
Tabel 4.2
47
Tabel 4.3
50
Tabel 4.4
50
Tabel 4.5
51
Tabel 4.6
52
Tabel 4.7
53
Tabel 4.8
54
Tabel 4.9
55
Tabel 4.10
55
Tabel 4.11
57
Tabel 4.12
58
Tabel 4.13
59
Tabel 4.14
59
Tabel 4.15
71
Tabel 4.16
86
Tabel 4.17
86
Tabel 4.18
87
Tabel 4.19
87
Tabel 4.20
87
ix
DAFTAR GAMBAR
Gambar 1.1
Gambar 1.2
Gambar 2.1
Gambar 2.2
10
Gambar 2.3
13
Gambar 2.4
13
Gambar 2.5
14
Gambar 2.6
15
Gambar 2.7
19
Gambar 2.8
22
Gambar 2.9
28
Gambar 3.1
41
Gambar 3.2
42
Gambar 3.3
45
Gambar 4.1
46
Gambar 4.2
48
Gambar 4.3
60
Gambar 4.4
61
Gambar 4.5
Gambar 4.6
Gambar 4.7
61
Gambar 4.8
61
62
62
Gambar 4.9
Gambar 4.10
Gambar 4.11
63
Gambar 4.12
62
63
63
Gambar 4.13
64
Gambar 4.14
Gambar 4.15
Gambar 4.16
65
Gambar 4.17
64
66
67
Gambar 4.18 Diagram Sekuen untuk Use Case Memasukkan Data Transaksi
.. ..........................................................................................
Gambar 4.19
Gambar 4.20
68
68
69
Gambar 4.21
69
Gambar 4.22
70
Gambar 4.23
72
Gambar 4.24
72
Gambar 4.25
72
Gambar 4.26
73
Gambar 4.27
73
Gambar 4.28
73
xi
Gambar 4.29
74
Gambar 4.30
74
Gambar 4.31
74
Gambar 4.32
75
Gambar 4.33
75
Gambar 4.34
75
Gambar 4.35
76
Gambar 4.36
Prosedur Pendaftaran......................................................
76
Gambar 4.37
77
Gambar 4.38
77
Gambar 4.39
78
Gambar 4.40
78
Gambar 4.41
79
Gambar 4.42
79
Gambar 4.43
80
Gambar 4.44
82
Gambar 4.45
83
Gambar 4.46
83
Gambar 4.47
84
Gambar 4.48
85
Gambar 4.49
89
Gambar 4.50
91
Gambar 4.51
94
Gambar 6.1
Gambar 6.2
Gambar 6.3
Gambar 6.4
Gambar 6.5
Gambar 6.6
Gambar 6.7
xii
Gambar 6.8
Gambar 6.9
xiii
BAB I
PENDAHULUAN
Sebuah perangkat telepon selular tidak bisa berfungsi jika di dalamnya tidak
tersedianya cost atau biasa disebut dengan pulsa. Segala pelayanan yang ada
dalam perangkat telepon selular seperti SMS, MMS, dan panggilan tidak dapat
dilaksanakan tanpa adanya pulsa di dalamnya.
Penjualan pulsa tanpa menggunakan fasilitas website seperti pada masa-masa
sekarang, hanya dengan menggunakan kartu voucher dan isi ulang elektrik.
Pembelinya mayoritas orang-orang yang berdiam dan lewat di toko isi ulang
tersebut. Berdasarkan data penjualan pulsa di konter Nurfa Cell bulan Desember
tahun 2011, pulsa hanya mampu dijual sebanyak 3,2 juta rupiah dengan pembeli
sebanyak 38 orang. Pembeli tersebut juga terdiri atas berbagai macam operator
selular.
Tabel 1.1 Laporan Transaksi Penjualan Pulsa (Sumber : Buku Penjualan
Konter Nurfa Cell Bulan Januari 2012)
Kartu Operator
Simpati
Flexi
IM3
Mentari
XL
Three
Axis
Esia
Smartfren
Harga Jual
(26 x 5.000)
(26 x 7.000)
(24 x 10.000)
(24 x 12.000)
(1 x 25.000)
(1 x 26.000)
(5 x 10.000)
(5 x 11.500)
(31 x 5.000)
(31 x 7.000)
(85 x 10.000)
(85 x 12.000)
(4 x 50.000)
(4 x 51.000)
(6 x 10.000)
(6 x 12.000)
(3 x 50.000)
(3 x 51.500)
(15 x 10.000)
(15 x 11.000)
(5 x 25.000)
(5 x 25.500)
(2 x 50.000)
(2 x 51.500)
(14 x 5.000)
(14 x 7.000)
(5 x 10.000)
(5 x 11.500)
(12 x 10.000)
(12 x 12.000)
(12 x 10.000)
(12 x 12.000)
(2 x 50.000)
(2 x 52.000)
(2 x 10.000)
(2 x 11.500)
(1 x 50.000)
(1 x 52.000)
Jumlah
Pengguna
Jumlah
182.000
288.000
26.000
57.500
217.000
16
1.020.000
206.000
72.000
154.500
165.000
125.000
103.000
2
1
2
2
38
98.000
57.500
144.000
144.000
104.000
23.000
52.000
3.238.500
1. Analisis
Proses
pengumpulan
kebutuhan
dilakukan
secara
intensif
untuk
4. Pengujian
Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan
memastikan bahwa semua bagian sudah diuji.
5. Pemeliharaan
Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan
ketika sudah dikirimkan ke user.
Pendahuluan
Menjelaskan secara umum tentang latar belakang masalah, perumusan
masalah, tujuan penelitian, batasan masalah, kegunaan dan manfaat
serta metodologi penelitiannya.
BAB II
Landasan Teori.
Berisi tentang dasar-dasar pemahaman yang akan dituangkan ke
dalam skripsi.
BAB III
BAB IV
BAB V
BAB II
LANDASAN TEORI
5. Masukan Sistem
Masukan sistem adalah energi yang dimasukkan ke dalam sistem.
6. Keluaran Sistem
Keluaran sistem adalah energi yang diolah dan diklasifikasikan menjadi
keluaran yang berguna. Keluaran dapat merupakan masukan untuk subsistem
yang lain.
7. Pengolahan Sistem
Suatu sistem dapat mempunyai suatu bagian pengolah atau sistem itu sendiri
sebagai pengolahnya. Pengolah yang akan merubah masukan menjadi keluaran.
8. Sasaran Sistem
Suatu sistem mempunyai tujuan atau sasaran, kalau sistem tidak mempunyai
sasaran makan sistem tidak akan ada. Suatu sistem dikatakan berhasil bila
mengenai sasaran atau tujuannya.
penelitian
sistem
informasi
meliputi
pengembangan,
Software
(Perangkat
Lunak)
DATA
Procedures
(Prosedur)
People
(Manusia)
Manusia
2.
3.
4.
5.
6.
10
7.
8.
9.
11
2. Desain
Tahapan perancangan memiliki tujuan untuk mendesain sistem baru yang dapat
menyelesaikan masalah-masalah yang dihadapi perusahaan yang diperoleh dari
pemilihan alternatif sistem yang terbaik. Kegiatan yang dilakukan dalam tahap
perancangan ini meliputi perancangan output, input dan file. (Ladjamudin,
2005:39).
Desain perangkat lunak adalah proses multilangkah yang focus pada desain
pembuatan program perangkat lunak termasuk struktur data, arsitektur
perangkat
lunak,
representasi
antarmuka,
dan
prosedur
pengodean.
(Shalahuddin, 2011:27).
Dapat disimpulkan bahwa tahapan dalam desain pembuatan perangkat lunak,
yaitu :
a. Desain Perangkat Lunak
b. Desain Struktur Data
c. Representasi Antarmuka
d. Prosedur Pengodean
12
4. Pengujian
Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan
memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk
meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan
sesuai dengan yang diinginkan. (Shalahuddin, 2011:28).
Shalahuddin juga menjelaskan (2011:29) :
Sering perangkat lunak mengandung kesalahan (error) pada proses-proses
tertentu pada saat perangkat lunak sudah berada di tangan user. Kesalahankesalahan (error) pada perangkat lunak ini sering disebut dengan "bug". Untuk
menghindari banyaknya bug maka diperlukan adanya pengujian perangkat
lunak sebelum perangkat lunak diberikan kepada pelanggan atau selama
perangkat lunak masih terus dikembangkan.
5. Pendukung (Support) atau Pemeliharaan (Maintenance)
M. Shalahuddin menjelaskan dalam bukunya Rekayasa Perangkat Lunak
(2011:28).
Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan
ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya
kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat
lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau
pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis
spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk
membuat perangkat lunak baru.
Dapat disimpulkan bahwa pemeliharaan perangkat lunak menjadi tiga macam,
yaitu pemeliharaan korektif, pemeliharaan adaptif, dan pemeliharaan perfektif.
13
Membangun/
memperbaiki
mockup
Mendengarkan
pelanggan
Pelanggan
Melihat/menguji mockup
Application
Development
(RAD)
adalah
model
proses
kecepatan
tinggi
dengan
menggunakan
model
air
terjun
untuk
14
15
16
atas dua jenis, yaitu teknik pengumpulan data primer dan teknik pengumpulan
data sekunder. (repository.usu.ac.id).
1. Teknik Wawancara
Pengumpulan data dengan menggunakan wawancara mempunyai beberapa
keuntungan sebagai berikut (Shalahuddin, 2011:17) :
a. Lebih mudah dalam menggali bagian sistem mana yang dianggap baik dan
bagian mana yang dianggap kurang baik.
b. Jika ada bagian tertentu yang menurut anda perlu untuk digali lebih dalam,
anda dapat langsung menanyakan kepada narasumber.
c. Dapat menggali kebutuhan user secara lebih bebas.
d. User dapat mengungkapkan kebutuhannya secara lebih bebas.
2. Teknik Observasi
Pengumpulan data dengan dengan menggunakan observasi mempunyai
keuntungan, yaitu (Shalahuddin, 2011:18) :
a. Analisis dapat melihat langsung bagaimana sistem lama berjalan.
b. Mampu menghasilkan gambaran lebih baik jika dibanding dengan teknik
lainnya.
3. Teknik Kuisioner
Pengumpulan data dengan menggunakan kuisioner mempunyai keuntungan,
yaitu (Shalahuddin, 2011:19) :
a. Hasilnya lebih objektif, karena kuisioner dapat dilakukan kepada banyak
orang sekaligus.
17
dokumentasi
yaitu
pengumpulan
data
yang diperoleh
dengan
bukunya
Rekayasa
Perangkat
Lunak
(2011:213-214),
M.
18
Perhitungan CC untuk melihat kesamaan nilai antara white box testing dan
bases path testing, jika nilai V(G) = CC pada white box sama dengan nilai CC
pada bases path testing, maka proses pengujiannya telah berhasil.
(Zohrahayati, 2007 : 15).
19
Dalam membuat keterangan, dapat diambil dari kode program yang terlebih
dahulu dibuatkan prosedurnya, atau dengan keterangan seperti ini :
Node 1 : Tampilkan form perintah kerja, aktifkan file-file yang dibutuhkan,
serta input No.PK,
Node 2 : No. PK sudah ada ?
Node 3 : Jika ya, tampil data-data PK tersebut, kemudian apakah akan
mengedit atau menghapus data tersebut,
Node 4 : Jika edit, maka data-data PK dilanjutkan ke proses penyimpanan,
Node 5 : Jika hapus, maka data-data PK akan dihapus dari tabel,
Node 6 : Jika tidak, maka masuk ke input data PK,
Node 7 : Setelah selesai diinput atau diedit, apakah data-data tersebut akan
disimpan, dibatalkan atau keluar dari form perintah kerja,
Node 8 : Jika disimpan, maka data-data tersebut akan direkam ke tabel, dan
kembali ke pengisian No. PK lainnya,
Node 9 : Jika dibatalkan, maka kembali ke pengisian No. PK lainnya,
Node 10: Jika tidak disimpan atau dibatalkan, maka tutup form perintah kerja
dan kembali ke menu utama.
:5
Node (N)
: 10
20
Edge (E)
: 13
Predicate Node : 4
Maka, V(G)
=EN+2
= 13 10 + 2
=5
Maka, V(G)
=P+1
=4+1
=5
21
22
23
Deskripsi
Fungsionalitas yang disediakan sistem sebagai
Use case
Nm_usecase
Asosiasi
association
24
Deskripsi
Ekstensi / extend
Generalisasi/general
ization
Menggunakan
include / uses
<<include>>
<<uses>>
b. Sequence Diagram
Dalam bukunya yang berjudul Rekayasa Perangkat Lunak, M. Shalahuddin
menjelaskan bahwa (2011:137), diagram sekuen menggambarkan kelakuan
objek pada use case dengan mendeskripsikan waktu hidup objek dan
message yang dikirimkan dan diterima antarobjek.
M. Shalahuddin juga menambahkan,
Banyaknya diagram sekuen yang harus digambar adalah sebanyak
pendefinisian use case yang memiliki proses sendiri atau yang penting
semua use case yang didefinisikan interaksi jalannya pesan sudah dicakup
pada diagram sekuen sehingga semakin banyak use case yang didefinisikan
maka diagram sekuen yang harus dibuat juga semakin banyak.
Berikut
adalah
simbol-simbol
(M.Shalahuddin, 2011:138-139) :
yang
ada
pada
diagram
sekuen
25
Deskripsi
Orang, proses, atau sistem lain yang berinteraksi
dengan sistem informasi yang akan dibuat itu
atau
hidup
lifeline
Objek
Nama_objek : nama_kelas
Waktu aktif
Menyatakan
bahwa
menjalankan
suatu
suatu
objek
operasi
yang
atau
telah
metode
26
c. Activity Diagram
Dalam bukunya yang berjudul Rekayasa Perangkat Lunak, M. Shalahuddin
(2011:134) menjelaskan,
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran
kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu
diperhatikan disini adalah bahwa diagram aktivitas menggambarkan
aktivitas sistem bukan apa yang dilakukan oleh aktor, jadi aktivitas yang
dapat dilakukan oleh sistem.
Berikut
adalah
simbol-simbol
yang
ada
pada
diagram
aktivitas
(Shalahuddin, 2011:134-135) :
Deskripsi
Status
awal
aktivitas
Percabangan
decision
Penggabungan
join
Status akhir
Swimlane
Atau
27
2. Pemodelan Terstruktur
Pemrograman terstruktur adalah konsep atau paradigma atau sudut pandang
pemrograman yang membagi-bagi program berdasarkan fungsi-fungsi atau
prosedur-prosedur
yang
dibutuhkan
program
komputer.
(Shalahuddin,
2011:62).
M. Shalahuddin juga menjelaskan (2011:63),
Pemodulan dalam pemrograman terstruktur dibagi berdasarkan fungsi-fungsi
dan prosedur-prosedur. Oleh karena itu, pemodelan pada pemrograman
terstruktur lebih fokus bagaimana memodelkan data dan fungsi-fungsi atau
prosedur-prosedur yang harus dibuat. Jenis paradigma pemrograman yang
digunakan dapat dideteksi dari bahasa pemrograman apa yang akan digunakan
untuk membuat program, baru setelah itu ditentukan paradigma pemrograman
apa yang akan digunakan.
Data Flow Diagram (DFD)
M. Shalahuddin menjelaskan dalam bukunya Rekayasa Perangkat Lunak
(2011:64), bahwa:
DFD dapat digunakan untuk mempresentasikan sebuah sistem atau perangkat
lunak pada beberapa level abstraksi. DFD dapat dibagi menjadi beberapa level
yang lebih detail untuk mempresentasikan aliran informasi atau fungsi yang
lebih detail. DFD menyediakan mekanisme untuk pemodelan fungsional
ataupun pemodelan aliran informasi. Oleh karena itu, DFD lebih sesuai
digunakan untuk memodelkan fungsi-fungsi perangkat lunak yang akan
diimplementasikan
menggunakan
pemrograman
terstruktur
karena
pemrograman terstruktur membagi-bagi bagiannya dengan fungsi-fungsi dan
prosedur-prosedur.
3. Perbandingan Berorientasi Objek dan Terstruktur
M. Shalahuddin dalam bukunya Rekayasa Perangkat Lunak (2011, 91),
menjelaskan bahwa :
Perbedaan yang paling dasar dari pendekatan terstruktur dan pendekatan OO
(Object Oriented) atau berorientasi objek adalah pada metode berorientasi
fungsi atau aliran data / Data Flow Diagram (DFD)/pendekatan terstruktur,
dekomposisi permasalahan dilakukan berdasarkan fungsi atau proses secara
hirarki, mulai dari konteks sampai proses-proses paling kecil. Sementara pada
metode berorientasi objek, dekomposisi permasalahan dilakukan berdasarkan
objek-objek yang ada dalam sistem.
28
dengan
versi-versi
akhir
menuju
PHP5
sudah
mendukung
29
2.6 Database
Dalam bukunya yang berjudul Belajar Otodidak Membuat Database
Menggunakan MySQL, Budi Raharjo (2011:4), menjelaskan bahwa Database
memiliki beberapa model diantaranya adalah model relasional.
30
Deskripsi
Entitas
Atribut
Nm atrib
Atribut
multinilai/multivalue
Relasi
Asosiasi /
0..*
association
31
Deskripsi
Kelas pada struktur sistem
nama_kelas
+atribut
+operasi
Antarmuka / interface
nama_interface
Asosiasi / association
Sama
dengan
konsep
interface
dalam
Asosiasi berarah / directed Relasi antar kelas dengan makna kelas yang
association
Generalisasi
Relasi
antar
kelas
dengan
makna
Relasi
antar
kelas
dengan
makna
32
4. Microsoft Access
Sedangkan DBMS versi open source yang cukup berkembang dan paling
banyak digunakan saat ini adalah sebagai berikut (Shalahuddin, 2011:46) :
1. MySQL
2. PostgreSQL
3. Firebird
4. SQLite
MySQL
Budi Raharjo dalam bukunya Belajar Otodidak Membuat Database
Menggunakan MySQl (2011:22), menyatakan karena MySQL menganut atau
mengimplementasikan model database relational maka MySQL disebut sebagai
Relational Database Management System (RDBMS).
Budi Raharjo juga menjelaskan (2011:22), MySQL merupakan software
RDBMS (atau server database) yang dapat mengelola database dengan sangat
cepat, dapat menampung data dengan jumlah sangat besar, dapat diakses oleh
banyak user (multi-user), dan dapat melakukan suatu proses secara sinkron atau
berbarengan (multi-threaded).
Berikut ini beberapa alasan mengapa mereka memilih MySQL sebagai
server database untuk aplikasi-aplikasi yang mereka kembangkan (Raharjo,
2011:23-24) :
1. Fleksibel
MySQL dapat digunakan untuk mengembangkan aplikasi dekstop maupun
aplikasi web dengan menggunakan teknologi yang bervariasi.
2. Performa Tinggi
MySQL memiliki mesin query dengan performa tinggi, dengan demikian proses
transaksional dapat dilakukan dengan sangat cepat.
3. Lintas Platform
MySQL dapat digunakan pada platform atau lingkungan (dalam hal ini sistem
operasi) yang beragam, bisa Microsoft Windows, Linux, atau UNIX.
33
4. Gratis
MySQL dapat digunakan secara gratis.
5. Proteksi Data yang Handal
Perlindungan terhadap keamanan data merupakan hal nomor satu yang
dilakukan oleh para profesional di bidang database.
6. Komunitas Luas
Karena penggunanya banyak, MySQL memliki komunitas yang luas.
2.6.4 Trigger
Trigger adalah objek di dalam database yang berasosiasi dengan suatu tabel.
Trigger akan diaktifasi ketika tabel tersebut dikenal event tertentu. Event yang
dimaksud di sini adalah suatu kejadian yang menimpa tabel, bisa berupa
penambahan, perubahan, maupun penghapusan data. (Raharjo, 2011:211).
Dalam pengelolaan database, trigger memiliki beberapa manfaat, yaitu
(Raharjo, 2011:212) :
1. Trigger dapat menguji validitas data yang akan dimasukkan maupun yang akan
digunakan untuk melakukan perubahan.
2. Trigger dapat memperoleh nilai lama dari basis data yang dihapus atau diubah
(misalnya untuk keperluan pencatatan histori data dari suatu tabel).
3. Trigger dapat mengubah nilai kolom pada tabel lain.
34
SMS Gateway merupakan komunikasi dua arah. Maksud dua arah ini adalah
sistem akan membahas secara otomatis setiap pesan yang masuk. (Saputra,
2011:130).
Definisi SMS Gateway menurut E. Tarigan (2012:2) :
SMS Gateway merupakan pintu gerbang bagi penyebaran informasi dengan
menggunakan SMS. Dapat menyebarkan pesan ke banyak nomor secara otomatis
dan cepat yang langsung terhubung dengan database nomor-nomor ponsel saja,
tanpa harus mengetik ratusan nomor dan pesan di ponsel, karena semua nomor
akan diambil secara otomatis dari database tersebut.
Dewanto dalam jurnalnya yang berjudul Aplikasi SMS Gateway dengan
Koreksi Kesalahan Menggunakan Fuzzi String Matching (2007:2), menyatakan
bahwa :
Aplikasi SMS Gateway adalah sebuah perangkat lunak yang mampu membaca
informasi SMS yang diterima dan melakukan pengelolaan sesuai kebutuhan.
Untuk koneksi dengan telpon selluler menggunakan perintah AT Command
melalui port I/O (serial/USB) yang mendukung GSM Modem ataupun berbagai
merk telpon selluler.
Beberapa kemampuan SMS Gateway, yaitu untuk (Fikri, 2006:3) :
1. Memperbesar skala aplikasi teknologi informasi dengan menggunakan
komunikasi SMS interaktif.
2. Menyediakan aplikasi kolabo-rasi komunikasi SMS berbasis web untuk
pengguna di institusi atau perusahaan.
3. Menjangkau konsumen maupun pengguna jasa layanan institusi atau
perusahaan secara mudah menggunakan komunikasi SMS interaktif.
Cara kerja SMS Gateway pada dasarnya hampir sama dengan mengirimkan
SMS melalui handphone pada umumnya. Hanya saja, bedanya adalah perangkat
pengirimnya bukan lagi handphone, tetapi modem GSM. (E. Tarigan, 2012 : 2).
Dalam membangun aplikasi SMS Gateway diperlukan beberapa perangkat
pendukung, diantaranya (E. Tarigan, 2012 : 3) :
1. PC Server (Minimal : Pentium 3, 256 MB RAM, Harddisk 40 GB).
2. Modem GSM USB lengkap dengan SIM Card.
3. Driver Modem GSM.
35
Gammu
Gammu adalah sebuah aplikasi yang dapat digunakan untuk mengelola
berbagai fuungsi pada handphone, modem, atau perangkat sejenis lainnya. Fungsifungsi yang dapat dikelola gammu antara lain adalah fungsi nomor kontak
(phonebook) dan fungsi SMS. (E. Tarigan, 2012 : 24).
Kelebihan Gammu dibandingkan tool SMS Gateway lainnya (E. Tarigan,
2012 : 24) :
1. Gammu bisa dijalankan di Windows maupun di Linux.
2. Banyak device yang kompatibel dengan Gammu.
3. Gammu menggunakan database MySQL.
4. Baik kabel data USB maupun serial, semuanya kompatibel dengan Gammu.
5. Gammu adalah aplikasi open source yang dapat dipakai secara gratis.
6. Gammu tidak memerlukan banyak hardware (hanya memerlukan PC, modem),
sehingga memudahkan dalam mengembangkan aplikasi dengan modal
terjangkau.
36
log in, log out, permission access dan role didalam SMS Gateway yang akan
dibuat. (E. Tarigan, 2012 : 28).
1. Role
Role adalah suatu sistem yang mengatur bagaimana peran seorang user
(pengguna) didalam sistem yang akan dibuat. Sebagai contoh, misalnya dalam
aplikasi yang dibuat terdiri dari beberapa role, seperti administrator,
moderator, dan user register. Masing-masing user akan tergabung ke dalam
role-role tertentu.
2. User Permission
User Permission adalah hak akses yang dimiliki oleh seorang user dalam
sistem autentikasi. User Permission berkaitan erat dengan role. User
Permission akan diberikan kepada setiap role yang ada.
Notepad++
menggunakan
komponen
scintilla
untuk
dapat
menampilkan dan menyuntingkan teks dan berkas kode sumber berbagai bahasa
pemrogaman.
37
Photoshop, adalah perangkat lunak editor citra buatan Adobe System yang
dikhususkan untuk pengeditan foto atau gambar dan pembuatan efek.
2.12.1 Pembuatan Aplikasi Sistem Penjualan Pulsa Pada Toko Miyo Cell
Menggunakan Netbeans 6.01 dan MySQL
Penelitian yang ditulis oleh Ratih Aulia, alumni Fakultas Ilmu Komputer
Universitas Gunadarma pada tahun 2010 menjelaskan tentang pembuatan suatu
aplikasi sistem penjualan pada toko Miyo Cell dengan menggunakan Netbeans
6.0.1 dan MySQL. Dengan adanya aplikasi ini, diharapkan pemilik toko Miyo
Cell dapat dengan mudah mengetahui berapa penjualan yang masuk, berapa stok
barang yang ada, pembelian barang apa saja yang diperlukan, dan berapa
keuntungan yang diperoleh.
Sedangkan untuk metodologi penelitiannya, penulis menggunakan studi
pustaka, studi lapangan, UML sebagai desain sistemnya, dan kuisioner.
38
Aplikasi
Aplikasi
Konsep
Pengisian
Penjualan
Pulsa
Macromedia Dreamweaver
SDLC
SDLC
Berbasis Web
Rancangan
SDLC
Penelitian
Konsep
Isi
Pulsa Sistem
Aplikasi
Lewat Web
Menggunakan
Aplikasi Dekstop
Isi
Pulsa Ada
Tidak ada
Lewat web
sms
pengisian
penjualan
transaksi
pulsa
pulsa
39
Aplikasi
Aplikasi
Konsep
Pengisian
Penjualan
Pulsa
Berbasis Web
Aplikasi
ya
namun
digunakan
oleh
pulsa
sebatas
selanjutnya
pelanggan
Cara daftar
Lewat web
Tambah
Menggunakan Pelanggan
saldo pulsa
Fasilitas
transfer rek.
voucher pulsa
BAB III
OBJEK DAN METODOLOGI PENELITIAN
40
41
42
survey
pengguna
internet
di
Indonesia
yang
diperoleh
dari
tekno.kompas.com.
3. Data survey pemilik handphone di Indonesia yang diperoleh dari Asosiasi
Telepon Selular Indonesia (ATSI)
43
Analisis
2.
Desain
3.
4.
Pengujian
5.
Pemeliharaan
3.4.1 Analisis
Dalam tahapan analisis, peneliti menganalisis Konter Nurfa Cell melalui
metode observasi mencari data primer di konter Nurfa Cell dan wawancara
pelanggan Konter Nurfa Cell.
44
3.4.2 Desain
Dari
hasil
analisis
yang didapatkan,
akan
dibuat
ilustrasi
yang
3.4.4 Pengujian
Pengujian terhadap aplikasi yang akan dibuat yaitu dengan metode
pendekatan black-box testing dan white-box testing karena pengujian tidak hanya
45
BAB IV
HASIL DAN PEMBAHASAN
4.1.1 Analisis
Dalam tahapan analisis, didapatkan hasil dari tahapan tersebut yaitu berupa
data-data penjualan, data pelanggan, dan data operator pulsa konter Nurfa Cell.
Tabel 4.1 Laporan Penjualan Pulsa (Sumber : Buku Penjualan Konter Nurfa Cell
Bulan November 2011 sampai Maret 2012)
Bulan
Banyak Pelanggan
November 2011
35
3,232,000,-
Desember 2011
32
3,430,000,-
Januari 2012
38
3,238,500,-
Februari 2012
34
3,200,000,-
Maret 2012
36
3,390,000,-
Rata-rata
35
3,314,625,-
Data Penjualan
40
38
36
34
32
30
28
Banyak
Pelanggan
et
ar
M uari
br
Fe ari
nu e r
Ja mb
se er
De mb
ve
No
Bulan
3500
3400
3300
3200
3100
3000
Hasil
Penjualan
et
ar i
M uar
br
Fe ari
nu e r
Ja mb
se er
De emb
v
No
Banyak Pelanggan
Data Penjualan
Bulan
46
47
5,10,25,50,100
XL Axiata
5,10,25,50,100
5,10,15,20,25,50,100
Tri (3)
5,10,20,30,50,100
Axis
5,10,20.25,50,100
Esia
5,10,20,25,50,100
Smartfren
5,10,20,50,100
Selain data diatas, peneliti juga mencari data-data lain yang mendukung
penelitian yaitu menggunakan data survey yang dilakukan oleh kelompok lain.
Berdasarkan data statistik dari tekno.kompas.com tanggal 12 Januari 2012,
pengguna internet di Indonesia tahun 2011 mencapai 55 juta pengguna. Angka
tersebut sudah termasuk pengaksesan internet di komputer dan ponsel.
Data survey lain yang diambil dari Asosiasi Telepon Selular Indonesia,
bahwa jumlah pemilik sekaligus pengguna telepon seluler di Indonesia mencapai
250 juta pengguna.
Selain data, peneliti juga menganalisis prosedur yang sedang berjalan saat
ini di konter Nurfa Cell yaitu masih menggunakan pencatatan pada buku
penjualan.
48
49
pelanggan tidak perlu datang ke konter Nurfa Cell, cukup dengan mengisi
formulir pada suatu halaman pada perangkat lunak.
Dari data pengguna internet yang setiap tahunnya meningkat, perangkat
lunak yang dibuat berbasis web. Dengan pemanfaatan website, pelanggan yang
ada dimana pun dapat mengakses perangkat lunak dengan mudah. Dengan
pemanfaatan website ini juga, media yang menyediakan fasilitas internet, dapat
mengakses perangkat lunak ini kapan pun.
Untuk mencegah kebocoran rahasia pelanggan yang satu dengan yang
lain, maka dalam perangkat lunak dibuatkan fasilitas log in. Yaitu hak akses yang
dimiliki oleh setiap pelanggan (user) untuk merubah saldo yang dimilikinya.
Untuk pengetahuan terhadap setiap user tentang pengurangan atau penambahan
saldo yang dimilikinya, maka diberikan fasilitas laporan pengisian pulsa atau
penambahan saldo.
Untuk penambahan saldo, maka pada salah satu halaman dalam perangkat
lunak tersebut disediakan cara-cara penambahan saldo yaitu dengan mentransfer
saldo yang diinginkan ke bank-bank admin yang sudah tersedia. Untuk
konfirmasinya dapat mengirimkan scan bukti transfer ke alamat email admin.
Berdasarkan hasil analisa diatas, maka spesifikasi software yang
diperlukan, antara lain :
1. Software berbasis web dan dijalankan menggunakan fasilitas internet dan
browser, sehingga dapat dijalankan di handphone atau PC.
2. Software menyediakan fasilitas pendaftaran bagi pengguna atau user baru.
3. Software menyediakan fasilitas log in untuk setiap user.
4. Software menyediakan halaman yang berisi laporan untuk setiap transaksi
pulsa yang dilakukan oleh user.
5. Software menyediakan halaman yang menerangkan cara menambahkan saldo
pulsa dengan mentrasnfer ke rekening admin pada bank tertentu.
4.1.1.3 Pendefinisian Pengguna Software
Terdapat dua klasifikasi pengguna perangkat lunak pengisian pulsa
berbasis web ini. Yang pertama yaitu penjual pulsa sebagai admin dan pelangggan.
50
Berikut hak akses yang dimiliki oleh admin dan user yaitu :
Tabel 4.3 Tabel Hak Akses Admin dan User
Admin (Pengelola I & II Konter)
1. Melakukan log in
2. Mengkonfirmasi
penambahan
saldo user,
rekening admin,
4. Melakukan transaksi pulsa.
4.1.2 Desain
Hasil yang didapat dalam tahapan desain, yaitu :
1. Desain Perangkat Lunak
Dengan menggunakan pemodelan berorientasi objek yang penggambarannya
berupa UML, diambil beberapa diagram dalam UML untuk membuat desain
perangkat lunak. Beberapa diagram tersebut adalah :
a. Diagram Use Case
Diagram pada UML yang pertama kali dipakai adalah diagram use case,
karena diagram ini menginteraksikan satu aktor atau lebih dengan perangkat
lunak yang akan dibuat.
1) Definisi Aktor
Tabel 4.4 Tabel Definisi Aktor pada Diagram Use Case
Aktor
Deskripsi
Pengelola
Konter
Pelanggan
51
Deskripsi
Merupakan proses pemeriksaan hak akses siapa
yang berhak mengakses proses pengisian pulsa,
login wajib bagi pengelola konter untuk fungsifungsi berkaitan dengan akses pengubahan ke
basis data, login juga wajib bagi user yang
ingin melakukan transaksi pulsa.
Mengelola
pelanggan
data Kegiatan
admin
untuk
mengelola
data
Mengubah
pelanggan
Memasukkan
pelanggan
Menghapus
pelanggan
Mengelola saldo
Menambah saldo
Memasukkan
transaksi
52
Tabel 4.5 Tabel Definisi Use Case Pada Diagram Use Case (Lanjutan)
Use Case
Menampilkan
Deskripsi
data Kegiatan menampilkan laporan transaksi
transaksi
Aktifasi pendaftaran
Reaksi Sistem
Skenario Normal
1. Memasukkan username
dan password
2. Memeriksa
valid
tidaknya
data
masukkan
3. Masuk ke aplikasi pengisian pulsa
Skenario Alternatif
1. Memasukkan username
dan password
2. Memeriksa
valid
tidaknya
data
masukkan
3. Menampilkan pesan login tidak valid
4. Memasukkan username
dan
valid
password
yang
53
Reaksi Sistem
5. Memeriksa validnya data masukan
6. Masuk ke aplikasi pengisian pulsa
Reaksi Sistem
Skenario Normal
1. Memasukkan
pelanggan
data
sesuai
data
pelanggan
ke
data
pelanggan
2. Memeriksa
valid
tidaknya
data
masukan
3. Mengeluarkan pesan bahwa data
masukkan tidak valid
4. Memperbaiki
data
valid
tidaknya
data
masukan
6. Menyimpan
data
pelanggan
ke
54
Reaksi Sistem
Skenario Normal
1. Memilih
data
data
pelanggan
4. Memeriksa
valid
tidaknya
data
masukan
5. Menyimpan
data
pelanggan
ke
dalam database
Skenario Alternatif
1. Memilih
data
pelanggan
2. Menampilkan data pelanggan yang
akan diubah
3. Mengubah
data
pelanggan
4. Memeriksa
valid
tidaknya
data
masukan
5. Mengeluarkan pesan bahwa data
masukkan tidak valid
6. Memperbaiki
data
pelanggan
yang
55
Reaksi Sistem
7. Memeriksa
valid
tidaknya
data
masukan
8. Menyimpan data pelanggan yang
telah diubah ke dalam basis data
Reaksi Sistem
Skenario Normal
1. Memilih data pelanggan
yang ingin dihapus
2. Menghapus
data
pelanggan
3. Menghapus data pelanggan dari
database
Reaksi Sistem
Skenario Normal
1. Mendapatkan konfirmasi
dari pelanggan lewat sms
2. Memeriksa
tidaknya konfirmasi
valid
56
Reaksi Sistem
3. Menambahkan
saldo
pulsa ke pelanggan
4. Simpan
perubahan
dalam
Perubahan
dalam
database
Skenario Alternatif
1. Mendapatkan konfirmasi
dari pelanggan lewat sms
2. Memeriksa
konfirmasi
yang
dilakukan
pelanggan
3. Memberitahukan
konfirmasi tidak valid
kepada pelanggan
4. Pelanggan memperbaiki
konfirmasi
transfer
rekening
5. Memeriksa
konfirmasi
yang
dilakukan
pelanggan
6. Menambahkan
saldo
pulsa ke pelanggan
7. Simpan
database
57
Reaksi Sistem
Skenario Normal
1. Memasukkan
data
ke
konfirmasi
kepada
data
ke
data
konfirmasi
transfer
5. Memeriksa valid tidaknya data
masukan
6. Menyimpan data transaksi ke
dalam basis data
7. Memberi
admin
konfirmasi
kepada
58
Reaksi Sistem
Skenario Normal
1. Memasukkan
data
ke
data
ke
saldo
dengan mentransfer ke
rekening admin
5. Memeriksa saldo yang tersedia
lebih dari nominal
6. Menyimpan data transaksi ke
dalam basis data
59
Reaksi Sistem
Skenario Normal
1. Ambil data transaksi dari
dalam database
2. Data transaksi yang ditampilkan
berdasarkan username
3. Data transaksi ditampilkan
Reaksi Sistem
Skenario Normal
1. Memasukkan
kode
aktifasi
2. Memeriksa valid tidaknya data
masukkan
3. Akun sudah aktif dan bisa log in
Skenario Alternatif
1. Memasukkan
kode
aktifasi
2. Memeriksa valid tidaknya data
masukkan
3. Menampilkan pesan kode tidak
valid
4. Memasukkan
aktifasi yang valid
kode
60
Reaksi Sistem
5. Memeriksa valid tidaknya data
masukkan
6. Akun aktif, bisa log in
61
62
63
64
c. Sequence Diagram
Berikut adalah diagram sekuen dari aplikasi pengisian pulsa :
1) Use Case : login
65
66
67
68
69
70
71
Keterangan
Main
Login
MengelolaAnggota
MengelolaTransaksi
MengelolaSaldo
Tanggota
Ttransaksi
TSaldo
mengkonfirm
saldo
jika
telah
3. Representasi Antarmuka
Sebelum menampilkan desain antarmuka yang sebenarnya, dibuatkan dahulu
diagram struktur menunya atau biasa disebut sitemap yang bertujuan untuk
memudahkan pembuat dalam merinci fitur-fitur yang disediakan untuk para
pengguna, seperti yang terlihat pada gambar berikut :
72
a. Tampilan login
73
74
75
76
4. Prosedur Pengodean
Dalam prosedur pengodean, dijelaskan langkah-langkah atau prosedur setiap
kegiatan yang ada dalam aplikasi pengisian pulsa berbasis web.
a. Prosedur log in
77
78
79
80
$nodef = "082112555393";
$pindef = "8899";
$creatorid = $_SESSION["username"];
$no_tujuan = $_POST["txtnotujuan"];
$operator = $_POST["soperator"];
$nominal = $_POST["nominal"];
$realnominal;
switch($nominal)
{
case 5 : $realnominal = "5000";
81
break;
case 10 : $realnominal = "10000";
break;
case 20 : $realnominal = "20000";
break;
case 25 : $realnominal = "25000";
break;
case 50 : $realnominal = "50000";
break;
case 100 : $realnominal = "100000";
}
$selectquery
mysql_query("select
saldo,anggota
where
saldo.id,saldo.saldo
saldo.id=anggota.id
from
and
anggota.username='".$creatorid."'");
$dtsaldo=mysql_fetch_array($selectquery);
"<center>Maaf
saldo
anda
saat
ini
Rp.$dtsaldo[saldo],-
if($insertquery
mysql_query("insert
into
outbox(TextDecoded,DestinationNumber,CreatorID)
values('$operator$nominal.$no_tujuan.$pindef','$nodef','$creatorid')"))
{
echo "<center>Pulsa telah dikirim ke nomor $no_tujuan</center>";
$saldoakhir = $dtsaldo["saldo"] - $realnominal;
$updatequery = mysql_query("update saldo set saldo = $saldoakhir
where id='".$dtsaldo['id']."'");
}
else
{
echo "Gagal terkirim";
}
require("isipulsa.php");
}
?>
82
Untuk kode program dalam membuat database pada query MySQL, yaitu
(dalam hal ini, hanya tabel anggota yang ditampilkan kodenya) :
CREATE TABLE IF NOT EXISTS `anggota` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(50) NOT NULL,
`alamat` varchar(100) NOT NULL,
`hp` varchar(15) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(8) NOT NULL,
`aktivasi` varchar(20) NOT NULL,
`flag_aktivasi` enum('belum_aktif','aktif') NOT NULL,
PRIMARY KEY (`id`)
)
83
4.1.4.1Instalasi Software
Proses instalasi software merupakan proses pemasangan aplikasi pengisian
pulsa berbasis web di konter Nurfa Cell. Sebelum memasang aplikasi pengisian
pulsa, terlebih dahulu memasang aplikasi yang mendukung berjalannya aplikasi
pengisian pulsa tersebut. Berikut aplikasi-aplikasi pendukung yang harus
dijalankan sebelum atau bersamaan dengan aplikasi pengisian pulsa :
1. Aplikasi browser atau mesin pencari yang dapat melakukan sinkronisasi data
dengan internet. Disini peneliti menggunakan aplikasi browser Mozila Firefox.
Aplikasi browser dipasang sebelum menjalankan aplikasi pengisian pulsa
berbasis web. Aplikasi browser juga berlaku untuk semua aktor, baik
administrator maupun user (pelanggan) dengan media baik PC maupun
handphone.
84
aplikasi pengisian pulsa berjalan. Aplikasi SMS Gateway berlaku hanya untuk
admin.
4.1.4.2Instalasi Database
Instalasi database merupakan proses pemasangan basis data yang
mendukung aplikasi pengisian pulsa berbasis web. Karena fungsi dari basis data
adalah tempat penyimpanan data-data yang menunjang berjalannya aplikasi
pengisian pulsa. Terdapat pula data-data tentang user yang terdaftar di aplikasi
pengisian pulsa maupun data-data harga pulsa.
Sudah diketahui bahwa aplikasi basis data yang digunakan oleh peneliti
dalam membuat database adalah MySQL. Berikut tahapan pemasangan aplikasi
MySQL :
1. Dalam area localhost, peneliti menggunakan aplikasi XAMPP yang didalamnya
terdapat aplikasi MySQL. Setelah jalankan XAMPP, maka jalankan service
MySQL agar aktivitas mengelola database dapat berjalan.
2. Dalam area hosting, biasanya tersedia aplikasi MySQL dalam control panel
sebagai tempat penyimpanan databasenya.
85
4.1.4.3Dokumentasi Program
Tahapan ini menjelaskan dokumentasi program yang berisi dokumentasi
dari sebelum program dijalankan sampai pada proses transaksi selesai.
Dokumentasi tersebut dibuat dalam aplikasi dengan menu bantuan (panduan
penggunaan user). Tujuannya adalah untuk mempermudah pengguna (user) dalam
menjalankan aplikasi yang dibuat.
Berikut tampilan menu bantuan dan isi dari dokumentasi program yang
dibuat :
86
Menu
Jenis Pengujian
Pengujian Black Box
Login
Pengisian pulsa
Transaksi
Transaksi
Pengujian Blackbox
Berdasarkan tahapan dari tabel diatas, maka dapat dilakukan pengujian sebagai
berikut :
1. Pengujian login
Tabel 4.17 Tabel Pengujian Login
Kasus dan Hasil Uji (Data Normal)
Data masukan
Username
Rencana
Hasil
kesimpulan
(menu utama)
database
Kasus dan Hasil Uji (Data tidak Normal)
Data Masukan
Username
Rencana
dan Kembali login
Hasil
Kesimpulan
Kembali login
diterima
87
Rencana
Saldo = 10000
Tampil
No.Hp : 08132842
pulsa
Operator : simpati
dikirim
Nominal : 5000
08132842
Hasil
kesimpulan
pesan Tampil
pesan diterima
telah pulsa
telah
ke dikirim
ke
08132842
Rencana
Hasil
Kesimpulan
pesan Tampil
saldo kurang
pesan diterima
Saldo kurang
menu
Rencana
log Tampil
Hasil
kesimpulan
Log Tampil
Log diterima
Transaksi
utama
Kesimpulan
Login
Pengujian diterima
Pengisian pulsa
Pengujian diterima
Pengujian diterima
88
Hasil pengujian yang dilakukan dengan metode black box di konter Nurfa Cell
sudah selesai dengan yang diharapkan dan dapat diterima.
4.1.5.2Pengujian Program
Pengujian program merupakan pengujian secara internal. Tidak hanya alur,
namun juga kode program yang memiliki fungsi tertentu diuji apakah sesuai
dengan fungsinya atau tidak. Pengujian ini sering dinamakan whitebox testing.
Pengujian ini bersifat benar jika hasil uji white box testing dan bases path testing
dianggap sesuai. Dalam pengujian ini, penulis hanya menguji 3 proses dalam
aplikasi pengisian pulsa, diantaranya pengujian kode pengisian pulsa (transaksi
pulsa), pengujian kode login, dan pengujian kode log (laporan) pengisian pulsa.
2)
3)
Else
{
4)
if($insertquery
mysql_query("insert
into
outbox(TextDecoded,DestinationNumber,CreatorID)
values('$operator$nominal.$no_tujuan.$pindef','$nodef','$creat
orid')"))
{
5)
mysql_query("update
saldo
else
{
echo "Gagal terkirim";
7)
set
saldo
89
=7
Edge (E)
=8
=EN+2
=87+2=3
Maka, V (G)
=P+1=2+1=3
90
saldo akhir setelah dikurangi nominal, lalu update database, dan simpan
sebagai data transaksi,
Jalur 3 : Jika saldo tidak lebih kecil dari nominal, tapi data transaksi tidak masuk
ke tabel outbox di database, maka akan muncul pesan Gagal terkirim.
Berdasarkan hasil uji coba white box testing dan bases path testing di atas,
dapat disimpulkan bahwa logika flowchart benar.
2. Selain kode transaksi pulsa, pengujian white box berlaku untuk kode log in :
1)
$user = $_POST['txtusername'];
$pw = $_POST['txtpassword'];
$q_login
mysql_query("select
from
user
where
2)
3)
$_SESSION['username'] = $user;
$_SESSION['password'] = $pw;
4)
if($user=='admin')
{
?>
5)
<?php
}
6)
else
{
?>
<?php
91
}
}
else
7)
{
$error ="";
8)
9)
10-11
} else if(empty($user)) {
12)
13-14
} else if(empty($pw)) {
15)
16)
} else {
$error ="<b>Username</b> dan <b>Password</b> tidak sesuai";
17)
= 17
Edge (E)
= 21
92
93
Jalur 6 : Input username dan password, jika masukkan username dan password
tidak sama dengan yang ada dalam database, maka masuk ke dalam
pilihan errorr yang jika ada masukkan username dan password, namun
tidak sesuai, maka akan muncul pesan username dan password tidak
sesuai.
Berdasarkan hasil uji coba white box testing dan bases path testing di atas,
dapat disimpulkan bahwa logika flowchart benar.
3. Selain kode transaksi pulsa, dan kode log in, pengujian terakhir berupa
pengujian kode log (laporan) transaksi :
1)
<?php
$creatorid = $_SESSION["username"];
$selectquery1
mysql_query("select
saldo,anggota
where
saldo.id,saldo.saldo
saldo.id=anggota.id
from
and
anggota.username='".$creatorid."'");
$dtsaldo=mysql_fetch_array($selectquery1);
$selectquery2
mysql_query("select
from
log_pengisian
where
id='".$dtsaldo['id']."'");
$j=mysql_num_rows($selectquery2);
2)
3)
for($k=0;$k<$j;$k++){
if ($k % 2 == 1) {
4)
$dt=mysql_fetch_array($selectquery2);
echo "<tr bgcolor=#DEDEDE>
<td align = 'center'>$dt[no_tujuan]</td>
<td align = 'center'>$dt[operator]</td>
<td align = 'center'>$dt[nominal]</td>
<td align = 'center'>$dt[time]</td>
<td
align=center><input
type=submit
name=peritem></td>
</tr>";
}
5)
else
{
$dt=mysql_fetch_array($selectquery2);
echo "<tr bgcolor=white>
<td align = 'center'>$dt[no_tujuan]</td>
<td align = 'center'>$dt[operator]</td>
value=$dt[msg_id]
94
align=center><input
type=submit
value=$dt[msg_id]
name=peritem></td>
</tr>";
6)
7)
}
}
?>
=7
Edge (E)
=8
95
Pengujian test case dengan pendekatan white box dan bases path berdasarkan
flowgraph di atas menghasilkan :
Jalur 1 : Ambil data dari tabel log dalam database pulsaonline, data yang diambil
tidak ada
Jalur 2 : Ambil data dari tabel log dalam database pulsaonline, data yang diambil
ada dan dibuatkan tabel secara perulangan, jika nomor baris genap maka
warna background baris abu-abu,
Jalur 3 : Ambil data dari tabel log dalam database pulsaonline, data yang diambil
ada dan dibuatkan tabel secara perulangan, jika nomor baris bukan genap
maka warna background baris putih.
Berdasarkan hasil uji coba white box testing dan bases path testing di atas,
dapat disimpulkan bahwa logika flowchart benar.
4.2 Pembahasan
Setelah tahapan testing, terdapat tahapan pembahasan yang merupakan
kesimpulan dari aplikasi yang dibuat. Dilihat dari tujuan penelitiannya sudah
terlaksana atau belum.
1. Aplikasi dapat digunakan untuk mengisi pulsa ke nomor operator kapan pun
dan dimana pun. Dengan memanfaatkan modem yang selalu tersambung
dengan PC atau laptop. Dimana penggunaan modem tersebut untuk aplikasi
sms gateway yang membantu pengisian pulsa berbasis web.
2. Aplikasi dapat dijalankan dengan menggunakan media PC, handphone, tablet,
laptop dan media lain yang memiliki browser sebagai mesin pencari.
3. Aplikasi dapat digunakan untuk mengisi pulsa ke nomor operator dengan
memanfaatkan fasilitas internet. Karena aplikasi ini berbasis web, maka
pemanfaatan untuk memperluas jaringan penjualan pulsa sangat diperlukan.
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan penjelasan-penjelasan dari tiap bab yang telah dilakukan dalam
pembuatan aplikasi pengisian pulsa berbasis web, dapat disimpulkan bahwa :
1. Aplikasi pengisian pulsa memudahkan pelanggan mengisi pulsa ke nomor
orang lain dengan berbagai nomor yang sedang pelanggan pakai. Tidak perlu
dengan nomor handphone pelanggan yang terdaftar untuk mengisi pulsa.
Dengan menggunakan handphone yang mempunyai browser minimal wap
dapat melakukan transaksi pulsa ini. Walaupun sedang menggunakan nomor
handphone yang lain.
2. Aplikasi pengisian pulsa berbasis web memudahkan pelanggan melihat datadata transaksi dan penambahan saldo pelanggan yang telah dilakukan oleh
pelanggan.
3. Aplikasi pengisian pulsa berbasis web dapat digunakan kapan pun dan dimana
pun jika administrator dalam keadaan online.
4. Aplikasi pengisian pulsa berbasis web memanfaatkan fasilitas internet dan
browser. Oleh karena itu, bahasa pemrogramannya menggunakan php. Juga
media yang dapat mengakses aplikasi ini dapat berupa handphone, PC, tablet
(SIM/RUIM), dan media lainnya yang dapat mengakses browser.
5.2 Saran
Dalam mengembangkan aplikasi yang telah dibuat, peneliti memberikan
saran untuk penelitian selanjutnya, yaitu :
1. Aplikasi pengisian pulsa berbasis web akan lebih baik lagi jika memanfaatkan
internet. Pemanfaatan tersebut berupa diadakannya form kontak langsung
antara admin dan user, juga form kirim pesan antara user dengan user.
96
97
2. Aplikasi pengisian pulsa berbasis web diisi lagi dengan aplikasi social network
yang memberikan kenyamanan bagi pelanggan dalam menambah tali
silaturahmi antar pelanggan. Fitur-fitur social network yang dapat dibenamkan
di aplikasi pengisian pulsa, yaitu tampilan foto profil pelanggan, chating
sesama pelanggan, update status dan komentar status sesama pelanggan.
Dengan adanya fitur-fitur ini, bisa kemungkinan jumlah pelanggan akan
semakin meningkat.
3. Aplikasi ini dapat berjalan tanpa gangguan jika pengelolaan yang baik
diterapkan pada Konter Nurfa Cell.
Daftar Pustaka
1. Aulia, Ratih. 2010. Pembuatan Aplikasi Sistem Penjualan Pulsa Pada
Toko Miyo Cell Menggunakan Netbeans 6.01 dan MySQL. Sistem
Informasi Universitas Gunadarma. 2010
2. Breit, Kevin, dkk.. Dia (Diagram Editor). Boston : Free Software
Foundation, Inc. 2009.
3. Corporation, Adobe. Adobe Photoshop. http://www.adobe.com (diakses
tanggal 2 Mei 2012 Pukul 20.00 WIB)
4. Dewanto, R.A., Aradea. 2007. Aplikasi SMS Gateway Dengan Koreksi
Kesalahan Menggunakan Fuzzy String Matching. Seminar Nasional
Aplikasi Teknologi Informasi, 2007.
5. Fikri, Azkal. 2006. Aplikasi Short Message Service (SMS) Gateway Untuk
Layanan Informasi Registrasi Administrasi Mahasiswa. Universitas
Pendidikan Indonesia. 2006.
6. Ladjamudin, Al-Bahra B. Analisis dan Desain Sistem Informasi.
Yogyakarta : Graha Ilmu. 2005.
7. Notepad. Notepad ++. http://www.notepad-plus-plus.org (diakses tanggal
30 Maret 2012 Pukul 12.30 WIB)
8. Prayitno, Budi. Skripsi : Pembuatan Aplikasi Website Pengisian Pulsa
Secara Online Dengan Menggunakan Macromedia MX. Jakarta : STIK.
2008.
9. Raharjo, Budi. Belajar Otodidak Membuat Database Menggunakan
MySQL (Studi Kasus : Membuat Toko Buku Online). Bandung :
Informatika. 2011.
10. Saputra, Agus. Step By Step Membangun Aplikasi SMS dengan PHP dan
MySQL. Jakarta : Elex Media Komputindo. 2011
11. Shalahuddin, M., Rosa A.S. Rekayasa Perangkat Lunak (Terstruktur dan
Berorientasi Objek). Bandung : Modula. 2011.
xiv
Utara,
Universitas.
Teknik
Pengumpulan
Data.
xv
LAMPIRAN 1
KODE PROGRAM
a. Admin.php
<?php
include '../ceksesiadmin.php';
?>
<html>
<head>
<title>Pengisian Pulsa Online.com</title>
<link rel="stylesheet" href="../css/main.css" type="text/css">
<link rel="icon" href="../image/app.ico" type="image/x-icon" />
<link
rel="shortcut
icon"
href="../image/app.ico"
type="image/x-icon" />
<script type="text/javascript" >
function mulai()
{
iframe_tujuan.location.href = "homescreen_admin.php"; //Load suatu
URL secara otomatis untuk ditempatkan di frame atau windows
tertentu
}
</script>
</head>
<body onload='mulai();' id="body_tujuan" >
<center>
<!-- Buat kotak list aksesoris -->
<div class="list"></div>
<!-- Bagian Header:judul, tagline -->
<div id="head">
<div
id="divlogo"><img
src="../image/app.png"
name="Logo"></div>
<div id="namasitus">Pulsa Online Dot Com</div>
</div>
id="Logo"
value="Pengaturan
Anggota"
class="tombolmenu"
onclick="javascript:iframe_tujuan.location.href
='anggota.php';"
/></li>
<li><input
type="button"
value="Pengaturan
Saldo"
class="tombolmenu"
onclick="javascript:iframe_tujuan.location.href = 'saldo.php';" />
</li>
<li><hr></li>
xvi
<li><input
type="button"
value="Logout"
class="tombolmenu" onclick="javascript:iframe_tujuan.location.href
= '../logout.php';"></li>
</ul>
</li>
<li><span>Setting</span>
<ul>
<li><input
type="button"
value="Pengaturan
Gateway"
class="tombolmenu"
onclick="javascript:iframe_tujuan.location.href = 'gateway.php';"
/></li>
</ul>
</li>
</div>
<!-- Badan situs -->
<div id="body">
<p>
<iframe
name="iframe_tujuan"
iframe</iframe>
</p>
</div>
id="iframe_tujuan"
>ini
<div class="list"></div>
<!-- Footnote. Menampilkan copyright -->
<div id="footnote">Copyright © 2012 Karim untuk Konter Nurfa
Cell. All Rights Reserved.</div>
</center>
</div>
</body>
</html>
b.
Act_aktivasi.php
<?php
include'koneksi.php';
mysql_select_db('pulsaonline');
$dtkode=$_POST['txtkode'];
$query_cari=mysql_query("select flag_aktivasi from anggota where
aktivasi = '".$dtkode."'");
$dt_cari = mysql_fetch_array($query_cari);
if($dt_cari['flag_aktivasi'] =='belum_aktif')
{
$query_update = mysql_query("update anggota set flag_aktivasi =
'aktif' where aktivasi = '".$dtkode."'");
$query_insert_user
=
mysql_query("insert
into
user
select
username,password from anggota where aktivasi = '".$dtkode."'");
echo"User sudah aktif";
echo"<br>";
echo"Silahkan klik Login untuk memulai transaksi atau tambah
saldo.";
}
?>
xvii
c.
Act_daftar.php
<?php
require_once("vigenere.class.php");
include 'koneksi.php';
$key = 'indukrusa77';
$vige = new Vigenere($key);
$nama = $_POST['txtnama'];
$alamat = $_POST['txtalamat'];
$hp
= $_POST['txthp'];
$userid
= $_POST['txtusername'];
$password
= $_POST['txtpassword'];
$aktivasi
= $vige->encrypt($userid);
mysql_select_db('pulsaonline');
//periksa apakah sudah ada username yang sama
$qcarianggota = mysql_query("select username from anggota where
username = '".$userid."'");
$data_anggota = mysql_fetch_array($qcarianggota);
if($data_anggota['username']!=$userid)
{
//buat nyimpan di tabel anggota
$qsimpananggota
=
mysql_query("insert
into
anggota(nama,alamat,hp,username,password,aktivasi)
values('$nama','$alamat','$hp','$userid','$password','$aktivasi')"
);
//buat nge-update jumlah barang di tabel barang
$qusendkode
=
mysql_query("insert
into
outbox(DestinationNumber,TextDecoded,CreatorID)
values('$hp','Terima kasih telah mendaftar di pulsaonline.com,
aktivasi
akun
Anda
dengan
kode
$aktivasi
di
website
pulsaonline.com.','pulsaonline.com')");
echo
"<p
style={text-align:center;font-family:arial;fontsize:12px;}>Anda
telah
berhasil
terdaftar
di
pulsaonline.com..</p>";
}
else
{
echo
"<p
style={text-align:center;font-family:arial;fontsize:12px;}>Error, username sudah digunakan...</p>";
}
require ("aktivasi.php");
?>
d.
Aktivasi.php
<html>
<head>
<title>Aktivasi akun</title>
</head>
<body>
<center>
<h2>Masukan kode aktivasi yang telah dikirim melalui SMS ke nomor
Hand Phone anda.</h2>
<form name="faktivasi" method="POST" action="act_aktivasi.php">
<label>Kode Aktivasi</label>
<input type="text" name ="txtkode" id="txtkode" />
<input type="submit" name="btnkode" value="Aktifkan" />
xviii
</form>
</center>
</body>
</html>
e. Akun.php
<html>
<head>
<title>Form Pendaftaran Akun</title>
<link rel="stylesheet" href="css/transaksi.css" type="text/css">
<link rel="icon" href="image/app.ico" type="image/x-icon" />
<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />
<?php
include 'ceksesi.php';
include 'koneksi.php';
mysql_select_db('pulsaonline');
$user = $_SESSION['username'];
$querydata = mysql_query("select * from anggota where username =
'".$user."'");
$dt_profil = mysql_fetch_array($querydata);
?>
</head>
<body>
<center>
<p
class="judul"
align="center"
><img
src="image/user.jpg"
width="50px" height="50px" >Ubah Data Profil</p>
<form name = "fubahprofil" action = "act_ubahprofil.php" method
= "POST" target="iframe_tujuan">
<fieldset>
<legend>Data Profil</legend>
<table style="font-weight:bold">
<tr>
<td class="form" align="right">User ID :</td>
<td><label
id="userid"
class="userid"><?php
$dt_profil['username']; ?></label></td>
</tr>
echo
<tr>
<td class="form" align="right">Nama lengkap :</td>
<td align = "left">
<input type = "text" name= "txtnama" id= "txtnama" value= "<?php
echo $dt_profil['nama']; ?> "size = "30" maxlength = 15 >
</td>
</tr>
<tr>
<td class="form" align="right">Alamat :</td>
<td align = "left">
<textarea
name=
"txtalamat"
id=
"txtalamat"
style="width:auto"><?php echo $dt_profil['alamat']; ?></textarea>
</td>
</tr>
<tr>
<td class="form" align="right">No. Handphone :</td>
<td align = "left">
<input type = "text" name= "txthp" id= "txthp" value= "<?php echo
$dt_profil['hp']; ?> "size = "30" maxlength = 15 >
xix
</td>
</tr>
</table>
</fieldset>
<fieldset id="kumbutton">
<table>
<td><input type ="submit"
></td>
</table>
value
="Ubah"
name="btnubahprofil"
</fieldset>
</form>
<form name = "fubahpassword"
action
method = "POST" target="iframe_tujuan">
<fieldset>
<legend>Ubah Password</legend>
<table style="font-weight:bold">
"act_ubahprofil.php"
<tr>
<td class="form" align="right">Password baru :</td>
<td align = "left">
<input type = "text" name= "txtuserid" id= "txtuserid" size =
"40" maxlength = 15 >
</td>
</tr>
<tr>
<td class="form" align="right">Ulang password baru :</td>
<td align = "left">
<input type = "text" name= "txtnama" id= "txtnama" size = "40"
maxlength = 15 >
</td>
</tr>
</table>
</fieldset>
<fieldset id="kumbutton">
<table>
<td><input
type
="submit"
name="btnubahpassword" ></td>
</table>
value
="Ubah
Password"
</fieldset>
</form>
</center>
</body>
</html>
f.
Ceksesi.php
<?php
session_start();
xx
and
}
?>
g. Ceksesiadmin.php
<?php
session_start();
//cek user logged in
if($_SESSION['username']!='admin'){
header('location:index.php'); //ke halaman login
}
?>
h. Daftar.php
<html>
<head>
<title>Form Pendaftaran Akun</title>
<link rel="stylesheet" href="css/transaksi.css" type="text/css">
<link rel="icon" href="image/app.ico" type="image/x-icon" />
<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />
<script type="text/javascript" >
function start() {
document.getElementById("alertnama").style.visibility = "hidden";
document.getElementById("alerthp").style.visibility = "hidden";
document.getElementById("alertuser").style.visibility = "hidden";
document.getElementById("alertpassword").style.visibility
=
"hidden";
document.getElementById("alertcpassword").style.visibility
=
"hidden";
}
function cekvalidasi() {
if (txtnama.value == '')
{
txtnama.focus();
alertnama.style.visibility = "visible";
return false;
}
else if (txthp.value == '')
{
alertnama.style.visibility = "hidden";
txthp.focus();
alerthp.style.visibility = "visible";
return false;
}
else if (txtusername.value == '')
{
alerthp.style.visibility = "hidden";
txtusername.focus();
alertuser.style.visibility = "visible";
return false;
}
xxi
<tr>
<td class="form" align="right" width="300px">Nama :</td>
<td align = "left" width="100px">
<input type = "text" name= "txtnama" id= "txtnama" size = "40"
maxlength = 20 >
</td>
<td><label
id="alertnama"
class="alertdiisi">*harap
diisi</label></td>
</tr>
<tr>
<td class="form" align="right">Alamat :</td>
<td align = "left">
<input type = "text" name= "txtalamat" size = "40" maxlength =
100 >
</td>
</tr>
<tr>
<td class="form" align="right">No. Handphone :</td>
<td align = "left">
<input type = "text" name= "txthp" id= "txthp" size = "40"
maxlength = 15 >
</td>
<td><label
id="alerthp"
class="alertdiisi">*harap
diisi</label></td>
</tr>
xxii
<tr>
<td class="form" align="right">Username :</td>
<td align = "left">
<input type = "text" name= "txtusername" id= "txtusername" size =
"40" maxlength = 100 >
</td>
<td><label
id="alertuser"
class="alertdiisi">*harap
diisi</label></td>
</tr>
<tr>
<td class="form" align="right">Password :</td>
<td align = "left" colspan="2">
<input type = "password" name= "txtpassword" id= "txtpassword"
size = "40" maxlength = 8 >
</td>
<td><label
id="alertpassword"
class="alertdiisi">*harap
diisi</label></td>
</tr>
<tr>
<td class="form" align="right">Ulang Password :</td>
<td align = "left" colspan="2">
<input type = "password" name= "txtcpassword" id= "txtcpassword"
size = "40" maxlength = 8 >
</td>
<td><label id="alertcpassword" class="alertdiisi">*harap diisi
sama dengan kolom password</label></td>
</tr>
</table>
</fieldset>
<fieldset id="kumbutton">
<table>
<td><input
type
="submit"
value
="Daftar"
name="btndaftar"
onClick='return cekvalidasi();'></a></td>
<td><input type ="reset" value ="Reset" name ="btnreset" ></td>
</table>
</fieldset>
</form>
<p>* Setelah klik daftar, akan ada sms pemberitahuan ke nomor
handphone yang diisi.</p>
<p> Isi sms seperti di bawah ini:</p>
<p>
Terima kasih telah mendaftar di pulsaonline.com, aktivasi
akun anda dengan kode XXXXXX di website pulsaonline.com.</p>
<P>
Setelah aktivasi maka akan dapat login untuk memulai
transaksi atau tambah saldo.</p>
</center>
</body>
</html>
i. Form_login.php
<html>
<head>
<title>Aplikasi Pengisian Pulsa Online</title>
<link rel="icon" href="image/app.png" type="image/x-png" />
xxiii
xxiv
</tr>
</table>
</fieldset>
<fieldset id="login_btngo">
<input
type="submit"
value="Go"
validasi();">
</fieldset>
</form>
name="btngo"
onclick="return
</center>
</body>
</html>
j. Homescreen.php
<?php
include 'ceksesi.php';
?>
<html>
<head>
<title>Home screen</title>
<link rel="stylesheet" href="css/homescreen.css" type="text/css">
<link rel="icon" href="image/app.ico" type="image/x-icon" />
<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />
<script type="text/javascript" >
function tutupwindow() {
window.unload();
}
</script>
</head>
<body>
<div class="hs">
<div class="hsHeader">Selamat datang di Pulsa Online,
<?php
$user = $_SESSION['username'];
echo"$user";
?>!</div>
<div>Saldo pulsa anda saat ini adalah Rp. 0,-</div>
<div>Anda memiliki 0 pesan yang belum dibaca</div>
<div>Silahkan pilih menu transaksi untuk pengisian
penambahan saldo. </div>
<div>Terima kasih.</div>
<div><hr></div>
</div>
pulsa
atau
<div class="hs">
<div class="hsHeader">Akun Saya</div>
<div
class="hsItem1"><a
href="akun.php"
target="iframe_tujuan"><img
src="image/user.jpg"
border=0></a></div><div class="hsName1">Ubah Data Pribadi</div>
<div class="hsItem2"><a href="logout.php" target="iframe_tujuan"
><img
src="image/printer.png"
border=0></a></div><div
class="hsName2">Pesan</div>
<div class="hsItem3"><a href="logout.php" target="iframe_tujuan"
><img
src="image/logout.gif"
border=0></a></div><div
class="hsName3">Logout</div>
</div>
<div class="hs">
<div class="hsHeader">Transaksi</div>
xxv
k. Index.php
<html>
<head>
<title>Aplikasi Pengisian Pulsa Online</title>
<link rel="icon" href="image/app.ico" type="image/x-icon" />
<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />
<link rel="stylesheet" href="css/index.css" type="text/css">
<body>
<!-- Login form -->
<center>
<img src="image/app.png" id="Logo" name="Logo" border="0" />
<h2>Selamat Datang !</h2>
<h1>di PulsaOnline.com</h1>
<?php
include 'form_login.php'; //kenapa
berguna ketika user logout
?>
formnya
dipisah?
Nanti
akan
<p>Belum
terdaftar?
Daftar
<a
href="pendaftaran.php">disini</a></p>
<p>Copyright © 2012 Karim untuk Konter Nurfa Cell. All rights
reserved.</p>
</center>
</body>
</html>
l. Koneksi.php
<?php
$koneksi=mysql_connect('localhost','root','');
if (!$koneksi)
{
die('Koneksi gagal' . mysql_error());
}
?>
xxvi
m. Login.php
<?php
session_start();
include 'koneksi.php';
mysql_select_db('pulsaonline');
$user = $_POST['txtusername']; //menangkap
barang.php dengan method yang sama yaitu POST
$pw = $_POST['txtpassword'];
data
$q_login
=
mysql_query("select
*
from
username='".$user."' and password='".$pw."'");
$datalogin = mysql_fetch_array($q_login);
yang
dikirim
user
where
//kalo
admin
buka
file
<?php
}
else
{
?>
<script type="text/javascript" >
location.href = 'main.php'; //kalo bukan admin buka main.php
</script>
<?php
}
}
else
{
//penanganan error
$error ="";
if(empty($user) and empty($pw)){
$error ="<b>Username</b> dan <b>Password</b> kosong";
} else if(empty($user)) {
$error ="<b>Username</b> kosong";
} else if(empty($pw)) {
$error ="<b>Password</b> kosong";
} else {
$error ="<b>Username</b> dan <b>Password</b> tidak sesuai";
}
echo "<center>";
echo
"<h3>Login
Gagal</h3><p>$error.
href='index.php'>Kembali</a><p>";
echo "</center>";
}
?>
xxvii
<br
/><a
n.
Logout.php
<html>
<head>
<script type="text/javascript">
function breakout()
{
if (confirm ('Apakah anda yakin akan keluar dari aplikasi ?'))
//konfirmasi user akan logout
{
if (window.top!=window.self) //jika bukan di top window
{
location.href = 'logout_confirmed.php'; //Kalo user setuju logout
maka akan logout
window.top.location="index.php"; //Membuat file index.php diload
kembali di top window
}
else
{
location.href = 'homescreen.php';//kalo
ga
setuju/cancel
akan
kembali ke aplikasi
}
}
}
</script>
</head>
<body onload='breakout();' >
</body>
</html>
o.
Main.php
<?php
include 'ceksesi.php';
?>
<html>
<head>
<title>Pengisian Pulsa Online.com</title>
<link rel="stylesheet" href="css/main.css" type="text/css">
<link rel="icon" href="image/app.ico" type="image/x-icon" />
<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />
<script type="text/javascript" >
function mulai()
{
iframe_tujuan.location.href = "homescreen.php"; //Load suatu URL
secara otomatis untuk ditempatkan di frame atau windows tertentu
}
</script>
</head>
<body onload='mulai();' id="body_tujuan" >
<center>
<!-- Buat kotak list aksesoris -->
<div class="list"></div>
<!-- Bagian Header:judul, tagline
xxviii
-->
<div id="head">
<div
id="divlogo"><img
src="image/app.png"
name="Logo"></div>
<div id="namasitus">Pulsa Online Dot Com</div>
</div>
<!-- Bagian menu (Drop down) -->
<div id="menu">
<ul id="nav">
<li><span><a
target="iframe_tujuan">Beranda</a></span>
</li>
id="Logo"
href="homescreen.php"
<li><span>Akun Saya</span>
<ul>
<li><input type="button" value="Ubah profil"
class="tombolmenu" onclick="javascript:iframe_tujuan.location.href
='akun.php';" /></li>
<li><input
type="button"
value="Logout"
class="tombolmenu" onclick="javascript:iframe_tujuan.location.href
= 'logout.php';"></li>
</ul>
</li>
<li><span>Transaksi</span>
<ul>
<li><input type="button" value="Tambah Saldo"
class="tombolmenu" onclick="javascript:iframe_tujuan.location.href
= 'tambah_saldo.php';" /></li>
<li><input type="button" value="Isi Pulsa"
class="tombolmenu" onclick="javascript:iframe_tujuan.location.href
= 'isi_pulsa.php';" /></li>
<li><hr></li>
<li><input
type="button"
value="Laporan
Transaksi"
class="tombolmenu"
onclick="javascript:iframe_tujuan.location.href
=
'lap_transaksi.php';" /></li>
</ul>
</li>
</div>
<!-- Badan situs -->
<div id="body">
<p>
<iframe
name="iframe_tujuan"
iframe</iframe>
</p>
</div>
id="iframe_tujuan"
>ini
<div class="list"></div>
<!-- Footnote. Menampilkan copyright -->
<div id="footnote">Copyright © 2012 Karim untuk Konter Nurfa
Cell. All Rights Reserved.</div>
</center>
</div>
</body>
</html>
xxix
p. Act_isipulsa.php
<?php
include 'ceksesi.php';
include 'koneksi.php';
mysql_select_db('pulsaonline');
$nodef = "082112555393";
$pindef = "8899";
$creatorid = $_SESSION["username"];
$no_tujuan = $_POST["txtnotujuan"];
$operator = $_POST["soperator"];
$nominal = $_POST["nominal"];
$realnominal;
switch($nominal)
{
case 5 : $realnominal = "5000";
break;
case 10 : $realnominal = "10000";
break;
case 20 : $realnominal = "20000";
break;
case 25 : $realnominal = "25000";
break;
case 50 : $realnominal = "50000";
break;
case 100 : $realnominal = "100000";
}
$selectquery
mysql_query("select
saldo,anggota
where
saldo.id,saldo.saldo
saldo.id=anggota.id
from
and
anggota.username='".$creatorid."'");
$dtsaldo=mysql_fetch_array($selectquery);
"<center>Maaf
saldo
anda
xxx
saat
ini
Rp.$dtsaldo[saldo],-
if($insertquery
mysql_query("insert
into
outbox(TextDecoded,DestinationNumber,CreatorID)
values('$operator$nominal.$no_tujuan.$pindef','$nodef','$creatorid
')"))
{
echo "<center>Pulsa telah dikirim ke nomor $no_tujuan</center>";
$saldoakhir = $dtsaldo["saldo"] - $realnominal;
$updatequery = mysql_query("update saldo set saldo = $saldoakhir
where id='".$dtsaldo['id']."'");
}
else
{
echo "Gagal terkirim";
}
require("isipulsa.php");
}
?>
xxxi
LAMPIRAN 2
QUERY DATABASE
xxxii
xxxiii
xxxiv
xxxv
xxxvi
LAMPIRAN 3
DOKUMENTASI PROGRAM
xxxvii
xxxviii
xxxix
BIOGRAFI PENULIS
September
1990.
Penulis
memulai
memasuki
bangku
kuliah
di
Universitas
Singaperbangsa
xl