Anda di halaman 1dari 140

DESAIN DAN IMPLEMENTASI APLIKASI

PENGISIAN PULSA BERBASIS WEB


(Studi Kasus : Konter Nurfa Cell)

Skripsi
Diajukan untuk memenuhi salah satu syarat dalam menempuh ujian
Sarjana Komputer pada program studi Teknik Informatika

Oleh :
Abdul Karim
08411770040044

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER
UNIVERSITAS SINGAPERBANGSA KARAWANG
2012

LEMBAR PENGESAHAN

DESAIN DAN IMPLEMENTASI APLIKASI


PENGISIAN PULSA BERBASIS WEB
(Studi Kasus : Konter Nurfa Cell)
SKRIPSI

Diajukan untuk memenuhi salah satu syarat dalam menempuh ujian


Sarjana komputer pada program studi Teknik Informatika

Oleh :

ABDUL KARIM
08411770040044
Disetujui Oleh :
Pembimbing I,

Pembimbing II,

( Oman Komarudin, S.Si., M.Kom )

(Ade Andri Hendriadi, S.Si., M.Kom)

Karawang, 28 Juli 2012


Diketahui dan Disahkan
Oleh :
Dekan Fakultas Ilmu Komputer

(Dr. Dedi Mulyadi, S.E., M.M.)

LEMBAR PENGESAHAN

DESAIN DAN IMPLEMENTASI APLIKASI


PENGISIAN PULSA BERBASIS WEB
(Studi Kasus : Konter Nurfa Cell)
SKRIPSI

Diajukan untuk memenuhi salah satu syarat dalam menempuh ujian


Sarjana komputer pada program studi Teknik Informatika

Oleh :

ABDUL KARIM
08411770040044
Disetujui Oleh :
Penguji I,

Penguji II,

( Ahmad Fauzi, M.Kom )

( Azhari Ali Ridha, S.Kom )

Karawang, 28 Juli 2012


Diketahui dan Disahkan
Oleh :
Dekan Fakultas Ilmu Komputer

(Dr. Dedi Mulyadi, S.E., M.M.)

ABSTRAK

DESAIN DAN IMPLEMENTASI APLIKASI


PENGISIAN PULSA BERBASIS WEB
(Studi Kasus : Konter Nurfa Cell)

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

DESAIN DAN IMPLEMENTASI APLIKASI


PENGISIAN PULSA BERBASIS WEB
(Studi Kasus : Konter Nurfa Cell)

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

Assalamualaikum warahmatullahi wabarakatuh

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

menyelesaikan Program Pendidikan Sarjana Strata-1 (S1) Jurusan Teknik


Informatika pada Universitas Singaperbangsa Karawang (UNSIKA).
Dalam proses pelaksanaan hingga penyusunan laporan Tugas Akhir ini,
telah banyak kendala yang penulis hadapi. Namun berkat kemudahan dan
kelapangan yang diberikan Allah SWT, serta bantuan dan kerja sama dari berbagai
pihak, semuanya dapat dilalui.
Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan banyak
terima kasih dan rasa hormat kepada semua pihak yang telah memberikan bantuan
baik langsung maupun tidak langsung sehingga laporan tugas akhir ini dapat
diselesaikan, khususnya kepada:
1.

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.

Bapak Ade Andri Hendriadi,S.Si., M.Kom,. Selaku Ketua Program Studi


Teknik Informatika Fakultas Ilmu Komputer Universitas Singaperbangsa
Karawang sekaligus pembimbing II yang telah banyak meluangkan waktu
untuk memberikan bimbingan serta pengarahan.

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.

Seluruh karyawan dan karyawati Universitas Singaperbangsa Karawang.

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.

Wassalamualaikum warrahmatullahi wabarakatuh.

Karawang, Juli 2012

Penulis,

iv

DAFTAR ISI

LEMBAR JUDUL
LEMBAR PENGESAHAN
ABSTRAK .........................................................................................................

KATA PENGANTAR ....................................................................................... iii


DAFTAR ISI ......................................................................................................

DAFTAR TABEL ............................................................................................. ix


DAFTAR GAMBAR .........................................................................................

BAB I

PENDAHULUAN.........................................................................

1.1

Latar Belakang ......................................................................

1.2

Perumusan Masalah ..............................................................

1.3

Tujuan Penelitian...................................................................

1.4

Batasan Masalah....................................................................

1.5

Kegunaan dan Manfaat .........................................................

1.6

Metodologi Penelitian ...........................................................

1.7

Sistematika Penulisan ...........................................................

LANDASAN TEORI ....................................................................

2.1

Konsep Dasar Sistem ............................................................

2.1.1 Karakteristik Sistem .....................................................

2.2

Konsep Dasar Informasi ........................................................

2.3

Sistem Informasi ...................................................................

2.3.1 Manfaat Sistem Informasi ............................................

2.3.2 Pemakai Sistem Informasi............................................

2.3.3 Komponen Sistem Informasi .......................................

Rekayasa Perangkat Lunak ...................................................

2.4.1 SDLC ...................................................................................

2.4.2 Model SDLC ................................................................

10

2.4.2.1 Model Waterfall .................................................................

10

BAB II

2.4

2.4.2.2 Model Prototipe.........................................................

12

2.4.2.3 Model RAD ...............................................................

13

2.4.2.4 Model Iteratif ............................................................

14

2.4.2.5 Model Spiral ..............................................................

14

2.4.2.6 Kelebihan Model Waterfall ........................................... 15


2.4.3

Teknik Pengumpulan Data .......................................

15

2.4.3.1 Teknik Pengumpulan Data Primer ............................

16

2.4.3.2 Teknik Pengumpulan Data Sekunder ........................

17

2.4.4 Teknik Pengujian ...................................................................

17

2.4.5

Teknik Pemodelan Perangkat Lunak .........................

21

1. Pemodelan Berorientasi Objek ..............................

21

2. Pemodelan Terstruktur ..........................................

27

3. Perbandingan Berorientasi Objek dan Terstruktur

27

2.5

Perangkat Lunak Berbasis Web .............................................

28

2.6

Database ...............................................................................

29

2.6.1

Teknik Perancangan Database ..................................

29

2.6.2

DBMS .......................................................................

31

2.6.3

SQL ...........................................................................

33

2.6.4

Trigger .......................................................................

33

2.7

SMS Gateway ........................................................................

33

2.8

Authentication System ...........................................................

35

2.9

Diagram Editor .....................................................................

36

2.10 Notepad++ ............................................................................

36

2.11 Adobe Photoshop ..................................................................

36

2.12 Penelitian Sebelumnya ..........................................................

37

2.12.1 Pembuatan Aplikasi Sistem Penjualan Pulsa Pada Toko


Miyo Cell Menggunakan Netbeans 6.01 dan MySQL

37

2.12.2 Pembuatan Aplikasi Website Pengisian Pulsa secara


Online dengan menggunakan Macromedia Dreamweaver
MX .............................................................................

37

2.13 Perbandingan Penelitian Sebelumnya ...................................

38

vi

BAB III

OBJEK DAN METODE PENELITIAN .................................

40

3.1

Objek Penelitian .................................................................

40

Profil Konter Nurfa Cell.........................................

40

3.1.2

Sejarah Konter Nurfa Cell......................................

40

3.1.3

Struktur Organisasi Konter Nurfa Cell...................

41

3.2

Metode yang Digunakan ....................................................

41

3.3

Teknik Pengumpulan Data .................................................

42

3.4

Rancangan Penelitian .........................................................

43

3.4.1

Analisis...................................................................

43

3.4.1.1 Pendefinisian Masalah ...........................................

43

3.4.1.2 Pendefinisian Kebutuhan Software ........................

43

3.4.1.3 Pendefinisian Pengguna Software ..........................

43

3.4.2

Desain .....................................................................

44

3.4.3

Pembuatan Kode Program .....................................

44

3.4.4

Pengujian ................................................................

44

3.4.5

Pendukung dan Pemeliharaan ................................

45

HASIL DAN PEMBAHASAN .................................................

46

4.1

Hasil Penelitian ..................................................................

46

4.1.1

Analisis...................................................................

46

4.1.1.1 Pendefinisian Masalah ...........................................

48

4.1.1.2 Pendefinisian Kebutuhan Software ........................

48

4.1.1.3 Pendefinisian Pengguna Software ..........................

49

4.1.2

Desain .....................................................................

50

1. Desain Perangkat Lunak ....................................

50

2. Desain Struktur Data ..........................................

70

3. Representasi Antarmuka.....................................

71

4. Prosedur Pengodean ...........................................

76

4.1.3

Pembuatan Kode Program .....................................

80

4.1.4

Instalasi ..................................................................

83

4.1.4.1 Instalasi Software ...................................................

83

3.1.1

BAB IV

vii

4.1.4.2 Instalasi Database ..................................................

84

4.1.4.3 Dokumentasi Program ............................................

85

4.1.5

Testing ....................................................................

86

4.1.5.1 Pengujian User .......................................................

86

4.1.5.2 Pengujian Program .................................................

88

Pembahasan ........................................................................

95

KESIMPULAN DAN SARAN .................................................

96

5.1

Kesimpulan ........................................................................

96

5.2

Saran ...................................................................................

96

DAFTAR PUSTAKA...................................................................................

xiv

DAFTAR LAMPIRAN ...............................................................................

xvi

4.2

BAB V

LAMPIRAN A (Tampilan Program)


LAMPIRAN B (Query Database)
LAMPIRAN C (Panduan Penggunaan)
BIOGRAFI PENULIS

viii

DAFTAR TABEL

Tabel 1.1

Laporan Transaksi Penjualan Pulsa .................................

Tabel 2.1

Simbol Diagram Use Case ..................................................

23

Tabel 2.2

Simbol Diagram Sekuen .....................................................

25

Tabel 2.3

Simbol-Simbol Diagram Aktivitas .....................................

26

Tabel 2.4

Tabel Simbol ERD ..............................................................

30

Tabel 2.5

Tabel Simbol Diagram Kelas .............................................

31

Tabel 2.6

Tabel Perbandingan Penelitian Sebelumnya ....................

38

Tabel 4.1

Laporan Penjualan Pulsa ...................................................

46

Tabel 4.2

Data Operator Pulsa ...........................................................

47

Tabel 4.3

Tabel Hak Akses Admin dan User.....................................

50

Tabel 4.4

Tabel Definisi Aktor pada Diagram Use Case ..................

50

Tabel 4.5

Tabel Definisi Use Case pada Diagram Use Case .............

51

Tabel 4.6

Skenario Use Case Login ....................................................

52

Tabel 4.7

Skenario Use Case Memasukkan Data Pelanggan ...........

53

Tabel 4.8

Skenario Use Case Mengubah Data Pelanggan ................

54

Tabel 4.9

Skenario Use Case Menghapus Data Pelanggan ..............

55

Tabel 4.10

Skenario Use Case Menambahkan Saldo Pelanggan .......

55

Tabel 4.11

Skenario Use Case Konfirmasi Transfer Rekening .........

57

Tabel 4.12

Skenario Use Case Memasukkan Data Transaksi ...........

58

Tabel 4.13

Skenario Use Case Menampilkan Data Transaksi ...........

59

Tabel 4.14

Skenario Use Case Aktifasi Pendaftaran ..........................

59

Tabel 4.15

Keterangan Diagram Kelas ................................................

71

Tabel 4.16

Tabel Pengujian User ..........................................................

86

Tabel 4.17

Tabel Pengujian Login ........................................................

86

Tabel 4.18

Tabel Pengujian Pengisian Pulsa .......................................

87

Tabel 4.19

Tabel Log Pengisian Pulsa .................................................

87

Tabel 4.20

Kesimpulan Hasil Pengujian Black Box ...........................

87

ix

DAFTAR GAMBAR

Gambar 1.1

Grafik Pengguna Internet Di Indonesia.........................

Gambar 1.2

Model Waterfall Al Bahra bin Ladjamudin ...................

Gambar 2.1

Lima Komponen Sistem Informasi ................................

Gambar 2.2

Ilustrasi Model Waterfall .............................................. ..

10

Gambar 2.3

Ilustrasi Model Prototype .............................................. ...

13

Gambar 2.4

Ilustrasi Model RAD ..................................................... ...

13

Gambar 2.5

Ilustrasi Model Iteratif ....................................................

14

Gambar 2.6

Ilustrasi Model Spiral ......................................................

15

Gambar 2.7

Flowgraph Proses Perintah Kerja ..................................

19

Gambar 2.8

Diagram UML ..................................................................

22

Gambar 2.9

Ilustrasi Perbandingan OO vs Terstruktur ...................

28

Gambar 3.1

Struktur Organisasi Konter Nurfa Cell ........................

41

Gambar 3.2

Ilustrasi Langkah Penelitian Berdasarkan Metode yang


Digunakan .........................................................................

42

Gambar 3.3

Ilustrasi Langkah Pemeliharaan ....................................

45

Gambar 4.1

Grafik Data Penjualan Konter Nurfa Cell ....................

46

Gambar 4.2

Prosedur Pengisian Pulsa Konter Nurfa Cell ...............

48

Gambar 4.3

Diagram Use Case pada Aplikasi Pengisian Pulsa ........

60

Gambar 4.4

Diagram Aktivitas pada Use Case Login........................

61

Gambar 4.5

Diagram Aktivitas pada Use Case Memasukkan Data


Pelanggan ..........................................................................

Gambar 4.6

Diagram Aktivitas pada Use Case Mengubah Data Pelanggan


.... ........................................................................................

Gambar 4.7

61

Diagram Aktivitas pada Use Case Menghapus Data


