LAYANAN BIND/UNBIND PORT
MELALUI SHORT MESSAGE SERVICE
(STUDI KASUS PADA PT TELKOM KANDATEL YOGYAKARTA)
Diajukan untuk Memenuhi Salah Satu Syarat
PROGRAM STUDI TEKNIK INFORMATIKAJURUSAN TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS SANATA DHARMA
BIND/UNBIND PORT SPEEDY UNTUK AKSES INTERNET
MELALUI SHORT MESSAGE SERVICE
(STUDI KASUS PADA PT TELKOM KANDATEL YOGYAKARTA)
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh: Henricus Wahyudi
045314003
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2008
SPEEDY UNTUK AKSES INTERNET
(STUDI KASUS PADA PT TELKOM KANDATEL YOGYAKARTA)
LAYANAN BIND/UNBIND PORT
MELALUI S
(STUDI KASUS PADA PT
Diajukan untuk Memenuhi Salah Satu Syarat
PROGRAM STUDI TEKNIK INFORMATIKAJURUSAN TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS SANATA DHARMA
i
BIND/UNBIND PORT SPEEDY UNTUK AKSES INTERNET
MELALUI SHORT MESSAGE SERVICE
(STUDI KASUS PADA PT TELKOM KANDATEL YOGYAKARTA)
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Oleh: Henricus Wahyudi
045314003
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2008
UNTUK AKSES INTERNET
TELKOM KANDATEL YOGYAKARTA)
BIND/UNBIND SPEEDY PORT
USING SHORT MESSAGE SERVICE
(CASE STUDY
Presented as Partial Fulfillment of
STUDY PROGRAM OF INFORMATICS ENGINEERINGDEPARTMENT OF INFORMATIC ENGINEERINGFACULTY OF SCIENCE AND TECHNOLOGY
ii
BIND/UNBIND SPEEDY PORT SERVICE FOR INTERNET ACCESS
USING SHORT MESSAGE SERVICE
(CASE STUDY IN PT TELKOM KANDATEL YOGYAKARTA)
A Thesis
Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Teknik Degree
in Informatics Engineering
By: Henricus Wahyudi
045314003
STUDY PROGRAM OF INFORMATICS ENGINEERINGDEPARTMENT OF INFORMATIC ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
2008
FOR INTERNET ACCESS
PT TELKOM KANDATEL YOGYAKARTA)
STUDY PROGRAM OF INFORMATICS ENGINEERING
iii
HALAMAN PERSETUJUAN
iv
HALAMAN PENGESAHAN
v
HALAMAN PERSEMBAHAN
Skripsi ini aku persembahkan untuk:
..Tuhan Yesus Kristus, Allah Bapa yang Maha Kuasa..
yang telah begitu baik menciptakan dan memberikan aku nafas hidup..
..Mama..Papa..
yang telah begitu baik melahirkan, membesarkan, dan mendidik aku hingga aku
bisa seperti sekarang ini..
..mas Bram..mbak Rosa..
yang telah begitu baik membantuku dalam menghadapi hidup yang begitu
banyak memiliki tantangan dan godaan..
..rizt..
yang telah begitu baik menemani hari dan hatiku..terima kasih juga telah
mengajariku bagaimana rasanya menyayang dan disayang, mencinta dan dicinta,
serta semua rasa senang, bahagia, sedih, dan pedih..
..dek Fenti, ka Mimi, mamih Puri, ade Nikita, dek Ratna..
yang telah begitu baik mau menjadi keluargaku..makasih buat semua waktunya
untuk keluh kesah serta bahagiaku..serta semangat dari kalian yang tanpa henti
saat aku sedang jatuh..
..hari kemarin biarlah berlalu, hari esok akan kita jelang,
yang penting adalah jalani dulu hari ini..
..jangan pernah berkata berhenti jika kamu masih ingin terus maju..
..awalilah harimu dengan senyuman..
..just do the best let GOD do the rest..
vi
HALAMAN MOTTO
..i think..therefore I am..
..hari kemarin biarlah berlalu, hari esok akan kita jelang,
yang penting adalah jalani dulu hari ini..
..jangan pernah berkata berhenti jika kamu masih ingin terus maju..
..awalilah harimu dengan senyuman..
..just do the best let GOD do the rest..
..hari kemarin biarlah berlalu, hari esok akan kita jelang,
..jangan pernah berkata berhenti jika kamu masih ingin terus maju..
vii
PERNYATAAN KEASLIAN KARYA
viii
PUBLIKASI
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Henricus Wahyudi
Nomor Mahasiswa : 045314003
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul:
LAYANAN BIND/UNBIND PORT SPEEDY UNTUK AKSES INTERNET
MELALUI SHORT MESSAGE SERVICE
(STUDI KASUS PADA PT TELKOM KANDATEL YOGYAKARTA)
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya
secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan
akademis tanpa perlu meminta izin dari saya maupun memberikan royalti kepada saya
selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal: 22 September 2008
Yang menyatakan,
(Henricus Wahyudi)
ix
ABSTRAKSI
Internet sudah menjadi hal yang tidak terpisahkan dari era informasi seperti sekarang. Hal yang sering dikeluhkan pelanggan maupun penyedia layanan akses internet adalah sering terjadi over quota yang mengakibatkan tagihan pelanggan membengkak. Untuk menangani masalah ini, dibuat sebuah aplikasi dengan memanfaatkan layanan SMS (Short Message Service). Pemilihan SMS ini dilakukan dengan alasan bahwa SMS merupakan salah satu cara komunikasi yang paling sering digunakan saat ini. Perkembangan SMS pun sudah meluas hingga digunakan dalam aplikasi perbankan dan layanan-layanan lainnya.
Pada tugas akhir ini, dibuat aplikasi yang berguna untuk mengatur layanan akses internet Speedy melalui SMS. Aplikasi ini dibuat agar pelanggan Speedy dapat mengatur pemakaian Speedy-nya sehingga biaya yang harus dibayarkan tidak jauh lebih besar dari biaya yang seharusnya dibayarkan. Pengaturan ini dilakukan dengan mengirim SMS permintaan bind atau unbind port yang akan dibaca oleh aplikasi ini. Hal ini berarti bahwa agar pengaturan pemakaian Speedy dapat dilakukan maka harus melibatkan proses bind atau unbind port. Bind port berarti pelanggan hanya dapat mengakses Speedy dari port (komputer) tertentu saja, sedangkan unbind port berarti pelanggan dapat mengakses Speedy dari port manapun.
Metodologi yang digunakan dalam pengembangan sistem ini adalah studi kasus pada PT Telkom Tbk Yogyakarta dengan langkah-langkah yang dilakukan yaitu melakukan studi literatur, merancang, dan mengimplementasikan sistem agar sistem ini siap untuk digunakan. Sistem ini dibangun dengan menggunakan bahasa pemrograman Java dan PHP, serta menggunakan basisdata MySQL. Aplikasi ini nantinya hanya dapat digunakan pada komputer yang memiliki lingkungan Java, web server, dan basisdata MySQL.
Hasil akhir yang diperoleh adalah sebuah aplikasi yang dapat digunakan untuk mengatur layanan akses internet Speedy, baik melalui SMS dari pelanggan maupun secara otomatis, dimana aplikasi tersebut hanya dapat digunakan dalam ruang lingkup PT Telkom Tbk karena proses bind atau unbind yang terjadi pada aplikasi ini melibatkan suatu halaman web pada web intranet PT Telkom Tbk.
x
ABSTRACT
Internet has been an unseparateable thing in the informational era today. The jeremiads of the customer and the internet service provider have been focused on the reoccurring over quota problems which resulted in the high monthly bills. To overcome this problem, an application was created by the use of SMS (Short Message Service). The decision to use SMS was due to the wide use of this particular mean of communication. Moreover, the usage of SMS has spread in other areas such as finance, banking, and others as well.
In this final assignment, application that useful to control the Speedy internet access through SMS was created. This application was created for Speedy user so that they would be able to control the Speedy usage, hence the actual bill would not be too far off from the estimated bills. This control applied by sending an order bind or unbind port SMS which would be read by this application. This means, to control the speedy usage, it has to process bind or unbind port to be done. Bind port means that the customer can only access speedy from a certain port (computer), meanwhile unbind port means that the customer can access speedy from any port.
The methodology used in the development of the system is a case study to PT Telkom Tbk Yogyakarta with the following steps: literature study, design process, and implementation so that the system could be applicable. This system is built using Java and PHP, along with the usage of MySQL database. This application will later be used only for computer that has Java environment, web server, and MySQL database.
The end result was an application that can be used for setting the Speedy internet access, through SMS from the customer or automatically, where this application can only be used in the scope of PT Telkom Tbk because the bind or unbind process that occur in this application involved an intranet web from PT Telkom Tbk.
xi
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yesus Kristus, Allah Bapa Yang
Maha Kuasa atas rahmat, berkat, serta kasih-Nya yang melimpah sehingga penulis
dapat menyelesaikan skripsi ini dengan baik.
Banyak bantuan, dorongan, dan perhatian yang diberikan kepada penulis
selama proses pengerjaan skripsi ini. Oleh karena itu, penulis ingin mengucapkan
terima kasih kepada:
1. Ibu Agnes Maria Polina, S.Kom, M.Sc, selaku Dosen Pembimbing I dan Bpk.
Henricus Agung Hernawan, S.T. selaku Dosen Pembimbing II yang bersedia
meluangkan waktunya untuk memberikan bimbingan selama proses penulisan
skripsi ini.
2. Papa, Mama, Mas Bram, Mbak Rosa yang selalu memberikan semangat dalam
menjalani hari-hariku dan senantiasa mendukungku dalam doa.
3. Nita Rizt yang mengisi ruang di hatiku selama beberapa tahun belakangan ini,
yang juga membantuku menjalani hidupku setiap hari.
4. Keluarga besar WIRATA yang menemaniku saat-saat aku berada di kos, terima
kasih untuk semua petualangannya, untuk Dimas terima kasih untuk pinjaman
mejanya.
5. Kak Mimi, Dek Fenti, Puri, Nikita, Ratna yang telah menjadi keluargaku dan
memberikan semangat saat aku jatuh.
xii
6. Frans, Hari, Devi, Boge yang telah begitu baik memberi aku semangat untuk
terus maju dan bangkit ketika aku sedang berada di bawah di saat aku harus
mengejar deadline skripsiku, kalian adalah sahabat-sahabat terbaikku.
7. Vita dan Atun yang telah begitu baik membantuku dalam menerjemahkan
abstraksiku, serta Liemien yang membantuku dalam penyusunan skripsi ini.
8. Anita, Dias, Presty, serta semua teman-teman chatting-ku yang lain yang telah
begitu baik menemaniku saat aku mengerjakan skripsiku hingga dini hari.
9. Anak-anak TI USD yang telah begitu baik menemani hari-hari kuliahku di TI
USD. Timus, Jumpret terima kasih untuk bantuannya dalam membuat paket
instalasi.
10. Para dosen, laboran, dan pihak sekretariat yang telah begitu baik mengajarkan
ilmunya serta melayani segala kebutuhan selama masa kuliah.
11. Teman-teman yang lain dan semua pihak yang telah membantu dan
memberikan dukungannya yang tidak dapat disebutkan satu per satu.
Akhir kata, penulis menyadari bahwa skripsi ini belumlah sempurna. Oleh
karena itu, penulis sangat berterima kasih atas saran maupun kritik yang bersifat
membangun sehingga skripsi ini dapat bermanfaat bagi semua pihak yang
membacanya. Terima kasih.
Yogyakarta, September 2008
Penulis
xiii
DAFTAR ISI
HALAMAN JUDUL ..................................................................................................... i
HALAMAN PERSETUJUAN .................................................................................... iii
HALAMAN PENGESAHAN ...................................................................................... iv
HALAMAN PERSEMBAHAN .................................................................................... v
HALAMAN MOTTO .................................................................................................. vi
PERNYATAAN KEASLIAN KARYA ..................................................................... vii
HALAMAN PUBLIKASI ......................................................................................... viii
ABSTRAKSI ............................................................................................................... ix
ABSTRACT .................................................................................................................. x
KATA PENGANTAR .................................................................................................. xi
DAFTAR ISI ............................................................................................................ xiii
DAFTAR GAMBAR ............................................................................................... xvii
DAFTAR TABEL ...................................................................................................... xix
BAB I PENDAHULUAN ........................................................................................ 1
1.1. Latar Belakang Masalah ........................................................................ 1
1.2. Rumusan Masalah .................................................................................. 2
xiv
1.3. Batasan Masalah .................................................................................... 2
1.4. Tujuan dan Manfaat Penelitian .............................................................. 3
1.5. Metodologi Penelitian ............................................................................ 3
1.6. Sistematika Penulisan ............................................................................ 4
BAB II LANDASAN TEORI .................................................................................... 6
2.1. Bind/Unbind........................................................................................... 6
2.2. AT Command ........................................................................................ 6
2.3. Java ........................................................................................................ 9
2.4. PHP ...................................................................................................... 12
2.4.1. Variabel dan Tipe Data ............................................................ 12
2.4.2. Form ......................................................................................... 13
2.4.3. Operasi File .............................................................................. 15
2.4.4. Koneksi ke Basisdata ............................................................... 17
2.5. SQL (Structured Query Language) ...................................................... 18
BAB III ANALISIS DAN PERANCANGAN SISTEM .......................................... 21
3.1. Gambaran Umum Sistem Lama ........................................................... 21
3.2. Gambaran Umum Sistem Baru ............................................................ 22
3.3. Konfigurasi Layanan TELKOMNet ADSL ......................................... 25
xv
3.4. Perangkat dan Tools............................................................................. 27
3.5. Analisis Kebutuhan Sistem .................................................................. 28
3.5.1. Diagram Use Case ................................................................... 28
3.5.2. Diagram Konteks ..................................................................... 29
3.5.3. Diagram Alir Data ................................................................... 30
3.5.3.1. Super Admin ............................................................... 30
3.5.3.2. Admin ......................................................................... 33
3.5.4. Pemodelan Data (Diagram ER) ............................................... 33
3.6. Perancangan Sistem ............................................................................. 34
3.6.1. Perancangan Basisdata ............................................................. 34
3.6.1.1. Desain Logis ............................................................... 34
3.6.1.2. Desain Fisik ................................................................ 35
3.6.1.3. Contoh Isi Tabel.......................................................... 38
3.6.2. Perancangan Proses.................................................................. 41
3.6.3. Perancangan Antarmuka .......................................................... 44
BAB IV IMPLEMENTASI SISTEM ....................................................................... 49
4.1. Perangkat Lunak yang Digunakan dalam Pengimplementasian
Sistem................................................................................................... 49
xvi
4.2. Tampilan Antarmuka dan Potongan Program ..................................... 50
4.3. Pemanggilan Proses Bind/Unbind ....................................................... 69
4.4. Proses Pembacaan dan Pengiriman SMS ............................................ 71
BAB V ANALISIS HASIL IMPLEMENTASI ....................................................... 75
5.1. Hasil Pengujian Sistem ........................................................................ 75
5.2. Kelebihan Sistem ................................................................................. 75
5.3. Kekurangan Sistem .............................................................................. 76
BAB VI PENUTUP .................................................................................................. 77
6.1. Kesimpulan .......................................................................................... 77
6.2. Saran .................................................................................................... 77
DAFTAR PUSTAKA .................................................................................................. 78
xvii
DAFTAR GAMBAR
Halaman
Gambar 3.1 Skema registrasi dan aktivasi Speedy ......................................... 21
Gambar 3.2 Skema bind/unbind Speedy ......................................................... 22
Gambar 3.3 Konfigurasi layanan TELKOMNet ADSL ................................. 26
Gambar 3.4 Diagram Use Case ...................................................................... 28
Gambar 3.5 Diagram Konteks ........................................................................ 29
Gambar 3.6 Hirarki Diagram .......................................................................... 30
Gambar 3.7 Overview Diagram Level 0 ......................................................... 31
Gambar 3.8 Overview Diagram Level 1 Proses 3 .......................................... 32
Gambar 3.9 Overview Diagram Level 1 Proses 6 .......................................... 32
Gambar 3.10 Diagram ER ................................................................................ 33
Gambar 3.11 Desain Logis ............................................................................... 34
Gambar 3.12 Hubungan antar modul bind/unbind melalui SMS ..................... 41
Gambar 3.13 Hubungan antar modul bind/unbind secara otomatis .................. 41
Gambar 3.14 Bagan alir aplikasi Java untuk membaca SMS ........................... 42
Gambar 3.15 Bagan alir aplikasi PHP untuk melakukan bind/unbind
berdasarkan SMS ......................................................................... 43
Gambar 4.1 Halaman awal ............................................................................. 50
Gambar 4.2 Halaman login ............................................................................. 51
xviii
Gambar 4.3 Halaman utama ........................................................................... 52
Gambar 4.4 Halaman registrasi ...................................................................... 53
Gambar 4.5 Halaman pencarian data .............................................................. 55
Gambar 4.6 Halaman hasil pencarian data ..................................................... 57
Gambar 4.7 Halaman data detail .................................................................... 58
Gambar 4.8 Halaman edit data ....................................................................... 59
Gambar 4.9 Halaman hapus data .................................................................... 60
Gambar 4.10 Halaman history SMS ................................................................. 61
Gambar 4.11 Halaman history binding ............................................................. 64
Gambar 4.12 Halaman menu admin ................................................................. 66
Gambar 4.13 Halaman ubah password ............................................................. 67
Gambar 4.14 Halaman tambah admin .............................................................. 68
Gambar 4.15 Halaman hapus admin ................................................................. 69
xix
DAFTAR TABEL
Halaman
Tabel 2.1 Status SMS pada kartu SIM ........................................................ 7
Tabel 2.2 Fungsi pada ResultSet ................................................................. 11
Tabel 2.3 Mode akses terhadap sebuah file ................................................ 16
Tabel 3.1 Struktur tabel pelanggan ............................................................. 35
Tabel 3.2 Struktur tabel sms ....................................................................... 35
Tabel 3.3 Struktur tabel binding ................................................................. 36
Tabel 3.4 Struktur tabel detail_pemakaian ................................................. 36
Tabel 3.5 Struktur tabel admin .................................................................... 37
Tabel 3.6 Contoh tabel pelanggan .............................................................. 38
Tabel 3.7 Contoh tabel sms ......................................................................... 39
Tabel 3.8 Contoh tabel binding ................................................................... 39
Tabel 3.9 Contoh tabel detail_pemakaian ................................................... 40
Tabel 3.10 Contoh tabel admin ..................................................................... 40
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Internet sudah menjadi suatu hal yang tidak terpisahkan dari kehidupan
manusia pada zaman sekarang ini, bahkan sampai membuat orang menjadi keasikan
dalam mengakses internet. Akibatnya, mereka yang berlangganan internet harus
membayar tagihan yang lebih besar dari yang seharusnya dibayarkan karena
pemakaian yang berlebihan. Penyedia layanan akses internet tentu menjadi khawatir
jika pelanggan tidak bisa membayar tagihan yang berlebihan tersebut karena akan
mengakibatkan kerugian bagi perusahaan. Pelanggan pun diharapkan dapat ikut serta
dalam mengontrol pemakaian internet setiap bulannya.
PT Telkom Tbk yang menyediakan layanan akses internet Telkom Speedy
(selanjutnya disebut Speedy) juga mengalami hal yang serupa. Hal inilah yang
mengakibatkan mahasiswa yang kos atau kontrak tidak bisa berlangganan Speedy,
karena tidak ada yang bertanggungjawab apabila tagihan membengkak dan
mahasiswa yang bersangkutan tidak mampu membayar. Tentu juga tidak mungkin
jika yang harus bertanggungjawab adalah pemilik kos tersebut, padahal banyak
mahasiswa yang kos yang ingin berlangganan Speedy.
2
Pada layanan akses internet Speedy, terdapat aksi bind dan unbind yang hanya
dapat dilakukan oleh pihak-pihak yang berwenang di dalam lingkup Speedy. Bind
berarti pelanggan hanya dapat mengakses Speedy dari port yang telah ditentukan
(port yang dikaitkan pada username Speedy pelanggan tersebut), sedangkan unbind
berarti pelanggan dapat mengakses Speedy dari sembarang port. Port ini melekat
pada nomor telepon yang digunakan untuk layanan Speedy. Proses bind dan unbind
ini diharapkan dapat dilakukan oleh pelanggan sendiri atau secara otomatis
berdasarkan penghitungan pemakaian Speedy setiap bulannya untuk mengatasi
kelebihan tagihan seperti yang disebutkan di atas.
1.2. Rumusan Masalah
Bagaimana membuat sistem yang mana pelanggan Speedy dapat mengirim
SMS untuk mengatur boleh tidaknya pengaksesan Speedy dengan proses
bind/unbind?
1.3. Batasan Masalah
Dalam pembuatan aplikasi ini, dilakukan beberapa batasan sebagai berikut:
1. SMS (Short Message Service) yang akan diproses adalah SMS yang berasal dari
nomor Telkom Flexi Yogyakarta.
2. SMS digunakan hanya untuk melakukan permintaan bind/unbind, tidak termasuk
untuk melakukan registrasi.
3
3. Aplikasi ini hanya menangani pelanggan Speedy di wilayah Yogyakarta (Divisi
Regional IV).
4. Aplikasi ini hanya menangani pelanggan Speedy dengan username yang diakhiri
@telkom.net.
5. Aplikasi ini hanya menangani permintaan bind dan unbind, proses bind dan
unbind itu sendiri sudah tersedia di dalam web intranet Speedy.
1.4. Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah untuk membuat aplikasi yang dapat membantu
pelanggan Speedy untuk melakukan bind/unbind username Speedy pelanggan
tersebut melalui SMS dari nomor Flexi yang telah didaftarkan sebelumnya. Proses
bind/unbind juga dapat dilakukan secara otomatis berdasarkan pemakaian Speedy
setiap bulannya. Dengan ini, pelanggan Speedy dapat ikut mengatur pemakaian
Speedy-nya dan kelebihan pemakaian Speedy tiap bulannya bisa diminimalkan,
sehingga tagihannya tidak jauh lebih besar dari jumlah yang seharusnya dibayarkan.
1.5. Metodologi Penelitian
Metodologi penelitian yang digunakan adalah menggunakan studi kasus pada
PT Telkom Tbk Yogyakarta dengan langkah-langkah yang dilakukan sebagai berikut:
1. Studi pustaka tentang bagaimana membaca SMS dari kartu SIM (Subscriber
Identity Module) dengan menggunakan AT Command.
4
2. Observasi mengenai data apa saja yang diperlukan agar seseorang dapat
menggunakan layanan SMS binding ini.
3. Analisis sistem yang sudah ada di PT Telkom Tbk yang menangani permintaan
proses bind/unbind port layanan akses internet Speedy.
4. Merancang aplikasi.
5. Mengimplementasikan sistem.
6. Menguji coba sistem dengan cara pengujian per modul program yang kemudian
dilanjutkan dengan pengujian keseluruhan program, serta pengujian langsung
kepada user.
1.6. Sistematika Penulisan
Sistematika penulisan pra TA ini adalah sebagai berikut:
BAB I PENDAHULUAN
Berisi latar belakang masalah, rumusan masalah, batasan masalah,
tujuan dan manfaat penelitian, metodologi penelitian, serta
sistematika penulisan.
BAB II LANDASAN TEORI
Berisi teori-teori mengenai tools yang digunakan dalam pembuatan
aplikasi ini, seperti SQL, PHP, Java, dan AT Command.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Berisi analisis dan perancangan sistem yang akan dibuat, mencakup
perancangan basisdata, diagram alir, serta user interface-nya.
5
BAB IV IMPLEMENTASI SISTEM
Berisi penerapan rancangan sistem yang telah dibuat ke dalam
aplikasi yang sesungguhnya, terdapat pula kode-kode program yang
menjadi inti dari aplikasi yang dibuat.
BAB V ANALISIS HASIL IMPLEMENTASI
Bab ini membahas analisis hasil implementasi dari penerapan
aplikasi yang dilakukan.
BAB VI PENUTUP
Bab ini berisi kesimpulan dari hasil penerapan aplikasi serta
beberapa saran yang membangun.
6
BAB II
LANDASAN TEORI
2.1. Bind/Unbind
Bind adalah pengikatan username Speedy dengan port yang melekat pada
nomor telepon pelanggan yang digunakan untuk mengakses Speedy. Jika dilakukan
bind, maka pelanggan hanya dapat mengakses Speedy dari port yang telah ditentukan.
Kebalikan dari bind adalah unbind. Jika dilakukan unbind, maka pelanggan dapat
mengakses Speedy dari sembarang port atau dengan kata lain dari sembarang nomor
telepon yang telah dipasang Spedy. Port yang dimaksud disini adalah port Speedy
yang terdapat pada setiap nomor telepon yang telah dipasang Spedy. Port ini akan
dicatat dalam basisdata PT Telkom Tbk sebagai informasi darimana seorang pelangan
mengakses Speedy.
2.2. AT Command
AT Command digunakan untuk berkomunikasi dengan perangkat komunikasi
(handphone atau modem) yang dihubungkan dengan komputer melalui serial port
pada komputer. Dengan menggunakan AT Command, komputer dapat digunakan
untuk mengirim pesan, membaca pesan, menghapus pesan, dan fungsi-fungsi lainnya.
7
Pada modem Multi-Tech Systems model MTCBA-C, AT Command yang
digunakan untuk memanipulasi data SMS di antaranya:
a. AT+CMGR
Perintah tersebut digunakan untuk membaca SMS yang tersimpan pada kartu
SIM pada indeks tertentu.
Contoh penggunaan:
AT+CMGR=1
Perintah di atas akan membaca SMS yang terdapat pada indeks pertama. Jika
status SMS pada indeks pertama adalah “UREAD”, maka setelah perintah di atas
dijalankan statusnya akan berubah menjadi “READ”.
Status SMS yang tersimpan dalam memori di antaranya:
UREAD pesan yang diterima belum dibaca
READ pesan yang diterima sudah dibaca
USENT pesan yang tersimpan belum terkirim
SENT pesan yang tersimpan sudah terkirim
ALL semua pesan
Tabel 2.1 Status SMS pada kartu SIM
b. AT+CMGL
Perintah tersebut digunakan untuk membaca SMS yang tersimpan pada kartu
SIM dengan status tertentu.
8
Contoh penggunaan:
AT+CMGL=”UREAD”
Perintah di atas akan membaca SMS yang diterima yang belum dibaca.
c. AT+CMGS
Perintah tersebut digunakan untuk mengirim SMS.
Contoh penggunaan:
AT+CMGS=”08562956669”<CR>
Apa kabar?<Ctrl+Z>
Perintah di atas akan mengirim SMS ke nomor 08562956669 dengan isi SMS
adalah “Apa kabar?”. Jika setelah Ctrl+Z ditekan muncul konfirmasi “OK”,
maka pesan tersebut berhasil dikirim.
d. AT+CMGD
Perintah tersebut digunakan untuk menghapus SMS pada indeks tertentu.
Contoh penggunaan:
AT+CMGD=3
Perintah di atas akan menghapus SMS yang terdapat pada indeks ketiga.
Selain perintah-perintah untuk memanipulasi data SMS, AT Command juga dapat
digunakan untuk melakukan hal-hal lain seperti melakukan pemanggilan telepon,
memanipulasi data phonebook, dan lain sebagainya.
9
2.3. Java
Penggunaan bahasa pemrograman Java sudah semakin meluas, dari aplikasi
berbasis web sampai dengan peralatan-peralatan yang bersifat mobile. Untuk dapat
berkomunikasi dengan perangkat lain yang terhubung dengan komputer melalui serial
port pada komputer (misalnya modem), diperlukan paket Java tambahan. Paket
tambahan ini yaitu Java Communication Port. Program Java yang akan digunakan
untuk berkomunikasi dengan modem perlu mengimport paket
javax.comm.CommPortIdentifier.
Java juga dapat dihubungkan dengan basisdata MySQL. Agar Java dapat
mengakses basisdata MySQL, diperlukan library mysql-connector-java. Program
Java yang akan mengakses basisdata MySQL perlu disetting terlebih dahulu. Pada
properti dari proyek Java tersebut, pada bagian library di bagian compile dan run
perlu ditambahkan library mysql-connector-java, setelah itu perlu dilakukan langkah-
langkah berikut:
a. mengimport paket java.sql
import java.sql.*;
b. memanggil driver JDBC
Tersedia 2 driver dalam konektor untuk MySQL, yaitu com.mysql.jdbc.Driver
dan org.gjt.mm.mysql.Driver.
Cara pemanggilan driver:
Class.forName(“com.mysql.jdbc.Driver“);
10
Cara pemanggilan di atas harus diletakkan di dalam try-catch dengan exception
yang digunakan adalah ClassNotFoundException.
c. membangun koneksi
Untuk membangun koneksi dengan basisdata, digunakan kelas DriverManager
dengan menggunakan fungsi getConnection. Hal ini juga harus diletakkan di
dalam try-catch dengan exception yang digunakan adalah SQLException.
DriverManager.getConnection(url,user,password);
dengan:
- url adalah alamat basisdata yang akan digunakan, contohnya:
jdbc:mysql://localhost:3306/nama_basisdata
- user adalah username untuk melakukan login ke dalam basisdata
- password adalah password yang sesuai dengan username yang digunakan
untuk melakukan login ke dalam basisdata.
Langkah-langkah di atas digunakan untuk mengakses suatu basisdata,
sedangkan untuk dapat melakukan perintah-perintah SQL, diperlukan objek
Statement dengan menggunakan fungsi createStatement() dari objek Connection:
Statement stmt = conn.createStatement();
dengan conn adalah objek dari kelas Connection. Terdapat 2 cara untuk
mengeksekusi perintah SQL, yaitu executeQuery() yang digunakan untuk perintah
SELECT, dan executeUpdate() yang digunakan untuk perintah INSERT, UPDATE,
DELETE. Pemanggilan fungsi executeQuery akan menghasilkan data dari query
yang diberikan. Data tersebut ditampung dalam ResultSet.
11
ResultSet rs = stmt.executeQuery(“select * from basisdata”);
ResultSet adalah tabel yang terdiri dari baris dan kolom yang mengandung
hasil dari eksekusi perintah SQL. Data pada objek ResultSet dapat diperoleh melalui
fungsi getter (misalnya getString()) yang memungkinkan untuk mengakses kolom
yang diinginkan dari baris tertentu. Beberapa fungsi yang digunakan untuk
melakukan navigasi pada ResultSet:
Fungsi Kegunaan
boolean next() Memindahkan kursor ke baris berikutnya
boolean previous() Memindahkan kursor ke baris sebelumnya
boolean first() Memindahkan kursor ke baris pertama dari ResultSet
boolean last() Memindahkan kursor ke baris terakhir dari ResultSet
boolean isFirst() Mengecek apakah kursor berada pada baris pertama dari
ResultSet
boolean isLast() Mengecek apakah kursor berada pada baris terakhir dari
ResultSet
Tabel 2.2 Fungsi pada ResultSet
Listing-listing di atas (Statement, fungsi execute, dan fungsi-fungsi ResultSet) ditulis
di dalam try-catch dengan exception yang digunakan adalah SQLException.
12
2.4. PHP
PHP merupakan bahasa pemrograman web yang cukup banyak digunakan saat
ini. Suatu skrip akan dikenali sebagai skrip PHP jika diapit oleh tanda:
<?php …… ?>
<? …… ?>
<script language=”PHP”> …… </script>
2.4.1. Variabel dan Tipe Data
PHP juga mengenal variabel dan tipe data. PHP membedakan huruf besar dan
kecil untuk nama variabel, misalnya $var berbeda dengan $VAR. Untuk tipe data,
PHP memiliki tipe data yang hampir sama dengan bahasa pemrograman yang lain.
PHP akan secara otomatis mengenali tipe data setiap kali data/nilai diisikan ke dalam
variabel, sehingga pembuat program tidak perlu menentukan tipe datanya.
Ada banyak hal yang dapat dilakukan untuk memanipulasi data string. Hal ini
dapat berguna karena semua masukan dari form akan dianggap sebagai string.
Beberapa manipulasi yang dapat dilakukan diantaranya:
1. untuk mendeteksi posisi suatu karakter dalam suatu string dapat digunakan
fungsi strpos dengan format penulisan:
strpos(data_string, karakter_yang_diinginkan);
2. untuk mengkapitalkan huruf pertama tiap kata dalam suatu string dapat
digunakan fungsi ucwords dengan format penulisan:
ucwords(data_string);
13
3. untuk menghilangkan spasi di kanan dan kiri suatu string dapat digunakan fungsi
trim dengan format penulisan:
trim(data_string);
4. untuk mendapatkan sebagian string dari suatu string dapat digunakan fungsi
substr dengan format penulisan:
substr(data_string, posisi_awal, banyak_karakter);
2.4.2. Form
Form adalah sebuah tempat bagi komponen-komponen yang berfungsi untuk
menerima masukan data. Pada prinsipnya penanganan form pada PHP menggunakan
tag-tag form dari HTML yang kemudian diolah dalam skrip PHP. Tag HTML untuk
membuat form adalah:
<FORM METHOD = … ACTION = … > … </FORM>
Tag HTML di atas juga dapat disisipkan ke dalam skrip PHP, contohnya:
echo(“<FORM METHOD = … ACTION = … > … </FORM>”);
(perintah echo berfungsi untuk mencetak atau menampilkan sesuatu di layar)
Method dalam form dapat diisi dengan GET atau POST. Jika digunakan
method GET, data yang diisi akan dikirim ke server dengan cara diletakkan di
belakang URL. Jika digunakan method POST, data akan dikirim ke server secara
terpisah, artinya data tidak terlihat di belakang URL sehingga cocok untuk mengirim
data yang bersifat rahasia atau untuk mengirim data yang berjumlah banyak. Action
14
dalam form diisi dengan nama file tujuan yang akan memproses data yang
dimasukkan dalam form tersebut.
Form memiliki berbagai komponen, di antaranya:
a. komponen text
<INPUT TYPE=text NAME=nama_komponen SIZE=panjang_komponen
MAXLENGTH=jumlah_maksimal_karakter>
Fungsinya untuk menerima masukan berupa data teks. Data yang diisi akan
disimpan di sebuah variabel dengan nama sesuai dengan isi pada atribut NAME
dari komponen text yang bersangkutan.
b. komponen radio
<INPUT TYPE=radio NAME=nama_komponen VALUE=data CHECKED>teks
Fungsinya untuk menyediakan pilihan bagi pengunjung web. Pilihan
pengunjung web tidak dapat lebih atau kurang dari satu. Radio yang diberi
atribut CHECKED akan menyebabkan radio tersebut dalam keadaan terpilih saat
skrip pertama kali dijalankan.
c. komponen checkbox
<INPUT TYPE=checkbox NAME=nama_komponen VALUE=data>teks
Checkbox juga menyediakan pilihan seperti komponen radio. Perbedaannya
adalah pada checkbox pilihan pengunjung web dapat lebih dari satu.
d. komponen text area
<TEXTAREA NAME=nama_komponen COLS=lebar
ROWS=tinggi>teks</TEXTAREA>
15
Fungsinya sama seperti komponen text, hanya saja pada komponen ini dapat
dimasukkan teks yang lebih banyak dalam beberapa baris.
e. komponen select
<SELECT NAME=nama_komponen>
<OPTION>pilihan1
<OPTION>pilihan2
……
</SELECT>
Pada prinsipnya select juga berfungsi untuk memberi pilihan. Sifatnya sama
seperti komponen radio, yaitu hanya boleh ada satu pilihan. Pilihan akan diisi
menggunakan tag OPTION.
f. komponen button
<INPUT TYPE=submit NAME=nama_komponen VALUE=teks_pada_tombol>
<INPUT TYPE=reset NAME=nama_komponen VALUE=teks_pada_tombol>
Button atau tombol dibagi menjadi dua, yaitu submit dan reset. Tombol submit
berfungsi untuk mengeksekusi dan mengirim data masukan dari form ke server,
sedangkan tombol reset berfungsi untuk membatalkan atau menghapus data yang
telah terisi pada form.
2.4.3. Operasi File
PHP mampu melakukan akses, manipulasi, dan operasi terhadap file. Operasi
terhadap file diantaranya adalah membuka, membaca, dan menutup file. Untuk
16
membuka atau mengakses sebuah file, digunakan fungsi fopen dengan format
penulisan:
$variabel = fopen(nama_file, mode_akses);
Mode akses terhadap sebuah file seperti dalam tabel berikut:
Mode akses Keterangan
r File hanya dapat dibaca.
r+ File dapat dibaca dan ditulis/diubah isinya. Data akan ditulis di
awal file.
w
File hanya untuk ditulis saja. Data file akan dihapus dan diganti
dengan data yang baru. Jika file belum ada, PHP akan otomatis
membuatkannya.
w+
File dapat ditulis dan dibaca. Data file akan dihapus dan diganti
dengan data yang baru. Jika file belum ada, PHP akan otomatis
membuatkannya.
a
File hanya untuk ditulis saja. Penambahan data diletakkan di
akhir file. Jika file belum ada, PHP akan otomatis
membuatkannya.
a+
File dapat ditulis dan dibaca. Penambahan data diletakkan di
akhir file. Jika file belum ada, PHP akan otomatis
membuatkannya.
Tabel 2.3 Mode akses terhadap sebuah file
17
Untuk mendapatkan data dari file, digunakan fungsi fgets dengan format penulisan:
$variabel = fgets($nama_file, panjang_karakter);
Fungsi fgets digunakan untuk membaca data tiap baris dengan panjang_karakter
adalah banyaknya jumlah karakter yang ingin dibaca tiap barisnya.
File yang telah selesai dimanipulasi perlu ditutup dengan menggunakan fungi fclose.
Format penulisannya:
fclose($nama_file);
2.4.4. Koneksi ke Basisdata
PHP dapat dikoneksikan dengan basisdata MySQL. Untuk mengkoneksikan
PHP dengan MySQL diperlukan pemanggilan fungsi mysql_connect dan
mysql_select_db untuk memilih basisdata yang akan digunakan. Skripnya adalah:
if(!$dbh=mysql_connect($host,$username,$password))
{
echo mysql_error();
exit;
}
mysql_select_db($basisdata,$dbh) or die ("basisdata tidak
ditemukan");
dengan:
- $host adalah alamat host MySQL, misalnya localhost
- $username adalah username untuk melakukan login ke dalam basisdata
18
- $password adalah password yang sesuai dengan username yang digunakan
untuk melakukan login ke dalam basisdata.
- $basisdata adalah nama basisdata yang akan digunakan.
Perintah-perintah query dituliskan di dalam fungsi mysql_query() dan untuk
mendapatkan data dari perintah query digunakan fungsi mysql_fetch_array() atau
mysql_fetch_index().
2.5. SQL (Structured Query Language)
Basisdata dapat diartikan sebagai suatu bentuk penyimpanan informasi yang
terpusat agar data-data atau informasi yang ada di dalamnya mudah dicari, dikelola,
dan digunakan kembali. Basisdata terdiri atas baris dan kolom. Baris dalam
basisdata disebut juga dengan record yang merepresentasikan masing-masing data.
Kolom dalam basisdata disebut juga dengan field yang merepresentasikan jenis data
yang ada dalam masing-masing kolom tersebut.
Query adalah bahasa yang digunakan untuk berkomunikasi atau bekerja
dengan sebuah basisdata. Perintah query dapat digunakan untuk melihat status tabel,
mengubah data-data yang ada dalam tabel, dan sebagainya. Ada banyak bahasa
query yang dapat digunakan, seperti SQL, DBASE, dan lain-lain. Dari sekian banyak
bahasa query tersebut, yang paling banyak digunakan adalah bahasa query SQL
(Structured Query Language).
19
Pada dasarnya bahasa query SQL secara garis besar dapat dibagi menjadi tiga
bagian:
a. DDL (Data Definition Language)
DDL adalah bahasa SQL yang digunakan untuk membuat, memanipulasi, atau
menghapus schema yang ada di dalam basisdata.
b. DML (Data Manipulation Language)
DML adalah bahasa SQL yang digunakan untuk memanipulasi data yang
terdapat di dalam basisdata seperti memasukkan data, menghapus data, dan lain-
lain.
c. DCL (Data Control Language)
DCL adalah bahasa SQL yang digunakan untuk mengatur user.
Beberapa perintah SQL disebutkan di bawah ini:
1. untuk membuat basisdata, digunakan perintah CREATE DATABASE:
CREATE DATABASE [IF NOT EXISTS] nama_basisdata
2. untuk membuat tabel, digunakan perintah CREATE TABLE:
CREATE TABLE [IF NOT EXISTS] nama_tabel [LIKE tabel_lama]
{
nama_kolom1 tipe_kolom [NOT NULL | NULL]
[DEFAULT nilai_default],
……
}
20
3. untuk menambahkan data atau record baru pada sebuah tabel, digunakan perintah
INSERT:
INSERT INTO nama_tabel [(nama_kolom1,…)]
VALUES (nilai_kolom1,…)
4. untuk menghapus data, digunakan perintah DELETE:
DELETE FROM nama_tabel [WHERE kriteria_penghapusan]
5. untuk mengubah data, digunakan perintah UPDATE:
UPDATE nama_tabel SET nama_kolom1=nilai [,nama_kolom2=nilai,…]
[WHERE kriteria_pengubahan]
6. untuk menampilkan dan mencari data, digunakan perintah SELECT:
SELECT [ALL | DISTINCT] ekspresi_select, …
[FROM nama_tabel]
[WHERE kriteria]
[GROUP BY nama_kolom [ASC | DESC]]
[ORDER BY nama_kolom [ASC | DESC]]
[INTO parameter_keluaran]
21
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Gambaran Umum Sistem Lama
Pada layanan akses internet Speedy terdapat 3 bagian yang saling terkait, yaitu
PT Telkom Tbk, ISP (Internet Service Provider), dan pelanggan. PT Telkom Tbk
memiliki identitas nomor telepon untuk setiap pelanggan, ISP memiliki identitas port
Speedy dan id pelangan Speedy (username Speedy), sedangkan pelanggan memiliki
identitas nama pelanggan yang bersangkutan. Untuk dapat berlangganan Speedy,
seorang pelanggan harus melakukan registrasi terlebih dahulu ke ISP untuk kemudian
mendapatkan id pelanggan Speedy. Agar pelanggan tersebut dapat mengakses
Speedy, maka dilakukan aktivasi nomor telepon yang telah didaftarkan tadi sehingga
mendapatkan port yang kemudian akan digunakan untuk pengaksesan Speedy.
Gambar 3.1 Skema registrasi dan aktivasi Speedy
Proses bind/unbind melibatkan keempat data di atas, yaitu nomor telepon
yang digunakan untuk mengakses Speedy, port yang melekat pada nomor telepon
tersebut, id pelanggan Speedy, dan nama pelanggan yang bersangkutan. Dalam hal
22
ini, nomor telepon menjadi satu bagian dengan port Speedy karena pada setiap nomor
telepon diberi port Speedy yang berbeda dengan nomor telepon yang lain, sedangkan
id pelanggan Speedy menjadi satu bagian dengan nama pelanggan. Pada proses
bind/unbind, id pelanggan Speedy-lah yang akan di bind/unbind dengan port
pengaksesan Speedy.
Gambar 3.2 Skema bind/unbind Speedy
Aplikasi untuk melakukan bind/unbind sudah tersedia pada web intranet PT
Telkom Tbk. Pihak yang dapat melakukan bind/unbind adalah orang yang memiliki
akses ke dalam web intranet PT Telkom Tbk (os3.divre4.co.id), sehingga pelanggan
tidak dapat meminta bind/unbind langsung kepada sistem, tetapi harus melalui admin
web tersebut. Untuk melakukan bind, admin memasukkan username Speedy yang
ingin di-bind dan memilih port yang akan digunakan, sedangkan untuk unbind hanya
perlu memasukkan username Speedy saja. Proses bind/unbind ini hanya akan terjadi
jika admin meminta proses tersebut melalui web intranet os3.divre4.co.id, selain itu
maka proses bind/unbind tidak akan terjadi.
3.2. Gambaran Umum Sistem Baru
Aplikasi yang akan dibuat digunakan untuk melakukan bind/unbind pelanggan
Speedy. Bind berarti pelanggan hanya dapat mengakses Speedy dari port yang telah
23
ditentukan (port yang dikaitkan pada username Speedy pelanggan tersebut),
sedangkan unbind berarti pelanggan dapat mengakses Speedy dari sembarang port.
Permintaan bind/unbind dilakukan berdasarkan SMS (Short Message Service) dari
pelanggan atau berdasarkan pemakaian Speedy setiap bulannya. Proses bind/unbind
dilakukan dengan memanggil suatu halaman web dengan menyertakan parameter
nomor Speedy yang akan di-bind/unbind dan port yang berkaitan.
Pelanggan harus melakukan registrasi terlebih dahulu agar dapat
menggunakan layanan ini. Proses registrasi akan mencatat nomor Speedy, nama
pelanggan, paket Speedy, dan nomor Flexi yang akan digunakan untuk mengakses
layanan ini. SMS yang akan diproses adalah SMS yang berasal dari nomor Flexi.
SMS yang masuk akan dibaca menggunakan suatu aplikasi Java. Aplikasi ini akan
membaca SMS yang terdapat dalam kartu SIM (Subscriber Identity Module) yang
dimasukkan ke dalam modem. Jika SMS berasal dari nomor yang sudah didaftarkan
maka permintaan bind/unbind akan dilaksanakan. Pengirim SMS akan mendapat
SMS konfirmasi setelah proses yang diminta (bind/unbind) selesai dilaksanakan.
Proses bind/unbind secara otomatis dilakukan dengan menghitung pemakaian
Speedy oleh pelanggan setiap bulannya lalu dibandingkan dengan paket Speedy yang
digunakan. Jika pemakaian sudah melebihi kuota, maka username Speedy yang
bersangkutan akan di-bind ke port yang tidak digunakan (misalnya port 0) sehingga
pelanggan tersebut tidak dapat mengakses Speedy sampai bulan berikutnya atau
sampai dilakukan unbind. Data detail pemakaian Speedy oleh pelanggan didapat
dengan mengambil data pada web intranet PT Telkom Tbk untuk kemudian disimpan
24
ke dalam basisdata (laporan kerja praktik “APLIKASI PENGAMBILAN DATA DARI
WEB INTRANET TELKOM MENGGUNAKAN PHP dan MYSQL”).
Akses ke dalam sistem ini dibagi menjadi 2, yaitu super admin dan admin.
Super admin memilki hak akses penuh terhadap sistem, yaitu dapat membuat dan
menghapus data admin. Admin hanya berhak melakukan tugas-tugas tertentu seperti
registrasi dan manipulasi data pelanggan, serta melihat history binding dan history
SMS. Hal-hal apa saja yang dapat dilakukan oleh super admin maupun admin dapat
dilihat pada Gambar 3.4. Pengguna sistem ini berhubungan dengan sistem melalui
suatu halaman website.
Struktur tugas-tugas yang dapat dilakukan super admin dapat dilihat pada
Gambar 3.6 dan aliran datanya dapat dilihat pada Gambar 3.7. Untuk masing-masing
prosesnya dapat dijelaskan sebagai berikut:
1. Login
Pada proses ini, user memasukkan data username dan password agar
dapat masuk ke dalam sistem.
2. Registrasi
Pada proses ini, user memasukkan data-data pelanggan Speedy untuk
disimpan ke dalam basisdata.
3. Cari Data Pelanggan
Pada proses ini, user memasukkan kata kunci dan kriteria pencarian
yang akan dilakukan. Data hasil pencarian kemudian dapat diedit atau
dihapus. Aliran data pada proses ini dapat dilihat pada Gambar 3.8.
25
4. History SMS
Pada proses ini, user dapat melihat history SMS dari pelanggan yang
tersimpan di dalam basisdata.
5. History Binding
Pada proses ini, user dapat melihat history bind/unbind yang terjadi baik
itu berdasarkan SMS dari pelanggan maupun proses bind/unbind secara
otomatis.
6. Menu Admin
Pada proses ini, user yang bertindak sebagai super admin dapat
mengubah password, menambah data admin, dan menghapus data
admin, sedangkan user yang bertindak sebagai admin biasa hanya dapat
melakukan pengubahan password. Aliran data pada proses ini dapat
dilihat pada Gambar 3.9.
3.3. Konfigurasi Layanan TELKOMNet ADSL
Speedy menggunakan basis teknologi Asymetric Digital Subscriber Line
(ADSL). ADSL adalah suatu teknologi modem yang bekerja pada frekuensi antara
34 kHz sampai 1104 kHz. Untuk koneksi Speedy, modem ADSL melaksanakan 2
tahap koneksi, yaitu koneksi ADSL dari modem ke Digital Multiplexer di STO
terdekat dan koneksi ke BRAS (Broadband Remote Access Server) dengan
menggunakan username dan password masing-masing pelanggan.
Setiap saluran telepon akan mendapat port yang akan digunakan untuk
mengakses Speedy. Pada saat pelanggan mengakses Speedy, akan dicek apakah
dilakukan bind pada username Speedy
akan dicek apakah permintaan pengaksesan Speedy berasal dari port yang bi
kan. Jika port asal permintaan pengaksesan
kan, maka pelanggan tersebut dapat mengakses Speedy. Jika tidak dilakukan
(unbind), maka pengaksesan Speedy dapat berasal dari sembarang port (nomor
telepon).
Gambar 3.3 Konfigurasi layanan TELKOMNet ADSL
Setiap saluran telepon akan mendapat port yang akan digunakan untuk
ada saat pelanggan mengakses Speedy, akan dicek apakah
pada username Speedy-nya atau tidak. Jika dilakukan
akan dicek apakah permintaan pengaksesan Speedy berasal dari port yang bi
kan. Jika port asal permintaan pengaksesan Speedy sama dengan port yang di
kan, maka pelanggan tersebut dapat mengakses Speedy. Jika tidak dilakukan
), maka pengaksesan Speedy dapat berasal dari sembarang port (nomor
Gambar 3.3 Konfigurasi layanan TELKOMNet ADSL
26
Setiap saluran telepon akan mendapat port yang akan digunakan untuk
ada saat pelanggan mengakses Speedy, akan dicek apakah
nya atau tidak. Jika dilakukan bind, maka
akan dicek apakah permintaan pengaksesan Speedy berasal dari port yang bi-bind-
Speedy sama dengan port yang di-bind-
kan, maka pelanggan tersebut dapat mengakses Speedy. Jika tidak dilakukan bind
), maka pengaksesan Speedy dapat berasal dari sembarang port (nomor
27
3.4. Perangkat dan Tools
Aplikasi akan dibuat dengan menggunakan tools PHP 5, JDK 1.5, dan
MySQL 5. Spesifikasi komputer yang digunakan untuk membuat aplikasi ini
adalah:
- prosesor AMD Turion 64 X2
- RAM 1GB
- Microsoft Windows XP Service Pack 2
Modem yang digunakan untuk membaca SMS dari SIM-Card Flexi adalah
modem Multi-Tech Systems model MTCBA-C dengan spesifikasi:
- bits per second : 115200
- data bits : 8
- parity : none
- stop bits : 1
- flow control : none
28
3.5. Analisis Kebutuhan Sistem
3.5.1. Diagram Use Case
Registrasi Pelanggan
Hapus Data Pelanggan
Lihat History Binding
Lihat Data Pelanggan
Edit Data Pelanggan
<<depend on>>
Login
<<depend on>>
Lihat History SMS
<<depend on>>
Tambah Admin
Hapus Admin
Super AdminCustomer Service
Relationship
Ubah Password
Gambar 3.4 Diagram use case
29
3.5.2. Diagram Konteks
Gambar 3.5 Diagram Konteks
30
3.5.3. Diagram Alir Data
3.5.3.1. Super Admin
Gambar 3.6 Hirarki diagram
31
Gambar 3.7 Overview Diagram Level 0
32
Super Admin
3.1 P
Lihat Data
Kata kunci
pelangganD2
3.2 P
Edit Data
Data pelanggan
Hasil pencarian
Hasil pencarian
Perubahan data
Kata kunci
3.3 P
Hapus Data
Data
admin
Gambar 3.8 Overview Diagram Level 1 Proses 3
Gambar 3.9 Overview Diagram Level 1 Proses 6
33
3.5.3.2. Admin
Diagram alir data untuk admin sama dengan diagram alir data untuk super
admin, hanya saja pada diagram alir data untuk admin tidak terdapat proses
Tambah Admin (proses 6.2 P) dan Hapus Admin (proses 6.3 P).
3.5.4. Pemodelan Data (Diagram ER)
Berdasarkan dari data-data yang diperlukan oleh sistem ini, hubungan antar
entitasnya dapat dilihat seperti di bawah ini:
Gambar 3.10 Diagram ER
34
3.6. Perancangan Sistem
3.6.1. Perancangan Basisdata
3.6.1.1. Desain Logis
Gambar 3.11 Desain Logis
35
3.6.1.2. Desain Fisik
Tabel pelanggan
Field Tipe Data
noSpeedy char (12)
portTetap varchar(255)
nama varchar (50)
alamat varchar(255)
pstn int(11)
noFlexi int (11)
paket varchar (15)
waktuDaftar datetime
Tabel 3.1 Struktur tabel pelanggan
Tabel sms
Field Tipe Data
id_sms int (11)
pengirim char (11)
sms varchar (50)
waktuKirim datetime
status varchar (6)
Tabel 3.2 Struktur tabel sms
36
Tabel binding
Field Tipe Data
id_bind int (11)
id_sms int (11)
noSpeedy char (12)
aksi varchar (6)
waktu datetime
Tabel 3.3 Struktur tabel binding
Tabel detail_pemakaian
Field Tipe Data
username varchar (25)
portPemakaian varchar (255)
start datetime
stop datetime
upload varchar (8)
download varchar (8)
total varchar (10)
lastUpdate datetime
Tabel 3.4 Struktur tabel detail_pemakaian
37
Tabel admin
Field Tipe Data
username varchar (20)
password varchar (255)
status varchar (5)
Tabel 3.5 Struktur tabel admin
38
3.6.1.3. Contoh Isi Tabel
pelanggan (PK: noSpeedy)
noSpeedy portTetap nama alamat pstn noFlexi paket waktuDaftar
141113100001 /YOG-SE800/0 0/0/0:4096.2537
00-d0-d0-81-95-d4/0/0/1/0/2:8.81 Kris
Puri Timoho
Asri B.17 886142 7471234 Time Based
17/11/2007
13:42:04
141114102987 /YOG-SE800/0 0/0/0:4096.2537
00-d0-d0-81-95-d4/0/0/1/0/28:8.81 Endang
Jl. Gejayan No
5 435262 6581723 Time Based
15/11/2007
10:21:57
141135100101
/YOG-SE800/0 0/0/0:4096.2537
00-d0-d0-81-95-
d4/0/0/13/0/20:8.81
Slamet Jl. Brigjen
Katamso 56 865864 6519829
Volume
Based
15/11/2007
14:02:07
141135102001 /YOG-SE800/0 0/0/0:4096.2526
00-d0-d0-81-95-d2/0/0/8/0/30:8.81 Benny
Jl. AM.
Sangaji No 23 432323 7468173 Proffesional
16/11/2007
09:13:28
141136100031 /YOG-SE800/0 0/0/0:4096.2537
00-d0-d0-81-95-d4/0/0/1/0/17:8.81 Ahmad
Jl. Kaliurang
KM 18 881345 7576172 Time Based
17/11/2007
10:35:09
Tabel 3.6 Contoh tabel pelanggan
39
sms (PK: id_sms)
id_sms pengirim waktuKirim sms status
1 7471234 18/11/2007 08:30:52 BIND 141113100001 886142 baru
2 7365769 18/11/2007 08:50:13 BIND 141114102987 425543 baru
3 7576172 19/11/2007 14:20:19 UNBIND 141136100031 881345 sukses
4 7471234 20/11/2007 11:21:28 UNBIND 141113100001 886142 sukses
5 6567763 20/11/2007 11:45:48 UNBIND 141135102139 554344 sukses
Tabel 3.7 Contoh tabel sms
binding (PK: id_bind)
id_bind id_sms noSpeedy aksi waktu
1 1 141113100001 BIND 18/11/2007 08:43:09
2 2 141124109892 UNBIND 18/11/2007 08:49:52
3 3 141114102987 BIND 18/11/2007 09:00:34
4 4 141136100031 UNBIND 19/11/2007 14:31:52
5 5 141113100001 UNBIND 20/11/2007 11:41:12
Tabel 3.8 Contoh tabel binding
40
detail_pemakaian (PK: noSpeedy dan start)
username portPemakaian start stop upload download total lastUpdate
141113100001 /YOG-SE800/0 0/0/0:4096.2537 00-d0-d0-81-
95-d4/0/0/1/0/2:8.81
2007-06-01
05:41:17
2007-06-02
05:41:18 2.131 13.335 15.466
2007-06-03
00:55:34
141113100001 /YOG-SE800/0 0/0/0:4096.2537 00-d0-d0-81-
95-d4/0/0/1/0/2:8.81
2007-06-02
05:41:40
2007-06-03
05:41:48 2.087 12.834 14.921
2007-06-02
01:17:35
141113100001 /YOG-SE800/0 0/0/0:4096.2537 00-d0-d0-81-
95-d4/0/0/1/0/2:8.81
2007-06-07
15:59:43
2007-06-08
00:42:11 7.660 22.385 30.045
2007-06-08
01:24:25
141114102987 /YOG-SE800/0 0/0/0:4096.2537 00-d0-d0-81-
95-d4/0/0/1/0/28:8.81
2007-06-01
12:45:19
2007-06-01
13:20:00 2.430 23.239 25.669
2007-06-03
00:43:27
141114102987 /YOG-SE800/0 0/0/0:4096.2537 00-d0-d0-81-
95-d4/0/0/1/0/28:8.81
2007-06-02
22:49:52
2007-06-02
23:05:38 699 6.799 7.499
2007-06-03
00:55:34
Tabel 3.9 Contoh tabel detail_pemakaian
admin (PK: username)
username password status
speedy d73138bef5a01d820e3511ab83562863 super
dwi 7aa2602c588c05a93baf10128861aeb9 admin
eni e3d96c321f2a71cb81cd7d5f05f1a8d7 admin
Tabel 3.10 Contoh tabel admin
41
3.6.2. Perancangan Proses
Hubungan antar modul dalam melakukan bind/unbind melalui SMS:
aplikasi pada web intranet
(os3.divre4.telkom.co.id)
Gambar 3.12 Hubungan antar modul bind/unbind melalui SMS
Hubungan antar modul dalam melakukan bind/unbind secara otomatis:
Gambar 3.13 Hubungan antar modul bind/unbind secara otomatis
42
Bagan alir aplikasi Java untuk membaca SMS dari modem:
Gambar 3.14 Bagan alir aplikasi Java untuk membaca SMS
43
Bagan alir aplikasi PHP untuk melakukan bind/unbind berdasarkan SMS:
Gambar 3.15 Bagan alir aplikasi PHP untuk melakukan bind/unbind
berdasarkan SMS
44
3.6.3. Perancangan Antarmuka
Pada sistem ini, antarmuka hanya terdapat pada aplikasi PHP. Rancangan
antarmuka untuk aplikasi PHP ini dapat dilihat sebagai berikut:
Halaman depan:
Jumlah SMS masuk hari ini: 8
LOGIN
Aplikasi SMS Bind/Unbind
Halaman login:
45
Halaman utama:
Halaman registrasi:
46
Halaman cari data:
Aplikasi Bind/Unbind Speedy
selamat datang, admin
Pencarian Data
cari
cari berdasarkan
datra yang dicari
registrasi
history sms
history binding
cari/ubah data
menu admin
logout
Halaman hasil cari data:
47
Halaman edit data hasil pencarian:
Halaman history sms:
48
Halaman history binding:
Aplikasi Bind/Unbind Speedy
selamat datang, admin
History Binding
Nomor Speedy Aksi Waktu
141113100976 27-11-07 15:06
141113100976 27-11-07 15:16
bind
unbind
registrasi
history sms
history binding
cari/ubah data
menu admin
logout
49
BAB IV
IMPLEMENTASI SISTEM
4.1. Perangkat Lunak yang Digunakan dalam Pengimplementasian Sistem
Perangkat lunak yang digunakan dalam pengimplementasian sistem ini
adalah:
1. Apache2triad 1.5.4, yang merupakan paket dari Apache 2.2.0, MySQL
5.0.18, dan PHP 5.1.2
2. Netbeans 5.5.1
3. Crimson Editor 3.6
4. Mozilla Firefox v3.0
5. Internet Explorer 7
6. SQLyog 5.22
50
4.2. Tampilan Antarmuka dan Potongan Program
Berikut ini akan ditampilkan antarmuka aplikasi yang telah dibuat beserta
potongan programnya.
a) Halaman awal
Gambar 4.1 Halaman awal
Gambar 4.1 merupakan tampilan halaman awal dari web pada sistem ini.
Pada halaman tersebut terdapat keterangan mengenai jumlah SMS yang masuk pada
hari ini dan link untuk melakukan login. Jumlah SMS diperoleh dari penghitungan
data SMS yang masuk pada hari ini di dalam basisdata. Berikut ini adalah potongan
kode program untuk menghitung jumlah SMS yang masuk pada hari ini:
51
$tgl=date("d"); $bln=date("m"); $jumsms = mysql_fetch_array(mysql_query("select count(*) as jumlah from sms where day(waktuKirim) = $tgl and month(waktuKirim) = $bln"));
b) Halaman login
Gambar 4.2 Halaman login
Gambar 4.2 merupakan tampilan halaman login. Pada halaman tersebut user
memasukkan data username dan password untuk dapat mengakses sistem. Data yang
dimasukkan kemudian akan dibandingkan dengan data yang ada dalam basisdata.
Jika datanya sesuai, maka akses ke dalam sistem akan terbuka. Berikut ini adalah
potongan kode program untuk mengecek data yang ada dalam basisdata:
52
$HTTP_POST_VARS['paswd']=md5($HTTP_POST_VARS['paswd']); $cek=mysql_fetch_array(mysql_query("
SELECT username, password, status FROM admin WHERE username='$HTTP_POST_VARS[nama]' AND password='$HTTP_POST_VARS[paswd]'")); if (!empty($cek['username'])) { $HTTP_SESSION_VARS['user']=$cek['username']; $HTTP_SESSION_VARS['pwd']=$cek['password']; $HTTP_SESSION_VARS['status']=$cek['status']; echo("silakan <a href='main.php'>masuk</a>"); } else { echo("data yang Anda masukkan salah<br>"); echo("<a href='index.php'>kembali</a>"); session_destroy(); }
c) Halaman utama
Gambar 4.3 Halaman utama
53
Gambar 4.3 merupakan tampilan halaman utama setelah user melakukan
login. Pada halaman tersebut, pada bagian kiri atas terdapat keterangan mengenai
username yang melakukan login, dan pada bagian kiri tengah terdapat menu-menu
yang dapat diakses oleh user.
d) Halaman registrasi
Gambar 4.4 Halaman registrasi
Gambar 4.4 merupakan tampilan halaman registrasi. Pada halaman tersebut
user memasukkan data-data pelanggan untuk disimpan ke dalam basisdata. Data-data
yang harus sudah dimasukkan adalah data nomor Speedy, port, dan jenis paket yang
digunakan karena data-data ini nantinya akan digunakan untuk melakukan proses
54
bind otomatis. Berikut ini adalah potongan kode program untuk memasukkan data ke
dalam basisdata:
if(empty($HTTP_POST_VARS['user']) || empty($HTTP_POST_VARS['port'])) {
echo("<br><br><br><br><br>nomor Speedy atau port belum diinputkan");
} else if(strlen(trim($HTTP_POST_VARS['user'])) < 12) { echo("<br><br><br><br><br>nomor Speedy yang diinputkan kurang"); } else { $cek=mysql_fetch_array(mysql_query(" SELECT noSpeedy FROM pelanggan WHERE noSPeedy='$HTTP_POST_VARS[user]'")); if(empty($cek['noSpeedy'])) { $HTTP_POST_VARS['nama'] =
ucwords($HTTP_POST_VARS['nama']); if(empty($HTTP_POST_VARS['flexi'])) { mysql_query("insert into pelanggan
(noSpeedy,portTetap,nama,paket,waktuDaftar) values('$HTTP_POST_VARS[user]', trim('$HTTP_POST_VARS[port]'), trim('$HTTP_POST_VARS[nama]'), '$HTTP_POST_VARS[paket]',current_timestamp)");
} else { mysql_query("insert into pelanggan
values('$HTTP_POST_VARS[user]', trim('$HTTP_POST_VARS[port]'), trim('$HTTP_POST_VARS[nama]'), trim($HTTP_POST_VARS[flexi]), '$HTTP_POST_VARS[paket]',current_timestamp)");
} echo("<br><br><br><br><br>data berhasil
ditambahkan"); } else {
55
echo("<br><br><br><br><br>nomor Speedy sudah didaftarkan");
} }
e) Halaman pencarian data
Gambar 4.5 Halaman pencarian data
Gambar 4.5 merupakan tampilan halaman pencarian data. Pada halaman
tersebut user memasukkan kriteria pencarian data yang akan dilakukan dan data yang
akan dicari. Berikut ini adalah potongan kode program untuk mencari data dalam
basisdata:
$querycari=mysql_query( "SELECT noSpeedy FROM pelanggan WHERE $krit like '%$datac%'");
56
$cekcari=mysql_fetch_array($querycari); if(empty($cekcari['noSpeedy'])) { echo("Data tidak ditemukan"); } else { $querycari2=mysql_query( "SELECT noSpeedy, nama, noFlexi FROM pelanggan WHERE $krit like '%$datac%'"); ?> <table border="0" cellspacing="0" cellpadding="10"
class="tabel"> <tr> <td align="center" width="100px" class="head">
No Speedy</td> <td align="center" width="200px" class="head">
Nama</td> <td align="center" width="70px" class="head">
No Flexi</td> <td align="center" width="100px" class="head">
Detail</td> </tr> <? while($hasil=mysql_fetch_array($querycari2)) { echo(" <tr> <td align=center class='isitabel'>
$hasil[noSpeedy]</td> <td align=center class='isitabel'>
$hasil[nama]</td> <td align=center class='isitabel'>
$hasil[noFlexi]</td> <td align=center class='isitabel'> <a href='carilengkap.php?
kode=$hasil[noSpeedy]&&cr1=$krit &&cr2=$datac'>selengkapnya</a>
</td> </tr> "); } ?> </table> <? }
57
f) Halaman hasil pencarian data
Gambar 4.6 Halaman hasil pencarian data
Gambar 4.6 merupakan tampilan halaman hasil pencarian data. Pada halaman
tersebut ditampilkan data-data yang sesuai dengan kriteria pencarian yang diinputkan
user. Data yang ditampilkan hanya nomor Speedy, nama, dan nomor Flexi saja,
sedangkan untuk data lengkapnya dapat dilihat dengan mengklik link “selengkapnya”
yang terdapat pada kolom “Detail”.
58
g) Halaman data detail
Gambar 4.7 Halaman data detail
Gambar 4.7 merupakan tampilan halaman data lengkap dari seorang
pelanggan Speedy. Pada bagian bawah tabel terdapat pilihan untuk mengedit atau
menghapus data yang bersangkutan.
59
h) Halaman edit data
Gambar 4.8 Halaman edit data
Gambar 4.8 merupakan tampilan halaman edit data. Data yang tidak bisa
diedit adalah data nomor Speedy, sedangkan data lainnya dapat diedit. Berikut ini
adalah potongan kode program untuk mengedit data yang terdapat dalam basisdata:
if(empty($HTTP_POST_VARS['port'])) {
echo("<br><br><br><br><br>nomor Speedy atau port belum diinputkan");
} else { if(empty($HTTP_POST_VARS['flexi'])) { mysql_query(" update pelanggan set portTetap = '$HTTP_POST_VARS[port]', nama = '$HTTP_POST_VARS[nama]',
60
paket = '$HTTP_POST_VARS[paket]' where noSpeedy = '$HTTP_POST_VARS[user]'"); } else { mysql_query(" update pelanggan set portTetap = '$HTTP_POST_VARS[port]', nama = '$HTTP_POST_VARS[nama]', noFlexi = $HTTP_POST_VARS[flexi], paket = '$HTTP_POST_VARS[paket]' where noSpeedy = '$HTTP_POST_VARS[user]'"); } echo("<br><br><br><br><br>Data berhasil diedit"); }
i) Halaman hapus data
Gambar 4.9 Halaman hapus data
Gambar 4.9 merupakan tampilan halaman hapus data. Terdapat konfirmasi
apakah akan melanjutkan penghapusan data atau tidak. Jika ya maka data akan
61
dihapus dari basisdata, sedangkan jika tidak maka akan kembali ke halaman hasil
pencarian data. Berikut ini adalah potongan kode program untuk menghapus data
yang terdapat dalam basisdata:
mysql_query("delete from pelanggan where noSpeedy='$HTTP_GET_VARS[datahapus]'");
echo("<br><br><br><br><br>Data berhasil dihapus"); echo("<br><br><a href=caridata.php>klik untuk kembali</a>");
j) Halaman history SMS
Gambar 4.10 Halaman history SMS
Gambar 4.10 merupakan tampilan halaman history SMS. Pada halaman
tersebut ditampilkan data-data SMS yang tersimpan di dalam basisdata yang
ditampilkan urut dari SMS yang paling terakhir diterima. Halaman ini menampilkan
62
5 data SMS pada setiap halamannya. Untuk melihat data SMS setelahnya atau
sebelumnya, terdapat link “<< sebelumnya” dan “sesudahnya >>” pada bagian bawah
tabel. Berikut ini adalah potongan kode program untuk menampilkan data SMS yang
terdapat dalam basisdata:
$jumhistsms=mysql_fetch_array(mysql_query("SELECT count(*) as jumSms FROM sms"));
$histsms=mysql_query("SELECT pengirim, sms, waktuKirim, status FROM sms ORDER BY waktuKirim DESC LIMIT $HTTP_GET_VARS[awal], 5");
if($jumhistsms['jumSms'] == 0) { echo("Tidak ada data history sms"); } else { ?> <table border="0" cellspacing="0" cellpadding="10"
class="tabel"> <tr> <td align="center" width="100px" class="head">
No Pengirim</td> <td align="center" width="200px" class="head">
Isi SMS</td> <td align="center" width="100px" class="head">
Waktu Kirim</td> <td align="center" width="50px" class="head">
Status</td> </tr> <?
while($hasil=mysql_fetch_array($histsms)) { echo(" <tr> <td align=center class='isitabel'>
$hasil[pengirim]</td> <td align=center class='isitabel'>
$hasil[sms]</td> <td align=center class='isitabel'>
$hasil[waktuKirim]</td> <td align=center class='isitabel'>
$hasil[status]</td> </tr> "); }
63
?> </table> <br> <?
if($HTTP_GET_VARS['awal']==0) { if($HTTP_GET_VARS['awal']+4 < $jumhistsms['jumSms']) { $awal=$HTTP_GET_VARS['awal']+4; echo("<a href='historysms.php?awal=$awal'
class='history'>berikutnya >></a>"); } } else if($HTTP_GET_VARS['awal']+4 > $jumhistsms['jumSms']) { $awal=$HTTP_GET_VARS['awal']-4; echo("<a href='historysms.php?awal=$awal'
class='history'><< sebelumnya</a>"); } else { $awal1=$HTTP_GET_VARS['awal']-4; $awal2=$HTTP_GET_VARS['awal']+4; echo("<a href='historysms.php?awal=$awal1'
class='history'><< sebelumnya</a>
<a href='historysms.php?awal=$awal2' class='history'>berikutnya >></a>");
} }
64
k) Halaman history binding
Gambar 4.11 Halaman history binding
Gambar 4.11 merupakan tampilan halaman history binding. Halaman ini
serupa dengan halaman history SMS hanya saja yang ditampilkan adalah data-data
proses bind/unbind yang pernah dilakukan. Berikut ini adalah potongan kode
program untuk menampilkan data proses bind/unbind yang terdapat dalam basisdata:
$jumhistbind=mysql_fetch_array(mysql_query("SELECT count(*) as jumBind FROM binding"));
$histbind=mysql_query("SELECT noSpeedy, aksi, waktu FROM binding ORDER BY waktu DESC LIMIT $HTTP_GET_VARS[awal], 5");
if($jumhistbind['jumBind'] == 0) { echo("Tidak ada data history binding"); } else {
65
?> <table border="0" cellspacing="0" cellpadding="10"
class="tabel"> <tr> <td align="center" width="100px" class="head">
No Speedy</td> <td align="center" width="100px" class="head">
Aksi</td> <td align="center" width="200px" class="head">
Waktu</td> </tr> <? while($hasil=mysql_fetch_array($histbind)) { echo(" <tr> <td align=center class='isitabel'>
$hasil[noSpeedy]</td> <td align=center class='isitabel'>
$hasil[aksi]</td> <td align=center class='isitabel'>
$hasil[waktu]</td> </tr> "); } ?> </table> <br> <? if($HTTP_GET_VARS['awal']==0) { if($HTTP_GET_VARS['awal']+4 < $jumhistbind['jumBind']) { $awal=$HTTP_GET_VARS['awal']+4; echo("<a href='historybinding.php?awal=$awal'
class='history'>berikutnya >></a>"); } } else if($HTTP_GET_VARS['awal']+4 > $jumhistbind['jumBind']) { $awal=$HTTP_GET_VARS['awal']-4; echo("<a href='historybinding.php?awal=$awal'
class='history'><< sebelumnya</a>"); } else { $awal1=$HTTP_GET_VARS['awal']-4; $awal2=$HTTP_GET_VARS['awal']+4; echo("<a href='historybinding.php?awal=$awal1'
class='history'><< sebelumnya</a>
<a href='historybinding.php?awal=$awal2'
66
class='history'>berikutnya >></a>"); } }
l) Halaman menu admin
Gambar 4.12 Halaman menu admin
Gambar 4.12 merupakan tampilan halaman menu admin. Pada halaman ini
terdapat link untuk mengubah password, menambah admin, atau menghapus admin.
Ketiga pilihan menu tadi akan tampil apabila user yang melakukan login memiliki
status admin, jika statusnya biasa maka pilihan yang tersedia hanya untuk melakukan
pengubahan password.
67
m) Halaman ubah password
Gambar 4.13 Halaman ubah password
Gambar 4.13 merupakan tampilan halaman ubah password. Pada halaman ini,
user yang telah melakukan login dapat melakukan pengubahan password.
68
n) Halaman tambah admin
Gambar 4.14 Halaman tambah admin
Gambar 4.14 merupakan tampilan halaman tambah admin. Pada halaman ini,
user dengan status admin dapat menambahkan data user baru yang nantinya dapat
digunakan untuk mengakses aplikasi ini.
69
o) Halaman hapus admin
Gambar 4.15 Halaman hapus admin
Gambar 4.15 merupakan tampilan halaman hapus admin. Pada halaman ini,
user dengan status admin dapat menghapus data user lainnya yang tersimpan di dalam
basisdata.
4.3. Pemanggilan Proses Bind/Unbind
Proses bind/unbind dilakukan dengan cara memanggil sebuah alamat dari web
intranet PT Telkom Tbk dengan menyertakan nomor Speedy dan port yang akan di
bind/unbind. Pemanggilan proses bind/unbind ini dilakukan berdasarkan hasil
perhitungan pemakaian Speedy oleh pelanggan (secara otomatis) atau berdasarkan
70
SMS yang dikirim oleh pelanggan yang telah terdaftar dalam sistem ini. Untuk
pemanggilan proses bind/unbind secara otomatis, jika paket yang digunakan adalah
Time Based, maka nomor Speedy akan di bind jika pemakaian Speedy telah melebihi
quota 50 jam. Jika paket yang digunakan adalah Volume Based, maka nomor Speedy
akan di bind jika pemakaian Speedy telah melebihi quota 1 GB (gigabyte).
Untuk mengetahui total waktu yang telah digunakan pelanggan dalam
mengakses Speedy, digunakan fungsi waktuAkses yang isinya sebagai berikut:
DELIMITER $$ DROP FUNCTION IF EXISTS `sms`.`waktuAkses`$$ CREATE FUNCTION `waktuAkses`(uname varchar(255), bln varchar(255)) RETURNS int(11) READS SQL DATA BEGIN declare done int default 0; declare a,b datetime; declare hasil time; declare hasilwaktu time default 0; DECLARE cur CURSOR FOR SELECT start,stop FROM detail_pemakaian where substr(username,1,12) like (uname) and substr(start,6,2) like bln; DECLARE CONTINUE HANDLER FOR 1329 SET done = 1; OPEN cur; REPEAT FETCH cur INTO a,b; IF NOT done THEN select timediff(b,a) into hasil; select addtime(hasilwaktu,hasil) into hasilwaktu; END IF; UNTIL done = 1 END REPEAT; CLOSE cur; RETURN HOUR(hasilwaktu); END$$ DELIMITER ;
71
Untuk mengetahui total transfer data yang terjadi selama pelanggan
mengakses Speedy, digunakan perintah query yang dimasukkan ke dalam tag PHP
berikut:
$hasil=mysql_fetch_array(mysql_query("
select (sum(replace(total,'.','')))/1000000 as vol
from detail_pemakaian
where username like '$hslusername[username]'
and substring(start,6,2) like '$bln'"));
Pada pemanggilan proses bind/unbind berdasarkan SMS dari pelanggan,
terlebih dahulu akan dilakukan pembacaan data dari basisdata apakah ada SMS baru
atau tidak. Jika ada SMS baru, maka isi SMS tersebut (yang telah tersimpan dalam
basisdata) akan dicek apakah memenuhi kriteria atau tidak. Hal-hal yang dicek
adalah apakah nomor pengirim ada di dalam basisdata pelanggan, dan apakah sesuai
antara nomor pengirim, nomor Speedy, dengan nomor PSTN-nya. Jika semuanya
sesuai, maka permintaan bind/unbind akan dilakukan. Pemanggilan proses
bind/unbind dapat dilihat pada listing berikut:
$alamat="http://os3.divre4.telkom.co.id/?mode=RadMgt&func=bind_process&reffAct=$hslsms[aksi]&setKey1=2&usernm=$hslsms[nos]@telkom.net&CallID=0000";
$run=fopen("$alamat",'r');
4.4. Proses Pembacaan dan Pengiriman SMS
Proses pembacaan dan pengiriman SMS ditangani oleh aplikasi Java.
Aplikasi yang digunakan untuk melakukan proses tersebut akan membaca kartu SIM
yang terdapat di dalam modem melalui port yang sesuai. SMS yang diterima oleh
72
kartu SIM akan dibaca oleh aplikasi ini dan jika berasal dari nomor Flexi Yogyakarta
maka data SMS tersebut akan disimpan ke dalam basisdata. SMS yang berasal dari
nomor-nomor lain, dan SMS yang telah disimpan ke dalam basisdata akan dihapus
dari kartu SIM agar memori SMS di dalam kartu SIM tidak penuh.
Kode program yang digunakan untuk mengecek apakah ada SMS baru atau
tidak adalah sebagai berikut:
String sAT = "AT+CMGL=\"uread\""; try { outStream.write((sAT+"\015").getBytes()); outStream.flush(); } catch (IOException ioe) { System.out.println(ioe); }
Sedangkan kode program yang digunakan untuk mengecek nomor pengirim SMS
adalah sebagai berikut:
posisiIndeksSms = isiSmsBaru[i].indexOf(",\"REC UNREAD")-2;
noAwal = posisiIndeksSms+21;
if(isiSmsBaru[i].substring(posisiIndeksSms,
posisiIndeksSms+1).equalsIgnoreCase(":")) {
posisiIndeksSms += 1;
noAwal = posisiIndeksSms+20;
}
isiSementara = isiSmsBaru[i].substring(posisiIndeksSms);
posisiAkhirIndeksSms = isiSementara.indexOf(",");
bacaIndeksSms = Integer.parseInt(
isiSmsBaru[i].substring(posisiIndeksSms,
posisiIndeksSms+posisiAkhirIndeksSms));
noKode = isiSmsBaru[i].substring(noAwal-4,noAwal);
noAwal = Integer.parseInt
(isiSmsBaru[i].substring(noAwal,noAwal+1));
if((noAwal == 6 || noAwal == 7) && noKode.equalsIgnoreCase("0274"))
{
indeksSms[arrIndeksSms]=bacaIndeksSms;
arrIndeksSms++;
} else {
73
indeksSmsHapus[arrIndeksSmsHapus]=bacaIndeksSms;
arrIndeksSmsHapus++;
}
Pengiriman SMS ke pelanggan dilakukan jika proses bind/unbind telah
berhasil dilakukan. Untuk mengetahui apakah proses bind/unbind sudah berhasil
dilakukan, dilakukan pembacaan data pada basisdata. Jika status pada tabel “sms”
sudah “sukses”, maka berarti proses bind/unbind sudah berhasil dilakukan sehingga
SMS konfirmasi akan dikirimkan ke pelanggan dan status pada tabel “sms” akan
diubah menjadi “konfirm”. Kode programnya adalah sebagai berikut:
query = "select id_sms, pengirim from sms where status = 'sukses'
order by waktuKirim";
try {
Statement stmt = Koneksi.koneksi.createStatement();
ResultSet rs = stmt.executeQuery(query);
rs.last();
int n=rs.getRow();
String[] noPengirim = new String[n];
Integer[] idSMS = new Integer[n];
rs.beforeFirst();
int i=0;
while(rs.next()) {
idSMS[i] = rs.getInt(1);
noPengirim[i] = rs.getString(2);
i++;
}
rs.close();
stmt.close();
for(int krm=0; krm<i; krm++) {
String sAT = "AT+CMGS=\""+noPengirim[krm]+"\"";
try {
outStream.write((sAT+"\015").getBytes());
outStream.flush();
} catch (IOException ioe) {
System.out.println(ioe);
}
74
sAT = "Permintaan Anda telah berhasil dilakukan";
try {
outStream.write((sAT+"\032").getBytes());
outStream.flush();
} catch (IOException ioe) {
System.out.println(ioe);
}
try {
Thread thread = Thread.currentThread();
thread.sleep(5000);
} catch (InterruptedException e) {}
}
for(int upd=0; upd<i; upd++) {
query = "update sms set status='konf' where
id_sms="+idSMS[upd];
try {
stmt = Koneksi.koneksi.createStatement();
stmt.executeUpdate(query);
stmt.close();
} catch(SQLException e) {
System.out.println("Eror sqlnya: " + e);
}
}
} catch(SQLException e) {
System.out.println("Eror sqlnya: " + e);
}
Format SMS yang dikirim oleh pelanggan agar permintaan bind/unbind dapat
dilakukan adalah “aksi nomor_speedy nomor_pstn”.
Contoh:
• BIND 141113100345 884354
• UNBIND 141116100004 442135
75
BAB V
ANALISIS HASIL IMPLEMENTASI
5.1. Hasil Pengujian Sistem
Sistem ini dapat digunakan setelah lingkungan yang dibutuhkan oleh sistem
ini tersedia. User perlu melakukan instalasi Java, Apache, dan MySQL. User juga
perlu men-setting lingkungan Java-nya agar aplikasi Java pada sistem ini dapat
berjalan dengan baik. Pengujian dilakukan dengan menggunakan modem MultiTech
System, yaitu CDMA wireless modem dan kartu SIM yang digunakan adalah Flexi.
Pengaturan boleh tidaknya pelanggan mengakses Speedy dilakukan melalui
SMS dan otomatis (melalui penghitungan pengaksesan Speedy oleh pelanggan).
SMS dari pelanggan akan ditangani oleh aplikasi Java yang akan menyimpan SMS
tersebut ke dalam basisdata, untuk kemudian dilakukan proses bind/unbind yang
ditangani oleh aplikasi PHP.
Hasil yang didapat dari pengujian sistem adalah bahwa sistem ini dapat
berjalan dengan baik, dengan beberapa kelemahan yang masih terdapat di dalamnya.
5.2. Kelebihan Sistem
Berdasarkan pengujian yang dilakukan terhadap sistem ini, maka diperoleh
hasil bahwa sistem ini memiliki beberapa kelebihan berikut:
76
1. Antarmuka yang disediakan oleh aplikasi mudah dimengerti sehingga
pengguna tidak mengalami kesulitan untuk menggunakan aplikasi SMS
binding ini.
2. Instalasi aplikasi ke dalam komputer pengguna dapat dilakukan dengan
cara yang sangat mudah, yaitu dengan meng-copy file ke dalam komputer
pengguna.
5.3. Kekurangan Sistem
Berdasarkan pengujian yang dilakukan terhadap sistem ini, maka diperoleh
hasil bahwa sistem ini memiliki beberapa kekurangan berikut:
1. SMS yang akan disimpan ke dalam basisdata adalah semua SMS yang
berasal dari nomor Flexi Yogyakarta (berawalan 6 atau 7) tanpa melihat
apa isi SMS tersebut. Hal ini dikarenakan pada saat melakukan
penyimpanan ke dalam basisdata tidak dilakukan pengecekan isi SMS
terlebih dahulu. Pengecekan dilakukan ketika akan dilakukan
pemanggilan proses bind/unbind.
2. Aplikasi Java untuk menangani SMS dari pelanggan tidak memiliki
antarmuka sehingga untuk menghentikan prosesnya harus melalui Task
Manager dari Windows.
3. Keberhasilan proses bind/unbind tidak dapat diketahui, karena nilai
balikan dari pemanggilan web intranet Telkom selalu sukses.
77
BAB VI
PENUTUP
6.1. Kesimpulan
Aplikasi pengaturan layanan akses internet Speedy melalui SMS ini dapat
berfungsi dengan baik. Pelanggan Speedy dapat mengatur pemakaian Speedy melalui
SMS dari nomor Flexi sehingga membantu pelanggan dalam mengelola pengaksesan
layanan internet Speedy.
Sistem ini memiliki kelebihan pada proses instalasinya karena user hanya
perlu meng-copy file aplikasinya saja, namun juga memiliki beberapa kekurangan
antara lain semua SMS dari nomor Flexi Yogyakarta akan disimpan ke dalam
basisdata, penghentian proses yang menangani SMS harus melalui Task Manager,
dan berhasil tidaknya proses bind/unbind tidak dapat diketahui.
6.2. Saran
Aplikasi ini dapat dikembangkan lagi untuk menangani paket-paket Speedy
yang lain, tidak hanya pada paket Time Based dan Volume Based.
78
DAFTAR PUSTAKA
AT Commands for CDMA Wireless Modems. (2004). Reference Guide MultiTech Systems. Gunawan, Ferry. Membuat Aplikasi SMS Gateway Server dan Client dengan Java
dan PHP. (2004). Jakarta: PT Elex Media Komputindo Kelompok Gramedia. Hakim, Lukmanul; Musalini, Uus. 150 Rahasia dan Trik Menguasai PHP. (2003) Jakarta: PT Elex Media Komputindo Kelompok Gramedia.
Pedoman Penulisan Skripsi. (2004). Yogyakarta: Universitas Sanata Dharma. Priyanto, Rahmat. Belajar Sendiri Menguasai MySQL. (2007). Jakarta: PT Elex Media Komputindo Kelompok Gramedia.
Wahyudi, Henricus (045314003); Ristikasari, Maria Yunita (045314023). (2007).
Aplikasi Pengambilan Data dari Web Intranet Telkom Menggunakan PHP dan
MySQL. Yogyakarta: Laporan Kerja Praktik Universitas Sanata Dharma. Whitten, Jeffrey L.; Bentley, Lonnie D.; Dittman, Kevin C. (2004). Metode Desain
dan Analisis Sistem (edisi 6). Yogyakarta: Penerbit Andi.
Top Related