Pelanggan ..................................................................... .....

Gambar 4.8

61

62

Diagram Aktivitas pada Use Case Menambahkan Saldo


Pelanggan ..................................................................... .....

62

Gambar 4.9

Diagram Aktivitas pada Use Case Konfirmasi Transfer


.. ..........................................................................................

Gambar 4.10

Diagram Aktivitas pada Use Case Memasukkan Data


Transaksi........ ...................................................................

Gambar 4.11

63

Diagram Aktivitas pada Use Case Menampilkan Data


Transaksi...........................................................................

Gambar 4.12

62

63

Diagram Aktivitas pada Use Case Aktivasi Pendaftaran


.......................................................................................... ..

63

Gambar 4.13

Diagram Sekuen untuk Use Case Login .........................

64

Gambar 4.14

Diagram Sekuen untuk Use Case Memasukkan Data


Pelanggan ..........................................................................

Gambar 4.15

Diagram Sekuen untuk Use Case Mengubah Data Pelanggan


.... ........................................................................................

Gambar 4.16

65

Diagram Sekuen untuk Use Case Menghapus Data Pelanggan


............................................................................................

Gambar 4.17

64

66

Diagram Sekuen untuk Use Case Menghapus Data Transaksi


....................................................................................... .....

67

Gambar 4.18 Diagram Sekuen untuk Use Case Memasukkan Data Transaksi
.. ..........................................................................................
Gambar 4.19

Diagram Sekuen untuk Use Case Menambahkan Saldo


Pelanggan.. ..... ...................................................................

Gambar 4.20

68

68

Diagram Sekuen untuk Use Case Konfirmasi Transfer


Rekening ...........................................................................

69

Gambar 4.21

Diagram Sekuen untuk Use Case Aktifasi Pendaftaran

69

Gambar 4.22

Diagram Kelas Aplikasi Pengisian Pulsa .......................

70

Gambar 4.23

Diagram Struktur Menu .................................................

72

Gambar 4.24

Tampilan Login ................................................................

72

Gambar 4.25

Tampilan Main Admin ....................................................

72

Gambar 4.26

Tampilan Main User ........................................................

73

Gambar 4.27

Tampilan Form Pendaftaran ..........................................

73

Gambar 4.28

Tampilan Ubah Data Profil Pelanggan ..........................

73

xi

Gambar 4.29

Tampilan Aktifasi Pendaftaran ......................................

74

Gambar 4.30

Tampilan Konfirmasi Transfer ......................................

74

Gambar 4.31

Form Transaksi Pulsa ......................................................

74

Gambar 4.32

Tampilan Log Transaksi Pengisian Pulsa ......................

75

Gambar 4.33

Penambahan Saldo Pelanggan ........................................

75

Gambar 4.34

Pengelolaan Anggota Oleh Admin..................................

75

Gambar 4.35

Prosedur Login .................................................................

76

Gambar 4.36

Prosedur Pendaftaran......................................................

76

Gambar 4.37

Prosedur Mengubah Data Pelanggan ............................

77

Gambar 4.38

Prosedur Aktifasi Pendaftaran .......................................

77

Gambar 4.39

Prosedur Konfirmasi Transfer .......................................

78

Gambar 4.40

Prosedur Pengisian Pulsa ................................................

78

Gambar 4.41

Prosedur Laporan Pengisian Pulsa ................................

79

Gambar 4.42

Prosedur Penambahan Saldo ..........................................

79

Gambar 4.43

Tampilan Kode Program Isi Pulsa .................................

80

Gambar 4.44

Tampilan MySQL Database Aplikasi Pengisian Pulsa ..

82

Gambar 4.45

Isi SMS saat Konfirmasi Pendaftaran ...........................

83

Gambar 4.46

Logo Mozilla Firefox ........................................................

83

Gambar 4.47

Tampilan Aplikasi XAMPP saat MySQL sedang Berjalan


.......................... ..................................................................

84

Gambar 4.48

Tampilan Menu Bantuan ................................................

85

Gambar 4.49

Pengujian White Box Pada Program Pengisian Pulsa ..

89

Gambar 4.50

Pengujian White Box Kode Login ...................................

91

Gambar 4.51

Pengujian White Box Pada Log Pengisian Pulsa ...........

94

Gambar 6.1

Service MySQL Dijalankan .............................................. xxxvii

Gambar 6.2

Masukkan Address Localhost Di Browser ..................... xxxvii

Gambar 6.3

Tahapan Awal Pendaftaran ............................................ xxxviii

Gambar 6.4

Form Pendaftaran ............................................................ xxxviii

Gambar 6.5

Memasukkan Kode Aktifasi ............................................ xxxviii

Gambar 6.6

Tampilan User Aktif ........................................................ xxxix

Gambar 6.7

Halaman Utama User ....................................................... xxxix

xii

Gambar 6.8

Pengisian Pulsa ................................................................. xxxix

Gambar 6.9

Tampilan Pulsa Berhasil Dikirim ................................... xxxix

xiii

BAB I
PENDAHULUAN

1.1 Latar Belakang


Dengan adanya kemajuan teknologi yang semakin pesat, berpengaruh pula
perkembangan perangkat telepon selular saat ini, sehingga perangkat telepon
selular semakin memasyarakat. Perkembangan ini sangat membantu dalam
menyajikan informasi yang cepat dan efisien dengan pengaksesan internet melalui
perangkat telepon selular tersebut. Pada masa sekarang, internet sudah menjadi
kebutuhan pokok para pengguna telepon selular. Mulai dari kegiatan browsing,
chatting, download maupun upload.
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.
Dibandingkan tahun sebelumnya yang mencapai angka 42 juta, pengguna internet
di Indonesia naik menjadi 10 %. Jika di tahun 2010 lalu rata-rata penetrasi
penggunaan internet di Indonesia masih 30-35 persen, di tahun 2011 ini
ditemukan oleh MarkPlus Insight bahwa angkanya sudah mencapai 40-45 persen
dari total pengguna internet di dunia. Hal tersebut didukung oleh semakin
berkembangnya bidang teknologi di Indonesia.

Gambar 1.1 Grafik Pengguna Internet Di Indonesia Tahun 2011

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

Elektrik (Transaksi x Pulsa)

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

Pengisian pulsa menggunakan fasilitas elektrik melalui sms, dapat


mengisikan pulsa ke nomor orang dimana pun dan kapan pun. Namun, pengisian
tersebut hanya bisa dilakukan dengan nomor yang sudah terdaftar menjadi agen
pulsa. Dengan fasilitas akun di website, menjadikan orang dapat melakukan
transaksi pulsa melalui internet dengan media apapun, baik handphone ataupun
PC.

1.2 Perumusan Masalah


Perumusan masalah yang diambil meliputi :
1. Bagaimana cara pengisian pulsa dimana pun dan kapan pun.
2. Bagaimana cara pengisian pulsa melalui internet dengan media PC.
3. Bagaimana cara pengisian pulsa user dengan memanfaatkan website.

1.3 Tujuan Penelitian


Adapun tujuan dari penelitian skripsi ini adalah :
1. Membuat aplikasi yang dapat memfasilitasi pengisian pulsa dimana pun dan
kapan pun.
2. Menghasilkan aplikasi yang dapat memfasilitasi pengisian pulsa melalui
internet dengan media PC.
3. Membuat aplikasi yang dapat memfasilitasi pengisian pulsa user dengan
memanfaatkan website.

1.4 Batasan Masalah


Batasan masalah yang diambil dalam penelitian ini, yaitu aplikasi yang dibuat
hanya memfasilitasi pengisian pulsa dengan memanfaatkan website.

1.5 Kegunaan dan Manfaat


Manfaat yang diharapkan dari kajian penelitian ini adalah :
1. Dapat melakukan trasnsaksi pulsa dengan fasilitas internet.
2. Dapat melakukan transaksi pulsa dimana pun dan kapan pun.
3. Dapat meningkatkan penjualan pulsa.

1.6 Metodologi Penelitian


Penelitian ini menggunakan metode rekayasa dengan penelitian berbasis
objek. Dan menggunakan Software Development Life Cycle (SDLC) dalam
pengembangan aplikasi dengan model waterfall, yaitu analisis, desain dan
perancangan, implementasi, pengujian, dan pemeliharaan.

Gambar 1.2 Model waterfall Al Bahra bin Ladjamudin (2005:30)

1. Analisis
Proses

pengumpulan

kebutuhan

dilakukan

secara

intensif

untuk

menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat


lunak seperti apa yang dibutuhkan oleh user.
2. Desain
Proses multilangkah yang fokus pada desain pembuatan program perangkat
lunak termasuk struktur data, arsitektur perangkat lunak, representasi
antarmuka, dan prosedur pengodean.
3. Pembuatan Kode Program
Desain harus ditranslasikan ke dalam program perangkat lunak.

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.

1.7 Sistematika Penulisan


Rangkuman dari pembuatan skripsi ini adalah :
BAB I

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

Objek dan Metodologi Penelitian.


Berisi objek, metode, dan langkah-langkah penelitian.

BAB IV

Hasil dan Pembahasan.


Menjelaskan tentang hasil dari setiap langkah penelitian sampai
didapatkan hasil dari penelitian.

BAB V

Kesimpulan dan Saran.


Berisi kesimpulan dari skripsi yang dibuat dan saran yang
membangun skripsi tersebut.

BAB II
LANDASAN TEORI

2.1 Konsep Dasar Sistem


Al-Bahra bin Ladjamudin dalam bukunya yang berjudul Analisis dan Desain
Sistem Informasi (2005:3),
Lucas (1989) mendefinisikan bahwa sistem sebagai suatu komponen atau
variabel yang terorganisir, saling berinteraksi, saling bergantung, satu sama lain
dan terpadu. Mc Leod berpendapat, sistem adalah sekelompok elemen yang
terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan. Begitu pula
Robert G. Murdick (1993), mendefinisikan sistem sebagai seperangkat elemenelemen yang terintegrasi dengan maksud yang sama untuk mencapai tujuan
bersama. Pendekatan sistem yang lebih menekankan pada prosedur didefinisikan
bahwa sistem yaitu suatu jaringan kerja dari prosedur-prosedur yang saling
berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau
menyelesaikan suatu sasaran tertentu (Gerald J. 1991).
2.1.1 Karakteristik Sistem
Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu yang menjadi
acuan dalam pembentukan sistem, yaitu : (Ladjamudin, 2005 : 3)
1. Komponen Sistem
Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang
artinya dapat bekerjasama membentuk suatu kesatuan.
2. Batasan Sistem
Batasan sistem merupakan daerah yang membatasi antara suatu sistem dengan
sistem yang lainnya atau dengan lingkungan luarnya.
3. Lingkungan Luar Sistem
Lingkungan luar sistem adalah apapun di luar batas dari sistem yang
mempengaruhi operasi sistem.
4. Penghubung Sistem
Penghubung merupakan media yang menghubungkan antara satu subsistem
dengan subsistem lainnya.

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.

2.2 Konsep Dasar Informasi


Al-Bahra bin Ladjamudin dalam bukunya yang berjudul Analisis dan Desain
Sistem Informasi (2005:9) : Raymond McLeod (1995) mendefinisikan informasi
sebagai data yang telah diolah menjadi bentuk yang lebih berarti bagi
penerimanya. Alat pengolah informasi dapat meliputi elemen komputer dan
elemen non komputer atau kombinasinya.
Kegunaan informasi adalah untuk mengurangi ketidakpastian di dalam proses
pengambilan keputusan tentang suatu keadaan. Informasi digunakan tidak hanya
oleh satu orang pihak di dalam organisasi. Nilai sebuah informasi ditentukan dari
dua hal yaitu manfaat dan biaya untuk mendapatkannya.

2.3 Sistem Informasi


Sistem Informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi, mendukung operasi, bersifat
manajerial, dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar
tertentu dengan laporan-laporan yang diperlukan. (Ladjamudin, 2005:14).

Fathul Wahid dalam jurnalnya Metodologi Sistem Informasi (2004:1), secara


garis besar, lingkup

penelitian

sistem

informasi

meliputi

pengembangan,

penggunaan dan aplikasi sistem informasi oleh individu, organisasi dan


masyarakat.

2.3.1 Manfaat Sistem Informasi


Organisasi menggunakan sistem informasi untuk mengolah transaksitransaksi, mengurangi biaya dan menghasilkan pendapatan sebagai salah satu
produk atau pelayanan mereka. (Ladjamudin, 2005:14).

2.3.2 Pemakai Sistem Informasi


Ladjamudin dalam bukunya Analisis dan Desain Sistem Informasi
(2005:14), Sebagian besar sistem informasi berlandaskan komputer terdapat di
dalam suatu organisasi dalam berbagai jenis. Anggota organisasi adalah pemakai
informasi yang dihasilkan sistem tersebut termasuk manajer yang bertanggung
atas pengalokasian sumber daya untuk pengembangan dan pengoperasian
perusahaan.

2.3.3 Komponen Sistem Informasi


Sistem informasi terbagi atas 5 komponen. Kelima komponen tersebut dapat
diklasifikasikan sebagai berikut :
1. Hardware dan software yang berfungsi sebagai mesin.
2. People dan procedures yang merupakan manusia dan tatacara menggunakan
mesin.
3. Data merupakan jembatan penghubung antara manusia dan mesin agar terjadi
suatu proses pengolahan data.
Hardware
(Perangkat
Keras)
Mesin

Software
(Perangkat
Lunak)

DATA

Procedures
(Prosedur)

People
(Manusia)

Manusia

Gambar 2.1 Lima Komponen Sistem Informasi (Ladjamudin, 2005:15)

2.4 Rekayasa Perangkat Lunak


Rekayasa perangkat lunak (software engineering) merupakan pembangunan
dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan
perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien
menggunakan mesin. (Shalahuddin, 2011:4).

2.4.1 SDLC (Software Development Life Cycle)


M. Shalahuddin dalam bukunya Rekayasa Perangkat Lunak (2011:24) :
SDLC atau Software Development Life Cycle atau sering disebut juga System
Development Life Cycle adalah proses pengembangan atau mengubah suatu
sistem perangkat lunak dengan menggunakan model-model dan metodologi yang
digunakan orang untuk mengembangkan sistem-sistem perangkat lunak
sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik).
Tahapan-tahapan yang ada pada SDLC secara global adalah sebagai berikut
(Shalahuddin, 2011:24) :
1.

Inisiasi, ditandai dengan pembuatan proposal proyek perangkat lunak.

2.

Pengembangan konsep sistem, mendefinisikan lingkup konsep termasuk


dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana, dan
pembelajaran kemudahan sistem.

3.

Perencanaan, mengembangkan rencana manajemen proyek dan dokumen


perencanaan lainnya.

4.

Analisis kebutuhan, menganalisis kebutuhan pemakai sistem perangkat lunak


(user) dan mengembangkan kebutuhan user.

5.

Desain, mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah


lengkap, dokumen desain sistem fokus pada bagaimana dapat memenuhi
fungsi-fungsi yang dibutuhkan.

6.

Pengembangan, mengonversi desain ke sistem informasi yang lengkap


termasuk bagaimana memperoleh dan melakukan instalasi lingkungan sistem
yang dibutuhkan.

10

7.

Integrasi dan pengujian, mendemonstrasikan sistem perangkat lunak bahwa


telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan
fungsional.

8.

Implementasi, pada persiapannya, implementasi perangkat lunak pada


lingkungan produksi (lingkungan pada user) dan menjalankan resolusi dari
permasalahan yang teridentifikasi dari fase integrasi dan pengujian.

9.

Operasi dan pemeliharaan, mendeskripsikan pekerjaan untuk mengoperasikan


dan memelihara sistem informasi pada lingkungan produksi (lingkungan pada
user), termasuk implementasi akhir dan masuk pada proses peninjauan.

10. Disposisi, mendeskripsikan aktivitas akhir dari pengembangan sistem dan


membangun data yang sebenarnya sesuai dengan aktivitas user.

2.4.2 Model SDLC


Dalam pengembangannya, model SDLC terdiri dari beberapa model, yaitu:

2.4.2.1 Model Waterfall


M. Shalahuddin dalam bukunya yang berjudul Rekayasa Perangkat Lunak
(2011:26) :
Model SDLC air terjun (waterfall) sering juga disebut model sekuensial linier
(sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun
menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau
terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung
(support).

Gambar 2.2 Ilustrasi Model Waterfall (Ladjamudin, 2005:30)

11

1. Analisis Kebutuhan Perangkat Lunak


M. Shalahuddin menjelaskan bahwa (2011:27), proses pengumpulan kebutuhan
dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak
agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user.
Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk
didokumentasikan.

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

3. Pembuatan Kode Program


Desain harus ditranslasikan ke dalam program perangkat lunak. Hasil dari
tahap ini adalah program komputer sesuai dengan desain yang telah dibuat
pada tahap desain. (Shalahuddin, 2011:27).

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.

2.4.2.2 Model Prototipe


M. Shalahuddin dalam bukunya Rekayasa Perangkat Lunak (2011:29),
Model prototipe dapat digunakan untuk menyambungkan ketidakpahaman
pelanggan mengenai hal teknis dan memperjelas spesifikasi kebutuhan yang
diinginkan pelanggan kepada pengembang perangkat lunak.

13

Membangun/
memperbaiki
mockup

Mendengarkan
pelanggan

Pelanggan
Melihat/menguji mockup

Gambar 2.3 Ilustrasi Model Prototype (Shalahuddin, 2011:30).


Mock-up adalah sesuatu yang digunakan sebagai model desain yang
digunakan untuk mengajar, demonstrasi, evaluasi desain, promosi, atau keperluan
lain. (Shalahuddin, 2011:30).

2.4.2.3 Model Rapid Aplication Development (RAD)


Rapid

Application

Development

(RAD)

adalah

model

proses

pengembangan perangkat lunak yang bersifat inkremental terutama untuk


pengerjaan waktu yang pendek. Model RAD adalah adaptasi dari model air terjun
versi

kecepatan

tinggi

dengan

menggunakan

model

air

terjun

untuk

pengembangan setiap komponen perangkat lunak. (M. Shalahuddin, 2011:32).

Gambar 2.4. Ilustrasi Model RAD (Shalahuddin, 2011: 33)

14

2.4.2.4 Model Iteratif


Model iteratif (iterative model) mengkombinasikan proses-proses pada
model air terjun dan iteratif pada model prototipe. Model inkremental akan
menghasilkan versi-versi perangkat lunak yang sudah mengalami penambahan
fungsi untuk setiap pertambahanya (inkremen/increment). (Shalahuddin, 2011:36)

Gambar 2.5. Ilustrasi Model Iteratif (Shalahuddin, 2011:36)

Model iteratif merupakan gabungan dari model waterfall dan model


prototipe. Model ini cocok digunakan pengembang dengan turnover (pergantian)
staf yang tinggi. (Shalahuddin, 2011:37).

2.4.2.5 Model Spiral


Model spiral (spiral model) memasangkan iteratif pada model prototipe
dengan control dan aspek sistematik yang diambil dari model air terjun. Model
spiral menyediakan pengembangan dengan cara cepat dengan perangkat lunak
yang memiliki versi yang terus bertambah fungsinya (increment). (Shalahuddin,
2011:37)

15

Gambar 2.6. Ilustrasi Model Spiral (Shalahuddin, 2011:39).

Model spiral cocok digunakan untuk mengembangkan sistem perangkat lunak


berskala besar karena memiliki proses analisis risiko yang dapat sangat
meminimalisir risiko yang mungkin terjadi. Model spiral memungkinkan
pengembang untuk menggunakan prototipe pada setiap tahap untuk mengurangi
risiko. (Shalahuddin, 2011:40)
2.4.2.6 Kelebihan Model Waterfall
M. Shalahuddin dalam bukunya yang berjudul Rekayasa Perangkat Lunak
(2011:28-29) :
Model air terjun sangat cocok untuk digunakan kebutuhan pelanggan yang sudah
dipahami dan kemungkinan terjadinya perubahan kebutuhan selama
pengembangan perangkat lunak kecil. Hal positif lain dari model air terjun adalah
struktur tahap pengembangan sistem jelas, dokumentasi yang dihasilkan disetiap
tahap pengembangan, dan sebuah tahap dijalankan setelah tahap sebelumnya
selesai dijalankan (tidak ada tumpang tindih dalam pelaksanaan tahap). Model
waterfall adalah model SDLC yang paling sederhana. Model ini hanya cocok
untuk pengembangan perangkat lunak dengan spesifikasi yang tidak berubahubah.
2.4.3

Teknik Pengumpulan Data


Sebuah penelitian selalu menggunakan teknik pengumpulan data dalam

mengumpulkan data-data penelitian. Sedangkan teknik pengumpulan data terbagi

16

atas dua jenis, yaitu teknik pengumpulan data primer dan teknik pengumpulan
data sekunder. (repository.usu.ac.id).

2.4.3.1 Teknik Pengumpulan Data Primer


Teknik pengumpulan data primer adalah pengumpulan data yang
dilakukan secara langsung pada lokasi penelitian. (repository.usu.ac.id).
Ada beberapa teknik pengumpulan data yang sering dilakukan yaitu
sebagai berikut (Shalahuddin, 2011:17) :

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

b. Waktunya lebih singkat.

2.4.3.2 Teknik Pengumpulan Data Sekunder


Teknik pengumpulan data sekunder

adalah teknik pengumpulan data

yang dilakukan melalui studi bahan-bahan kepustakaan yang perlu untuk


mendukung data primer. Pengumpulan data sekunder dilakukan dengan instrumen
sebagai berikut (repository.usu.ac.id) :
1. Studi kepustakaan yaitu pengumpulan data yang diperoleh dari buku-buku,
karya ilmiah, pendapat para ahli yang memiliki relevansi dengan masalah yang
teliti.
2. Studi

dokumentasi

yaitu

pengumpulan

data

yang diperoleh

dengan

menggunakan catatan-catatan tertulis yang ada di lokasi penelitian serta


sumber-sumber lain yang menyangkut masalah yang diteliti dengan instansi
terkait.

2.4.4 Teknik Pengujian


Dalam

bukunya

Rekayasa

Perangkat

Lunak

(2011:213-214),

M.

Shalahuddin menjelasakan bahwa Pendekatan pengujian dibagi atas beberapa


tahap, yaitu :
1. Black Box Testing (Pengujian Kotak Hitam)
Yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji
desain dan kode program. Pengujian dimaksudkan untuk mengetahui apakah
fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai dengan
spesifikasi yang dibutuhkan.
2. White Box Testing (Pengujian Kotak Putih)
Yaitu menguji perangkat lunak dari segi desain dan kode program apakah
menghasilkan fungsi-fungsi, masukan, dan leluaran yang sesuai dengan
spesifikasi kebutuhan. Pengujian kotak putih dilakukan dengan memeriksa
lojik dari kode program.

18

Dalam pelaksanaanya, teknik pengujian white box ini mempunyai empat


langkah, yaitu sebagai berikut (Zohrahayati, 2007 : 15),
a) Menggambar flowgraph (aliran kontrol),
b) Menghitung cyclomatic complexity (CC) untuk flowgraph yang telah dibuat
c) Menentukan jalur pengujian dari flowgraph yang berjumlah sesuai dengan
cyclomatic complexity yang telah ditentukan,
d) Bases path testing, yaitu teknik yang memungkinkan perangcang test case
mengukur kompleksitas logis dari desain prosedural dan menggunakannya
sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.

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).

Beberapa istilah dalam pembuatan flowgraph :


a) Node, yaitu lingkaran pada flowgraph yang menggambarkan satu atau lebih
perintah prosedural,
b) Edge, yaitu tanda panah yang menggambarkan aliran kontrol dan setiap
node harus mempunyai tujuan node,
c) Region, yaitu daerah yang dibatasi oleh node dan edge dan untuk
menghitung region daerah di luar flowgraph juga harus dihitung,
d) Predicate node, yaitu kondisi yang terdapat pada node dan mempunyai
karakteristik dua atau lebih edge lainnya.
Berikut contoh flowgraph proses perintah kerja dan cara mendapatkan region,
node, edge, dan predicate nodenya.

19

Gambar 2.7 Flowgraph Proses Perintah Kerja (Zohrahayati, 2007 : 16)

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.

Dari flowgraph diatas, maka didapatkan :


Region (R)

: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

Dan Cyclometic Complexity (CC) = R1, R2, R3, R4, R5


Kemudian hasil diatas dibandingkan dengan hasil pengujian bases path.
Pengujian jalur logika pada flowgraph diatas adalah sebagai berikut
(Zohrahayati, 2007 : 17) :
Jalur 1 : 1 2 3 4 5 1 2 6 7 9 10
Jalur 2 : 1 2 3 4 7 8 - 1 2 6 7 9 10
Jalur 3 : 1 2 6 7 8 1 2 6 7 9 10
Jalur 4 : 1 2 6 7 9 1 2 6 7 9 10
Jalur 5 : 1 6 7 9 10
Jadi Cyclometic Complexity (CC) = 5, V(G) = 5
Pengujian test case dengan pendekatan white box dan bases path berdasarkan
flowgraph dapat menghasilkan :
Jalur 1 : No PK ada, lakukan penghapusan data, kembali mengisi No PK lain,
Jalur 2 : No PK ada, lakukan pengeditan, rekam ke tabel, dan kembali
mengisi No PK yang lain
Jalur 3 : No PK tidak ada, input data perintah kerja, batalkan penyimpanan,
dan kembali mengisi No PK yang lain
Jalur 5 : No PK tidak ada, input data perintah kerja, batalkan penyimpanan,
dan kembali ke menu utama
Berdasarkan hasil uji coba white box testing dan bases path testing di atas,
dapat disimpulkan bahwa logika flowchart benar.

21

2.4.5 Teknik Pemodelan Perangkat Lunak


Dalam bukunya yang berjudul Rekayasa Perangkat Lunak (2011:116), M.
Shalahuddin menjelaskan bahwa pemodelan adalah gambaran dari realita yang
simpel dan dituangkan dalam bentuk pemetaan dengan aturan tertentu. Pemodelan
perangkat lunak digunakan untuk mempemudah langkah berikutnya dari
pengembangan sebuah sistem informasi sehingga lebih terencana.

1. Pemodelan Berorientasi Objek (Object Oriented Modeling)


Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat
lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang
berisi data dan operasi yang diberlakukan terhadapnya. (Shalahuddin, 2011:82)
M. Shalahuddin menjelaskan dalam bukunya Rekayasa Perangkat Lunak
(2011:86), bahwa :
Pendekatan berorientasi objek merupakan suatu teknik atau cara pendekatan
dalam melihat permasalahan dan sistem (sistem perangkat lunak, sistem
informasi, atau sistem lainnya). Pendekatan berorientasi objek akan
memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek
yang berkorespondensi dengan objek-objek dunia nyata.
Unified Modeling Language (UML)
M. Shalahuddin (2011:118), menjelaskan UML merupakan bahasa visual untuk
pemodelan dan komunikasi mengenai sebuah sistem dengan menggunakan
diagram dan teks-teks pendukung.
Pada UML 2.3 terdiri dari 13 macam diagram yang dikelompokkan dalam 3
kategori. Pembagian kategori dan macam-macam diagram tersebut dapat
dilihat pada gambar di bawah :

22

Gambar 2.8 Diagram UML (Shalahuddin, 2011:121)

Berikut ini penjelasan singkat dari pembagian kategori tersebut (Shalahuddin,


2011:121) :
a. Structure diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan suatu struktur statis dari sistem yang dimodelkan.
b. Behavior diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi
pada sebuah sistem.
c. Interaction diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan interaksi sistem dengan sistem lain maupun interaksi
antarsubsistem pada suatu sistem.
Berikut penjelasan masing-masing diagram :

23

a. Use Case Diagram


Use case diagram atau diagram use case merupakan pemodelan untuk
kelakuan (behavior) sistem informasi yang akan dibuat. Use case
mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem
informasi yang akan dibuat. (Shalahuddin, 2011:130).
Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor
dan use case. (Shalahuddin, 2011:131).
1) Aktor merupakan orang, proses, atau sistem lain yang berinteraksi
dengan sistem informasi yang akan dibuat di luar sistem informasi yang
akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar
orang, tapi belum tentu aktor merupakan orang.
2) Use case merupakan fungsionalitas yang disediakan sistem sebagai unitunit yang saling bertukar pesan antarunit atau aktor.
Berikut adalah simbol-simbol yang ada pada diagram use case
(Shalahuddin, 2011:131) :
Tabel 2.1 Simbol Diagram Use Case (Shalahuddin, 2011:131-133)
Simbol

Deskripsi
Fungsionalitas yang disediakan sistem sebagai

Use case

unit-unit yang saling bertukar pesan antar unit atau


aktor; biasanya dinyatakan dengan menggunakan

Nm_usecase

kata kerja diawal frase nama use case


Aktor / actor

Orang, proses, atau sistem lain yang berinteraksi


dengan sistem informasi yang akan dibuat di luar
sistem informasi yang akan dibuat itu sendiri, jadi
Nm_aktor

walaupun simbol dari aktor adalah gambar orang,


tapi aktor belum tentu merupakan orang; biasanya
dinyatakan menggunakan kata benda diawal frase
nama aktor

Asosiasi
association

/ Komunikasi antara aktor dan use case yang


berpartisipasi pada use case atau use case
memiliki interaksi dengan aktor.

24

Tabel 2.1 Simbol Diagram Use Case (Lanjutan)


Simbol

Deskripsi

Ekstensi / extend

Relasi use case tambahan ke sebuah use case


dimana use case yang ditambahkan dapat berdiri
sendiri walau tanpa use case tambahan itu. Mirip
dengan prinsip inheritance pada pemrograman
berorientasi objek; biasanya use case tambahan
memiliki nama depan yang sama dengan use case
yang ditambahkan

Generalisasi/general

Hubungan generalisasi dan spesialisasi (umum-

ization

khusus) antara duah buah use case dimana fungsi


yang satu adalah fungsi yang lebih umum dari
lainnya.

Menggunakan

/ Relasi use case tambahan ke sebuah use case

include / uses

dimana use case yang ditambahkan memerlukan

<<include>>
<<uses>>

use case ini untuk menjalankan fungsinya atau


sebagai syarat dijalankan use case ini.

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

Tabel 2.2 Simbol diagram sekuen


Simbol
Aktor

Deskripsi
Orang, proses, atau sistem lain yang berinteraksi
dengan sistem informasi yang akan dibuat itu

atau

sendiri, jadi walaupun simbol dari aktor adalah


gambar orang, tapi aktor belum tentu merupakan
orang; biasanya dinyatakan menggunakan kata

tanpa waktu aktif


Garis

hidup

benda di awal frase nama aktor


/ Menyatakan kehidupan suatu objek

lifeline
Objek

Menyatakan objek yang berinteraksi pesan

Nama_objek : nama_kelas

Waktu aktif

Menyatakan objek dalam keadaan aktif dan


berinteraksi pesan

Paper tipe create

Menyatakan suatu objek membuat objek yang lain,


arah panah mengarah pada objek yang dibuat

Pesan tipe call

Menyatakan suatu objek memanggil operasi/metode


yang ada pada objek lain atau dirinya sendiri

Pesan tipe send

Menyatakan bahwa suatu objek mengirimkan


data/masukan/informasi ke objek lainnya, arah
panah mengarah pada objek yang dikirimi

Pesan tipe return

Menyatakan

bahwa

menjalankan

suatu

suatu

objek

operasi

yang

atau

telah
metode

menghasilkan suatu kembalian ke objek tertentu,


arah panah mengarah pada objek yang meminta
kembalian
Pesan tipe destroy

Menyatakan suatu objek mengakhiri hidup objek


yang lain, arah panah mengarah pada objek yang
diakhiri, sebaliknya jika ada create, maka ada
destroy

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) :

Tabel 2.3 Simbol-Simbol Diagram Aktivitas


Simbol

Deskripsi

Status

Status awal aktivitas sistem, sebuah diagram

awal

aktivitas memiliki sebuah status awal

aktivitas

Aktivitas yang dilakukan sistem, aktivitas biasanya


diawali dengan kata kerja

Percabangan
decision
Penggabungan

/ Asosiasi percabangan dimana jika ada pilihan


aktivitas lebih dari satu
/ Asosiasi penggabungan dimana lebih dari satu

join

aktivitas digabungkan menjadi satu

Status akhir

Status akhir yang dilakukan sistem, sebuah diagram


aktivitas memiliki sebuah status akhir

Swimlane

Memisahkan organisasi bisnis yang bertanggung


jawab terhadap aktivitas yang terjadi

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

Shalahuddin juga menjelaskan (2011:92),


Pendekatan berorientasi objek saat ini berkembang cukup pesat karena
mempunyai kelebihan dalam peningkatan produktifitas karena mempunyai
reusability yang cukup tinggi dibanding dengan pendekatan lain. Kelas-kelas
dalam pemrograman berorientasi objek dapat dengan mudah dimanfaatkan
untuk sistem lain yang dikembangkan.

Gambar 2.9 Ilustrasi Perbandingan OO vs Terstruktur

2.5 Perangkat Lunak Berbasis Web


Perangkat lunak berbasis web merupakan perangkat lunak yang dapat diakses
menggunakan browser. (Shalahuddin, 2011 : 3).

Pemrograman Web (PHP)


PHP4

dengan

versi-versi

akhir

menuju

PHP5

sudah

mendukung

pemrograman berorientasi objek. PHP merupakan bahasa pemrograman yang


digunakan untuk pemrograman web. (Shalahuddin, 2011 : 85)
PHP merupakan kepanjangan dari PHP Hypertext Preprocessor yang
merupakan suatu bahasa pemrograman yang berjalan pada sisi server (server side
scripting). Jadi, dapat disimpulkan, PHP membutuhkan web server untuk dapat
menjalankannya. PHP menyatu dengan kode HTML untuk membuat suatu web
yang dinamis. (Saputra, 2011:43)

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.

2.6.1 Teknik Perancangan Database (Basis Data)


M.Shalahudddin menjelaskan (2011:43), perancangan basis data merupakan
salah satu bagian dalam rekayasa perangkat lunak.
M. Shalahuddin juga menjelaskan (2011:44), sistem basis data adalah sistem
terkomputerisasi yang tujuan utamanya adalah memelihara data yang sudah diolah
atau informasi dan membuat informasi tesedia saat dibutuhkan. Pada intinya basis
data adalah media untuk menyimpan data agar dapat diakses dengan mudah dan
cepat.
Kebutuhan basis data dalam sistem informasi, meliputi (Shalahuddin,
2011:44) :
1. Memasukkan, menyimpan, dan mengambil data.
2. Membuat laporan berdasarkan data yang telah disimpan.

Berikut beberapa teknik perancangan basis data :


1. Entity Relationship Diagram (ERD)
Pemodelan awal basis data yang paling banyak digunakan adalah
menggunakan Entity Relationship Diagram (ERD). ERD dikembangkan
berdasarkan teori himpunan dalam bidang matematika. ERD digunakan untuk
pemodelan basis data relasional. (Shalahuddin, 2011:49)
Berikut adalah simbol-simbol yang digunakan dalam ERD (Shalahuddin,
2011:49) :

30

Tabel 2.4 Tabel Simbol ERD


Simbol

Deskripsi

Entitas

Entitas merupakan data inti yang akan disimpan;


bakal tabel pada basis data

Atribut

Field atau kolom yang butuh disimpan dalam suatu


entitas

Atribut kunci primer

Filed atau kolom data yang butuh disimpan dalam


suatu entitas dan digunakan sebagai kunci akses

Nm atrib

record yang diinginkan; biasanya berupa id

Atribut

Field atau kolom data yang butuh disimpan dalam

multinilai/multivalue

suatu entitas yang dapat memiliki nilai lebih dari satu

Relasi

Relasi yang menghubungkan antarentitas, biasanya


diawali dengan kata kerja

Asosiasi /

0..*

association

Penghubung antara relasi dan entitas di mana di


kedua ujungnya memiliki multiplicity kemungkinan
jumlah pemakaian

2. Class Diagram Pada UML


Shalahuddin (2011:122), menjelaskan bahwa Diagram kelas atau class diagram
menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan
dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan
metode atau operasi.
a. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas.
b. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.

Berikut adalah simbol-simbol yang ada pada diagram kelas (Shalahuddin,


2011:123-124) :

31

Tabel 2.5 Tabel Simbol Diagram Kelas


Simbol
Kelas

Deskripsi
Kelas pada struktur sistem

nama_kelas
+atribut
+operasi

Antarmuka / interface
nama_interface

Asosiasi / association

Sama

dengan

konsep

interface

dalam

pemrograman berorientasi objek


Relasi antar kelas dengan makna umum,

Asosiasi berarah / directed Relasi antar kelas dengan makna kelas yang
association

satu digunakan oleh kelas yang lain,

Generalisasi

Relasi

antar

kelas

dengan

makna

generalisasi-spesialisasi (umum khusus)


Kebergantungan/dependency

Relasi

antar

kelas

dengan

makna

kebergantungan antar kelas


Agregasi / aggregation

Relasi antar kelas dengan makna semuabagian (whole-part)

2.6.2 Database Management System (DBMS)


Shalahuddin dalam bukunya Rekayasa Perangkat Lunak (2011:45), DBMS
adalah suatu sistem aplikasi yang digunakan untuk menyimpan, mengelola, dan
menampilkan data. Suatu sistem aplikasi disebut DBMS jika memenuhi
persyaratan minimal sebagai berikut :
1. Menyediakan fasilitas untuk mengelola akses data,
2. Mampu menangani integritas data,
3. Mampu menangani akses data,
4. Mampu menangani back up data.
Berikut ini adalah 4 macam DBMS versi komersial yang paling banyak
digunakan di dunia saat ini, yaitu (Shalahuddin, 2011:46) :
1. Oracle
2. Microsoft SQL Server
3. IBM DB2

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.3 Structured Query Language (SQL)


SQL (Structured Query Language) adalah bahasa yang digunakan untuk
mengelola data pada Relational Manajemen Basis Data. SQL awalnya
dikembangkan berdasarkan teori aljabar relational dan kalkulus. (Shalahuddin,
2011:46).

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.

2.7 SMS Gateway


Sugiono dalam jurnalnya Perancangan Sistem Informasi Appointment Pasien
Berbasis SMS di Rumah Bersalin (2007:11), SMS Gateway melakukan
penerimaan message dari Service Center dan memeriksa parameter yang ada.

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

4. Gammu for Windows.


5. Apache + MySQL (paket XAMPP).
Beberapa aplikasi SMS, selain SMS Gateway (Saputra, 2011:130-134) :
1. SMS Autoreply Information
Pengirim menginginkan suatu informasi terhadap suatu perusahaan atau jasa
lainnya dengan harapan si pengirim mendapatkan balasan pesan sesuai yang
diharapkan dari penyedia layanan tersebut.
2. SMS Polling
Jenis SMS ini digunakan untuk mengetahui tingkat presentase dari suatu acara
untuk mengetahui peringkat jumlah vote tertinggi.

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.

2.8 Authentication System


Didalam SMS Gateway ada istilah Authentication system (sistem autentikasi)
adalah suatu sistem yang mengatur bagaimana cara melakukan user registration,

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.

2.9 Diagram Editor (Dia)


Dalam bukunya yang berjudul Dia, Kevin Breit menyatakan (2009:1) bahwa
Dia merupakan aplikasi untuk membuat diagram-diagram teknik. Tampilan dan
fiturnya tidak kalah baiknya dengan windows program visio. Dia memiliki fitur
yang didalamnya bisa mencetak beberapa halaman, file export ke beberapa format
(EPS, SVG, CGM, dan PNG), dan kemampuan untuk menggunakan custom shapes
yang dibuat oleh pengguna sebagai simple XML description. Dia juga dapat
digunakan untuk menggambar diagram UML, jaringan peta, dan flowchart.
2.10 Notepad++
Dalam situsnya, notepad-plus-plus.org yang diakses pada tanggal 30 Maret
pada pukul 12.30 WIB, menjelaskan bahwa Notepad++ adalah sebuah
penyunting teks dan penyunting kode sumber yang berjalan di sistem operasi
Windows.

Notepad++

menggunakan

komponen

scintilla

untuk

dapat

menampilkan dan menyuntingkan teks dan berkas kode sumber berbagai bahasa
pemrogaman.

2.11 Adobe Photoshop


Dari situs resminya, www.adobe.com yang diakses pada tanggal 2 Mei 2012
pada pukul 20.00 WIB, menyatakan bahwa Adobe Photoshop atau bisa disebut

37

Photoshop, adalah perangkat lunak editor citra buatan Adobe System yang
dikhususkan untuk pengeditan foto atau gambar dan pembuatan efek.

2.12 Penelitian Sebelumnya


Selain literatur dari buku dan jurnal, penulis juga mencari penelitian lain
yang objenya sama agar bisa dibandingkan dengan penelitian yang penulis
kerjakan. Perbandingan ini dimaksudkan agar pembaca dapat melihat kelebihan
penelitian yang sedang dikerjakan dengan penelitian sebelumnya. Berikut hasil
rangkuman dari penelitian sebelumnya :

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.

2.12.2 Pembuatan Aplikasi Website Pengisian Pulsa Secara Online dengan


Menggunakan Macromedia Dreamweaver MX
Penulisan ilmiah ini ditulis oleh Budi Prayitno, alumni Sekolah Tinggi
Manajemen Informatika dan Komputer Jakarta tahun 2008 menjelaskan tentang
pengisian pulsa dengan fasilitas internet. Internet banyak digunakan untuk media
informasi. Operator selular semakin banyak ke depannya. Hal tersebut
menunjukkan persaingan di dunia bisnis dalam bidang telekomunikasi mengalami
suatu kemajuan. Merupakan suatu peluang besar berbisnis dalam pengisian pulsa.
Oleh karena itu, diperlukan media informasi yang sering dikunjungi oleh

38

masyarakat tentang jenis-jenis voucher, harga, operator untuk memudahkan


pengisian pulsa secara online. Aplikasi ini dibantu dengan software Macromedia
Dreamweaver MX sebagai tampilan websitenya.

2.12.3 Perbandingan Penelitian Sebelumnya


Perbandingan difokuskan pada jenis konsepnya. Setiap penelitian memiliki
konsep yang berbeda walaupun objek penelitiannya sama. Berikut hasil
perbandingan penelitian yang sedang dikerjakan dengan penelitian sebelumnya :

Tabel 2.6 Tabel Perbandingan Penelitian Sebelumnya


Jenis

Aplikasi

Aplikasi

Konsep

Pengisian

Penjualan

Pulsa

Toko Miyo Cell

Macromedia Dreamweaver

SDLC

SDLC

Sistem Aplikasi Pengisian Pulsa


Pulsa Menggunakan

Berbasis Web
Rancangan

SDLC

Penelitian
Konsep

Isi

Pulsa Sistem

Aplikasi

Lewat Web

Penjualan Pendaftaran dilakukan lewat

Menggunakan

website, isi pulsa lewat sms

Aplikasi Dekstop

Isi

Pulsa Ada

Tidak ada

Tidak ada, isi pulsa lewat

Lewat web

sms

Penyediaan Ada, transaksi Ada,


laporan

pengisian

penjualan

transaksi

pulsa

pulsa

transaksi Tidak ada


voucher

39

Tabel 2.6 Tabel Perbandingan Penelitian Sebelumnya (Lanjutan)


Jenis

Aplikasi

Aplikasi

Konsep

Pengisian

Penjualan

Pulsa

Toko Miyo Cell

Sistem Aplikasi Pengisian Pulsa


Pulsa Menggunakan
Macromedia Dreamweaver

Berbasis Web
Aplikasi

ya

Tidak, karena aplikasi Ya,

namun

digunakan

hanya untuk penjual pendaftaran,

oleh

pulsa

sebatas
selanjutnya

memanfaatkan sms, bukan

pelanggan

aplikasi yang dibuat

Cara daftar

Lewat web

Tidak ada pendaftaran Lewat web

Tambah

Menggunakan Pelanggan

saldo pulsa

Fasilitas

ke konter untuk beli

transfer rek.

voucher pulsa

langsung Transfer rekening

BAB III
OBJEK DAN METODOLOGI PENELITIAN

3.1 Objek Penelitian


Dalam penelitiannya, peneliti menetukan objek penelitian di Konter Nurfa
Cell.

3.1.1 Profil Konter Nurfa Cell


Konter Nurfa Cell beralamat di Dusun Sukaresmi desa Anggadita RT 15 RW
05 No. 60 Kecamatan Klari Kabupaten Karawang. Menjual berbagai macam
voucher pulsa, baik elektrik maupun fisik, handphone-handphone dengan
aksesorisnya, dan kartu perdana semua operator. Konter Nurfa Cell memiliki
keuntungan kotor rata-rata setiap bulannya yaitu sebanyak 3 juta rupiah.

3.1.2 Sejarah Konter Nurfa Cell


Pada tahun 2008, Asep T.P sang pemilik konter Nurfa Cell membangun
usaha isi pulsa elektrik. Belum ada tempat tetap untuk berjualan pulsa sehingga
orang yang ingin mengisi pulsa harus mencari Asep T.P. terlebih dahulu. Setelah
merasa memiliki modal cukup untuk mendirikan konter, maka pada tahun 2010
konter Nurfa Cell didirikan. Setelah memiliki tempat untuk berjualan, maka
penjualan pun semakin bertambah. Tidak hanya pulsa yang dijual, tetapi alat
komunikasi seperti handphone pun tersedia di konter Nurfa Cell. Pada saat
memasuki bulan pertama, pelanggan yang datang untuk mengisi pulsa semakin
banyak dan keuntungan pun semakin bertambah sebanyak 30 %.

40

41

3.1.3 Struktur Organisasi Konter Nurfa Cell

Gambar 3.1 Struktur Organisasi Konter Nurfa Cell


(Sumber : Buku Profil Konter Nurfa Cell)

Penjelasan terhadap bagan di atas adalah :


1. Pemilik konter bernama Asep T.P yang merupakan pendiri konter Nurfa Cell.
2. Pengelola I bernama Nunung bertugas menjaga konter sekaligus melayani
pelanggan yang ingin membeli pulsa, membeli kartu perdana, atau membeli
handphone di konter Nurfa Cell.
3. Pengelola II bernama Syarif H. bertugas sebagai administrator pengadaan
barang-barang yang dijual di konter Nurfa Cell.

3.2 Metode yang Digunakan


Metode penelitian pada skripsi ini menggunakan metode rekayasa perangkat
lunak yang berorientasi pada objek dan setiap langkahnya dilakukan secara
terurut, artinya dalam penelitian tidak akan lanjut ke langkah berikutnya sebelum
langkah yang sedang dikerjakan selesai. Penelitian juga dalam setiap langkahnya
tidak selalu bergantung dengan user. Hanya langkah analisis saja yang merupakan
langkah pendekatan kepada user. Oleh karena itu, dalam pengembangan
softwarenya, peneliti menggunakan metode waterfall. Karena setiap langkahnya
yang terurut, yaitu tahapan analisis, tahapan desain dan perancangan, dan tahapan
implementasi.

42

Gambar 3.2 Ilustrasi Langkah Penelitian Berdasarkan Metode yang Digunakan

3.3 Teknik Pengumpulan Data


Teknik pengumpulan data primer dilakukan melalui metode observasi dan
wawancara terhadap kegiatan pengisian pulsa di konter Nurfa Cell. Tujuan teknik
pengumpulan data ini adalah untuk mempermudah mencari data-data yang
digunakan dalam penelitian.
Data primer yang diperlukan dalam membuat aplikasi pengisian pulsa
berbasis web ini meliputi :
1. Data entitas (penjual, pelanggan, operator);
2. Prosedur sistem yang sedang berjalan;
3. Arsitektur sistem yang sedang berjalan.
Teknik pengumpulan data sekunder dilakukan melalui studi kepustakaan dan
penelitian sebelumnya. Data sekunder yang diperlukan antara lain :
1. Data penjualan Konter Nurfa Cell.
2. Data

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

3.4 Rancangan Penelitian


Dalam rancangan penelitian terdapat tahapan yang saling berkesinambungan,
antara lain :
1.

Analisis

2.

Desain

3.

Pembuatan kode program

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.

3.4.1.1 Pendefinisian Masalah


Berdasarkan hasil analisis, ditemukan beberapa masalah yang terjadi di
konter Nurfa Cell. Pada tahapan ini, akan dijelaskan tentang masalah-masalah
yang ada di konter Nurfa Cell.

3.4.1.2 Pendefinisian Kebutuhan Software (Berdasarkan User)


Pada tahapan ini, akan dijelaskan software atau perangkat lunak seperti
apa yang cocok untuk diterapkan di konter Nurfa Cell berdasarkan hasil dari
analisis dengan menggunakan metode observasi konter Nurfa Cell. Peneliti juga
akan mewawancarai pelanggan konter Nurfa Cell yang berperan sebagai user
pada perangkat lunak yang akan dibuat tentang spesifikasi apa saja yang
diinginkan.

3.4.1.3 Pendefinisian Pengguna Software


Akan dijelaskan tentang siapa saja pengguna software atau perangkat
lunak yang akan dibuat. Dimulai dari administratornya, hingga usernya.

44

3.4.2 Desain
Dari

hasil

analisis

yang didapatkan,

akan

dibuat

ilustrasi

yang

menggambarkan alur yang berjalan dan kebutuhan yang perlu dikembangkan


selanjutnya dibuat desain. Jenis-jenis desain yang akan digunakan dalam
perancangan aplikasi pengisian pulsa berbasis web adalah :
1. Desain Perangkat Lunak,
Peneliti akan membuat desain perangkat lunak menggunakan metode
pendekatan berorientasi objek dengan UML sebagai pemodelannya. Dalam
pembuatan UML, penulis menggunakan aplikasi Diagram Editor.
2. Desain Struktur Data,
Peneliti akan membuat desain database perancangannya berupa diagram kelas
yang dibuat menggunakan aplikasi Diagram Editor yang berfungsi
menggambarkan hubungan beberapa kelas.
3. Representasi Antarmuka,
Peneliti akan membuat desain interface menggunakan aplikasi image processor
yaitu Adobe Photoshop dalam menampilkan beberapa prinstcreen (tampilan
visual) perangkat lunak atau aplikasi yang akan dibuat.
4. Prosedur Pengodean,
Peneliti akan membuat Desain berupa flowchart yang menggambarkan
algoritma pemrograman yang dibuat menggunakan aplikasi Diagram Editor.

3.4.3 Pembuatan Kode Program/Implementasi


Untuk perancangan desain yang telah dibuat, Penulis menterjemahkan
desain ke dalam listing program menggunakan PHP sebagai pemrogramannya,
MySQL sebagai databasenya, dan Gammu sebagai sms gateway. Adapun tools
yang akan digunakan untuk pembuatan program berupa aplikasi teks editor, yaitu
Notepad++.

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

menguji perangkat lunak dari segi spesifikasi fungsional yang meliputi


penggunaan tombol-tombol yang berfungsi sebagai link yang menghubungkan
satu halaman ke halaman lainnya. Pengujian tidak hanya menguji dari segi
spesifikasi, tetapi juga menguji desain dan kode program meliputi penggunaan
fungsi if, else, echo dan lain-lain.

3.4.5 Pendukung dan Pemeliharaan


Dalam melakukan pemeliharaan perangkat lunak, penulis menggunakan tiga
macam pemeliharaan yang penjelasannya sebagai berikut :
1. Pemeliharaan korektif, berupa pembetulan atas kesalahan-kesalahan yang
ditemukan pada saat sistem berjalan.
2. Pemeliharaan adaptif, berupa perubahan aplikasi untuk menyesuaikan diri
terhadap lingkungan perangkat keras dan perangkat lunak baru.
3. Pemeliharaan perfektif, ditujukan untuk memperbarui sistem sabagai
tanggapan atas perubahan kebutuhan pemakai.

Gambar 3.3 Ilustrasi Langkah Pemeliharaan

BAB IV
HASIL DAN PEMBAHASAN

4.1 Hasil Penelitian


Dalam beberapa langkah penelitian yang dibahas dalam bab 3, didapatkan
hasil dari penelitian tersebut, antara lain :

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

Hasil Penjualan (Rp.)

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

Hasil Penjualan (000)

Banyak Pelanggan

Data Penjualan

Bulan

Gambar 4.1 Grafik Data Penjualan Konter Nurfa Cell

46

47

Dalam tabel diatas, rata-rata pelanggan perbulan yaitu sebanyak 35 orang.


Itupun sebanyak 29 orang adalah pelanggan tetap, sisanya adalah pelanggan tidak
tetap.
Selain laporan penjualan pulsa tiap bulannya, peneliti juga mencari data
tentang operator-operator pulsa yang tersedia berdasarkan nominalnya. Berikut
tabel data operator pulsa dan nominal yang tersedia :
Tabel 4.2 Data Operator Pulsa (Sumber : Buku Penjualan Konter Nurfa Cell)
Nama Operator

Nominal yang tersedia (Rp.) (.000,-)

Indosat (IM3, Mentari)

5,10,25,50,100

XL Axiata

5,10,25,50,100

Telkomsel (Simpati, As, Flexi)

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

Gambar 4.2 Prosedur Pengisian Pulsa Konter Nurfa Cell


4.1.1.1 Pendefinisian Masalah
Masalah yang terjadi di konter Nurfa Cell berdasarkan data yang
tercantum dalam tahapan analisis yaitu hasil penjualan dari bulan November 2011
sampai bulan Maret 2012 tidak mengalami perubahan yang signifikan. Bahkan
jika dirata-ratakan hanya mencapai Rp. 3,314,625,00 (tiga juta tiga ratus empat
belas ribu enam ratus dua puluh lima rupiah).
Masalah lain yang sedang dihadapi konter Nurfa Cell yaitu pencapaian
jumlah pelanggan yang bergantung pada pelanggan tetap saja. Keutungan bahkan
lebih banyak dari pelanggan tetap. Karena pelanggan tetap adalah pelanggan yang
kediamannya tidak jauh dari objek penelitian. Hal ini berbeda jika pelanggan tidak
tetap menjadi pelanggan tetap. Kendalanya yaitu pelanggan tidak tetap hanyalah
pelanggan yang lewat konter Nurfa Cell.
Adanya data bahwa pengguna internet setiap tahunnya meningkat, dan
pemilik handphone di Indonesia tiap tahunnya meningkat. Itu menyebabkan bisnis
pulsa merupakan bisnis yang akan mengalami peningkatan penjualan setiap
tahunnya.

4.1.1.2 Pendefinisian Kebutuhan Software (Berdasarkan User)


Dari masalah yang terjadi diatas maka dibutuhkan perangkat lunak yang
dapat meningkatkan penjualan pulsa dengan cara salah satunya yaitu
memperbanyak jumlah pelanggan. Untuk memudahkan pendaftaran pelanggan,

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

User (Pelanggan Konter)


1. Melakukan pendaftaran,

2. Mengkonfirmasi

penambahan

saldo user,

2. Melakukan log in,


3. Melakukan konfirmasi transfer ke

3. Mengelola data pelanggan

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

Berperan sebagai penjaga konter, menyediakan pulsa

Konter

bagi pelanggan, memiliki hak akses untuk mengelola


data pelanggan dan operator pulsa.

Pelanggan

Seseorang yang membeli pulsa pada pengelola pulsa di


konter Nurfa Cell. Memiliki hak akses untuk melakukan
transaksi pulsa ke nomor yang dituju.

51

2) Definisi Use Case


Tabel 4.5 Tabel Definisi Use Case Pada Diagram Use Case
Use Case
Login

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

pelanggan yang terdaftar, didalamnya terdapat


dua kegiatan lagi, yaitu mengubah data
pelanggan dan memasukkan data pelanggan.

Mengubah

data Kegiatan pengubahan data pelanggan

pelanggan
Memasukkan
pelanggan
Menghapus

data Kegiatan pendaftaran yang dilakukan oleh


pelanggan.
data Kegiatan penghapusan data pelanggan yang

pelanggan

sudah lama tidak log in

Mengelola saldo

Kegiatan mengelola saldo yang dimiliki oleh


setiap user,

Menambah saldo

Kegiatan menambahkan saldo ke user yang


telah mentransfer ke rekening admin

Konfirmasi transfer Kegiatan user mengkonfimasi transfer rekening


rekening
Mengelola
transaksi

untuk dijadikan saldo pulsa.


data Kegiatan yang bertujuan untuk melaporkan
history-history transaksi yang dilakukan oleh
pelanggan.

Memasukkan
transaksi

data Pemasukkan laporan transaksi jika transaksi


berhasil dilakukan

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

Kegiatan setelah memasukkan data pelanggan


(pendaftaran), pendaftaran harus diaktifasikan
jika ingin melakukan log in.

3) Skenario Use Case


Berikut adalah skenario jalannya masing-masing use case yang telah
didefinisikan sebelumnya.
a) Nama use case : Login
Skenario :
Tabel 4.6 Skenario Use Case Login
Aksi Aktor

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

Tabel 4.6 Skenario Use Case Login (Lanjutan)


Aksi Aktor

Reaksi Sistem
5. Memeriksa validnya data masukan
6. Masuk ke aplikasi pengisian pulsa

b) Nama Use Case : Memasukkan data pelanggan


Skenario :
Tabel 4.7 Skenario Use Case Memasukkan Data Pelanggan
Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Memasukkan
pelanggan

data
sesuai

kolom yang ada


2. Memeriksa validnya data masukkan
3. Menyimpan

data

pelanggan

ke

dalam basis data


Skenario Alternatif
1. Memasukkan

data

pelanggan
2. Memeriksa

valid

tidaknya

data

masukan
3. Mengeluarkan pesan bahwa data
masukkan tidak valid
4. Memperbaiki

data

masukan yang tidak


valid
5. Memeriksa

valid

tidaknya

data

masukan
6. Menyimpan

data

dalam basis data

pelanggan

ke

54

c) Nama use case : Mengubah data pelanggan


Skenario :
Tabel 4.8 Skenario Use Case Mengubah Data Pelanggan
Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Memilih

data

pelanggan yang ingin


diubah
2. Menampilkan data pelanggan yang
akan diubah
3. Mengubah

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

diubah dan tidak valid

55

Tabel 4.8 Skenario Use Case Mengubah Data Pelanggan (Lanjutan)


Aksi Aktor

Reaksi Sistem
7. Memeriksa

valid

tidaknya

data

masukan
8. Menyimpan data pelanggan yang
telah diubah ke dalam basis data

d) Nama use case : Menghapus data pelanggan


Skenario :

Tabel 4.9 Skenario Use Case Menghapus Data Pelanggan


Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Memilih data pelanggan
yang ingin dihapus
2. Menghapus

data

pelanggan
3. Menghapus data pelanggan dari
database

e) Nama use case : Menambahkan saldo pelanggan


Skenario :

Tabel 4.10 Skenario Use Case Menambahkan Saldo Pelanggan


Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Mendapatkan konfirmasi
dari pelanggan lewat sms
2. Memeriksa
tidaknya konfirmasi

valid

56

Tabel 4.10 Skenario Use Case Menambahkan Saldo Pelanggan


(Lanjutan)
Aksi Aktor

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

f) Nama use case : konfirmasi transfer rekening


Skenario :
Tabel 4.11 Skenario Use Case Konfirmasi Transfer Rekening
Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Memasukkan

data

ke

kolom yang tersedia


2. Memeriksa valid tidaknya data
masukan
3. Menyimpan data masukan ke
dalam basis data
4. Memberi

konfirmasi

kepada

admin lewat sms


Skenario Alternatif
1. Memasukkan

data

ke

kolom yang tersedia


2. Memeriksa valid tidaknya data
masukan
3. Menampilkan pesan bahwa data
masukan tidak valid
4. Memperbaiki
masukan

data
konfirmasi

transfer
5. Memeriksa valid tidaknya data
masukan
6. Menyimpan data transaksi ke
dalam basis data
7. Memberi
admin

konfirmasi

kepada

58

g) Nama use case : Memasukkan data transaksi


Skenario :
Tabel 4.12 Skenario Use Case Memasukkan Data Transaksi
Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Memasukkan

data

ke

kolom yang tersedia


2. Memeriksa saldo yang tersedia
melebihi nominal
3. Menyimpan data transaksi ke
dalam basis data
Skenario Alternatif
1. Memasukkan

data

ke

kolom yang tersedia


2. Memeriksa saldo yang tersedia
kurang dari nominal
3. Menampilkan pesan bahwa saldo
yang dimiliki kurang
4. Menambahkan

saldo

dengan mentransfer ke
rekening admin
5. Memeriksa saldo yang tersedia
lebih dari nominal
6. Menyimpan data transaksi ke
dalam basis data

59

h) Nama use case : Menampilkan data transaksi


Skenario :
Tabel 4.13 Skenario Use Case Menampilkan Data Transaksi
Aksi Aktor

Reaksi Sistem

Skenario Normal
1. Ambil data transaksi dari
dalam database
2. Data transaksi yang ditampilkan
berdasarkan username
3. Data transaksi ditampilkan

i) Nama use case : aktifasi pendaftaran


Skenario :
Tabel 4.14 Skenario Aktifasi Pendaftaran
Aksi Aktor

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

Tabel 4.14 Skenario Aktifasi Pendaftaran (Lanjutan)


Aksi Aktor

Reaksi Sistem
5. Memeriksa valid tidaknya data
masukkan
6. Akun aktif, bisa log in

Berikut diagram use case yang perinciannya sudah dijelaskan sebelumnya :

Gambar 4.3 Diagram Use Case pada Aplikasi Pengisian Pulsa


b. Activity Diagram
1) Use case : login

61

Gambar 4.4 Diagram Aktivitas Pada Use Case Login


2) Use case : memasukkan data pelanggan

Gambar 4.5 Diagram Aktivitas Use Case Memasukkan Data Pelanggan


3) Use case : mengubah data pelanggan

Gambar 4.6 Diagram Aktivitas Mengubah Data Pelanggan

62

4) Use case : menghapus data pelanggan

Gambar 4.7 Diagram Aktivitas Menghapus Data Pelanggan


5) Use case : menambahkan saldo pelanggan

Gambar 4.8 Diagram Aktivitas Use Case Menambahkan Saldo


Pelanggan
6) Use case : konfirmasi transfer rekening

Gambar 4.9 Diagram Aktivitas Use Case Konfirmasi Transfer

63

7) Use case : memasukkan data transaksi

Gambar 4.10 Diagram Aktivitas Memasukkan Data Transaksi


8) Use case : menampilkan data transaksi

Gambar 4.11 Diagram Aktivitas Use Case Menampilkan Data Transaksi


9) Use case : aktifasi pendaftaran

Gambar 4.12 Diagram Aktivitas Use Case Aktifasi Pendaftaran

64

c. Sequence Diagram
Berikut adalah diagram sekuen dari aplikasi pengisian pulsa :
1) Use Case : login

Gambar 4.13 Diagram Sekuen untuk Use Case Login


2) Use case : memasukkan data pelanggan

Gambar 4.14 Diagram Sekuen untuk Use Case Memasukkan Data


Pelanggan

65

3) Use case : mengubah data pelanggan

Gambar 4.15 Diagram Sekuen Mengubah Data Pelanggan

66

4) Use case : menghapus data pelanggan

Gambar 4.16 Diagram Sekuen untuk Use Case Menghapus Data


Pelanggan

67

5) Use Case : menampilkan data transaksi

Gambar 4.17 Diagram Sekuen untuk Use Case Menghapus Data


Transaksi

68

6) Use Case : memasukkan data transaksi

Gambar 4.18 Diagram Sekuen untuk Use Case Memasukkan Data


Transaksi
7) Use case : menambahkan saldo pelanggan

Gambar 4.19 Diagram Sekuen untuk Use Case Menambahkan Saldo


Pelanggan

69

8) Use case : konfirmasi transfer rekening

Gambar 4.20 Diagram Sekuen untuk Use Case Konfirmasi Transfer


Rekening
9) Use case : aktifasi pendaftaran

Gambar 4.21 Diagram Sekuen untuk Use Case Aktifasi Pendaftaran

70

2. Desain Struktur Data


Dalam desain database, peneliti menggunakan diagram kelas yang terdapat
pada UML. Berikut adalah diagram kelas pada aplikasi pengisian pulsa
berbasis web :

Gambar 4.22 Diagram Kelas Aplikasi Pengisian Pulsa

71

Dari diagram kelas yang terlampir, berikut keterangannya :


Tabel 4.15 Keterangan Diagram Kelas
Nama Kelas

Keterangan

Main

kelas main yang merangkap sebagai kelas tampilan

Login

kelas proses dari pendefinisian use case Login

MengelolaAnggota

Kelas proses dari pendefinisian use case mengelola


data pelanggan

MengelolaTransaksi

Kelas proses dari pendefinisian use case mengelola


data transaksi

MengelolaSaldo

Kelas proses dari pendefinisian use case mengelola


saldo pelanggan

Tanggota

Kelas yang berisi atribut data pelanggan dan


operasinya

Ttransaksi

Kelas yang berisi atribut data transaksi yang


dilakukan oleh user (pelanggan)

TSaldo

Kelas yang berisi atribut data saldo pelanggan,


pelanggan

mengkonfirm

saldo

jika

telah

mentransfer ke rekening admin


Koneksi

Kelas utilitas (penunjang) untuk koneksi ke basis


data dan melakukan query

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

Gambar 4.23 Diagram Struktur Menu


Berikut Tampilan desain interface (antarmuka) aplikasi pengisian pulsa
berbasis web.

a. Tampilan login

Gambar 4.24 Tampilan Login


b. Tampilan main untuk admin

Gambar 4.25 Tampilan Main Admin

73

c. Tampilan main untuk user

Gambar 4.26 Tampilan Main User


d. Tampilan form pendaftaran

Gambar 4.27 Tampilan Form Pendaftaran

e. Tampilan ubah profil pelanggan

Gambar 4.28 Tampilan Ubah Data Profil Pelanggan

74

f. Tampilan aktifasi pendaftaran

Gambar 4.29 Tampilan Aktifasi Pendaftaran

g. Tampilan form konfirmasi transfer

Gambar 4.30 Form Konfirmasi Transfer

h. Tampilan form trasaksi pulsa

Gambar 4.31 Form Pengisian Pulsa

75

i. Tampilan log transaksi pengisian pulsa

Gambar 4.32 Log Transaksi Pengisian Pulsa

j. Tampilan penambahan saldo pelanggan

Gambar 4.33 Penambahan Saldo Anggota


k. Tampilan pengelolaan anggota oleh admin

Gambar 4.34 Tabel Pengelolaan Anggota

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

Gambar 4.35 Prosedur Login


b. Prosedur pendaftaran

Gambar 4.36 Prosedur Pendaftaran

77

c. Prosedur mengubah data pelanggan

Gambar 4.37 Prosedur Mengubah Data Pelanggan


d. Prosedur aktifasi pendaftaran

Gambar 4.38 Prosedur Aktifasi Pendaftaran

78

e. Prosedur konfirmasi transfer

Gambar 4.39 Prosedur Konfirmasi Transfer


f. Prosedur pengisian pulsa

Gambar 4.40 Prosedur Pengisian Pulsa

79

g. Prosedur laporan pengisian pulsa

Gambar 4.41 Prosedur Laporan Pengisian Pulsa


h. Prosedur penambahan saldo

Gambar 4.42 Prosedur Penambahan Saldo

80

4.1.3 Pembuatan Kode Program/Implementasi


Karena aplikasi yang dibuat berhubungan dengan internet, maka program
dibuat menggunakan PHP sebagai bahasa pemrogramannya. PHP tersebut dibuat
melalui aplikasi notepad++. Berikut tampilan aplikasi notepad++ yang
mengimplementasikan halaman isi pulsa.

Gambar 4.43 Tampilan Kode Program Isi Pulsa


Sedangkan untuk kode program untuk pengisian pulsa, yaitu :
<?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";

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);

if($dtsaldo["saldo"] < $realnominal)


{
echo

"<center>Maaf

saldo

anda

saat

ini

Rp.$dtsaldo[saldo],-

,transaksi dibatalkan !";


}
else
{

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

Sedangkan untuk databasenya menggunakan aplikasi MySQL. Berikut


tampilan database aplikasi pengisian pulsa berbasis web.

Gambar 4.44 Tampilan MySQL Database untuk Aplikasi Pengisian Pulsa

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`)
)

Untuk konfirmasi pendaftaran kepada pelanggan, pemberitahuan informasi


kepada pelanggan, dan melakukan transaksi ke nomor yang dituju menggunakan
fasilitas sms gateway dengan aplikasi gammu. Isi informasi atau SMS yang akan
diterima oleh user yaitu :

83

Gambar 4.45 Isi SMS saat Konfirmasi Pendaftaran


4.1.4 Instalasi
Proses instalasi merupakan proses pemasangan aplikasi pengisian pulsa
berbasis web berikut dengan databasenya. Proses instalasi ini terbagi atas dua
bagian, yaitu instalasi software dan instalasi database.

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.

Gambar 4.46 Logo Mozilla Firefox

2. Aplikasi SMS Gateway yang berfungsi untuk mengirimkan pulsa maupun


informasi kepada pelanggan. Disini peneliti menggunakan aplikasi Gammu.
Aplikasi SMS Gateway harus dipasang dan diatur terlebih dahulu sebelum

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.

Gambar 4.47 Tampilan Aplikasi XAMPP saat MySQL sedang 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 :

Gambar 4.48 Tampilan Menu Bantuan

86

4.1.5 Testing (Pengujian)


Tahapan testing terdiri atas pengujian user dan pengujian program.
4.1.5.1Pengujian User
Dalam pengujian user, diuji fungsi aplikasi yang menjadi tujuan
pembuatan aplikasi tersebut. Dalam aplikasi pengisian pulsa, maka pengujian
dilakukan berdasarkan tidak atau berhasilnya pulsa terisi pada nomor handphone
yang ditujukan.
Selain itu, tahapan dalam aplikasi harus sesuai dengan rencana sebelum
pulsa terisi ke nomor tujuan. Berikut tabel tahapan tersebut :
Tabel 4.16 Tabel Pengujian User
Tahapan

Menu

Jenis Pengujian
Pengujian Black Box

Login
Pengisian pulsa

Transaksi

Pengujian Black Box

Log pengisian pulsa

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

dan Masuk ke Main Masuk ke Main diterima

password sesuai dengan (menu utama)

(menu utama)

database
Kasus dan Hasil Uji (Data tidak Normal)
Data Masukan
Username

Rencana
dan Kembali login

password tidak sesuai


dengan database

Hasil

Kesimpulan

Kembali login

diterima

87

2. Pengujian pengisian pulsa


Tabel 4.18 Tabel Pengujian Pengisian Pulsa
Kasus dan Hasil Uji (Data Normal)
Data masukan

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

Kasus dan Hasil Uji (Data tidak Normal)


Data Masukan

Rencana

Saldo lebih kecil dari Tampil


nominal

Hasil

Kesimpulan

pesan Tampil

saldo kurang

pesan diterima

Saldo kurang

3. Pengujian log pengisian pulsa


Tabel 4.19 Tabel Pengujian Log Pengisian Pulsa
Kasus dan Hasil Uji (Data Normal)
Data masukan
Klik

menu

Rencana
log Tampil

Hasil

kesimpulan

Log Tampil

pengisian pulsa di menu Transaksi

Log diterima

Transaksi

utama

4. Kesimpulan hasil pengujian user


Berdasarkan hasil dari setiap pengujian diatas, maka didapatkan suatu
kesimpulan dalam pengujian user, yaitu :
Tabel 4.20 Kesimpulan Hasil Pengujian Black Box
Nama Pengujian

Kesimpulan

Login

Pengujian diterima

Pengisian pulsa

Pengujian diterima

Log pengisian pulsa

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.

1. Berikut pengujian pada kode transaksi pulsa :


1)

if($dtsaldo["saldo"] < $realnominal)


{

2)

echo "<center>Maaf saldo anda saat ini Rp.$dtsaldo[saldo],,transaksi dibatalkan !";


}

3)

Else
{

4)

if($insertquery

mysql_query("insert

into

outbox(TextDecoded,DestinationNumber,CreatorID)
values('$operator$nominal.$no_tujuan.$pindef','$nodef','$creat
orid')"))
{
5)

echo "<center>Pulsa telah dikirim ke nomor $no_tujuan</center>";


$saldoakhir = $dtsaldo["saldo"] - $realnominal;
$updatequery

mysql_query("update

saldo

$saldoakhir where id='".$dtsaldo['id']."'");


}
6)

else
{
echo "Gagal terkirim";

7)

set

saldo

89

Gambar 4.49 Pengujian White Box pada Program Pengisian Pulsa


Dari flowgraph diatas, maka didapatkan :
Region (R)
=3
Node (N)

=7

Edge (E)

=8

Predicate Node (P) = 2


Maka, V (G)

=EN+2
=87+2=3

Maka, V (G)

=P+1=2+1=3

Dan Cyclometic Complexity (CC) = R1, R2, R3


Kemudian hasil diatas dibandingkan dengan hasil pengujian bases path. Pengujian
jalur logika pada flowgraph di atas adalah sebagai berikut :
Jalur 1 : 1 2 7
Jalur 2 : 1 3 4 5 7
Jalur 3 : 1 3 4 6 7
Jadi Cyclometic Complexity (CC) = 3, V(G) = 3.
Pengujian test case dengan pendekatan white box dan bases path berdasarkan
flowgraph di atas menghasilkan :
Jalur 1 : Jika saldo lebih kecil dari nominal, maka akan muncul pesan maaf anda
saat ini (kurang dari nominal yang diinginkan), transaksi dibatalkan,
Jalur 2 : Jika saldo tidak lebih kecil dari nominal, juga data transaksi sudah masuk
ke tabel outbox di database, maka akan muncul pesan Pulsa telah
dikirim ke nomor tujuan, sedangkan sistem mengubah saldo menjadi

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

username='".$user."' and password='".$pw."'");


$datalogin = mysql_fetch_array($q_login);

2)

if($datalogin['username'] == $user and $datalogin['password'] ==


$pw )
{

3)

$_SESSION['username'] = $user;
$_SESSION['password'] = $pw;

4)

if($user=='admin')
{
?>

5)

<script type="text/javascript" >


location.href = 'admin/admin.php';
</script>

<?php
}
6)

else
{
?>

<script type="text/javascript" >


location.href = 'main.php';
</script>

<?php

91

}
}
else

7)

{
$error ="";
8)

if(empty($user) and empty($pw)){

9)

$error ="<b>Username</b> dan <b>Password</b> kosong";

10-11

} else if(empty($user)) {

12)

$error ="<b>Username</b> kosong";

13-14

} else if(empty($pw)) {

15)

$error ="<b>Password</b> kosong";

16)

} else {
$error ="<b>Username</b> dan <b>Password</b> tidak sesuai";

17)

Gambar 4.50 Pengujian White Box Kode Login

Dari flowgraph di atas, maka didapatkan :


Region (R) = 6
Node (N)

= 17

Edge (E)

= 21

Predicate Node (P) = 5


Maka, V(G) = E N + 2
= 21 17 + 2 = 6
Maka, V(G) = P + 1 = 5 + 1 = 6
Dan Cyclometic Complexity (CC) = R1, R2, R3, R4, R5, R6

92

Kemudian hasil di atas dibandingkan dengan hasil pengujian bases path.


Pengujian jalur logika pada flowgraph di atas adalah sebagai berikut :
Jalur 1 : 1 2 3 4 5 17
Jalur 2 : 1 2 3 4 6 17
Jalur 3 : 1 2 7 8 9 17
Jalur 4 : 1 2 7 8 10 11 12 17
Jalur 5 : 1 2 7 8 10 11 13 14 15 17
Jalur 6 : 1 2 7 8 10 11 13 14 16 17
Jadi, Cyclometic Complexity (CC) = 6, V(G) = 6.
Pengujian test case dengan pendekatan white box dan bases path berdasarkan
flowgraph di atas menghasilkan :
Jalur 1 : Input username dan password, jika masukkan username dan password
sama dengan yang ada dalam database, maka masuk ke pilihan cek sesi
yang didalamnya jika masukkan username berupa admin, maka masuk ke
halaman admin.php,
Jalur 2 : Input username dan password, jika masukkan username dan password
sama dengan yang ada dalam database, maka masuk ke pilihan cek sesi
yang didalamnya jika masukkan username bukan admin, maka masuk ke
halaman main.php,
Jalur 3 : Input username dan password, jika masukkan username dan password
tidak sama dengan yang ada dalam database, maka masuk ke dalam
pilihan errorr yang jika tidak ada masukkan username dan password,
maka akan muncul pesan username dan password kosong,
Jalur 4 : Input username dan password, jika masukkan username dan password
tidak sama dengan yang ada dalam database, maka masuk ke dalam
pilihan errorr yang jika tidak ada masukkan username dan ada masukkan
password, maka akan muncul pesan username kosong,
Jalur 5 : 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 tidak ada masukkan
password, maka akan muncul pesan password kosong,

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

<td align = 'center'>$dt[nominal]</td>


<td align = 'center'>$dt[time]</td>
<td

align=center><input

type=submit

value=$dt[msg_id]

name=peritem></td>
</tr>";
6)
7)

}
}
?>

Gambar 4.51 Pengujian White Box Kode Log Pengisian Pulsa

Dari flowgraph di atas, maka didapatkan :


Region (R) = 3
Node (N)

=7

Edge (E)

=8

Predicate Node (P) = 2


Maka, V(G) = E N + 2
=87+2=3
Maka, V(G) = P + 1 = 2 + 1 = 3
Dan Cyclometic Complexity (CC) = R1, R2, R3
Kemudian hasil di atas dibandingkan dengan hasil pengujian bases path.
Pengujian jalur logika pada flowgraph di atas adalah sebagai berikut :
Jalur 1 : 1 2 7
Jalur 2 : 1 2 3 4 6 2 7
Jalur 3 : 1 2 3 5 6 2 7
Jadi, Cyclometic Complexity (CC) = 3, V(G) = 3.

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

12. Sugiono. 2007. Perancangan Sistem Informasi Appointment Pasien


Berbasis SMS di Rumah Bersalin. Seminar Nasional Teknologi Vol.1,
2007.
13. Sumatera

Utara,

Universitas.

Teknik

Pengumpulan

Data.

http://repository.usu.ac.id/bitstream121Chapte20II.pdf (diakses tanggal 30


April 2012)
14. Tarigan, Daud Edison. Membangun SMS Gateway Berbasis Web dengan
CodeIgniter. Yogyakarta : Lokomedia. 2012.
15. Wahid, Fathul. 2004. Metodologi Penelitian Sistem Informasi. Media
Informatika, Volume 2, 2004.
16. Zohrahayati. 2007. Perancangan Sistem Informasi Pelayanan Pelanggan
Berbasis Jaringan Pada PT. PLN Wil. Sultenggo Cab. Gorontalo Kantor
Jaga Tapa. Jurnal Ichsan Gorontalo, Vol 2 No 1. 2007

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"

<!-- Bagian menu (Drop down) -->


<div id="menu">
<ul id="nav">
<li><span><a
href="homescreen_admin.php"
target="iframe_tujuan">Beranda</a></span>
</li>
<li><span>Pengelolaan</span>
<ul>
<li><input
type="button"

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 &copy 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();

//cek user logged in


if(!isset($_SESSION['username'])
!isset($_SESSION['password'])){
header('location:index.php'); //ke halaman login

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

else if (txtpassword.value == '')


{
alertuser.style.visibility = "hidden";
txtpassword.focus();
alertpassword.style.visibility = "visible";
return false;
}
else if (txtcpassword.value != txtpassword.value)
{
alertpassword.style.visibility = "hidden";
txtcpassword.focus();
alertcpassword.style.visibility = "visible";
return false;
}
else
{
alertcpassword.style.visibility = "hidden";
return true;
}
}
</script>
</head>
<body onLoad='start();'>
<center>
<p
class="judul"
align="center"
><img
src="image/user.jpg"
width="50px" height="50px" >Pendaftaran Akun Baru</p>
<form name = "fdaftar"
action = "act_daftar.php" method
"POST" target="iframe_tujuan">
<fieldset>
<legend>Silahkan isi form di bawah ini dengan benar!</legend>
<table>

<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

<link rel="shortcut icon" href="image/app.ico" type="image/xicon" />


<link rel="stylesheet" href="css/index.css" type="text/css">
<script type="text/javascript" >
function start() {
document.getElementById("txtusername").focus();
document.getElementById("alertuser").style.visibility = "hidden";
document.getElementById("alertpassword").style.visibility
=
"hidden";
}
function validasi() {
if (txtusername.value == '')
{
txtusername.focus();
alertuser.style.visibility = "visible";
return false;
}
else
{
alertuser.style.visibility = "hidden";
txtpassword.focus();
}
if (txtpassword.value == '')
{
txtpassword.focus();
alertpassword.style.visibility = "visible";
return false;
}
else
{
alertpassword.style.visibility = "hidden";
return true;
}
}
</script>
</head>
<body onLoad=start();>
<center>
<form name="f_login" action="login.php" method="POST">
<fieldset>
<legend align="top">Log in <img src="image/help.png" width="14"
height="14"
title="Masukkan
username
dan
password
anda!"
/></legend>
<table>
<tr>
<td><pre>
</pre></td>
<td><label>Username</label></td>
<td><input
type="text"
id="txtusername"
name="txtusername"
size="19" ></td>
<td><label
id="alertuser"
class="alertdiisi">*harap
diisi</label></td>
</tr>
<tr>
<td><pre>
</pre></td>
<td><label>Password</label></td>
<td><input type="password" id="txtpassword" name="txtpassword"
size="19" ></td>
<td><label
id="alertpassword"
class="alertdiisi">*harap
diisi</label></td>

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

<div class="hsItem1"><a href="user.php" target="iframe_tujuan"


><img
src="image/saldo.jpg"
border=0></a></div><div
class="hsName1">Tambah saldo</div>
<div class="hsItem2"><a href="supplier.php" target="iframe_tujuan"
><img
src="image/supplier.png"
border=0></a></div><div
class="hsName2">Pengisian pulsa</div>
<div
class="hsItem3"><a
href="unitkerja.php"
target="iframe_tujuan"
><img
src="image/report.jpg"
border=0></a></div><div class="hsName3">Log pengisian pulsa</div>
<div
class="hsItem4"><a
href="unitkerja.php"
target="iframe_tujuan"
><img
src="image/help.png"
border=0></a></div><div class="hsName4">Daftar Harga</div>
<div
class="hsItem5"><a
href="unitkerja.php"
target="iframe_tujuan"
><img
src="image/help.png"
border=0></a></div><div class="hsName5">Lapor ke admin</div>
</div>
</body>
</html>

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 &copy 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

if($datalogin['username'] == $user and $datalogin['password'] ==


$pw )
{
$_SESSION['username'] = $user; //buat sesi baru
$_SESSION['password'] = $pw;
if($user=='admin')
{
?>
<script type="text/javascript" >
location.href
=
'admin/admin.php';
admin.php
</script>

//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 &copy 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);

if($dtsaldo["saldo"] < $realnominal)


{
echo

"<center>Maaf

saldo

anda

,transaksi dibatalkan !";


}
else
{

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

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`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
-- Table structure for table `daemons`
-CREATE TABLE IF NOT EXISTS `daemons` (
`Start` text NOT NULL,
`Info` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- Table structure for table `gammu`


-CREATE TABLE IF NOT EXISTS `gammu` (
`Version` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- Dumping data for table `gammu`
-INSERT INTO `gammu` (`Version`) VALUES
(12);
-- ---------------------------------------------------------- Table structure for table `inbox`
-CREATE TABLE IF NOT EXISTS `inbox` (
`UpdatedInDB` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
`ReceivingDateTime`
timestamp
NOT
NULL
DEFAULT
'0000-00-00
00:00:00',
`Text` text NOT NULL,
`SenderNumber` varchar(20) NOT NULL DEFAULT '',
`Coding`
enum('Default_No_Compression','Unicode_No_Compression','8bit','Defaul
t_Compression','Unicode_Compression')
NOT
NULL
DEFAULT
'Default_No_Compression',
`UDH` text NOT NULL,
`SMSCNumber` varchar(20) NOT NULL DEFAULT '',
`Class` int(11) NOT NULL DEFAULT '-1',

xxxii

`TextDecoded` text NOT NULL,


`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`RecipientID` text NOT NULL,
`Processed` enum('false','true') NOT NULL DEFAULT 'false',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--- Dumping data for table `inbox`
--

--- Triggers `inbox`


-DROP TRIGGER IF EXISTS `inbox_timestamp`;
DELIMITER //
CREATE TRIGGER `inbox_timestamp` BEFORE INSERT ON `inbox`
FOR EACH ROW BEGIN
IF NEW.ReceivingDateTime = '0000-00-00 00:00:00' THEN
SET NEW.ReceivingDateTime = CURRENT_TIMESTAMP();
END IF;
END
//
DELIMITER ;
-- ---------------------------------------------------------- Table structure for table `outbox`
-CREATE TABLE IF NOT EXISTS `outbox` (
`UpdatedInDB` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`SendingDateTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`Text` text,
`DestinationNumber` varchar(20) NOT NULL DEFAULT '',
`Coding`
enum('Default_No_Compression','Unicode_No_Compression','8bit','Defaul
t_Compression','Unicode_Compression')
NOT
NULL
DEFAULT
'Default_No_Compression',
`UDH` text,
`Class` int(11) DEFAULT '-1',
`TextDecoded` text NOT NULL,
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`MultiPart` enum('false','true') DEFAULT 'false',
`RelativeValidity` int(11) DEFAULT '-1',
`SenderID` varchar(255) DEFAULT NULL,
`SendingTimeOut` timestamp NULL DEFAULT '0000-00-00 00:00:00',
`DeliveryReport` enum('default','yes','no') DEFAULT 'default',
`CreatorID` text NOT NULL,
PRIMARY KEY (`ID`),
KEY `outbox_date` (`SendingDateTime`,`SendingTimeOut`),
KEY `outbox_sender` (`SenderID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;
--- Triggers `outbox`
-DROP TRIGGER IF EXISTS `outbox_timestamp`;
DELIMITER //

xxxiii

CREATE TRIGGER `outbox_timestamp` BEFORE INSERT ON `outbox`


FOR EACH ROW BEGIN
IF NEW.InsertIntoDB = '0000-00-00 00:00:00' THEN
SET NEW.InsertIntoDB = CURRENT_TIMESTAMP();
END IF;
IF NEW.SendingDateTime = '0000-00-00 00:00:00' THEN
SET NEW.SendingDateTime = CURRENT_TIMESTAMP();
END IF;
IF NEW.SendingTimeOut = '0000-00-00 00:00:00' THEN
SET NEW.SendingTimeOut = CURRENT_TIMESTAMP();
END IF;
END
//
DELIMITER ;
-- ---------------------------------------------------------- Table structure for table `outbox_multipart`
-CREATE TABLE IF NOT EXISTS `outbox_multipart` (
`Text` text,
`Coding`
enum('Default_No_Compression','Unicode_No_Compression','8bit','Defaul
t_Compression','Unicode_Compression')
NOT
NULL
DEFAULT
'Default_No_Compression',
`UDH` text,
`Class` int(11) DEFAULT '-1',
`TextDecoded` text,
`ID` int(10) unsigned NOT NULL DEFAULT '0',
`SequencePosition` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`ID`,`SequencePosition`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- Dumping data for table `outbox_multipart`
--

-- ---------------------------------------------------------- Table structure for table `pbk`


-CREATE TABLE IF NOT EXISTS `pbk` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`GroupID` int(11) NOT NULL DEFAULT '-1',
`Name` text NOT NULL,
`Number` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--- Dumping data for table `pbk`
--

-- ---------------------------------------------------------- Table structure for table `pbk_groups`

xxxiv

-CREATE TABLE IF NOT EXISTS `pbk_groups` (


`Name` text NOT NULL,
`ID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--- Dumping data for table `pbk_groups`
--

-- ---------------------------------------------------------- Table structure for table `phones`


-CREATE TABLE IF NOT EXISTS `phones` (
`ID` text NOT NULL,
`UpdatedInDB` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`TimeOut` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`Send` enum('yes','no') NOT NULL DEFAULT 'no',
`Receive` enum('yes','no') NOT NULL DEFAULT 'no',
`IMEI` varchar(35) NOT NULL,
`Client` text NOT NULL,
`Battery` int(11) NOT NULL DEFAULT '0',
`Signal` int(11) NOT NULL DEFAULT '0',
`Sent` int(11) NOT NULL DEFAULT '0',
`Received` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`IMEI`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--- Dumping data for table `phones`
--

--- Triggers `phones`


-DROP TRIGGER IF EXISTS `phones_timestamp`;
DELIMITER //
CREATE TRIGGER `phones_timestamp` BEFORE INSERT ON `phones`
FOR EACH ROW BEGIN
IF NEW.InsertIntoDB = '0000-00-00 00:00:00' THEN
SET NEW.InsertIntoDB = CURRENT_TIMESTAMP();
END IF;
IF NEW.TimeOut = '0000-00-00 00:00:00' THEN
SET NEW.TimeOut = CURRENT_TIMESTAMP();
END IF;
END
//
DELIMITER ;
-- ---------------------------------------------------------- Table structure for table `sentitems`
--

xxxv

CREATE TABLE IF NOT EXISTS `sentitems` (


`UpdatedInDB` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
`InsertIntoDB` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`SendingDateTime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`DeliveryDateTime` timestamp NULL DEFAULT NULL,
`Text` text NOT NULL,
`DestinationNumber` varchar(20) NOT NULL DEFAULT '',
`Coding`
enum('Default_No_Compression','Unicode_No_Compression','8bit','Defaul
t_Compression','Unicode_Compression')
NOT
NULL
DEFAULT
'Default_No_Compression',
`UDH` text NOT NULL,
`SMSCNumber` varchar(20) NOT NULL DEFAULT '',
`Class` int(11) NOT NULL DEFAULT '-1',
`TextDecoded` text NOT NULL,
`ID` int(10) unsigned NOT NULL DEFAULT '0',
`SenderID` varchar(255) NOT NULL,
`SequencePosition` int(11) NOT NULL DEFAULT '1',
`Status`
enum('SendingOK','SendingOKNoReport','SendingError','DeliveryOK','Del
iveryFailed','DeliveryPending','DeliveryUnknown','Error')
NOT
NULL
DEFAULT 'SendingOK',
`StatusError` int(11) NOT NULL DEFAULT '-1',
`TPMR` int(11) NOT NULL DEFAULT '-1',
`RelativeValidity` int(11) NOT NULL DEFAULT '-1',
`CreatorID` text NOT NULL,
PRIMARY KEY (`ID`,`SequencePosition`),
KEY `sentitems_date` (`DeliveryDateTime`),
KEY `sentitems_tpmr` (`TPMR`),
KEY `sentitems_dest` (`DestinationNumber`),
KEY `sentitems_sender` (`SenderID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

xxxvi

LAMPIRAN 3
DOKUMENTASI PROGRAM

1. Aktifkan service MySQL pada XAMPP

Gambar 6.1 Service MySQL Dijalankan


2. Jalankan program browser (ketikkan address : http://localhost/pulsaonline)

Gambar 6.2 Masukkan Address localhost di Browser


3. Klik disini dibawah form login

xxxvii

Gambar 6.3 Tahapan Awal Pendaftaran


4. Masukkan data yang kolomnya sudah tersedia, klik daftar

Gambar 6.4 Form Pendaftaran


5. Masukkan kode aktifasi setelah menerima sms yang isinya kode aktifasi

Gambar 6.5 Memasukkan Kode Aktifasi


6. Jika berhasil, klik login, Masukkan username dan password yang didaftarkan

Gambar 6.6 Tampilan User Aktif, User Dapat Melakukan Login

xxxviii

7. Masuk ke halaman utama, pilih pengisian pulsa, sebelumnya saldo


ditambahkan dengan mentransfer saldo ke rekening admin

Gambar 6.7 Halaman Utama User


8. Masukkan data sesuai dengan kolom yang tersedia

Gambar 6.8 Pengisian Pulsa


9. Transaksi selesai

Gambar 6.9 Pulsa Berhasil Dikirim

xxxix

BIOGRAFI PENULIS

ABDUL KARIM, anak sulung dari 3


bersaudara. Lahir dari pasangan Endang Bahrudin
dan Yati Casniati. Penulis lahir di Karawang pada
12

September

1990.

Penulis

memulai

kegemarannya pada ilmu komputer pada saat kelas


2 SMP. Saat itu ia pernah kursus di Lembaga
Pendidikan Komputer (LPK) selama 2 bulan.
Penulis memiliki cita-cita menjadi programmer
yang bisa berguna di kehidupan bermasyarakat.
Sebelum

memasuki

bangku

kuliah

di

Universitas

Singaperbangsa

Karawang, penulis pernah mengenyam pendidikan di Sekolah Dasar Anggadita 1


(1996-2002), Sekolah Menengah Pertama 1 Klari (2002-2005), Sekolah
Menengah Atas 5 Karawang (2005-2008).
Selain bangku pendidikan, penulis juga memiliki pengalaman pekerjaan
yaitu di Lembaga Pemerintahan Badan Pusat Statistik Kabupaten Karawang
(2008-2010) sebagai honorer staff entry penduduk Indonesia. Pada tahun 2010,
penulis pindah bekerja di PT. Yulifadatex sebagai staff administrasi. Pada tahun
2011, penulis pernah bekerja di PT. Bhineka Karya Manunggal sebagai staff
administrasi. Terakhir sampai sekarang penulis pindah bekerja di PT. Pupuk
Kujang.

xl

Anda mungkin juga menyukai