Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
PROGRAM MONITORING PENYEDIAAN STOK MATERIAL DALAM
OPERASI HARIAN ACCESS NETWORK OPERATION DENGAN
PENANGANAN MANAJEMEN TRANSAKSI
(STUDI KASUS DI PT TELKOM KANDATEL LAMPUNG)
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Sains dan Teknologi
Program Studi Teknik Informatika
Oleh:
Mei Vita Utami
NIM : 045314072
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
i
MONITORING PROGRAMME OF MATERIAL STOCK PROVIDING
ON DAILY OPERATION of ACCESS NETWORK OPERATION WITH
TRANSACTION MANAGEMENT HANDLING
(CASE STUDY AT PT TELKOM KANDATEL LAMPUNG)
A Thesis
Presented as partial Fulfillment of the Requirements
to Obtain the First Degree of Science and Technology
in Informatics Engineering Department
Created By:
Mei Vita Utami
NIM : 045314072
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
ii
HALAMAN PERSETUJUAN
Judul : PROGRAM MONITORING PENYEDIAAN STOK
MATERIAL DALAM OPERASI HARIAN ACCESS
NETWORK OPERATION DENGAN PENANGANAN
MANAJEMEN TRANSAKSI (STUDI KASUS DI PT TELKOM
KANDATEL LAMPUNG)
Nama : Mei Vita Utami
NIM : 045314072
Mata Kuliah : Tugas Akhir Kode : TIF 402
Semester : Genap Tahun Akademik : 2007/2008
Fakultas : Sains dan Teknologi
Program Studi : Teknik Informatika
Telah disetujui oleh :
Dosen Pembimbing I
JB.Budi Darmawan, S.T.,M.Sc. tanggal: 17 November 2008
SKRIPSI
PROGRAM MONITORING PENYEDIAAN STOK MATERIAL DALAM
OPERASI HARIAN ACCESS NETWORK OPERATION DENGAN
PENANGANAN MANAJEMEN TRANSAKSI
(STUDI KASUS DI PT TELKOM KANDATEL LAMPUNG)
Dipersiapkan dan ditulis oleh :
Mei Vita Utami
NIM : 045314072
Telah dipertahankan di depan Panitia Penguji
pada tanggal 27 Oktober 2008
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua : Ridowati Gunawan S.Kom., M.T. ................
Sekertaris : JB. Budi Darmawan, S.T., M.Sc. ................
Anggota : Drs.C.Kuntoro Adi SJ, MA, M.Sc., Ph.D. ................
Yogyakarta,Fakultas Sains dan TeknologiUniversitas Sanata DharmaWakil Dekan I
(Yosef Agung Cahyanta, S.T., M.T.)
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan dan daftar pustaka, sebagai layaknya karya ilmiah.
Yogyakarta, November 2008
Penulis
Mei Vita Utami
HALAMAN PERSEMBAHAN
Percayalah kepada Tuhan dengan segenap hatimu, dan janganlah bersandar kepada
pengertianmu sendiri (Amsal 3:5)
Tak terasa begitu cepat waktu berjalan tanpa kusadari ...Teringat akan rintangan, cobaan dan godaan yang
mengiringi langkah kaki, demi mewujudkan impian ... Mengorbankan segala yang ada demi secercah
cahaya harapan. Hanya TUHAN-lah yang selalu menuntunku ‘tuk selalu berjalan ke depan, bersama orang-
orang terkasih ....
Karya ini kupersembahkan untuk :
My JESUS in the Heaven
Thank You LORD, YOU teach me what’s the meaning of struggle in my
life. Without YOU, i can’t do anything in this world.
Ibu dan Bapak tercinta, terima kasih untuk dukungan dan
nasehat yang berharga dalam hidupku
serta semua orang terkasih yang sudah memberiku pelajaran berharga dalam
hidupku
Thank you so much ...
SEMOGA KARYA INI BERMANFAAT BAGI SEMUA PIHAK
vi
God bless you all ...
LEMBAR PERNYATAAN PERSETUJUANPUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Mei Vita Utami
Nomor Mahasiswa : 045314072
Demi pengembangan ilmu pengetahuan, saya memberikan kepada PerpustakaanUniversitas Sanata Dharma karya ilmiah saya yang berjudul :
“ Program Monitoring Penyediaan Stok Material Dalam Operasi HarianAccess Network Operation Dengan Penanganan Manajemen Transaksi
(Studi Kasus Di PT Telkom Kandatel Lampung) “
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikankepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, me-ngalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau medialain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupunmemberikan royalti kepada saya selama tetap mencantumkan nama saya sebagaipenulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 26 November 2008
Yang menyatakan
( Mei Vita Utami )
ABSTRAKSI
Dalam perusahaan Telkom, terdapat bagian yang berperan sebagai
penyedia material. Unit Telkom Access Network Operation (ANO), menangani
banyak permasalahan mengenai stok material untuk kebutuhan pasang baru
wireline yang disediakan perusahaan Telkom. Dari beberapa masalah penanganan
stok material, penulis mengambil masalah pengontrolan stok material untuk
pasang baru wireline. Program ini dikembangkan untuk membantu menangani
penyediaan stok material yang digunakan di PT Telkom dalam operasi hariannya.
Operasi harian yang di bahas dalam skripsi ini hanya terbatas untuk
mengontrol penggunaan stok material untuk pasang baru wireline ke pelanggan
Telkom. Program ini hanya menangani jumlah stok material yang masih tersedia
dan untuk memonitor keluar masuknya barang yang digunakan mitra Telkom
untuk kegiatan pasang baru wireline. Skripsi ini menggunakan metode penelitian
dengan melakukan studi kepustakaan mengenai teori-teori yang berhubungan
dengan skripsi ini, melakukan pendekatan Rekayasa Perangkat Lunak (RPL)
Terstuktur, mendesain sistem, mengimplementasi sistem dan melakukan
pengujian terhadap program yang dibuat dalam skripsi ini.
Pembuatan program ini menggunakan teknologi perangkat lunak PHP dan
web server MySQL. Program ini dapat memberikan informasi mengenai
penggunaan stok material per mitra Telkom secara up-to-date. Program ini
menerapkan manajemen transaksi untuk membantu mengatasi concurrency
control.
viii
ABSTRACT
In the Telkom company, there is a unit serving as material provider.
Access Network Operation (ANO) unit is one of Telkom unit which handles
wireline installation and networking. In this research, the writer focused on the
problem of material stock control for new wireline isntallation. This application is
developed for assisting PT Telkom in daily stock controlling.
The object of the daily research here is limited on controlling the use of
material for new customer’s wireline installation. This programme is applicable
for controlling the amount of stock material available at Telkom’s storehouse and
the material circulation used by Telkom’s partners for their wireline installation
activities. The method used in this research is literature study, a structured
Software engineering, system design, system implementation and system
examination.
This program used PHP software technology and MySQL web server.
This system is capable of providing updated information about the material stock
used by Telkom’s partners. The program apllied transaction management to
helping avoid concurrency control handling.
ix
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa atas segala berkat dan
karuniaNya yang senantiasa berlimpah kepada penulis, sehingga penulis dapat
menyelesaikan skripsi dengan judul “Program Monitoring Penyediaan Stok
Material dalam Operasi Harian Access Network Operation dengan Penanganan
Manajemen Transaksi (Studi Kasus di PT Telkom Kandatel Lampung)”.
Penulisan skripsi ini merupakan salah satu persyaratan untuk mendapatkan
gelar Sarjana Teknik pada fakultas Teknik, Universitas Sanata Dharma
Yogyakarta. Selain itu diharapkan dapat membantu PT. Telekomunikasi
Indonesia Kandatel Lampung bagian ANO dalam mengelola Data Material untuk
pekerjaan Pasang Baru (PSB) wireline.
Mengingat waktu dan tenaga yang terbatas dalam menyelesaikan skripsi
ini, penulis banyak menemui kesulitan, sehingga penulis sangat menyadari bahwa
pembuatan skripsi ini sangat jauh dari kesempurnaan. Oleh karena itu, apabila
terdapat kesalahan-kesalahan yang tidak disengaja, penulis memohon maaf yang
sebesar-besarnya. Penulis juga mengharapkan kritik dan saran yang bersifat
membangun dan bermanfaat dari berbagai pihak untuk perbaikan skripsi ini.
Pada kesempatan yang baik ini, penulis mengucapkan terima kasih
sebesar-besarnya antara lain kepada:
1. Bapak JB.Budi Darmawan, S.T., M.Sc., selaku Dosen Pembimbing yang
telah memberikan bimbingan dan pengarahan kepada penulis dalam
menyusun skripsi ini.
x
2. Ibu Agnes Maria Polina, S.Kom, M.sc, selaku Dosen Pembimbing
Akademik yang telah memberikan pengarahan kepada penulis ketika
penulis sedang mencari judul tugas akhir ini.
3. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku Ketua jurusan
Teknik Informatika Universitas Sanata Dharma.
4. Segenap Dosen dan Karyawan Jurusan Teknik Informatika, terima kasih
untuk semua ilmu dan pelayanannya.
5. Bapak Yohanes Kaptin sebagai Manager PT. Telekomunikasi Indonesia
Tbk, Kandatel Lampung Unit Access Network Operation (ANO) sekaligus
pembimbing lapangan penulis yang telah membimbing penulis dalam
pembuatan skripsi ini serta memberi kesempatan kepada penulis untuk
dapat menerapkan ilmu yang telah didapat dalam dunia kerja.
6. Mas Yohan sebagai pembimbing lapangan penulis yang juga telah
membimbing penulis dan banyak membantu penulis dalam pembuatan
aplikasi program ini.
7. Seluruh Staf dan Karyawan PT. Telekomunikasi Indonesia Tbk, Kandatel
Lampung unit ANO atas segala waktu dan ilmunya yang diberikan kepada
kami.
8. Orang tuaku yang telah memberikan semangat dan dorongan yang sangat
berharga dalam menyelesaikan studi penulis di Fakultas Teknik Jurusan
Informatika Universitas Sanata Dharma Yogyakarta.
9. Dhani, buat saran-sarannya, thank’s a lot ya! Tetap semangat dan sukses
terus buat karirnya.
xi
10. Teman-teman Teknik Informatika angkatan 2004. Terima kasih atas
kebersamaan dalam suka dan duka selama kuliah di Universitas Sanata
Dharma ini.
11. Semua pihak yang tidak dapat penulis sebutkan satu per satu yang telah
membantu penulis dalam menyelesaikan skripsi ini.
Semoga segala yang telah mereka berikan kepada penulis, akan mendapatkan
balasan dari Tuhan Yang Maha Esa.
Akhir kata, penulis berharap semoga skripsi ini dapat memberikan
manfaat kepada semua pihak yang membaca dan memerlukan.
Yogyakarta, November 2008
penulis,
Mei Vita Utami
\
xii
DAFTAR ISI
Halaman
HALAMAN JUDUL .................................................................................... i
HALAMAN PERSETUJUAN PEMBIMBING .......................................... iii
HALAMAN PENGESAHAN ...................................................................... iv
PERNYATAAN KEASLIAN KARYA ....................................................... v
HALAMAN PERSEMBAHAN ................................................................... vi
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH …… vii
ABSTRAKSI ................................................................................................ viii
ABSTRACT ................................................................................................. ix
KATA PENGANTAR .................................................................................. x
DAFTAR ISI .................................................................................................xiii
DAFTAR GAMBAR ....................................................................................xix
DAFTAR TABEL .........................................................................................xxii
BAB I PENDAHULUAN .......................................................................... 1
1.1. Latar Belakang ...........................................................................1
1.2. Rumusan Masalah ......................................................................3
1.3. Batasan Masalah ........................................................................ 4
1.4. Tujuan Penelitian ...................................................................... 4
1.5. Manfaat Penelitian ................................................................... 5
1.6. Metode Penelitian ..................................................................... 5
1.7. Sistematika Penulisan ............................................................... 7
xiii
BAB II LANDASAN TEORI .................................................................... 9
2.1. Monitoring Operasi Harian ....................................................... 9
2.2. Access Network Operation (ANO) ......................................... 10
2.3. Metodologi Rekayasa Perangkat Lunak Terstruktur
(Whitten, 2004) ......................................................................... 11
2.3.1. Use Case Diagram ........................................................... 12
2.3.2. Data Flow Diagram (DFD) ............................................. 13
2.3.2.1. Simbol dan Koneksi yang Digunakan dalam DFD.. 13
2.3.3. Entity Relationship Diagram (E-R Diagram) ................... 15
2.3.4. Logical Design ................................................................ 16
2.3.5. Physical Design ................................................................ 17
2.4. Tinjauan MySQL ...................................................................... 17
2.4.1. Pengertian Umum MySQL ............................................... 17
2.4.2. Structured Query Language (SQL) pada MySQL ............ 17
2.4.3. Procedure dan Function dalam MySQL ........................... 18
2.4.4. InnoDB dan MyISAM ...................................................... 19
2.5. Manajemen Transaksi ............................................................... 20
2.5.1. Concurrency Control ........................................................ 22
2.5.2. Two-Phase Locking atau 2PL ...........................................22
2.6. Tinjauan PHP .............................................................................27
2.6.1. Pengertian Umum PHP .....................................................27
2.6.2. Fungsi MySQL Dalam PHP ............................................. 27
2.6.3. Include ...............................................................................29
xiv
2.6.4. Require ..............................................................................30
2.6.5. Session Handling .............................................................. 31
2.7. XAMPP ..................................................................................... 32
2.8. PHPMyAdmin ........................................................................... 32
BAB III ANALISA DAN PERANCANGAN SISTEM ............................. 34
3.1. Analisa Sistem ........................................................................... 36
3.1.1. Gambaran Umum Sistem ................................................. 36
3.1.2. Analisa Ruang Lingkup Sistem ....................................... 37
3.2. Pemodelan Sistem Lama ........................................................... 40
3.2.1. Logical Design Sistem Lama ........................................... 40
3.3. Penjelasan Singkat Mengenai Perbandingan Antara Sistem
Lama dengan Sistem Baru ........................................................ 41
3.4. Pemodelan Sistem Baru ............................................................ 42
3.4.1. Requirement Anlisis ......................................................... 42
3.4.2. Data Flow Diagram .......................................................... 43
3.4.3. Logical Design ..................................................................51
3.4.4. Physical Design ….............................................................54
3.4.4.1. Tabel Login ..............................................................54
3.4.4.2. Tabel Konfigurasi .................................................... 55
3.4.4.3 Tabel Pelanggan ........................................................55
3.4.4.4. Tabel Datek_psb ...................................................... 58
3.4.4.5. Tabel Material_Telkom ........................................... 61
3.4.4.6. Tabel Material_Mitra .............................................. 61
xv
3.4.4.7. Tabel Mitra ............................................................. 62
3.4.4.8. Tabel Pemakaian_Material_Pelanggan ................... 63
3.4.4.9. Tabel Detail_Pemakaian_Pelanggan ....................... 64
3.4.4.10. Tabel Pemakaian_Material_Mitra ......................... 65
3.4.4.11. Tabel Detail_Pemakaian_Mitra ............................ 67
BAB IV IMPLEMENTASI SISTEM DAN PEMBAHASAN HASIL ...... 68
4.1. Karakteristik Sistem .................................................................. 68
4.2. Pengaturan Koneksi PHP ke database MySQL ......................... 69
4.3. User Interface ............................................................................ 71
4.3.1. Input dan Output User Interface ...................................... 71
4.3.1.1. Input Login User dan Administrator ....................... 71
4.3.1.2. Input Daftar Username Untuk User dan
Aministrator ............................................................. 72
4.3.1.3. Input Ubah Password User dan Administrator …... 73
4.3.1.4. Menu Data Pelanggan .............................................. 74
4.3.1.5. Output Menu Data Pelanggan ..................................75
4.3.1.6. Menu Rekap Data Pemakaian Material Mitra ......... 76
4.3.1.7. Output Menu Rekap Pemakaian Material Mitra ......76
4.3.1.8. Menu Tambah Data Pemakaian Material Mitra .......77
4.3.1.9. Input Menu Tambah DataPemakaian Material Mitra.78
4.3.1.10. Output Menu Tambah Data Pemakaian
Material Mitra........................................................... 81
4.3.1.11. Input Pencarian Data Pelanggan Berdasarkan Tanggal
xvi
Pemakaian Material Mitra ke Pelanggan ............... 83
4.3.1.12. Input Nomor Request Pada Menu Edit Data Pemakaian
Material Mitra ........................................................ 84
4.3.1.13. Input Menu Edit Data Pemakaian Material Mitra 85
4.1.3.14. Output Menu Edit Data Pemakaian Material
Mitra ......................................................................87
4.3.1.15. Input Menu Tambah Data Pemakaian Material
Pelanggan................................................................88
4.3.1.16. Output Menu Tambah Data Pemakaian Material
Pelanggan ...............................................................91
4.3.1.17. Input Awal Menu Edit Data Pemakaian Material
Pelanggan …...........................................................93
4.3.1.18. Input Menu Edit Data Pemakaian Material
Pelanggan .............................................................. 94
4.3.1.19. Output Menu Edit Data Pemakaian Material
Pelanggan ...............................................................96
4.3.1.20. Menu Awal Cari Data Pemakaian Material
Pelanggan ...............................................................96
4.3.1.21. Menu Cari Data Pemakaian Material
Pelanggan .............................................................. 97
4.3.1.22. Menu Awal Hapus Data Pemakaian Material
Pelanggan ............................................................... 100
4.3.1.23. Menu Input Hapus Data Pemakaian Material
xvii
Pelanggan ...............................................................101
4.4. Penggunaan Store Procedure Pada Sistem Baru........................ 103
4.5. Analisa Sistem Lama Dan Sistem Baru..................................... 109
BAB V KESIMPULAN DAN SARAN ...................................................... 112
5.1. Kesimpulan ................................................................................ 112
5.2. Saran .......................................................................................... 112
DAFTAR PUSTAKA ................................................................................... 113
xviii
DAFTAR GAMBAR
Gambar Keterangan Halaman2.1 Simbol Actor 122.2 Simbol Use Case 122.3 Simbol Asosiasi 122.4 Rounded Rectangles 132.5 Square 142.6 Open-Ended Boxes 142.7 Arrow 142.8 Simbol Entitas 152.9 Simbol Relasi 162.10 Simbol Atribut 163.1 ER Diagram Sistem Lama 403.2 Use Case Diagram 423.3 Context Diagram 443.4 Diagram Berjenjang 463.5 Overview Diagram 483.6 DFD Level 2 Proses 3 493.7 DFD Level 2 Proses 4 503.8 E-R Diagram 523.9 Logical Design 534.1 Script koneksi.php 704.2 Input Login 714.3 Input Daftar 724.4 Input Ubah Password 744.5 Menu Data Pelanggan 744.6 Output Menu Data Pelanggan Yang Belum Di-input-
kan75
4.7 Output Menu Data Pelanggan Yang Sudah Di-input-kan
75
4.8 Menu Rekap Data Pemakaian Material Mitra 764.9 Output Menu Rekap Data Pemakaian Material Mitra 764.10 Menu Tambah Data Pemakaian Material Mitra 774.11 Input Menu Tambah Data Pemakaian Material Mitra 794.12 Output Menu Tambah Data Material Mitra 814.13 Peringatan Ketika Nomor Request yang diinputkan
User sama dengan yang Sebelumnya82
4.14 Peringatan Ketika Stok Gudang Telkom Tinggal 40000 824.15 Peringatan Ketika Stok Gudang Telkom Sudah Habis 824.16 Input Pencarian Data Pelanggan Berdasarkan
Tanggal Pemakaian Material Mitra83
4.17 Input Nomor Request untuk Edit Data PemakaianMaterial Mitra
84
xix
4.18 Peringatan Jika Nomor Request Tidak Ada DalamDatabase
84
4.19 Peringatan Jika Tidak meng-input-kan Nomor Request 854.20 Input Menu Edit Data Pemakaian Material Mitra 854.21 Peringatan Ketika Stok Gudang Telkom Tinggal 40000 864.22 Peringatan Ketika Stok Gudang Telkom Sudah Habis 864.23 Output Menu Edit Data Pemakaian Material Mitra 874.24 Input Menu Tambah Data Pemakaian Material
Pelanggan89
4.25 Peringatan Jika Salah Satu Stok Material di Salah SatuMitra Kurang dari 40000
90
4.26 Peringatan Jika Salah Satu Stok Material di Salah SatuMitra Habis
90
4.27 Output Menu Tambah Data Pemakaian MaterialPelanggan
91
4.28 Peringatan Jika Nomor Pemakaian Yang Di-input-kanSama
91
4.29 Peringatan Jika Nomor Pemakaian Belum diisi 924.30 Peringatan Jika Mitra belum diisi 924.31 Peringatan Jika Nomor Telepon Tidak Ada Dalam
Database92
4.32 Peringatan Jika Nomor Telepon Belum Diisi User 924.33 Input Awal Menu Edit Data Pemakaian Material
Pelanggan93
4.34 Peringatan Jika Nomor Telepon Belum Diisi User 934.35 Peringatan Jika Nomor Telepon Belum diinputkan 934.36 Input Menu Edit Data Pemakaian Material Pelanggan 944.37 Peringatan Jika Salah Satu Stok Material di Salah Satu
Mitra Kurang dari 4000095
4.38 Peringatan Jika Salah Satu Stok Material di Salah SatuMitra Habis
95
4.39 Output Menu Edit Data Pemakaian Material Pelanggan 964.40 Menu Awal Cari Data Pemakaian Material Pelanggan 964.41 Sintaks Pencarian Data Pemakaian Material Pelanggan
Berdasarkan Nama Pelanggan98
4.42 Input Beserta Output Pencarian Data PemakaianMaterial Pelanggan Berdasarkan Nama Pelanggan
98
4.43 Input Beserta Output Pencarian Data PemakaianMaterial Pelanggan Berdasarkan Nama Mitra
99
4.44 Input Beserta Output Pencarian Data PemakaianMaterial Pelanggan Berdasarkan Tanggal Pemakaian
100
4.45 Input Awal Menu Hapus Data Pemakaian MaterialPelanggan
100
4.46 Peringatan Jika Nomor Telepon Tidak Ada DalamDatabase
101
xx
4.47 Output Halaman Konfirmasi Menu Hapus DataPemakaian Material Pelanggan
102
4.48 Sintaks Store Procedure Untuk Menu Tambah DataPemakaian Material Mitra
109
xxi
DAFTAR TABEL
Tabel Keterangan Halaman2.1 Tabel Masalah Hilangnya Data yang Diubah 232.2 Tabel Masalah Ketergantungan Transaksi yang
Belum Dilaksanakan24
2.3 Tabel Masalah Analisis yang Tidak Konsisten 253.1 Tabel Login 543.2 Tabel konfigurasi 553.3 Tabel pelanggan 553.4 Tabel datek_psb 583.5 Tabel material_telkom 613.6 Tabel material_mitra 613.7 Tabel mitra 623.8 Tabel pemakaian_material_ pelanggan 633.9 Tabel detail_pemakaian_pelanggan 643.10 Tabel pemakaian_material_mitra 653.11 Tabel detail_pemakaian_mitra 674.1 Tabel Contoh Skenario Proses yang terjadi pada
pegujian aplikasi yang menggunakan teknologimanajemen transaksi, terhadap concurrency control.
104
xxii
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
PT Telkom Indonesia merupakan Badan Usaha Milik Negara yang
bergerak di bidang teknologi informasi. PT Telkom sendiri memiliki banyak unit
yang saling bekerjasama untuk dapat memberikan pelayanan terbaik bagi
masyarakat Indonesia. Salah satu unitnya adalah unit Access Network Operation
(ANO). ANO merupakan unit yang bekerja di bidang operasi harian PT Telkom
Indonesia. Unit ANO masih melakukan operasi harian secara manual. Operasi
harian yang dilakukan dalam unit ini diantaranya adalah sebagai berikut:
a. Melaksanakan Operasi Access (pasang baru, mutasi, penanganan gangguan)
untuk melayani pelanggan coporate dan Other Licensed Operator (OLO).
b. Melaksanakan Operasi Access (pasang baru, mutasi, penanganan gangguan)
untuk melayani pelanggan coporate dan public access.
c. Melaksanakan Operasi Wireless LAN (W-LAN) dan Public Service Access.
d. Melaksanakan Operasi Service Access Interface Mgt dan Access Quality of
Service serta dukungan teknis bagi layanan operasi akses, meliputi Operasi
Main Distribution Frame (MDF) dan testing dispatching and clearance
(TDC) terhadap order pasang baru atau penanganan gangguan dari pelayanan
dan pengelolaan Customer Promises Equipment Customer Care (CPE CC).
Secara garis besar, penulis hanya mengambil topik masalah mengenai
operasi pasang baru pada poin b yaitu untuk melayani pelanggan coporate dan
public access. Dan secara lebih detil, penulis hanya menangani masalah
1
pengontrolan stok material yang digunakan dalam kegiatan pasang baru wireline
oleh mitra Telkom ke pelanggan Telkom tersebut. Dimana, terdapat pengolahan
data jumlah stok material yang berupa pengontrolan keluar masuknya material
yang digunakan, berapa jumlah stok material yang masih tersedia baik di gudang
Telkom maupun di gudang per mitra Telkom, serta siapa yang menggunakan
material tersebut.
Masalah yang timbul dalam unit ANO ini adalah kurang efisiennya
pengolahan dan monitor data kegiatan pelaksanaan operasi harian khususnya
dalam menangani gangguan yang dialami oleh pelanggan Telkom. Pencatatan
data kegiatan ini masih dilakukan dengan pencatatan manual. Sehingga, operasi
harian yang seharusnya dikerjakan secara cepat dan sesegera mungkin ini,
menjadi lambat karena proses yang masih dilakukan secara setengah manual
tersebut. Setengah manual dalam hal ini maksudnya, data-data operasi hariannya
masih disimpan dalam bentuk kertas-kertas dan dengan bentuk basis data, yang
belum diolah secara sempurna dalam komputer. Selain itu, untuk masalah
pengolahan stok material yang ada dalam unit ANO ini masih belum dapat terlihat
dengan jelas history dari penggunaan stok materialnya. Pengolahan stok material
ini berupa pengontrolan keluar masuknya material yang digunakan. Pengontrolan
ini meliputi berapa jumlah stok material yang masih tersedia baik di gudang
Telkom maupun di gudang per mitra Telkom, serta siapa yang menggunakan
material tersebut.
Saat ini, pihak Telkom masih kurang efisien dan efektif dalam memonitor
jumlah penggunaan material untuk masalah pasang baru wireline oleh mitra-mitra
2
Telkom ke pelanggan Telkom. Kegiatan-kegiatan tersebut masih dilakukan secara
manual, walaupun sebagian data pelanggan, sudah tersimpan dalam sebuah basis
data, namun belum diolah dengan baik. Para petugas Telkom tersebut, selama ini
harus menuliskan kegiatan apa saja yang sudah mereka lakukan dan barang apa
saja yang mereka gunakan dalam melakukan pasang baru wireline ke rumah-
rumah pelanggan dalam bentuk tulisan di form kertas laporan.
Oleh karena itu, penulis berusaha dengan membuat aplikasi yang
diharapkan dapat membuat kegiatan operasional tersebut dapat diatasi dengan
lebih cepat dan efisien.
1.2 RUMUSAN MASALAH
Berdasarkan latar belakang diatas, penulis menemukan masalah yaitu
masalah dalam memonitor penggunaan stok material dan mengontrol siapa
petugas yang bertugas menangani penggunaan stok material.
Rumusan masalah yang penulis pilih adalah bagaimana membuat program
dalam menangani masalah pengolahan stok material Telkom untuk menyediakan
stok material dalam operasi harian Access Network Operation dengan
menerapkan manajemen transaksi.
1.3 BATASAN MASALAH
Mengingat waktu yang disediakan untuk membuat skripsi ini sangat
terbatas, maka dalam penulisan skripsi ini, penulis akan menjelaskan batasan
masalah yang akan dibahas, yaitu:
1. Penulis hanya akan membuat program berbasis web dengan menerapkan
manajemen transaksi untuk menangani transaksi pemakaian stok material
3
yang digunakan oleh pihak tertentu berdasarkan data pelanggan yang sudah
tersimpan dalam basis data. Pihak tertentu di sini dimaksudkan sebagai mitra
Telkom dan pelanggan Telkom. Dalam hal ini, yang dikontrol hanyalah siapa
yang menggunakan material, tanggal berapa penggunaan barang tersebut dan
jumlah stok barang yang masih tersedia di gudang.
2. Penulis tidak menangani masalah penambahan stok material milik gudang
Telkom.
3. Penulis tidak menangani update data pelanggan Telkom dalam tabel
datek_psb.
1.4 TUJUAN PENELITIAN
Tujuan penulisan skripsi ini adalah membuat aplikasi monitoring
penyediaan stok material dalam operasi harian ANO berbasis web menggunakan
teknologi PHP dan MySQL dengan menerapkan konsep manajemen transaksi.
1.5 MANFAAT PENELITIAN
Manfaat dari penelitian ini adalah untuk membantu mengefisienkan
pengerjaan kegiatan operasi harian, khususnya dalam mengontrol penggunaan
dan pengolahan stok material di bagian unit Access Network Operation.
1.6 METODE PENELITIAN
Dalam menyusun skripsi ini, penulis melakukan metode penelitian dengan
melakukan studi kasus dengan langkah-langkah sebagai berikut:
4
1. Studi Pustaka
Melakukan studi kepustakaan untuk mengumpulkan data dan informasi
mengenai teori-teori yang berhubungan dengan penulisan skripsi ini. Studi
pustaka ini bertujuan untuk mempelajari referensi mengenai bahasa
pemrograman, basis data MySQL, serta teori mengenai transaksi manajemen
yang dipakai untuk pembuatan program ini.
2. Tahap pendekatan Rekayasa Perangkat Lunak (RPL) terstruktur (Whitten,
2004)
a. Analisa Sistem
Analisa sistem ini dimaksudkan untuk mengidentifikasi dan mengevaluasi
permasalahan yang dihadapi serta kebutuhan – kebutuhan yang diharapkan,
sehingga dapat menyelesaikan hambatan – hambatan yang terjadi menuju ke
arah perbaikan sistem. Beberapa cara yang dilakukan untuk melakukan
analisa kebutuhan sistem ini adalah :
1) Menganalisis masalah yang sedang dihadapi oleh pihak Telkom di
lokasi kantor yaitu di PT Telkom Kandatel Lampung khususnya di unit
Access Network Operation, Kedaton Bandar Lampung.
2) Mencari dan mengumpulkan data-data secara lengkap, yang dibutuhkan
untuk pembuatan program.
3) Menggunakan use case diagram, data flow diagram (DFD) untuk
merancang basis data yang digunakan dalam program aplikasi ini.
5
b. Desain Sistem
Pada tahap ini, merupakan langkah multiproses yang memusatkan kerja
pada perancangan sistem secara umum. Dalam tahap desain sistem ini
dilakukan dengan cara membuat sistematika alur program untuk
mempermudah pembuatan coding program, diantaranya yaitu: perancangan
basis data, menu, input, output dan user interface. Selain itu, penulis
menggunakan ER-Diagram menurut konsep Atzeni, untuk menggambarkan
desain sistem ini. Sedangkan Data Flow Diagram (DFD) yang digunakan
dalam pembuatan skripsi ini mengacu pada konsep Whitten.
c. Implementasi
Dalam tahap ini, hasil perancangan sistem diterjemahkan ke dalam bahasa
yang dapat dimengerti oleh mesin. Atau dengan kata lain tahap ini merupakan
tahap implementasi sistem dalam bentuk program.
d. Pengujian
Pengujian ini dilakukan dengan cara mendemokan program di depan user
Telkom itu sendiri untuk mendapatkan kesimpulan umum mengenai sistem
informasi yang akan dikembangkan apakah secara garis besar sudah
menjawab kebutuhan user.
1.7 SISTEMATIKA PENULISAN
Untuk memudahkan dalam mengikuti isi skripsi ini, penulis menyusun
sistematika penulisan menjadi 5 bab. Berikut ini adalah uraian singkat dari
masing-masing bab :
6
1. Bab I Pendahuluan
Dalam bab ini diungkapkan mengenai latar belakang masalah, perumusan
masalah, batasan masalah, tujuan penelitian, metode penelitian dan
sistematika penulisan.
2. Bab II Landasan Teori
Dalam bab ini memuat tentang teori yang melandasi pembuatan program
berbasis web untuk “Program Monitoring Penyediaan Stok Material dalam
Operasi Harian Access Network Operation dengan Penanganan Manajemen
Transaksi (Studi Kasus di PT Telkom Kandatel Lampung)” dengan
menggunakan PHP dan MySQL. Pada bab ini akan diuraikan mengenai
pengertian MySQL, PHP, dasar-dasar perintah PHP dan contoh sederhana
sintaks PHP serta teori singkat mengenai transaksi manajemen khususnya
mengenai protokol 2 phase locking atau disebut sebagai 2PL.
3. Bab III Analisa dan Perancangan Sistem
Bab ini berisi detil rancangan sistem serta analisa sistem. Dalam bab ini akan
dijelaskan mengenai perancangan sistem dalam bentuk diagram alur yang
menyatakan semua proses yang terjadi dalam aplikasi yang dibuat penulis.
Selain itu juga dibahas mengenai perancangan masukan keluaran sistem,
perancangan rincian proses dalam bentuk use case diagram dan Data Flow
Diagram (DFD) menurut konsep Whitten, ER-Diagram menurut konsep
Atzeni dan perancangan basis data.
7
4. Bab IV Implementasi Sistem dan Pembahasan Hasil
Dalam bab ini menjelaskan tentang implementasi yang akan dibuat coding
programnya serta hasil dan pembahasan program yang merupakan kelanjutan
dari metode penelitian dan sekaligus menjawab permasalahan yang
dinyatakan pada bab pendahuluan. Pada bab ini akan dijelaskan potongan-
potongan listing program yang dapat dianggap vital oleh penulis.
5. Bab V Kesimpulan dan Saran
Pada bab ini akan dijelaskan mengenai kesimpulan pembahasan dan saran-
saran untuk pelaksanaannya.
8
BAB II
LANDASAN TEORI
Dalam bab 2 ini, akan dibahas mengenai teori-teori yang mendukung
pembuatan skripsi ini. Pembahasan mengenai teori-teori ini berperan penting
untuk memberi pengertian mengenai materi yang akan berkaitan sebelum penulis
melangkah ke dalam perancangan sistem di bab 3. Secara umum, teori-teori
tersebut adalah teori mengenai pengertian monitoring operasi harian, penjelasan
singkat mengenai Access Network Operation (ANO) serta kegiatan-kegiatan yang
dilakukan dalam operasi harian di ANO ini.
Pada bab 2 ini juga terdapat penjelasan mengenai langkah-langkah dalam
metodologi rekayasa perangkat lunak terstruktur, seperti use case diagram, ER
diagram, dan DFD. Selain itu juga terdapat pembahasan teori mengenai
manajemen transaksi, pengertian MySQL, concurrency control, teknik 2PL, PHP
dan fungsi-sungsi di dalamnya.
2.1. Monitoring Operasi Harian
Monitoring operasi harian merupakan proses kegiatan untuk mengetahui
dan mengontrol seluruh operasi kegiatan baik itu kegiatan internal maupun
kegiatan eksternal yang dilakukan dalam suatu organisasi.
9
2.2. Access Network Operation (ANO)
ANO merupakan kependekan dari Access Network Operation. ANO
sendiri merupakan salah satu unit yang terdapat di dalam organisasi PT Telkom
Indonesia. Unit ini menangani seluruh kegiatan operasional yang ada di PT
Telkom. Kegiatan operasional ini meliputi pelayanan kepada pelanggan secara
langsung. Termasuk menangani masalah gangguan dan keluhan yang dialami oleh
pelanggan Telkom. Pelanggan dapat memberitahukan keluhan mereka melalui
telepon ke bagian operasional di kantor ini. Unit ANO ini dipimpin oleh seorang
manajer yang disebut sebagai Manajer Access Network Operation. Manajer ANO
bertanggung jawab atas berfungsinya secara efektif Access Network dalam
memenuhi layanan jasa kepada pelanggan. Berikut ini adalah kegiatan yang
dilakukan dalam ANO :
4. Melaksanakan Operasi Access (pasang baru, mutasi, penanganan gangguan)
untuk melayani pelanggan coporate dan Other Licensed Operator (OLO).
5. Melaksanakan Operasi Access (pasang baru, mutasi, penanganan gangguan)
untuk melayani pelanggan coporate dan public access.
6. Melaksanakan Operasi Wireless LAN (W-LAN) dan Public Service Access.
7. Melaksanakan Operasi Service Access Interface Mgt dan Access Quality of
Service serta dukungan teknis bagi layanan operasi akses, meliputi Operasi
Main Distribution Frame (MDF) dan testing dispatching and clearance
(TDC) terhadap order pasang baru atau penanganan gangguan dari pelayanan
dan pengelolaan Customer Promises Equipment Customer Care (CPE CC).
10
2.3. Metodologi Rekayasa Perangkat Lunak Terstruktur (Whitten, 2004)
Hal paling vital dalam membangun sebuah aplikasi yang menyuguhkan
informasi, sangat membutuhkan system requirements dari pemilik program.
Selain itu perlu menspesifikasikan masalah yang ada untuk diimplementasikan ke
dalam bentuk aplikasi yang diinginkan (Whitten, 2004). Ada beberapa tahap
yang perlu dirancang dengan menggunakan metodologi RPL terstruktur ini.
Untuk dapat merancang, menganalisa, mendesain, dam membangun
sebuah program, sistem analis harus memahami kebutuhan dari pemilik program,
dan penyebab mengapa sistem tersebut harus dikembangkan. Konsep ini disebut
sebagai user centered development. Konsep ini memerlukan pendekatan use case
modeling yang menginisiasikan kegiatan, siapa yang melakukan kegiatan
tersebut, dan bagaimana respon dari sistem untuk kegiatan itu. Ada 2 konsep
sistem untuk use case modeling yang dapat digunakan, yaitu: use case diagram
dan use case narrative. Dalam hal ini, penulis menggunakan use case diagram
yang dijelaskan dalam subbab 2.3.1.
Tahap kedua yang perlu dilakukan adalah menggunakan data modeling
atau pemodelan data sebagai teknik untuk mendefinisikan kebutuhan bisnis untuk
sebuah basis data. Karena sebuah model data diimplementasikan sebagai sebuah
basis data. Ada beberapa notasi yang dapat digunakan dalam pemodelan data.
Model aktual yang sering digunakan adalah entity relationship diagram (E-R
diagram) yang dijelaskan pada subbab 2.3.3. Dalam hal ini, penulis menggunakan
konsep E-R diagram menurut Atzeni.
11
2.3.1. Use Case Diagram
Use case diagram merupakan diagram yang menggambarkan interaksi
antara sistem dan eksternal sistem atau sesuatu yang berada di luar sistem dan
atau penggunanya. (Whitten, 2004). Use case diagram digunakan untuk
membantu menemukan obyek, kelas, relasi, menggambarkan kebutuhan atau
requirements dengan melihat bagaimana sistem digunakan dan siapa
penggunanya dengan cara yang bisa dicerna oleh . Use case diagram terdiri dari
actor, use case dan asosiasi.
1. Actor adalah seseorang atau sesuatu yang harus berinteraksi dengan sistem.
Gambar 2.1 merupakan simbol actor.
Gambar 2.1 Simbol Actor
2. Use Case adalah representasi fungsionalitas atau layanan yang diberikan
sistem kepada pemakai. Gambar 2.2 ini merupakan simbol use case.
Gambar 2.2. Simbol Use Case
3. Asosiasi adalah relasi antara actor dan use case dimana ada interaksi yang
terjadi di dalamnya. Gambar 2.3 ini merupakan simbol asosiasi.
Gambar 2.3 Simbol Asosiasi
12
2.3.2. Data Flow Diagram (DFD)
Data Flow Diagram (DFD) merupakan suatu diagram yang menggunakan
notasi-notasi untuk menggambarkan arus atau aliran dari data sistem. DFD
merepresentasikan sebuah masukan data ke dalam suatu proses atau keluaran data
dari suatu proses. Penggunaannya sangat membantu untuk memahami sistem
secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam
menggambarkan atau menjelaskan sistem yang sedang berjalan secara logis. DFD
juga merupakan sebuah model proses yang digunakan untuk menggambarkan
aliran dari data yang melalui sebuah sistem dan sekaligus menggambarkan proses
yang dibentuk oleh sistem tersebut. (Whitten, 2004)
2.3.2.1. Simbol dan Koneksi yang Digunakan dalam DFD
Menurut Whitten, 2004 ada beberapa simbol dan koneksi yang digunakan
dalam DFD. Berikut ini adalah penjelasannya:
1. Rounded Rectangles
Simbol ini menggambarkan proses. Proses merupakan kegiatan yang akan
ditunjukkan oleh suatu sistem dalam merespon aliran data. Proses ini dapat
disebut juga sebagai sistem. Dalam proses atau sistem akan menukarkan antara
input dan output dalam suatu lingkungan. (Whitten, 2004). Gambar 2.4.
merupakan simbol dari Rounded Rectangles.
Gambar 2.4. Rounded Rectangles
13
2. Square
Simbol ini merepresentasikan external agents. External agents merupakan
batas sistem dari kerangka sistem informasi yang dibuat. Gambar 2.5 merupakan
simbol dari external agents.
Gambar 2.5. Square
3. Open-Ended Boxes
Simbol ini merepresentasikan penyimpanan data (data stores). Sering
disebut sebagai file atau basis data. Simpanan data ini menghubungkan semua
entitas tunggal dalam sebuah model data.
Gambar 2.6 merupakan simbol data store.
Gambar 2.6. Open-Ended Boxes
4. Arrow (Panah)
Simbol ini merepresentasikan aliran data atau input dan output, ke dan
dari proses. Gambar 2.7 merupakan simbol anak panah untuk menunjukkan aliran
data.
Gambar 2.7. Arrow
Media nama data store
14
2.3.3. Entity Relationship Diagram (E-R Diagram)
Menurut (Atzeni, dkk, 2000), E-R Diagram merupakan sebuah model data
yang memanfaatkan beberapa notasi tertentu untuk menggambarkan data ke
dalam bentuk entitas dan relasi yang dijelaskan oleh data itu sendiri. Sedangkan
entitas itu sendiri merupakan kumpulan dari orang, tempat, obyek, kejadian atau
konsep yang diperlukan untuk menangkap dan menyimpan data. E-R diagram
merupakan bagian dari conceptual design yang digunakan untuk memberikan
gambaran secara umum mengenai hal yang penting dalam merancang struktur
basis data, sehingga basis data dapat memfasilitasi keperluan pada saat ini dan
saat yang akan datang. Perancangan conceptual model menunjukkan entitas dan
relasinya berdasarkan proses yang diinginkan. Ketika menentukan entitas dan
relasi, maka dibutuhkan analisis data mengenai informasi yang lebih spesifik
untuk masa yang akan datang. Conceptual design akan menghasilkan conceptual
schema yang mengacu pada conceptual model atau yang biasa disebut sebagai ER
model. Perancangan conceptual model, ditekankan pada struktur data dan relasi
antar file. Pendekatan yang digunakan pada perancangan conceptual model ini
adalah dengan menggunakan model relational data. (Atzeni, 2000)
Ada beberapa komponen yang membentuk E-R model, yaitu:
1. Entitas, merupakan sebuah objek yang nyata dan dapat dibedakan dari sesuatu
yang lain. Contoh entitas : mahasiswa, guru, dsb. Gambar 2.8 merupakan
simbol dari sebuah entitas.
Gambar 2.8. Simbol Entitas
15
2. Relasi, merupakan hubungan antar entitas. Ada 3 jenis relasi yaitu: relasi one
to one, relasi one to many, relasi many to many. Gambar 2.9 merupakan simbol
dari relasi.
Gambar 2.9. Simbol Relasi
3. Atribut, merupakan sebutan untuk mewakili suatu entitas. Sebuah atribut juga
merupakan sifat-sifat dari sebuah entitas.Sinonimnya adalah element,
property,dan field. Gambar 2.10 merupakan simbol dari sebuah atribut.
Gambar 2.10. Simbol Atribut
2.3.4. Logical Design
Logical design merupakan translasi dari conseptual model yang
didefinisikan dalam fase-fase ke dalam bentuk model data yang diadopsi oleh
database management system yang tersedia. Produk dari fase-fase tersebut
dinamakan logical schema dari basis data dan hampir sama artinya dengan logical
data model. Model logikal merepresentasikan data dalam sebuah alur yang
terlepas dari physical design. Logical design merupakan sebuah gambar
nonteknikal yang memberikan gambaran tentang apakah sistem dan apa yang
dilakukannya. Sinonimnya adalah essential model, conseptual model dan bisnis
model. Dalam logical design ini akan diterjemahkan conceptual schema ke dalam
model data yang sesuai dengan DBMS yang digunakan. Hasil dari tahap ini
adalah logical schema basis data yang mengacu pada logical data model. Logical
16
data model yang populer untuk saat ini adalah relational model. Dalam logical
model ini, menggambarkan data secara logikal dan harus memperhatikan kriteria
optimal yaitu: ada tidaknya redudansi data atau penyimpanan di beberapa tempat
untuk data yang sama dan data yang tidak konsisten (Atzeni, dkk, 2000).
2.3.5. Physical Design
Dalam physical design ini logical schema dilengkapi dengan detil
implementasi secara fisik sesuai dengan DBMS yang digunakan. Selain itu, tahap
ini merupakan bentuk perancangan basis data yang menterjemahkan kebutuhan
bisnis ke dalam model sistem yang menggambarkan implementasi teknik dari
kebutuhan bisnis itu sendiri. Sinominnya adalah technical design atau penjelasan
output, implementation model. (Atzeni, dkk, 2000)
2.4.Tinjauan MySQL
2.4.1. Pengertian Umum MySQL
MySQL merupakan salah satu basis data SQL yang cukup populer dan
banyak digunakan di internet. Integrasi MySQL yang sederhana, dan cepat dengan
PHP membuktikan salah satu kelebihan PHP untuk menguasai pasar aplikasi
berbasis web. Hal penting yang harus diperhatikan adalah versi MySQL yang
digunakan.
2.4.2. Structured Query Language (SQL) pada MySQL
SQL (Structured Query Language) merupakan bahasa standar yang
digunakan untuk mengakses server basis data. Dengan menggunakan SQL, proses
17
akses basis data menjadi lebih user-friendly dibandingkan dengan misalnya dBase
ataupun Clipper yang masih menggunakan perintah – perintah pemrograman
murni. MySQL merupakan sebuah server basis data SQL multi dan multi-
threaded. Sedangkan SQL itu sendiri adalah salah satu bahasa basis data yang
paling populer di dunia. Implementasi program server basis data ini adalah
program daemon 'mysqld' dan beberapa program lain serta beberapa pustaka.
Dalam SQL terdapat hierarki server dengan basis data-basis data yang ada.
Setiap basis data tersebut memiliki tabel-tabel. Sedangkan setiap tabel memiliki
field-field. Informasi tersimpan dalam tabel–tabel yang secara logika merupakan
struktur 2 dimensi yang terdiri atas baris dan kolom. Field-field tersebut dapat
berupa data seperti int, char, date, time dan lainnya. SQL tidak memiliki fasilitas
pemrograman yang lengkap, seperti misalkan tidak adanya looping ataupun
percabangan. Sehingga, untuk menutupi kelemahan ini perlu digabung dengan
bahasa pemrograman yang lain. Bahasa pemrograman tersebut misalnya adalah
bahasa C.
2.4.3. Procedure dan Function dalam MySQL
Store procedure merupakan sekumpulan SQL yang disimpan ke dalam
server MySQL. Keuntungan menggunakan store procedure adalah, klien MySQL
tidak perlu menuliskan kembali perintah SQL ke server, namun hanya perlu
memanggil procedure yang sudah disimpan di server. Perbedaan antara
procedure dan function pada MySQL hampir mirip dengan procedure dan
function pada bahasa pemrograman. Function mengembalikan suatu nilai skalar
18
dan dapat dipanggil di dalam statement procedure atau function lain. Procedure
dipanggil melalui perintah CALL dan dapat mengembalikan nilai melalui variabel
output. (Setyaji, 2007)
2.4.4. InnoDB dan MyISAM
MySQL memiliki beberapa tipe-tipe tabel, diantaranya adalah MyISAM
dan InnoDB. MySQL mempunyai mesin basis data Innodb yang mendukung
transaksi dengan kemampuan commit, rollback dan recovery. Transaksi ini telah
mendukung sifat-sifat ACID. Innodb juga mendukung row locking yang dapat
meningkatkan multi-userconcurrency dan unjukkerja. Secara default, client yang
melakukan koneksi ke server MySQL akan mempuyai mode autocommit enable
sehingga commit akan selalu dilakukan setiap perintah SQL dieksekusi.
Jika MySQL menggunakan standar tabel dengan tipe MyISAM, kemudian
melakukan locking, yang merupakan proses pemblokingan terhadap akses dari
suatu iterasi atau melakukan perubahan dalam basis data, tidak dapat dilakukan.
Untuk mengatasi masalah table-locking dengan menggunakan transaksi, maka
tabel dalam basis data diubah terlebih dulu menjadi tipe InnoDB.
Jika menggunakan tipe tabel MyISAM, MySQL tidak dapat mengeksekusi
operasi tanpa membloking tabel dengan lock. Transaksi merupakan eksekusi dari
beberapa operasi dalam basis data dalam bentuk blok-blok tertentu. Sistem basis
data akan memastikan apakah semua operasi dapat dieksekusi secara benar atau
tidak dieksekusi sama sekali. MySQL dapat meyimpan tabel dengan berbagai
macam tipe. Default-nya adalah MyISAM, dan format ini tidak mendukung
19
transaksi. Format yang dapat mendukung transaksi ini adalah InnoDB. (Kofler,
2005)
2.5. Manajemen Transaksi
Transaksi merupakan sebuah atau serangkaian aksi yang dilakukan oleh
tunggal atau program aplikasi dengan membaca atau mengubah isi dari basis data.
Transaksi merupakan sebuah unit kerja logis dalam basis data yang terdiri dari
satu atau lebih kalimat SQL dan dapat melibatkan sejumlah operasi pada basis
data. Transaksi merupakan unit yang atomik. Sebuah transaksi akan memiliki dua
buah keluaran yaitu :
a. Jika transaksi sukses, maka transaksi dapat dikatakan telah melakukan commit
dan basis data telah mencapai keadaan konsistensi yang baru. Transaksi
commit, maka tidak dapat dibatalkan. Sebuah transaksi yang telah dilakukan
(commited transaction), tidak dapat dibatalkan. Jika diputuskan bahwa
transaksi yang telah dilakukan tersebut memiliki suatu kesalahan, kita harus
melakukan transaksi pengganti untuk mengembalikan pengaruhnya.
b. Sebaliknya jika transaksi gagal dieksekusi, maka basis data harus
dikembalikan ke keadaan yang konsisten seperti pada saat transaksi belum
dimulai. Transaksi ini disebut rolled back atau undone atau tidak dilakukan.
Statement begin transaction, commit dan rollback merupakan statement
DML yang berfungsi untuk membatasi transaksi-transaksi. Jika statement tersebut
tidak digunakan, maka dianggap sebagai transaksi tunggal yang dianggap commit
20
saat program selesai dijalankan dengan benar, dan rollback jika tidak (Connolly,
2002).
Ada 4 hal dasar yang harus dimiliki semua transaksi, hal ini sering disebut
sebagai ACID, yaitu:
1. Atomicity
Pengguna sebaiknya dapat menganggap eksekusi setiap transaksi sebagai
atomic: baik semua tindakan dilakukan atau tidak ada yang dilakukan.
Pengguna sebaiknya tidak perlu menkhawatirkan pengarush transaksi yang
tidak selesai.
2. Consitency
Tiap transaksi yang bekerja sendiri tanpa eksekusi konkuren tranaksi lain,
harus mempertahankan konsistensi basis data. Menjamin sifat transaksi ini
merupakan tanggung jawab pengguna.
3. Isolation
Pengguna sebaiknya dapat memahami transaksi tanpa memperhatikan
pengaruh ekseskusi konkuren transaksi lain. Sifat ini kadang-kadang disebut
sebagai isolasi. Transaksi diisolasi atau dilindungi dari pengaruh scheduling
konkuren transaksi lain.
4. Durability
Jika transaksi telah selesai dengan sukses, maka efeknya tetap bertahan
bahkan jika sistem mengalami crash sebelum semua perubahannya
direfleksikan pada disk. Sifat ini disebut daya tahan atau durability.
(Ramakrishnan, 2003)
21
2.5.1. Concurrency Control
Concurrency Control atau akses secara bersamaan, merupakan proses
pengelolaam operasi yang berjalan secara bersamaan dalam basis data tanpa harus
saling mangganggu satu dengan yang lainnya. Bedanya dengan manajemen
transaksi adalah untuk menangani transaksi dengan masalah pengontrolan akses
user secara bersamaan supaya tidak terjadi lose update data. Tujuan utama
pengembangan basis data adalah adanya kemampuan banyak untuk mengakses
shared data secara bersamaan. Ada 3 masalah yang dapat disebabkan oleh
concurrency control , yaitu :
a. masalah hilangnya data yang diubah (the lost update problem)
b. masalah pembacaan yang salah (the dirty read problem)
c. masalah analisa yang tidak konsisten (the inconsistent analysis problem)
(Connolly, 2002).
2.5.2. Two-Phase Locking atau 2PL
Sebuah transaksi akan menerapkan protokol 2PL jika semua operasi
locking mendahului operasi unlocking yang pertama dalam transaksi tersebut.
Setiap transaksi dibagi menjadi 2 fase, yaitu :
2 Growing Phase : fase ini memperoleh semua locks yang dibutuhkan, tetapi
tidak dapat melepaskan satu lock pun.
3 Shrinking Phase : fase ini melepaskan semua locks yang dimiliki, tetapi tidak
dapat memperoleh locks yang baru.
22
Dalam hal ini tidak ada kebutuhan bahwa semua locks diperoleh secara
serentak. Umumnya, suatu transaksi memperoleh sejumlah locks, kemudian
melakukan sejumlah proses, dan selanjutnya meminta tambahan locks sesuai
kebutuhan. Berikut ini adalah penjelasan mengenai peraturan yang ditetapkan :
a. Sebuah transaksi harus memperoleh suatu lock pada suatu bagian data,
sebelum melakukan operasi terhadap data tersebut. Macam-macam lock dapat
digunakan untuk read atau write tergantung dari kebutuhan.
b. Sekali transaksi tersebut melepaskan suatu lock, maka transaksi tersebut tidak
pernah bisa mendapatkan sejumlah lock baru yang lain.
Protokol 2PL ini dapat digunakan untuk memecahkan 3 masalah yang
teridentifikasi. Berikut ini adalah kegunaan dari protokol 2PL :
a. Mencegah masalah hilangnya data yang diubah (the lost update problem).
Tabel 2.1 merupakan tabel penjelasan mengenai masalah hilangnya data yang
diubah.
Tabel 2.1. Masalah Hilangnya Data yang Diubah
Waktu T1 T2 balx
t1 begin transaction 100t2 begin transaction write_lock(balx) 100t3 write_lock(balx) read(balx) 100t4 WAIT balx= balx + 100 100t5 WAIT write(balx) 200t6 WAIT commit/unlock( balx) 200t7 read(balx) 200t8 balx= balx – 10 200t9 write(balx) 190t10 commit/unlock( balx) 190
23
Keterangan :
Untuk mencegah terjadinya masalah hilangnya data yang diubah, maka:
Pertama-tama T2 meminta suatu exclusive lock pada balx . Setelah itu T2 dapat
melakukan proses baca nilai balx , menambahnya dengan nilai 100, dan
menuliskan nilai baru dari balx tersebut ke dalam basis data.
Saat T1 memulai transaksi, T1 juga meminta suatu exclusive lock pada
balx , namun karena balx sedang berada dalam posisi exclusive lock oleh T2, maka
permintaan read balx tidak segera diberikan kepada T1 dan T1 harus menunggu
sampai lock dilepaskan oleh T2. Hal ini terjadi saat T2 melaksanakan operasi
commit atau unlock balx (Connolly, 2002).
b. Mencegah masalah ketergantungan transaksi yang belum dilaksanakan (the
uncommitted dependency problem).
Tabel 2.2 merupakan tabel penjelasan mengenai masalah ketergantungan
transaksi yang belum dilaksanakan.
Tabel 2.2. Masalah Ketergantungan Transaksi yang Belum Dilaksanakan
Waktu T3 T4 balx
t1 begin transaction 100t2 write_lock(balx) 100t3 read(balx) 100t4 begin transaction balx= balx + 100 100t5 write_lock(balx) write(balx) 200t6 WAIT rollback/unlock( balx) 100t7 read(balx) 100t8 balx= balx – 10 100t9 write(balx) 90t10 commit/unlock( balx) 90
24
Keterangan :
Untuk mencegah terjadinya masalah ketergantungan transaksi yang belum
dilaksanakan, maka: Pertama-tama T4 meminta suatu exclusive lock pada balx.
Setelah itu, T4 dapat melakukan proses baca nilai balx dari dalam basis data,
menambahnya dengan nilai 100, dan menuliskan nilai baru balx tersebut ke dalam
basis data. Saat rollback dieksekusi, peng-update-an pada transaksi T4 tidak jadi
dilakukan dan nilai dalam basis data dikembalikan ke kondisi semula yaitu 100.
Saat T3 memulai transaksi, T3 juga meminta suatu exclusive lock pada
balx, namun karena balx sedang dalam posisi exclusive lock oleh T4, maka,
permintaan tersebut tidak segera diberikan kepada T3, dan T3 harus menunggu
sampai lock dilepaskan oleh T4. Hal ini terjadi saat T4 melaksanakan operasi
rollback atau unlock balx , barulah T3 dapat melakukan proses baca nilai balx
(Connolly, 2002).
c. Mencegah masalah analisis yang tidak konsisten (the inconsistent analysis
problem).
Tabel 2.3 merupakan tabel penjelasan mengenai maslah analisis yang tidak
konsisten.
Tabel 2.3. Masalah Analisis yang Tidak Konsisten
Waktu T5 T6 balx baly balz sum
t1 begin transaction 100 50 25t2 begin transaction sum = 0 100 50 25 0t3 write_lock(balx) 100 50 25 0t4 read(balx) read_lock(balx) 100 50 25 0t5 balx = balx - 10 WAIT 100 50 25 0t6 write(balx) WAIT 90 50 25 0t7 write_lock(balz) WAIT 90 50 25 0
25
t8 read(balz) WAIT 90 50 25 0t9 balz = balz + 10 WAIT 90 50 25 0t10 write(balz) WAIT 90 50 35 0t11 commit/unlock
(balx , balz)WAIT 90 50 35 0
t12 read(balx) 90 50 35 0t13 sum = sum + balx 90 50 35 90t14 read_lock(baly) 90 50 35 90t15 Read (baly) 90 50 35 90t16 sum = sum + baly 90 50 35 140t17 read_lock(balz) 90 50 35 140t18 read(balz) 90 50 35 140t19 sum = sum + balz 90 50 35 175t20 commit/unlock
(balx , baly, balz)90 50 35 175
Keterangan :
Untuk mencegah terjadinya masalah analisis yang tidak konsisten, maka:
T5 mengawali meminta suatu exclusive lock pada balx . T5 juga meminta suatu
exclusive lock pada baly . Saat T6 ingin membaca nilai balx , ia harus menunggu
sampai lock dilepaskan oleh T5. Hal ini terjadi saat T5 melaksanakan operasi
commit atau unlock balx , barulah T6 dapat membaca nilai balx (Connolly, 2002).
Untuk mengatasi masalah diatas, mesin basis data Innodb MySQL
mempunyai kemampuan mendukung transaksi dengan metode 2PL yang dapat
menjamin konsistensi data. Ketiga contoh permasalahan yang dapat timbul akibat
dua atau lebih transaksi yang dieksekusi secara bersamaan (concurrently) dapat
diselesaikan dengan menerapkan:
a. Tingkat isolasi serializable
b. Autocommit dibuat disable
c. Operasi pembacaan data yang akan diikuti dengan operasi update data tersebut
memberikan exclusive lock dengan cara memberikan perintah for update setelah
26
perintah select. Teknik ini merupakan salah satu alternatif dalam menerapkan 2PL
dalam mesin basis data Innodb MySQL sehingga tidak menutup kemungkinan
melakukan penelitian untuk mencari alternatif lain dalam menjaga konsistensi
data (Darmawan, 2007).
2.6. Tinjauan PHP
2.6.1. Pengertian Umum PHP
PHP adalah kependekan dari Professional Home Page. PHP merupakan
salah satu bahasa server-side yang didesain khusus untuk membuat aplikasi web.
PHP dapat disisipkan diantara bahasa HTML, dan karena PHP ini merupakan
bahasa server-side, maka bahasa PHP akan dieksekusi di server, sehingga yang
akan dikirimkan ke browser adalah hasil jadi yang telah dieksekusi, dalam bentuk
HTML, dan kode PHP ini tidak akan diperlihatkan di browser. PHP termasuk
dalam produk yang dapat dipakai secara bebas, sehingga dapat dirubah ke dalam
source code dan dapat didistribusikan secara bebas. PHP dapat didapatkan secara
gratis dan dapat dijalankan di berbagai web server, misalnya : IIS, Apache, PWS,
dll. (Sutarman, 2003).
2.6.2. Fungsi MySQL Dalam PHP
Dalam PHP terdapat beberapa fungsi MySQL yang dapat digunakan.
Berikut ini adalah beberapa sintaks yang digunakan:
27
a. mysql_connect()
Fungsi ini digunakan untuk membangun koneksi antara PHP ke MySQL.
Dalam hal ini ada beberapa hal yang dibutuhkan untuk dapat mengkoneksikannya
yaitu: nama komputer (hostname) dari server MySQL, user name MySQL, dan
password. (Kofler, 2005)
b. mysql_query()
Fungsi ini digunakan untuk mengeksekusi perintah SQL yang dilewatkan
sebagai karakter string dalam fungsi mysql_query(). Jika perintah SQL berhasil
dieksekusi, maka fungsi ini akan mengembalikan nilai yang ada yaitu TRUE.
Tetapi jika perintah SQL gagal dieksekusi, maka mysql_query() akan
mengembalikan nilai FALSE. (Kofler, 2005)
c. mysql_fetch_row()
Fungsi ini akan mengembalikan sebuah record ke dalam bentuk array
sederhana. Fungsi ini dapat mengakses dan mengambil data dari kolom dalam
tabel secara baris per baris. Data yang diambil berupa array dimana elemen dari
array adalah field-field dari tabel data. (Kofler, 2005)
d. mysql_fetch_array()
Fungsi mysql_fetch_array() sama saja dengan fungsi mysql_fetch_row(),
dimana data-data yang ada, akan dibaca secara baris per baris. Hanya saja
perbedaannya adalah fungsi ini akan mengembalikan hasil record ke dalam
bentuk array asosiatif. (Kofler, 2005)
28
2.6.3. Include
Include adalah suatu bentuk fungsi yang untuk menggabungkan suatu
script PHP atau teks dari file lain dengan script PHP yang memanggilnya. Script
atau file yang digabung tidak harus berisi script program PHP. Include digunakan
untuk menggabungkan suatu script atau file dengan script pemanggilnya. Dengan
menggunakan include, maka diijinkan untuk dapat memasukkan suatu file
dengan kode yang biasa digunakan pada masukan blog dan halaman. Include
dapat digunakan dalam struktur pengulangan, untuk melakukan pemanggilan file-
file yang berbeda. Penggunaan atau penyisipan include dalam suatu subdirectory
dinamakan scripts. Scripts dapat ditempatkan di sini.
Pernyataan include() memasukkan dan mengevaluasi file yang spesifik.
Perlu diketahui, bahwa cara kerja fungsi ini adalah ketika file di-include()-kan
atau di-require()-kan, maka akan mengkonversikan mode PHP ke dalam mode
HTML pada awal file tujuan dan pada akhirnya akan menghasilkan mode PHP.
Karena hal inilah, setiap kode didalam file tujuan yang seharusnya
dieksekusi sebagai kode PHP, harus ditutup kembali dengan tag PHP di awal dan
di akhirnya. include() berbeda dengan require(), dimana pernyataan include()
dievaluasi ulang setiap kali ditemukan (dan hanya terjadi ketika sedang
dieksekusi), sedangkan pernyataan require() digantikan oleh file yang dibutuhkan
ketika ditemukan pertama kali, jika isi dari sebuah file akan dievaluasi atau tidak
sama sekali (sebagai contoh, jika require() ada didalam file, maka pernyataan if
dengan kondisi tersebut akan dievaluasi sebagai pernyataan yang salah) (Bakken,
dkk, 2000).
29
2.6.4. Require
Require adalah suatu bentuk fungsi untuk menggabungkan suatu script
PHP atau teks dari file lain dengan script PHP yang memanggilnya. Script atau
file yang digabung tidak harus berisi script program PHP. Teknik require ini
cocok untuk membuat template atau pola yang memudahkan proses
pengembangan aplikasi dengan menggunakan template atau pola tampilan.
Pemrogram dan desainer web dapat dengan mudah melakukan kerja tim untuk
membangun suatu situs web yang diinginkan.
Pernyataan require() akan menggantikan dirinya dengan file yang
dispesifikasikan, seperti halnya cara kerja C preprocecor. Perlu diketahui, bahwa
cara kerja fungsi ini adalah ketika file di-include()-kan atau di-require()-kan,
maka akan mengkonversikan mode PHP ke dalam mode HTML pada awal file
tujuan dan pada akhirnya akan menghasilkan mode PHP .
Karena hal inilah, setiap kode di dalam file tujuan yang seharusnya
dieksekusi sebagai kode PHP harus ditutup kembali dengan tag PHP di awal dan
di akhirnya. require() bukan merupakan fungsi yang sebenarnya dalam PHP,
tetapi merupakan bahasa konstruksi. Berbeda dengan include(), require() akan
selalu membaca file tujuan bahkan jika ada suatu baris yang tidak akan pernah
dieksekusi. Jika ingin memasukkan sebuah file, maka dapat menggunakan
include() dan pernyataan kondisi tidak akan berefek pada require().
Bagaimanapun juga, jika baris yang ada dalam require() tidak dieksekusi, maka
tidak ada satupun kode dalam file tujuan, akan dieksekusi juga (Stig Sæther
Bakken, dkk, 2000).
30
2.6.5. Session Handling
PHP menyediakan beberapa fungsi untuk penanganan session,
diantaranya adalah session_start, session_destroy, session_name,
session_save_path, session_id, session_register, session_unregister,
session_unset session_is_registered. Berikut ini adalah session yang paling sering
digunakan :
1. session_start
Sintaksnya : session_start();
session_start() digunakan untuk memulai suatu sesi data. session_start()
menciptakan sebuah sesi atau hasil-hasil terakhir berdasarkan identitas sesi yang
dilewatkan melalui variabel GET atau cookie. Fungsi ini selalu mengembalikan
nilai true (Bakken, dkk, 2000). Sebuah sesi dapat dimulai dengan 2 cara, yaitu:
manual dan otomatis. Otomatis berlaku jika session.auto_start pada file php.ini-
nya =1. Namun, cara otomatis ini kurang disukai, karena tidak semua aplikasi
membutuhkan sesi. Sedangkan cara manual dilakukan dengan menggunakan
fungsi session_start() dan session_register().
2. session_destroy
Sintaksnya : session_destroy();
session_destroy() digunakan untuk menghancurkan seluruh data yang
telah didaftarkan ke dalam sebuah sesi. session_destroy akan menghancurkan
semua data yang terhubung dengan sesi terakhir yang ada. Fungsi ini selalu
mengembalikan nilai true (Bakken, dkk, 2000). Sesi ini digunakan untuk
mengakhiri sesi dalam PHP. sesi tidak dapat secara otomatis berakhir, karena
31
sangat sulit bagi sistem untuk megetahui kapan mengakhiri suatu sesi kunjungan
dalam suatu aplikasi web.
2.7. XAMPP
XAMPP memiliki kepanjangan yaitu Apache, PHP, MySQL dan
phpMyAdmin. XAMPP merupakan alat yang menyediakan paket perangkat lunak
ke dalam satu buah paket. Dengan menginstall XAMPP maka tidak perlu lagi
melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL secara
manual. XAMPP akan menginstalasi dan mengkonfigurasikannya secara otomatis
untuk anda atau auto konfigurasi (nidnid, 2008). Dengan melakukan penginstalan
XAMPP ini, maka klien tidak perlu menginstal server apache lagi, karena
XAMPP pada versi yang penulis gunakan ini sudah terdapat PHP versi 5.2.5,
MySQL 5, dan apache versi 2.2.8. Klien cukup mengklik xampp-control.exe pada
folder xampp yang terletak di direktori kerja (biasanya di C:) .
2.8. PHPMyAdmin
Program PHPMyAdmin mungkin adalah alat administratif terbaik untuk
MySQL. Dalam PHPMyAdmin, dapat dilakukan pembuatan, pengubahan, dan
menghapus basis data dan tabel. Sedangkan untuk tabel, dapat dilakukan
penambahan, pengubahan dan penghapusan record. Selain itu, dalam
PHPMyAdmin juga dapat melakukan import dan export basis data yang ada.
Dalam sistem lokal tes, dapat dilakukan pengaturan dengan menggunakan root
32
untuk memberikan hak istimewa user, sehingga memungkinkan semua basis data
yang ada, dapat diakses.
Selain itu, dengan menggunakan Internet Service Provider(ISP),
PHPMyAdmin memperoleh hak akses terhadap basis data yang ada.
PHPMyAdmin merupakan program lokal yang memiliki hak akses penuh
terhadap server MySQL (Kofler, 2005). Dalam hal ini penulis menggunakan
PHPMyAdmin versi 5 dimana nama installer-nya adalah xampplite-win32-
1.6.6.exe.
33
BAB III
ANALISA DAN PERANCANGAN SISTEM
Dalam bab 3 ini, akan dibahas mengenai perancangan sistem berupa
diagram-diagram yang berperan penting untuk mempermudah penulis dalam
membuat coding program. Pada bab 3 ini terdapat analisa singkat mengenai
aplikasi sistem yang dibuat dalam skripsi ini, baik itu mengenai gambaran umum
sistem, analisa ruang lingkup sistem dan analisa singkat mengenai sistem lama.
Dalam bab 3 ini terdapat diagram pemodelan sistem lama, penjelasan dan
diagram use case, context diagram, diagram berjenjang, overiew diagram, DFD
level 2, ER diagram, logical design, dan physical design. Diagram berjenjang,
merupakan salah satu siklus hidup dari manajemen proyek. Sedangkan yang
termasuk pemodelan proses adalah use case diagram, context diagram, DFD.
Dan yang termasuk dari pemodelan data adalah ER-Diagram, logical design, dan
physical design.
Dalam diagram use case, akan dijelaskan proses-proses yang dapat
diakses oleh kedua jenis user berdasarkan level akses masing-masing user.
Diagram ini disajikan pada gambar 3.2. Untuk context diagram, akan dijelaskan
mengenai interaksi yang terjadi antara sistem dengan user. Diagram ini disajikan
pada gambar 3.3. Sedangkan diagram berjenjang, akan menjelaskan tingkatan
proses yang terjadi dalam sebuah sistem utama. Dalam hal ini, sistem utama yang
dimaksud adalah aplikasi web pasang baru wireline, dan dalam diagram
berjenjang ini terdapat 2 buah level proses yang terjadi pada sistem aplikasi web
34
pasang baru wireline ini. Diagram berjenjang ini disajikan pada gambar 3.4.
Untuk mengetahui aliran data yang terjadi dalam keseluruhan sistem ini, dapat
dilihat dalam overview diagram yang disajikan pada gambar 3.5.
Seperti yang telah dijelaskan sebelumnya, dalam diagram berjenjang
terdapat tingkatan proses yang terjadi dalam sistem ini. Dalam overview diagram
ini dibagi lagi menjadi 2 bagian detil aliran data yaitu DFD level 2 proses 3 dan
DFD level 2 proses 4. Untuk DFD level 2 proses 3 yang disajikan pada gambar
3.6, akan menjelaskan detil aliran data dari proses 3. Sedangkan untuk DFD level
2 proses 4 yang disajikan pada gambar 3.7, akan menjelaskan detil aliran data dari
proses 4. Selanjutnya, ER-Diagram yang disajikan pada gambar 3.8, akan
menjelaskan hubungan antara beberapa entitas data dengan relasi yang terjadi di
antara entitas tersebut. Untuk menjelaskan secara detil atribut-atribut yang ada
dalam setiap entitas pada ER-Diagram, maka dapat dilihat dalam logical design
yang disajikan pada gambar 3.9.
Dalam penulisan skripsi ini, penulis menggunakan konsep manajemen
transaksi untuk mengatasi masalah concurrency control yang dapat terjadi pada
saat melakukan transaksi dengan menggunakan aplikasi ini. Dimana concurrency
control yang dapat terjadi antara lain adalah masalah hilangnya data yang diubah,
masalah pembacaan yang salah dan masalah analisa yang tidak konsisten. Konsep
manajemen transaksi ini diterapkan pada saat melakukan transaksi penambahan
data baru untuk transaksi pemakaian material dan pengeditan data lama untuk
transaksi pemakaian material baik di level transaksi mitra maupun di level
35
transaksi pelanggan. Konsep manajemen transaksi ini digunakan dalam store
procedure yang digunakan untuk membungkus sebuah transaksi.
3.1. Analisa Sistem
Analisa sistem ini berguna untuk memecahkan masalah yang diidentifikasi
dengan melakukan penguraian sistem menjadi komponen-komponen yang lebih
kecil supaya komponen tersebut mudah untuk dipelajari. Dalam hal ini yang
dipelajari adalah kemampuan sistem dan interaksi yang dilakukan oleh
komponen-komponen yang terkait dalam sistem tersebut. Selain itu, analisa
sistem ini juga berguna untuk mengetahui kebutuhan-kebutuhan apa saja yang
diperlukan dan yang tidak diperlukan dalam sistem ini, serta untuk memahami
masalah-masalah yang terjadi dalam sistem ini. Dengan demikian, dapat
mempermudah dalam memecahkan masalah yang terdapat dalam sistem ini.
3.1.1. Gambaran Umum Sistem
Sistem ini merupakan aplikasi program berbasis web. Sistem ini akan
menangani masalah stok barang yang tersedia dan yang digunakan oleh pihak-
pihak tertentu yang membutuhkan. Untuk masuk ke dalam aplikasi ini, pengguna
aplikasi harus melakukan login terlebih dahulu dengan menggunakan username
dan password yang sudah ditentukan dalam database. Dalam program ini
disediakan beberapa menu yang dapat dipilih oleh user sesuai dengan kebutuhan.
Menu-menu tersebut diantaranya untuk menangani tambah data, edit data dan
hapus data. Untuk administrator, dapat mengakses semua menu yang disediakan.
Admin utama ini dapat menambah data baru, mengedit data lama dan menghapus
36
data dari dalam basis data. Namun untuk user lainnya hanya diijinkan untuk
melihat data saja.
Untuk data-data pelanggan dan data petugas, seperti misalnya nama, alamat,
nomor telepon dsb, sudah tersimpan dalam basis data Cascading Style Sheets
(CSS) yang dimiliki oleh pihak Telkom. Jadi, user tidak perlu lagi menginputkan
seluruh data baru pada menu tambah data. User cukup menginputkan data yang
belum ada dalam basis data saja pada menu tambah data. Data yang perlu
dimasukkan di sini adalah data pemakaian material. Sedangkan untuk beberapa
data yang sudah tersimpan sebelumnya di dalam basis data, hanya akan
ditampilkan saja. Untuk keluar dari program aplikasi ini user dapat melakukan
logout.
3.1.2. Analisa Ruang Lingkup Sistem
Dalam analisa kebutuhan sistem ini, dimaksudkan untuk mengetahui dan
mengumpulkan kebutuhan pengguna dalam aplikasi ini. Dalam hal ini, terdapat 2
macam subsistem yang akan menggunakan aplikasi ini.
1. Subsistem administrator
Subsistem administrator ini dapat melakukan akses terhadap menu-menu
yang tersedia secara keseluruhan. Akses proses yang dapat dilakukan oleh
administrator ini diantaranya adalah dapat melakukan tambah data, edit data, cari
data, daftar user, hapus data dan help. Sedangkan menu-menu yang dapat diakses
oleh administrator ini diantaranya adalah :
37
Rekap Data Material Mitra: pada menu ini, administrator dapat melihat rekap
penggunaan material dan stok material dari setiap Mitra yang bekerjasama
dengan pihak Telkom.
Update Data Pemakaian Material per Mitra : pada menu ini, administrator
dapat melakukan tambah dan edit data terhadap pemakaian material yang
dilakukan oleh masing-masing Mitra.
Update Data Pemakaian Material Pelanggan : pada menu ini, administrator
dapat melakukan tambah, edit dan hapus terhadap data pemakaian material
pelanggan Telkom.
Cari Data Pemakaian Material Pelanggan : pada menu ini, administrator dapat
melakukan proses pencarian terhadap data pelanggan Telkom berdasarkan
field-field dalam dalam tabel tertentu sebagai masukannya.
Daftar User : pada menu ini, administrator dapat melakukan proses
pendaftaran user baru yang dapat mengakses menu-menu yang terdapat dalam
aplikasi ini sesuai dengan hak aksesnya.
Help : pada menu ini, administrator dapat melihat petunjuk cara penggunaan
menu-menu yang terdapat dalam aplikasi ini.
2. Subsistem user atau pengguna
Subsistem user ini hanya dapat melakukan akses terhadap menu-menu
tertentu yang tersedia dalam aplikasi ini. Akses proses yang dapat dilakukan oleh
user ini hanya dapat melakukan lihat data, dan cari data. Dalam hal ini, user yang
dimaksud adalah mitra Tekom dan pegawai Telkom. Sedangkan menu-menu yang
dapat diakses oleh user ini diantaranya adalah :
38
Rekap Data Material Telkom: pada menu ini, user dapat melihat rekap
penggunaan material dan stok material dari setiap Mitra yang bekerjasama
dengan pihak Telkom.
Update Data Pemakaian Material Mitra : pada menu ini, user dapat
melakukan tambah dan edit data terhadap pemakaian material yang dilakukan
oleh masing-masing Mitra.
Update Data Pemakaian Material Pelanggan : pada menu ini, user hanya
dapat melakukan tambah dan edit terhadap data pemakaian material
pelanggan Telkom.
Cari Data pelanggan : pada menu ini, user dapat melakukan proses pencarian
terhadap data pelanggan Telkom berdasarkan field-field dalam dalam tabel
tertentu sebagai masukannya.
Help : pada menu ini, administrator dapat melihat petunjuk cara penggunaan
menu-menu yang terdapat dalam aplikasi ini.
Untuk melakukan transaksi pengolahan data material, hal pertama yang
perlu dilakukan adalah, melakukan transaksi pengolahan data di level mitra.
Dimana dilakukan update data pemakaian material oleh mitra ke gudang Telkom.
Setelah itu, transaksi di level pelanggan dapat dilakukan. Dimana dilakukan
update data pemakaian material oleh pelanggan ke gudang mitra. Penjelasan
mengenai proses transaksi ini akan penulis jelaskan lebih lanjut di bab 4.
39
Pemodelan Sistem Lama
3.2.1. Logical Design Sistem Lama
Gambar 3.1 ER Diagram Sistem Lama
1,1
DATEK_SPEEDY
LA
YA
NA
N
NO
_S
PE
ED
Y
NO
_T
LP
NA
MA
AL
AM
AT
TG
L_
KR
ING
NO
_E
QN
MD
F
RK
PR
IME
R
UP
RIM
ER
SE
KU
ND
ER
DP
NO
DP
US
EK
UN
DE
R
KD
P
daftar_pelanggan2
NO
_T
LP
TG
L_
PS
B
MIT
RA
ST
O
DW
DW
_ed
T7
_ed
T9
T9
_ed
BW
BW
_ed
SK
SK
_ed
CO
N3
M
CO
N3
M_
edP
SA
PS
A_
edB
PB
P_
edM
PM
P_
edH
PH
P_
ed
punya
1,1
stok_material_mitra
DW
_D
WI
DW
_M
AS
TE
L
DW
_S
WA
KE
LO
LA
TG
L_
RE
QU
ES
T
MIT
RA
PE
MB
ER
I
PE
NE
RIM
AD
WD
W_
KO
PE
GT
EL
DW
_C
ITR
A
DW
_S
PM
NO
_R
EQ
UE
ST
T7
_D
WI
T7
_S
PM
T7
_S
WA
KE
LO
LA
T7
_C
ITR
A
T7
_K
OP
EG
TE
L
T7
T7
_M
AS
TE
L
T9
_D
WI
T9
_S
PM
T9
_S
WA
KE
LO
LA
T9
_C
ITR
A
T9
_K
OP
EG
TE
L
T9
T9
_M
AS
TE
L
BW
_D
WI
BW
_S
PM
BW
_S
WA
KE
LO
LA
BW
_C
ITR
A
BW
_K
OP
EG
TE
L
BW
BW
_M
AS
TE
L
SK
_D
WI
SK
_S
PM
SK
_S
WA
KE
LO
LA
SK
_C
ITR
A
SK
_K
OP
EG
TE
L
SK
SK
_M
AS
TE
L
CO
N3
MC
ON
3M
_K
OP
EG
TE
L
CO
N3
M_
CIT
RA
CO
N3
M_
SW
AK
EL
OL
A
CO
N3
M_
MA
ST
EL
A
CO
N3
M_
DW
I
CO
N3
M_
SP
M
PS
AP
SA
_K
OP
EG
TE
L
PS
A_
CIT
RA
PS
A_
SW
AK
EL
OL
A
PS
A_
MA
ST
EL
A
PS
A_
DW
I
PS
A_
SP
M
BP
BP
_K
OP
EG
TE
L
BP
_C
ITR
AB
P_
SW
AK
EL
OL
A
BP
_M
AS
TE
LA
BP
_D
WI
BP
_S
PM
MP
MP
_K
OP
EG
TE
L
MP
_C
ITR
AM
P_
SW
AK
EL
OL
A
MP
_M
AS
TE
LA
MP
_D
WI
MP
_S
PM
HP
HP
_K
OP
EG
TE
L
HP
_C
ITR
AH
P_
SW
AK
EL
OL
A
HP
_M
AS
TE
LA
HP
_D
WI
HP
_S
PM
stok
DW T7
T9
BW SK
CO
N3
MP
SA
BP
MP
HP
punya
1,N
1,N
40
3.3. Penjelasan Singkat Mengenai Perbandingan Antara Sistem Lama dengan
Sistem Baru
Dalam hal ini, penulis akan mencoba menjelaskan perbandingan antara ER-
Diagram dalam pemodelan sistem lama dengan ER-Diagram pada sistem yang baru.
ER-Diagram dalam pemodelan sistem lama belum efisien dibandingkan dengan ER-
Diagram pada sistem yang baru. ER-Diagram dalam overview sistem lama tersebut
tidak sesuai dengan teori yang didapatkan oleh penulis mengenai tata aturan database
yang benar. Hal ini disebabkan karena adanya banyak redundansi atribut dalam setiap
tabelnya. Hal ini dapat dilihat pada gambar 3.1, dimana tabel stok_material_mitra
memiliki atribut yang redundan. Dengan adanya redundansi tersebut, maka tidak
sesuai dengan teori mengenai basis data yang seharusnya tidak mengijinkan adanya
redundansi data dalam sebuah basis data.
Oleh karena itu, penulis mencoba memperbaiki sistem yang lama dengan
sistem yang baru, dimana penulis mencoba untuk meminimalkan redundansi data
yang terdapat dalam basis data. Hal ini dilakukan dengan cara memecah tabel yang
memiliki redundansi data menjadi beberapa tabel. Hal ini dilakukan untuk
meminimalkan adanya redundansi data. Hasil pemecahan tabel tersebut dapat dilihat
pada gambar 3.3. Dengan demikian perancangan basis data untuk sistem yang baru
diharapkan dapat menjadi lebih efisien dibandingkan dengan sistem yang lama.
41
3.4. Pemodelan Sistem Baru
Dalam hal ini terdapat beberapa pemodelan sistem yang digunakan untuk
merancang sistem ini. Model tersebut diantaranya adalah sebagai berikut :
3.4.1. Requirement Analysis
Gambar 3.2 merupakan diagram yang menjelaskan requirement analysis dari
program yang akan dibuat. Use case diagram ini digunakan untuk menggambarkan
proses apa saja yang terjadi ketika salah satu user berhasil login ke dalam aplikasi ini.
Ada 2 jenis user yang terlibat dalam sistem ini yaitu, administrator dan user mitra.
Kedua user ini harus melakukan proses login dengan hak akses yang berbeda.
Administrator dapat melakukan semua proses yang ada dalam sistem. Sedangkan user
mitra hanya dapat melakukan proses cari data pemakaian material pelanggan.
Gambar 3.2. Use Case Diagram
42
3.4.2. Data Flow Diagram
Context Diagram
Gambar 3.3 disajikan context diagram yang menjelaskan hubungan interaksi
yang terjadi antara sistem dengan user yang terlibat. Diagram ini digunakan untuk
menggambarkan data apa saja yang dimasukkan ke dalam sistem oleh user atau
administrator. Dalam diagram ini juga akan ditampilkan data apa saja yang akan
diberikan kepada user maupun administrator sebagai output dari interasi user dengan
sistem yang bernama aplikasi web pasang baru wireline. Arah panah dalam diagram
3.3 ada yang mengarah ke dalam dan ke luar sistem. Anak panah yang mengarah dari
user ke dalam sistem menunjukkan data-data yang dimasukkan user ke dalam sistem.
Sedangkan anak panah yang mengarah dari sistem ke user menunjukkan data-data
yang dikirim ke user sebagai bentuk respon dari sistem terhadap interaksi yang
dilakukan user.
43
Gambar 3.3. Context Diagram
Diagram Berjenjang
Gambar 3.4 merupakan diagram berjenjang yang digunakan untuk
menunjukkan tingkatan proses yang terjadi dalam sistem aplikasi web pasang baru
wireline. Pada gambar 3.4 ditunjukkan bahwa terdapat 2 level tingkatan proses. Level
0 merupakan sistem utama yaitu sistem aplikasi web pasang baru wireline. Level 1
terdapat 7 proses yang terjadi, yaitu: login admin, tambah data material Telkom,
44
update data pemakaian material mitra, update data pemakaian material pelanggan,
daftar user, cari data pemakaian material pelanggan, rekap data pemakaian material
mitra. Proses 2 merupakan entitas eksternal, dimana penulis tidak menangani proses
update terhadap proses ini.
Sedangkan pada level 2, merupakan penjelasan mengenai proses yang terjadi
dalam proses 3 dan proses 4. Level 2 ini merupakan level terakhir dari tingkatan
proses yang terjadi dalam sistem aplikasi web pasang baru wireline. Dalam proses 3
terdapat 2 anak proses, yaitu: tambah data pemakaian material mitra dan edit data
pemakaian material mitra. Dalam proses 4 terdapat beberapa proses, yaitu: tambah
data pemakaian material pelanggan, edit data pemakaian material pelanggan dan
hapus data pemakaian pelanggan.
45
Gambar 3.4. Diagram Berjenjang
46
Overview Diagram
Gambar 3.5 merupakan diagram overview yang menjelaskan aliran data secara
keseluruhan yang terjadi dalam proses yang terdapat dalam sistem khususnya pada
level 1. Pada gambar 3.5 dijelaskan data yang dimasukkan ke dalam proses dan data
yang dikeluarkan dari dalam proses sistem sebagai output yang dapat dilihat oleh user
ketika melakukan proses. Pada gambar 3.5 tersebut, terdapat interaksi antara proses
dan tabel-tabel dalam database. Gambar garis anak panah menunjukkan arah aliran
data baik yang masuk ke dalam sistem maupun yang keluar dari sistem menuju tabel-
tabel dalam basis data. Sedangkan D1, D2, ... , D9 merupakan datastore atau tabel-
tabel dimana data-data yang berkaitan akan tersimpan disini.
Proses-proses yang dijelaskan pada gambar 3.5 ini diantaranya adalah login
admin sebagai 1P, tambah data material Telkom sebagai EV2, update data pemakaian
material per mitra sebagai proses 3, update data pemakaian material pelanggan
sebagai proses 4, daftar user sebagai 5P, cari data pemakaian material pelanggan
sebagai 6P, dan rekap data pemakaian material mitra sebagai 7P. Perlu diketahui
untuk proses tambah data material Telkom ini penulis tidak menangani proses update
data. Karena proses ini merupakan proses eksternal.
47
Gambar 3.5. Overview Diagram
48
DFD Level 2 Proses 3
Gambar 3.6 merupakan DFD level 2 untuk proses 3. Diagram ini akan
menjelaskan secara detil mengenai aliran data yang terjadi pada proses 3. Dalam hal
ini terdapat 2 proses yaitu, tambah data pemakaian material mitra dan edit data
pemakaian material mitra. Pada gambar 3.6 disajikan aliran data yang masuk maupun
aliran data yang keluar dari dalam proses 3.1P dan 3.2P.
Gambar 3.6. DFD Level 2 Proses 3
49
DFD Level 2 Proses 4
Gambar 3.7 merupakan DFD level 2 untuk proses 4. Diagram ini akan
menjelaskan secara detil mengenai aliran data yang terjadi pada proses 3. Dalam hal
ini terdapat 2 proses yaitu, tambah data pemakaian material mitra dan edit data
pemakaian material mitra. Pada gambar 3.6 disajikan aliran data yang masuk maupun
aliran data yang keluar dari dalam proses 3.1P dan 3.2P.
Gambar 3.7. DFD Level 2 Proses 4
50
3.4.3. Logical Design
Gambar 3.8 merupakan ER-Diagram yang menjelaskan mengenai hubungan
antara entitas dengan relasi yang ada dalam sistem ini. Pada ER-Diagram ini terdapat
7 macam entitas dan 7 relasi. 6 macam entitas tersebut diantaranya adalah: datek_psb,
pelanggan, pemakaian_material_pelanggan, material_mitra, mitra, material_telkom,
pemakaian_material_telkom. Sedangkan 6 macam relasi tersebut diantaranya adalah:
punya, melakukan, detail_pemakaian_pelanggan, termasuk, memakai,
detail_pemakaian_mitra. Entitas-entitas ini akan menjadi sebuah tabel yang
digunakan untuk menampung nilai yang dimasukkan ke dalam basis data melalui
aplikasi ini. Untuk entitas datek_psb, penulis tidak memiliki hak untuk dapat meng-
update data yang ada di dalamnya.
Untuk melakukan transaksi di sini, harus dimulai dari level transaksi mitra
kemudian baru dilanjutkan dengan melakukan transaksi di level pelanggan. Untuk
level transaksi mitra, entitas yang berhubungan disini adalah material_telkom,
material_mitra, mitra, pemakaian_material_mitra dan sebuah relasi yang digunakan
untuk menyimpan data transaksi yaitu relasi detail_pemakaian_material_mitra. Dalam
transaksi di level mitra ini akan mengurangi jumlah stok material yang tersimpan
dalam entitas material_telkom dan akan menambahkan jumlah stok material ke dalam
entitas material_mitra.
Untuk transaksi di level pelanggan, entitas-entitas yang berhubungan adalah
material_mitra, pemakaian_material_pelanggan, pelanggan, datek_psb dan sebuah
relasi yaitu detail_pemakaian_pelanggan. Relasi ini akan menyimpan data transaksi
yang dilakukan di level pelanggan. Untuk entitas datek_psb merupakan entitas
eksternal, karena entitas ini ada dalam basis data, tetapi penulis tidak memiliki hak
untuk mengakses entitas ini.
51
Pemodelan Data
Gambar 3.8. E-R Diagram
52
Logical Design
Setelah membuat ER diagram, langkah selanjutnya adalah membuat logical
design untuk mengetahui secara detail mengenai atribut-atribut yang tersimpan dalam
tabel atau entitas dalam ER-Diagram. Logical design ini disajikan pada gambar 3.9.
Pada gambar 3.9 ini akan dijelaskan hubungan antara setiap tabel dengan hubungan
antar atribut dalam setiap tabel.
Gambar 3.9. Logical Design
53
3.4.4. Physical Design
Dalam perancangan sistem ini, penulis membuat 1 basis data yang akan
digunakan yaitu “telkom”. Basis data ini memiliki 12 tabel yang dibutuhkan. Dalam
fisikal desain ini disajikan penjelasan mengenai tabel-tabel tersebut yaitu: tabel 3.1,
tabel 3.2, tabel 3.3, tabel 3.4, tabel 3.5, tabel 3.6, tabel 3.7, tabel 3.8, tabel 3.9, tabel
3.10, tabel 3.11 dan tabel 3.12. Berikut ini adalah tabel-tabel yang dimaksud, beserta
dengan penjelasan kegunaannya :
3.4.4.1. Tabel login
Nama file data : login.sql
Primary Key : user
Tabel 3.1. login
Nama Field Tipe Data Keterangan
PK user varchar(30) Dalam field ini tersimpan
nama user.
password varchar(30) Dalam field ini tersimpan
password user.
level integer(1) Dalam field ini tersimpan level
akses user.
54
3.4.4.2. Tabel konfigurasi
Nama file data : konfigurasi.sql
Primary Key : user
Tabel 3.2. konfigurasi
Nama Field Tipe Data Keterangan
parameter varchar(30) Dalam field ini tersimpan
tulisan “last_update”
nilai varchar(50) Dalam field ini tersimpan
tanggal terakhir dimana user
melakukan update data.
3.4.4.3. Tabel pelanggan
Nama file data : pelanggan.sql
Primary Key : NO_TLP, ID_MITRA
(NO_TLP merupakan FK dari tabel datek_psb)
Tabel 3.3. pelanggan
Nama Field Tipe Data Keterangan
PK NO_TLP varchar(15) Dalam field ini tersimpan no
telepon pelanggan Telkom yang
masih aktif.
TGL_PEMAKAIAN datetime Dalam field ini tersimpan tanggal
pemakaian material pelanggan
Telkom untuk
55
pasang baru wireline yang
dilakukan oleh petugas Telkom.
PK ID_MITRA varchar(30) Dalam field ini tersimpan nama
mitra yang melakukan
pemasangan material yang
dibutuhkan pelanggan Telkom
untuk pasang baru wireline.
DW integer(30) Dalam field ini tersimpan jumlah
material drop wire yang
digunakan untuk pasang baru
wireline.
T7 integer (30) Dalam field ini tersimpan jumlah
material tiang berjenis tiang 7
yang digunakan untuk pasang
baru wireline.
T9 integer (30) Dalam field ini tersimpan jumlah
material tiang berjenis tiang 9
yang digunakan untuk pasang
baru wireline.
CON3M integer (30) Dalam field ini tersimpan jumlah
material connector berjenis 3M
yang digunakan
56
untuk pasang baru wireline.
BW integer (30) Dalam field ini tersimpan jumlah
material connector berjenis blue
wire yang digunakan untuk
pasang baru wireline.
SK integer (30) Dalam field ini tersimpan jumlah
material connector berjenis
Selongsong Kerut yang
digunakan untuk pasang baru
wireline.
PSA integer (30) Dalam field ini tersimpan jumlah
material Pole Strap A yang
digunakan untuk pasang baru
wireline.
BP integer (30) Dalam field ini tersimpan jumlah
material jumper wire berwarna
biru putih yang digunakan untuk
pasang baru wireline.
MP integer (30) Dalam field ini tersimpan jumlah
material jumper wire berwarna
merah putih yang digunakan
57
untuk pasang baru wireline.
HP integer (30) Dalam field ini tersimpan jumlah
material jumper wire berwarna
hitam putih yang digunakan untuk
pasang baru wireline.
HAPUS varchar(5) Untuk menyimpan status data
yang terhapus atau belum. Jika
data dihapus, maka akan bernilai
“YES”, jika data belum terhapus,
maka akan bernilai “NO”.
3.4.4.4. Tabel datek_psb
Nama file data : datek_psb.sql
Primary Key : NO_TLP
Tabel 3.4. datek_psb
Nama Field Tipe Data Keterangan
PK NO_TLP varchar(15) Dalam field ini tersimpan no
telepon pelanggan Telkom yang
masih aktif.
LAYANAN varchar(10) Dalam field ini tersimpan jenis-
jenis layanan atau paket yang
58
disediakan olah Telkom.
NAMA varchar(30) Dalam field ini tersimpan nama
pelanggan Telkom yang aktif.
ALAMAT varchar(110) Dalam field ini tersimpan alamat
pelanggan Telkom yang aktif.
TGL_KRING datetime Dalam field ini tersimpan tanggal
petugas mengambil work order
untuk melakukan pasang baru
wireline ke rumah-rumah
pelanggan.
TGL_VAL datetime Dalam field ini tersimpan tanggal
validasi.
NO_EQN varchar(15) Dalam field ini tersimpan nomor
EQN pelanggan Telkom.
MDF varchar(5) Dalam field ini tersimpan Main
Distribution Frame (daerah lokasi
dimana pelanggan Telkom berada).
RK varchar(5) Dalam field ini tersimpan jenis
rumah kabel berdasarkan lokasi
pelanggan.
PRIMER varchar(8) Dalam field ini tersimpan jenis-
59
jenis kabel primer.
UPRIMER varchar(7) Dalam field ini tersimpan nomor
kode user primer dari pelanggan.
SEKUNDER varchar(8) Dalam field ini tersimpan jenis-
jenis kabel sekunder.
USEKUNDER varchar(7) Dalam field ini tersimpan nomor
kode user sekunder dari pelanggan.
DP varchar(5) Dalam field ini tersimpan
distribution point dari lokasi
pelanggan.
NODP varchar(7) Dalam field ini tersimpan nomor
distribution point dari lokasi
pelanggan.
KDP varchar(7) Dalam field ini tersimpan nomor
urat kabel distribution point dari
lokasi pelanggan.
60
3.4.4.5. Tabel material_telkom
Nama file data : material_telkom.sql
Primary Key : ID_MATERIAL
Tabel 3.5. material_telkom
Nama Field Tipe Data Keterangan
PK ID_MATERIAL varchar(30) Dalam field ini tersimpan jenis-jenis
material yang dimiliki oleh pihak Telkom.
KETERANGAN varchar(50) Dalam field ini tersimpan nama keterangan
dari material yang ada dalam gudang
Telkom.
STOK integer(30) Dalam field ini tersimpan jumlah stok
material milik Telkom yang masih tersedia
dalam gudang Telkom.
3.4.4.6. Tabel material_mitra
Nama file data : material_mitra.sql
Primary Key : ID_MITRA, ID_MATERIAL
Tabel 3.6. material_mitra
Nama Field Tipe Data Keterangan
PK ID_MITRA varchar(30) Dalam field ini tersimpan nama
mitra yang melakukan
permintaan material pada waktu
61
tertentu.
PK ID_MATERIAL varchar(30) Dalam field ini tersimpan jenis-
jenis material yang diminta oleh
mitra tertentu.
STOK integer(30) Dalam field ini tersimpan stok
jumlah material dari seluruh
mitra Telkom.
3.4.4.7. Tabel mitra
Nama file data : mitra.sql
Primary Key : ID_MITRA
Tabel 3.7. mitra
Nama Field Tipe Data Keterangan
PK ID_MITRA varchar(30) Dalam field ini tersimpan nama mitra
TELKOM yang melakukan permintaan
material.
62
3.4.4.8. Tabel pemakaian_material_pelanggan
Nama file data : pemakaian_material_ pelanggan.sql
Primary Key : NO_PEMAKAIAN
Foreign Key : NO_TLP (Foreign Key dari tabel datek_psb)
Tabel 3.8. pemakaian_material_ pelanggan
Nama Field Tipe Data Keterangan
PK NO_PEMAKAIAN integer(30) Dalam field ini tersimpan nomor
pemakaian material yang dilakukan
oleh mitra tertentu yang
meminta/memesan salah satu atau
beberapa material.
FK NO_TLP varchar(30) Dalam field ini tersimpan no
telepon pelanggan telkom yang
masih aktif, yang merupakan
foreign key dari tabel pelanggan .
TGL_PEMAKAIAN datetime Dalam field ini tersimpan tanggal
pemakaian material di rumah
pelanggan yang dilakukan oleh
mitra tertentu yang meminta atau
memesan salah satu atau beberapa
jumlah material.
63
HAPUS varchar(5) Untuk menyimpan status data yang
terhapus atau belum. Jika data
dihapus, maka akan bernilai “YES”,
jika data belum terhapus, maka
akan bernilai “NO”.
3.4.4.9. Tabel detail_pemakaian_ pelanggan
Nama file data : detail_pemakaian_pelanggan.sql
Primary Key : NO_PEMAKAIAN, ID_MATERIAL, ID_MITRA
Tabel 3.9. detail_pemakaian_pelanggan
Nama Field Tipe Data Keterangan
PK NO_PEMAKAIAN integer(30) Dalam field ini tersimpan nomor
pemakaian material untuk pelanggan
yang dilakukan oleh mitra tertentu
yang meminta atau memesan salah
satu atau beberapa material.
PK ID_MATERIAL varchar(30) Dalam field ini tersimpan jenis-jenis
material yang diminta oleh mitra
tertentu.
PK ID_MITRA varchar(30) Dalam field ini tersimpan nama mitra
yang melakukan permintaan material.
64
JML_PEMAKAIAN int(30) Dalam field ini tersimpan jumlah
pemakaian material untuk pelanggan
yang digunakan oleh mitra tertentu.
HAPUS varchar(5) Untuk menyimpan status data yang
terhapus atau belum. Jika data
dihapus, maka akan bernilai “YES”,
jika data belum terhapus, maka akan
bernilai “NO”.
3.4.4.10. Tabel pemakaian_material_mitra
Nama file data : pemakaian_material_mitra.sql
Primary Key : NO_REQUEST
Tabel 3.10. pemakaian_material_mitra
Nama Field Tipe Data Keterangan
PK NO_REQUEST varchar(30) Dalam field ini tersimpan nomor
permintaan material yang dilakukan
oleh mitra tertentu yang meminta
atau memesan salah satu atau
beberapa material dari gudang
Telkom.
TGL_REQUEST datetime Dalam field ini tersimpan tanggal
permintaan material pada gudang
65
Telkom yang dilakukan oleh mitra
tertentu yang meminta atau
memesan salah satu atau beberapa
material.
ID_MITRA varchar(30) Dalam field ini tersimpan nama
mitra yang melakukan permintaan
material.
PEMBERI varchar(30) Dalam field ini tersimpan nama
pemberi yang memberi material
yang dibutuhkan oleh mitra yang
bersangkutan pada waktu tertentu.
PENERIMA varchar(30) Dalam field ini tersimpan nama
penerima yang menerima material.
Dalam hal ini penerimanya
merupakan pihak mitra yang
bersangkutan pada waktu tertentu.
66
3.4.4.11. Tabel detail_pemakaian_mitra
Nama file data : detail_pemakaian_mitra.sql
Primary Key : NO_REQUEST, ID_MATERIAL
Tabel 3.11. detail_pemakaian_mitra
Nama Field Tipe Data Keterangan
PK NO_ REQUEST varchar(30) Dalam field ini tersimpan nomor
permintaan material yang dilakukan
oleh mitra tertentu yang meminta
atau memesan salah satu atau
beberapa material dari gudang
Telkom.
PK ID_MATERIAL varchar(30) Dalam field ini tersimpan jenis-jenis
material yang diminta oleh mitra
tertentu dari gudang Telkom.
JML_ REQUEST integer(30) Dalam field ini tersimpan jumlah
permintaan material yang digunakan
oleh masing-masing mitra tertentu.
67
BAB IV
IMPLEMENTASI SISTEM DAN PEMBAHASAN HASIL
Pada bab 4 ini akan dijelaskan mengenai pembahasan hasil dari implementasi
sistem yang telah dibuat ke dalam aplikasi. Selain itu juga akan dibahas mengenai
beberapa potongan lsiting program yang dianggap penting dalam menunjang
pembuatan program ini. Dalam bab ini juga akan disajikan penjelasan mengenai
simulasi penggunaan store procedure dengan penerapan manajemen transaksi untuk
menangani concurrency control. Pada akhir bab ini juga akan dibahas mengenai
kelebihan dan kelemahan program yang dibuat dalam skripsi ini.
4.1. Karakteristik Sistem
Setelah penulis selesai menganalisa dan merancang sistem yang akan dibuat,
langkah selanjutnya adalah mencoba mengimplementasikan ke dalam bahasa
program yang dapat dimengerti oleh mesin.
Program Monitoring Operasi Harian Access Network Operation ini digunakan
untuk mengontrol penggunaan material yang digunakan untuk melakukan operasi
harian yang dilaksanakan oleh perusahaan Telkom. Cara pengontrolan tersebut
adalah dengan memasukkan data material, data pemberi dan penerima material, data
pelanggan yang menggunakan material ke dalam basis data. Dengan demikian, data-
data yang telah dimasukkan tersebut dapat digunakan sebagai sarana pengontrolan
68
material perusahaan Telkom. Pihak yang berhak untuk meng-update data-data
tersebut adalah pihak admin, sedangkan pihak user hanya dapat melihat data-data
tersebut. Selain itu, program ini dapat mendukung penggunaan secara multiuser,
karena program ini telah menggunakan teknologi manajemen transaksi dan
concurrency control.
Dalam membuat program berbasis web ini, penulis menggunakan langkah-
langkah sebagai berikut :
a. Menerjemahkan ER-Diagram yang telah penulis desain pada tahap analisa dan
perancangan sistem ke dalam bentuk SQL (Structure Query Language).
b. Membuat store procedure yang dibutuhkan.
c. Membuat program yang dibutuhkan dalam bentuk web.
d. Menguji program yang telah dibuat.
Untuk tampilan program ini, penulis merekomendasikan untuk menggunakan
resolusi 1024 x 768 pixel, karena jika menggunakan resolusi selain 1024 x 768 pixel,
tampilan program menjadi kurang bagus.
4.2. Pengaturan Koneksi PHP ke basis data MySQL
Untuk mengkoneksikan PHP ke basis data MySQL, harus menggunakan
sintaks koneksi. Selain itu dalam file php.ini ada beberapa extension yang harus
diaktifkan, diantaranya adalah:
extension=php_mysql.dll
extension=php_mysqli.dll
69
Berikut ini adalah potongan script untuk melakukan koneksi ke basis data:
Gambar 4.1. Script koneksi.php
Pada Gambar 4.1 merupakan script untuk melakukan koneksi ke basis data.
Dalam hal ini, nama basis data yang digunakan adalah telkom nama host-nya adalah
localhost, nama user-nya adalah root dan port yang digunakan adalah 3306.
Sedangkan untuk password tidak digunakan. Untuk perintah yang diberi warna biru,
merupakan perintah yang berfungsi untuk menghubungkan ke basis data yang
dimaksud. Jika basis data tidak dapat terhubung dengan benar, maka pada tampilan
halaman HTML, akan tertampil tulisan “database tidak ditemukan”. Jika koneksi
berhasil, maka tampilan aplikasi dapat digunakan oleh user. Berikut ini merupakan
penjelasan mengenai menu-menu yang dapat digunakan oleh user yang berlaku
sebagai administrator yang dapat mengkases seluruh menu.
<?php$hostname="localhost";$username="root";$password="";$database="telkom";$port="3306";
if(!$pilih_db=mysql_connect($hostname,$username,$password,$port)){
echo mysql_error();exit;
}mysql_select_db($database,$pilih_db)or die("database tidak ditemukan");
?>
70
4.3. User Interface
Dalam hal ini, ada 2 macam user interface yang terkait dalam pembuatan
program ini, yaitu : user interface untuk input data dan user interface untuk output
data.
4.3.1. Input dan Output User Interface
User Interface input dan output data dapat dilihat pada Gambar 4.1 sampai
dengan Gambar 4.47. Berikut ini adalah penjelasannya:
4.3.1.1. Input Login User dan Administrator
Gambar 4.2. Input Login
Pada Gambar 4.2, user diminta untuk memasukkan username dan password yang
sudah tersimpan dalam basis data. Ketika username dan password user benar, maka
user akan dialihkan ke halaman home dengan menu-menu yang tersedia sesuai
dengan level akses user tersebut. Menu-menu yang dapat diakses oleh administrator
adalah : menu data pelanggan, menu tambah data pemakaian material mitra, menu
edit data pemakaian material mitra, menu tambah data pemakaian pelanggan, menu
71
edit data pemakaian pelanggan, menu hapus data pemakaian pelanggan, menu cari
data pemakaian material pelanggan, menu daftar user dan menu help. Sedangkan
menu-menu yang dapat diakses oleh user adalah: menu data pelanggan, menu
tambah data pemakaian material mitra, menu tambah data pemakaian pelanggan,
menu edit data pemakaian pelanggan, menu cari data pemakaian material pelanggan,
dan menu help.
Jika user belum memiliki username dan password, maka user dapat
melakukan pendaftaran dengan memiih menu daftar. Perlu untuk diketahui bahwa
proses pendaftaran user baru, hanya dapat dilakukan oleh administrator.
4.3.1.2. Input Daftar Username Untuk User dan Aministrator
Gambar 4.3 merupakan tampilan input daftar user baru.
Gambar 4.3. Input Daftar User
Gambar 4.3. ini juga merupakan menu yang hanya dapat diakses oleh
administrator. Menu pendaftaran user baru ini hanya dapat diakses oleh
adminitrator, untuk memantau siapa saja yang melakukan pendaftaran user baru.
72
72
Administrator dapat melakukan proses pendaftaran username baru, dimana
administrator diminta untuk memasukkan username, level akses, dan password yang
diinginkan. Level akses inilah, yang akan menentukan hak akses terhadap menu-
menu yang tersedia untuk setiap user yang mendaftar. Untuk level 1, user dapat
mengakses seluruh menu, sedangkan level 2, user hanya dapat mengakses beberapa
menu saja. Penulis akan mencoba menjelaskan input dan output untuk menu-menu
yang dapat diakses oleh administrator.
Perlu diketahui, untuk menjalankan proses sistem ini, alur programnya adalah
administrator pertama kali harus melakukan proses request jumlah material mitra
dari gudang Telkom sesuai dengan kebutuhan masing-masing mitra Telkom, dengan
mengakses menu tambah data pemakaian material mitra. Setelah administrator
memasukkan jumlah material untuk masing-masing mitra tersebut, selanjutnya
administrator melakukan proses penambahan data pemakaian material pelanggan
dengan mengakses menu tambah data material pelanggan, yang akan penulis
jelaskan secara detil di halaman selanjutnya.
4.3.1.3. Input Ubah Password User dan Administrator
Jika user ingin merubah password lama dengan password yang baru, dapat
dilakukan dengan memilih menu ubah password. Gambar 4.4 merupakan tampilan
input untuk mengubah password user.
73
Gambar 4.4. Input Ubah Password
4.3.1.4. Menu Data Pelanggan
Ketika user meng-klik menu ini, maka akan dialihkan ke halaman dengan
nama file home.php. Untuk kembali ke halaman menu utama, user dapat meng-klik
tulisan “di sini” yang berada di bagian atas. Gambar 4.5 merupakan tampilan menu
data pelanggan.
Gambar 4.5. Menu Data Pelanggan
Pada tampilan Gambar 4.5, terdapat link berupa angka, dimana jika user
mengklik jumlah angka yang belum dimasukkan, maka user akan dialihkan ke
halaman home2.php. Dimana akan menampilkan sejumlah data pelanggan yang
masih aktif dan yang belum dimasukkan melalui aplikasi ini. Sedangkan jika user
74
meng-klik angka yang sudah dimasukkan, maka user akan dialihkan ke halaman
home3.php. Dimana akan ditampilkan sejumlah data pelanggan yang masih aktif
yang telah dimasukkan ke dalam aplikasi ini.
4.3.1.5. Output Menu Data Pelanggan
Gambar 4.6 merupakan tampilan output menu data pelanggan untuk
halaman home2.php, setelah user meng-klik angka 5495, pada tampilan menu data
pelanggan :
Gambar 4.6. Output Menu Data Pelanggan Yang Belum Di-input-kan
Tampilan diatas menampilkan data pelanggan yang belum dimasukkan ke dalam
aplikasi ini. Sedangkan jika data pelanggan yang sudah dimasukkan ke dalam basis
data melalui aplikasi ini tidak akan ditampilkan di output ini.
Gambar 4.7 adalah tampilan output menu data pelanggan untuk halaman
home3.php, setelah user meng-klik angka 1, pada tampilan menu data pelanggan.
Gambar 4.7. Output Menu Data Pelanggan Yang Sudah Dimasukkan
75
4.3.1.6. Menu Rekap Data Pemakaian Material Mitra
Gambar 4.8 merupakan tampilan menu rekap data pemakaian material
mitra.
Gambar 4.8. Menu Rekap Data Pemakaian Material Mitra
Menu rekap data pemakaian material mitra ini akan menampilkan jumlah
pemakaian material yang telah di-request oleh masing-masing mitra Telkom.
Material tersebut diantaranya adalah DW (Drop Wire), tiang berjenis T7 dan T9,
Connector berjenis BW (Blue Wire), SK(Selongsong Kerut) dan 3M. PSA (Pole Strap
A). JP(Jumper Wire) berjenis BP(Biru Putih), MP(Merah Putih), HP(Hitam Putih).
Sedangkan mitra yang dimaksud berjumlah 6, diantaranya adalah: CITRA
SETIATEL, KOPEGTEL, DWI ESHA, SPM, MASTEL MANDIRI, dan
SWAKELOLA.
4.3.1.7. Output Menu Rekap Data Pemakaian Material Mitra
Gambar 4.9 adalah tampilan output menu rekap data pemakaian material
Mitra:
Gambar 4.9. Output Menu Rekap Data Pemakaian Material Mitra
76
Jika user meng-klik salah satu angka pada Gambar 4.7, maka akan
ditampilkan Gambar 4.9. Tampilan tersebut merupakan tampilan untuk jumlah
material tiang T7 yang telah di-request oleh beberapa mitra Telkom. Dapat dilihat
pada tabel tersebut terdapat keterangan no request, tanggal request, nama mitra,
pemberi material, penerima material, ID material dan jumlah request material T7
yang diminta oleh setiap mitra.
4.3.1.8. Menu Tambah Data Pemakaian Material Mitra
Gambar 4.10 merupakan tampilan untuk menu tambah data pemakaian
material mitra.
Gambar 4.10. Menu Tambah Data Pemakaian Material Mitra
Pada menu tambah data pemakaian material mitra ini user dapat me-
request material berdasarkan mitra tertentu. Mitra-mitra ini adalah mitra yang bekerja
sama dengan pihak Telkom. Diantaranya: CITRA SETIATEL, KOPEGTEL, DWI
ESHA, MASTEL MANDIRI, SPM dan SWAKELOLA. Ketika menu ini di-klik,
maka user akan dialihkan ke halaman rekap_request_material.php.
Setiap mitra dapat melakukan request material sesuai dengan kebutuhan
masing-masing mitra. Stok material ini akan diambil dari gudang milik Telkom. Jadi,
ketika salah satu mitra melakukan request material, maka akan mengurangi jumlah
77
stok material milik Telkom. Dengan kata lain, akan mengurangi jumlah stok material
pada tabel material_telkom.
Hasil request material yang di-request oleh setiap mitra tersebut akan
tersimpan sebagai stok material milik masing-masing mitra. Dengan kata lain, jumlah
angka yang di-request ini akan tersimpan dalam tabel material_mitra.
4.3.1.9. Input Menu Tambah Data Pemakaian Material Mitra
Halaman menu ini dapat diakses oleh adminisrator maupun user. Berikut ini
adalah tampilan setelah user meng-klik salah satu link pada tampilan Gambar 4.6.
Dalam hal ini, dimisalkan meng-klik link bertuliskan CITRA SETIATEL yang
merupakan salah satu nama mitra Telkom. Ketika user meng-klik tulisan CITRA
SETIATEL pada tampilan Gambar 4.10, maka user akan dialihkan ke halaman
rekap_citra.php. Gambar 4.11 adalah tampilan input menu tambah data pemakaian
material mitra.
78
Gambar 4.11. Input Menu Tambah Data Pemakaian Material Mitra
Dapat dilihat pada Gambar 4.11, pada form inputan DAFTAR STOCK
OPNAME, user akan diminta untuk memasukkan data-data seperti no request,
tanggal request, pemberi, penerima dan jumlah material yang dibutuhkan oleh mitra
CITRA SETIATEL. Daftar stock masukan data-data tersebut akan tersimpan dalam 4
tabel, yaitu: detail_pemakaian_mitra, material_mitra, mitra dan
pemakaian_material_mitra. User dapat melihat sisa stok gudang Telkom pada tabel
DAFTAR STOK GUDANG TELKOM, untuk menentukan berapa banyak jumlah
material yang dapat di-request di menu ini.
User mitra dapat me-request material dengan cara memasukkan jumlah angka
yang diinginkan pada kolom “Aksi” diikuti dengan menekan tombol “TAMBAH”.
Ketika user menekan tombol “TAMBAH” ini, maka secara otomatis pada kolom sisa
79
stok, jumlah angkanya akan bertambah, dan user akan melihat tampilan tabel hasil
masukan user tadi pada halaman hasil_request.php.
User hanya dapat melakukan request material sesuai dengan persediaan yang
terdapat dalam gudang Telkom. Jika stok material pada gudang Telkom sudah habis,
maka mitra-mitra tersebut tidak dapat melakukan request material. User dapat me-
request material dengan cara memasukkan jumlah angka yang diinginkan pada
kolom “Aksi” diikuti dengan menekan tombol “TAMBAH”. Ketika user menekan
tombol “TAMBAH” ini, maka secara otomatis pada kolom sisa stok, jumlah
angkanya akan bertambah. Jika stok material di tabel material_telkom sudah habis
atau kurang dari 40000, maka akan muncul peringatan. Jika salah satu stok material
dalam tabel material_telkom habis, maka tidak dapat melakukan pemasukkan data.
Akan tetapi jika ada salah satu stok material dalam tabel material_telkom kurang dari
40000, walaupun ada peringatan, user dan administrator masih dapat melakukan
pemasukkan data. Peringatan ini akan terus muncul sampai stok dalam tabel
material_telkom ditambahkan kembali.
Sedangkan untuk form DAFTAR JUMLAH PEMAKAIAN MATERIAL
PELANGGAN, user dapat melihat jumlah pemakaian material-material yang
digunakan oleh mitra CITRA SETIATEL untuk melakukan pasang baru wireline di
rumah-rumah pelanggan. Jumlah setiap material pada form DAFTAR JUMLAH
PEMAKAIAN MATERIAL PELANGGAN ini akan muncul jika user malakukan
penambahan data pemakaian material ke pelanggan pada menu tambah data
pemakaian material pelanggan yang akan penulis jelaskan lebih lanjut.
80
4.3.1.10. Output Menu Tambah Data Pemakaian Material Mitra
Gambar 4.12 merupakan tampilan output menu tambah data material
mitra.
Gambar 4.12. Output Menu Tambah Data Material Mitra
Gambar 4.12 merupakan salah satu tampilan output salah satu mitra yang
melakukan request sejumlah material. Dalam hal ini, mitra yang diambil sebagai
contohnya adalah mitra CITRA SETIATEL. Ketika user menekan tombol
“TAMBAH” pada Gambar 4.11, maka akan tertampil Gambar 4.12. Dimana Gambar
4.12 akan menampilkan jumlah material apa saja yang di-request oleh CITRA
SETIATEL. Selain itu juga akan menampilkan nomor request, tanggal request, nama
mitra, pemberi dan penerima material, dan ID material yang di-request oleh mitra
tersebut. Gambar 4.13 merupakan peringatan jika user atau administrator
memasukkan nomor request yang sama.
81
Gambar 4.13. Peringatan Ketika Nomor Request yang dimasukkan User sama
dengan yang Sebelumnya
Gambar 4.14 merupakan tampilan peringatan ketika melakukan input data
dan jika dalam tabel material_telkom, jumlah stok materialnya habis atau kurang dari
40000. Gambar 4.15 merupakan tampilan ketika stok dalam tabel material_telkom
sudah habis.
Gambar 4.14. Peringatan Ketika Stok Gudang Telkom Tinggal 40000
Gambar. 4.15. Peringatan Ketika Stok Gudang Telkom Sudah Habis
82
4.3.1.11. Input Pencarian Data Pelanggan Berdasarkan Tanggal Pemakaian
Material Mitra ke Pelanggan.
Gambar 4.16 adalah tampilan form input pencarian data pelanggan
berdasarkan tanggal pemakaian material mitra yang dilakukan oleh salah satu mitra
Telkom untuk keperluan pasang baru wireline ke rumah-rumah pelanggan.
Gambar 4.16. Input Pencarian Data Pelanggan Berdasarkan
Tanggal Pemakaian Material Mitra.
Form inputan ini merupakan lanjutan dari proses pada Gambar 4.11. Jika user meng-
klik salah satu jumlah material pada form DAFTAR JUMLAH PEMAKAIAN
MATERIAL PELANGGAN, maka user akan dialihkan ke halaman input Gambar
4.16, untuk melakukan pencarian data pelanggan tentang jumlah pemakaian salah
satu material yang dipakai oleh mitra CITRA SETIATEL ke rumah pelanggan.
Pencarian data jumlah pemakaian material mitra ini akan di-sort berdasarkan tanggal
pemakaian material ke rumah pelanggan. User akan diminta untuk memasukkan
tanggal pemakaian material pada jangka waktu yang diinginkan. Output hasil
83
masukan tadi akan ditampilkan pada halaman yang sama dalam bentuk tabel yang
menampilkan data-data pelanggan yang diinginkan berdasarkan tanggal pemakaian
material mitra yang telah di-input-kan oleh user.
4.3.1.12. Input Nomor Request Pada Menu Edit Data Pemakaian
Material Mitra
Gambar 4.17 adalah tampilan input awal menu edit data pemakaian
material mitra.
Gambar 4.17. Input Nomor Request untuk Edit Data Pemakaian Material Mitra
Untuk menu ini, user harus memasukkan nomor request yang ingin di-edit. Dalam
hal ini yang akan di-edit hanya jumlah pemakaian material yang di-request oleh salah
satu mitra Telkom. Jika nomor request tidak ada dalam basis data, maka akan
muncul peringatan pada gambar 4.18.
Gambar 4.18. Peringatan Jika Nomor Request Tidak Ada Dalam Basis data
Sedangkan, untuk gambar 4.19 merupakan tampilan jika user tidak
memasukkan nomor request.
84
Gambar 4.19. Peringatan Jika Tidak meng-input-kan Nomor Request
4.3.1.13. Input Menu Edit Data Pemakaian Material Mitra
Gambar 4.20 merupakan tampilan form input menu edit data pemakaian
material mitra.
Gambar 4.20. Input Menu Edit Data Pemakaian Material Mitra
Pada Gambar 4.20, penulis mengambil contoh tampilan menu edit data
material mitra untuk mitra CITRA SETIATEL. Penulis hanya akan meng-edit salah
satu jumlah material mitra CITRA SETIATEL. Dimisalkan, penulis akan meng-edit
jumlah material DW, dimana jumlah awalnya adalah 10, dan akan di-edit menjadi 11.
Untuk mengeditnya, user dapat mengetikkan angka yang akan di-replace pada kolom
aksi, diikuti dengan menekan tombol “edit data”.
85
Ketika user menekan tombol edit data, maka akan tampil output yang berupa
tabel hasil edit tadi. Tabel tersebut dapat dilihat pada Gambar 4.21. Ketika tombol
edit data di-klik, maka secara otomatis, angka pada kolom sisa stock akan ter-update
dengan angka masukan baru yang dimasukkan user.
Jika stok material di tabel material_telkom sudah habis atau kurang dari
40000, maka akan muncul peringatan. Jika salah satu stok material dalam tabel
material_telkom habis, maka tidak dapat melakukan masukan data. Akan tetapi jika
ada salah satu stok material dalam tabel material_telkom kurang dari 40000,
walaupun ada peringatan, user dan administrator masih dapat melakukan edit data.
Peringatan ini akan terus muncul sampai stok dalam tabel material_telkom
ditambahkan kembali.
Gambar 4.21 merupakan tampilan peringatan ketika melakukan input data,
jika dalam tabel material_telkom, jumlah stok materialnya habis atau kurang dari
40000. Sedangkan gambar 4.22 adalah tampilan ketika stok dalam tabel
material_telkom sudah habis.
Gambar 4.21. Peringatan Ketika Stok Gudang Telkom Tinggal 40000
Gambar. 4.22. Peringatan Ketika Stok Gudang Telkom Sudah Habis
86
4.1.3.14. Output Menu Edit Data Pemakaian Material Mitra
Gambar 4.23 adalah tampilan output menu edit data pemakaian material
mitra.
Gambar. 4.23. Output Menu Edit Data Pemakaian Material Mitra
Jika proses update pada form Gambar 4.20 berhasil, maka akan muncul tabel
yang dapat dilihat pada Gambar 4.23. Tampilan output pada Gambar 4.23 tersebut
akan tampil setelah user meng-klik tombol edit data pada form menu edit data
pemakaian material mitra. Pada Gambar 4.23, dapat terlihat bahwa pada kolom
jumlah request untuk material DW, sebelumnya bernilai 10, tetapi sekarang sudah
ter-update menjadi berjumlah 11. Tabel pada Gambar 4.18 tersebut menampilkan
data pemakaian material yang dipakai oleh mitra CITRA SETIATEL dengan nomor
request 1.
Perlu untuk diketahui, bahwa yang berubah, hanya stok material yang sesuai
dengan mitra yang di-edit. Sedangkan mitra-mitra yang lain, stoknya tidak akan ikut
87
ter-update. Perubahannya bisa saja berkurang atau bertambah tergantung dari angka
inputan user pada menu edit data pemakaian material mitra.
Proses diatas, akan menyebabkan terupdate-nya jumlah stok material yang
ada pada tabel DAFTAR STOCK OPNAME pada menu tambah data pemakaian
material mitra pada Gambar 4.11, dan tabel DAFTAR JUMLAH PEMAKAIAN
MATERIAL PELANGGAN yang ada pada menu rekap data pemakaian material
mitra pada Gambar 4.8.
4.3.1.15. Input Menu Tambah Data Pemakaian Material Pelanggan
Setelah user atau aministrator melakukan request material untuk mitra-mitra
Telkom, untuk tahap selanjutnya, adiminstrator dapat memulai untuk memasukkan
data pemakaian material pelanggan. Perlu untuk diketahui, bahwa menu ini hanya
dapat diakses oleh adminisrator, user tidak diperkenankan untuk mengakses halaman
ini. Masukan ini merupakan masukan data pemakaian material ke rumah-rumah
pelanggan yang dilakukan oleh mitra-mitra Telkom. Ketika user memasukkan
jumlah material pada form menu tambah data material pelanggan ini, maka secara
otomatis akan mengurangi stok material milik salah satu mitra yang melakukan
pasang baru wireline ke rumah pelanggan, dimana stok material mitra tersebut
tersimpan dalam tabel material_mitra.
Gambar 4.24 adalah tampilan input menu tambah data pemakaian material
pelanggan.
88
Gambar 4.24. Input Menu Tambah Data Pemakaian Material Pelanggan
Pada Gambar 4.24 tersebut, user harus memasukkan nomor telepon, nomor
pemakaian, tanggal pemakaian, mitra dan jumlah material-material yang dibutuhkan
untuk melakukan pasang baru wireline. Untuk data-data lainnya hanya mengikuti
data-data selengkpnya yang tersimpan dalm tabel datek_psb. Menu tambah data
pemakaian material pelanggan ini akan berhubungan dengan menu tambah data
pemakaian material mitra pada mitra tertentu sesuai dengan masukan user.
Menu tambah data pemakaian material pelanggan ini akan mengurangi stok
material dalam tabel material_mitra berdasarkan mitra tertentu yang dimasukkan.
Jika stok material di tabel material_mitra sudah habis atau kurang dari 40000, maka
akan muncul peringatan. Jika salah satu stok material dalam tabel material_ mitra
habis, maka tidak dapat melakukan input data. Akan tetapi jika ada salah satu stok
89
material dalam tabel material_mitra kurang dari 40000, walaupun ada peringatan,
user dan administrator masih dapat melakukan masukan data. Peringatan ini akan
terus muncul sampai stok dalam tabel material_ mitra ditambahkan kembali. Tabel
yang berpengaruh dalam menu ini adalah tabel pelanggan, tabel
pemakaian_material_pelanggan, detail_pemakaian_pelanggan dan akan meng-update
tabel material_mitra.
Perlu diketahui, bahwa user harus memasukkan nomor telepon yang sesuai
dengan nomor telepon yang tersimpan dalam tabel datek_psb. Gambar 4.25 adalah
tampilan ketika stok dalam tabel material_mitra sudah kurang dari 40000 dan jika
sudah habis. Sedangkan gambar 4.26 adalah tampilan ketika stok dalam tabel
material_mitra sudah habis.
Gambar 4.25. Peringatan Jika Salah Satu Stok Material di Salah Satu Mitra Kurang
dari 40000.
Gambar 4.26. Peringatan Jika Salah Satu Stok Material di Salah Satu Mitra Habis
90
4.3.1.16. Output Menu Tambah Data Pemakaian Material Pelanggan
Gambar 4.27 merupakan tampilan output ketika user menekan tombol
Tambah pada form Gambar 4.14.
Gambar 4.27. Output Menu Tambah Data Pemakaian Material Pelanggan
Gambar 4.27 tersebut akan muncul jika nomor telepon yang dimasukkan oleh user,
sudah sesuai dengan nomor telepon yang tersimpan dalam tabel datek_psb. Jika
nomor telepon yang dimasukkan oleh user tidak terdapat dalam tabel datek_psb pada
basis data, maka Gambar 4.27 tidak akan muncul. Hal yang sama akan terjadi jika
nomor telepon yang dimasukkan sama dengan yang sebelumnya telah dimasukkan
oleh user.
Gambar 4.28 adalah tampilan peringatan ketika nomor telepon yang
dimasukkan user sama. Gambar 4.29 merupakan tampilan peringatan ketika nomor
pemakaian belum diisi. Sedangkan Gambar 4.30 merupakan tampilan peringatan
ketika nama mitra belum diisi user.
Gambar 4.28. Peringatan Jika Nomor Pemakaian Yang Di-input-kan Sama
91
Gambar 4.29. Peringatan Jika Nomor Pemakaian Belum diisi
Gambar 4.30. Peringatan Jika Mitra belum diisi
Gambar 4.31 adalah tampilan peringatan ketika nomor telepon yang
dimasukkan user tidak ada dalam basis data.
Gambar 4.31. Peringatan Jika Nomor Telepon Tidak Ada Dalam Basis Data
Gambar 4.32 adalah tampilan peringatan ketika nomor telepon belum dimasukkan
user.
Gambar 4.32. Peringatan Jika Nomor Telepon Belum Diisi User
92
4.3.1.17. Input Awal Menu Edit Data Pemakaian Material Pelanggan
Menu ini digunakan untuk mengedit data yang dimasukkan oleh user. Untuk
masuk ke dalam menu edit data pemakaian material pelanggan ini, user diminta
untuk memasukkan nomor telepon pelanggan yang akan diedit. Form ini terdapat
dalam halaman edidata.php. Ketika user menekan tombol “cari”, maka user akan
dialihkan ke halaman editdata2.php. Gambar 4.33 adalah tampilan gambar untuk
halaman editdata.php.
Gambar 4.33. Input Awal Menu Edit Data Pemakaian Material Pelanggan
Gambar 4.34 merupakan tampilan jika user belum memasukkan nomor
telepon. Sedangkan gambar 4.35 merupakan tampilan peringatan ketika nomor
telepon belum diisi oleh user.
Gambar 4.34. Peringatan Jika Nomor Telepon Belum Diisi User
Gambar 4.35. Peringatan Jika Nomor Telepon Belum dimasukkan
93
4.3.1.18. Input Menu Edit Data Pemakaian Material Pelanggan
Gambar 4.36 merupakan tampilan ketika nomor telepon yang akan diedit ada
dalam basis data.
Gambar 4.36. Input Menu Edit Data Pemakaian Material Pelanggan
Jika data yang akan diedit tidak ada, maka akan muncul peringatan yang
menyatakan bahwa “Data yang akan diedit tidak ada”. Jika stok material di tabel
94
material_mitra sudah habis atau kurang dari 40000, maka akan muncul peringatan.
Jika salah satu stok material dalam tabel material_ mitra habis, maka tidak dapat
melakukan masukkan data. Akan tetapi jika ada salah satu stok material dalam tabel
material_mitra kurang dari 40000, walaupun ada peringatan, user dan administrator
masih dapat melakukan masukkan data. Peringatan ini akan terus muncul sampai
stok dalam tabel material_ mitra ditambahkan kembali. Gambar 4.37 merupakan
tampilan ketika stok material dalam tabel material_mitra untuk mitra
CITRA_SETIATEL sudah tinggal 40000. Sedangkan gambar 4.38 merupakan
tampilan ketika stok material dalam tabel material_mitra untuk mitra
CITRA_SETIATEL sudah habis.
Gambar 4.37. Peringatan Jika Salah Satu Stok Material di Salah Satu Mitra Kurang
dari 40000.
Gambar 4.38. Peringatan Jika Salah Satu Stok Material di Salah Satu Mitra Habis
95
4.3.1.19. Output Menu Edit Data Pemakaian Material Pelanggan
Gambar 4.39 merupakan tampilan output ketika data berhasil diedit.
Gambar 4.39. Output Menu Edit Data Pemakaian Material Pelanggan
Ketika user meng-klik tombol “edit”, maka akan ditampilkan tabel yang
tampak pada Gambar 4.39. Dimana salah satu kolom, yaitu DW yang awalnya
berjumlah 1, diedit menjadi bernilai 2. Dengan adanya tampilan tabel tersebut,
artinya proses penambahan data telah berhasil dilakukan. Untuk kembali ke menu
edit data pemakaian material pelanggan, user dapat meng-klik tulisan “disini”
pada blok tulisan < klik disini untuk kembali ke menu edit data >.
4.3.1.20. Menu Awal Cari Data Pemakaian Material Pelanggan
Gambar 4.40 merupakan tampilan menu awal cari data pada halaman
awalcari.php.
Gambar 4.40. Menu Awal Cari Data Pemakaian Material Pelanggan
96
Menu ini dapat diakses oleh administrator maupun oleh user. Pada menu ini,
user dapat melakukan pencarian data pemakaian material oleh pelanggan yang sudah
dimasukkan sebelumnya. Pencarian dapat dilakukan berdasarkan semua field pada
suatu tabel yang tersimpan dalam basis data. Field-field tersebut diantaranya adalah :
Layanan, MITRA, nama pelanggan, nmsk, nodp, nmpr, alamat pelanggan, nomor
telepon, tanggal kring, tanggal pemakaian, usek, upri, RK, DW, Connector BW ,
Connector SK, Connector CON3M, T7, T9, PSA, MDF, nomor EQN, JW BP, JW
MP, JW HP, MDF RK dan NODP. Perlu diketahui untuk setiap pencarian data
pemakaian material pelanggan, yang akan ditampilkan dalam aplikasi ini adalah
hanya data yang memiliki status “NO” dalam field HAPUS pada tabel
detail_pemakaian_pelanggan, tabel pelanggan dan tabel
pemakaian_material_pelanggan.
4.3.1.21. Menu Cari Data Pemakaian Material Pelanggan
Ada beberapa jenis form masukan pencarian data pemakaian material
pelanggan, yaitu masukan kolom dan masukan drop down. Untuk masukan kolom,
misalkan user meng-klik link Nama Pelanggan, maka user akan dialihkan ke
halaman nama.php. Pada halaman ini user akan diminta untuk memasukkan data
nama pelanggan yang akan dicari. Misal masukannya adalah: Meirina. Perlu
diketahui, bahwa masukan ini merupakan jenis layanan yang tersimpan dalam field
layanan pada tabel datek_psb dalam basis data Telkom. Tetapi jika user lupa nama
97
pelanggan tersebut, maka user cukup memasukkan salah satu huruf saja, misal hanya
‘A’, maka data yang dicari dan yang mengandung unsur huruf tersebut akan tertampil
semuanya. Gambar 4.41 merupakan sintaks untuk melakukan pencarian data
pemakaian material pelanggan berdasarkan nama pelanggan.
Gambar 4.41. Sintaks Pencarian Data Pemakaian Material Pelanggan Berdasarkan
Nama Pelanggan
Gambar 4.42 adalah tampilan form masukan untuk pencarian berdasarkan nama
pelanggan.
Gambar 4.42. Input Beserta Output Pencarian Data Pemakaian Material Pelanggan
Berdasarkan Nama Pelanggan
$q=mysql_query("SELECT distinct LAYANAN, a.NO_TLP, p.NO_PEMAKAIAN, NAMA, ALAMAT, NO_EQN,DATE_FORMAT(TGL_KRING,'%d-%m-%Y %T')TGL_KRING,MDF, RK, PRIMER, SEKUNDER, UPRIMER, USEKUNDER, NODP,DATE_FORMAT(a.TGL_PEMAKAIAN,'%d-%m-%Y %T')TGL_PEMAKAIAN,a.ID_MITRA, DW, T7, T9, BW, SK, CON3M, PSA, BP, MP, HP
FROM pelanggan a, DATEK_PSB b, pemakaian_material_pelanggan p,detail_pemakaian_pelanggan d
where a.NO_TLP=b.NO_TLP andp.`NO_PEMAKAIAN`=d.`NO_PEMAKAIAN` anda.TGL_PEMAKAIAN=p.TGL_PEMAKAIAN andNAMA like '%$HTTP_POST_VARS[Nama]%'
order by a.NO_TLP asc");$jml=mysql_num_rows($q);echo("<br>Ditemukan $jml data :<br><hr>");
98
Untuk masukan jenis drop down, dapat dilihat untuk pencarian berdasarkan nama
mitra Telkom. Pada form ini, user dapat memilih salah satu nama mitra yang ingin
dicari datanya.
Gambar 4.43 merupakan tampilan form untuk pencarian data pemakaian
material untuk pelanggan berdasarkan nama mitra.
Gambar 4.43. Input Beserta Output Pencarian Data Pemakaian Material Pelanggan
Berdasarkan Nama Mitra
Untuk pencarian data pemakaian material pelanggan berdasarkan tanggal pemakaian
maupun tanggal kring, form masukannya berupa range dari tanggal tertentu sampai
tanggal yang diinginkan. Gambar 4.44 merupakan tampilan form untuk pencarian
data pemakaian material untuk pelanggan berdasarkan tanggal pemakaian material ke
rumah-rumah pelanggan.
99
Gambar 4.44. Input Beserta Output Pencarian Data Pemakaian Material Pelanggan
Berdasarkan Tanggal Pemakaian
4.3.1.22. Menu Awal Hapus Data Pemakaian Material Pelanggan
Menu ini hanya dapat diakses oleh adminisrator, user tidak diperkenankan
untuk mengakses halaman ini. Gambar 4.45 merupakan tampilan menu awal pada
halaman hapusdata.php untuk menghapus data pemakaian material oleh pelanggan.
Dimana administrator harus memasukkan nomor telepon pelanggan yang ingin
dihapus.
Gambar 4.45. Input Awal Menu Hapus Data Pemakaian Material Pelanggan
Jika administrator meng-klik menu hapus data pemakaian material
pelanggan, maka administrator akan dialihkan ke halaman hapusdata.php. Pada
100
menu ini, administrator dapat melakukan penghapusan data pelanggan yang terdapat
dalam basis data yang sebelumnya telah dimasukkan dan yang sudah tidak
diperlukan lagi. Kemudian, administrator diminta untuk memasukkan nomor telepon
pelanggan yang akan dihapus. Perlu untuk diketahui, bahwa program penghapusan
data pada menu ini, tidak akan menghapus data pemakaian pelanggan secara
permanen, tetapi hanya mengubahnya menjadi bernilai “YES”, jika sudah terhapus.
Dan akan diberi nilai “NO”, jika data tersebut tidak dihapus dengan menu ini. Nilai
“YES” dan “NO” ini berada dalam field HAPUS. Field ini terdapat dalam 3 tabel
yaitu, tabel detail_pemakaian_pelanggan, pemakaian_material_pelanggan dan tabel
pelanggan.
Gambar 4.46 merupakan tampilan peringatan jika nomor telepon pelanggan
yang dimasukkan tidak terdapat dalam basis data.
Gambar 4.46. Peringatan Jika Nomor Telepon Tidak Ada
Dalam Basis data
4.3.1.23. Menu Input Hapus Data Pemakaian Material Pelanggan
Jika nomor telepon pelanggan yang ingin dihapus ada, maka akan dialihkan
ke halaman hapusdata3.php yang merupakan halaman konfirmasi untuk meyakinkan
apakah data tersebut benar-benar akan dihapus atau tidak. Gambar 4.47 merupakan
tampilan halaman hapusdata3.php.
101
Gambar 4.47. Output Halaman Konfirmasi Menu Hapus Data Pemakaian Material
Pelanggan
Jika administrator batal menghapus data tersebut, maka administrator dapat
meng-klik tulisan “tidak” dan akan kembali ke halaman hapusdata.php pada Gambar
4.45, dimana administrator diminta untuk meng-input-kan nomor telepon pelanggan
yang baru. Jika administrator yakin untuk menghapus data tersebut, maka dapat
meng-klik tulisan “Ya” pada tampilan Gambar 4.47. Setelah di-klik, maka dalam
field HAPUS yang bernilai “NO” pada tabel detail_pemakaian_pelanggan,
pemakaian_material_pelanggan dan tabel pelanggan, untuk data tersebut akan ter-
update menjadi bernilai “YES”, karena sudah terhapus. Dan yang akan ditampilkan
adalah data yang bernilai “NO” saja.
102
4.4. Penggunaan Store Procedure Pada Sistem Baru
Dalam aplikasi ini, terdapat masalah penyimpanan data yang tidak konsisten
dalam basis data. Oleh karena itu, diperlukan store procedure yang digunakan untuk
membuat data yang disimpan ke dalam basis data menjadi lebih konsisten. Store
procedure untuk manajemen transaksi dalam program ini, digunakan pada saat
melakukan tambah dan edit data pemakaian material pelanggan maupun tambah dan
edit data pemakaian material mitra. Selain itu juga digunakan pada menu edit data
material mitra maupun pelanggan. Dalam store procedure ini menggunakan
manajemen transaksi level isolation serializable untuk menangani masalah yang
dapat timbul akibat dua atau lebih transaksi yang dieksekusi secara bersamaan
(concurrency). Sehingga menyebabkan terjadi masalah analisis yang tidak konsisten
dan lost update problem. Berdasarkan teori dalam bab landasan teori, untuk
menyelesaikan masalah tersebut, maka dilakukan penerapan sebagai berikut:
2. Tingkat isolasi serializable
3. Autocommit dibuat disable
4. Operasi pembacaan data yang akan diikuti dengan operasi update data tersebut
memberikan exclusive lock dengan cara memberikan perintah for update setelah
perintah select.
Tabel 4.1 merupakan tabel yang menggambarkan proses yang terjadi pada
pegujian aplikasi yang menggunakan teknologi manajemen transaksi, terhadap
masalah analisis data yang tidak konsisten. Dalam hal ini, yang diuji sebagai contoh
103
adalah proses untuk menu tambah data pemakaian material mitra, dan yang diambil
contoh untuk materialnya adalah drop wire (DW).
Tabel 4.1 Contoh Skenario Proses yang terjadi pada pegujian aplikasi
yang menggunakan teknologi manajemen transaksi, terhadap concurrency
control.
Diasumsikan bahwa $dw untuk tabel material_mitra = 5, sedangkan STOK untuk
material milik telkom asumsi awalnya adalah 100.
Waktu Transaksi 1 Transaksi 2 StokMitra
StokTelkom
t1Begin transaction
SET TRANSACTION ISOLATIONLEVEL SERIALIZABLE;SET AUTOCOMMIT=0; 0 100
t2
START TRANSACTION;SELECT stok INTO
v_stok_material_bp FROMmaterial_mitra WHERE
ID_MATERIAL='DW' ANDID_MITRA=$idmitra FOR UPDATE;
Begin transactionSET TRANSACTIONISOLATION LEVEL
SERIALIZABLE;SET AUTOCOMMIT=0;
0 100
t3
IF v_stok_material_dw=0THEN SET v_sisa_stok_material_dw
= $dw;ELSE SET v_sisa_stok_material_dw
= v_stok_material_dw + $dw;END IF;
WAIT 0+5 100
t4UPDATE material_mitra SET STOK =
v_sisa_stok_material_dw whereID_MITRA=$idmitra and
ID_MATERIAL='DW';WAIT 5 100
t5
INSERT INTOdetail_pemakaian_mitra(NO_REQUE
ST, ID_MATERIAL,JML_REQUEST)VALUES($noreq,'D
W',$dw);
WAIT 5 100
104
t6
SELECT STOK INTOv_stok_material_telkom_dw FROM
material_telkom WHEREID_MATERIAL='DW' FOR UPDATE;
WAIT 5 100
t7UPDATE material_telkom SET
STOK=v_stok_material_telkom_dw -$dw WHERE ID_MATERIAL='DW';
WAIT 5 100-5=95
t8
INSERT INTO mitra(ID_MITRA,PEMBERI, PENERIMA,
NO_REQUEST) VALUES($idmitra,$pemberi, $penerima, $noreq);
WAIT 5 95
t9
INSERT INTOpemakaian_material_mitra(NO_REQUEST, TGL_REQUEST, ID_MITRA)
VALUES($noreq, $tglrequest,$idmitra);
WAIT 5 95
t10 commit/unlock WAIT 5 95
t11
START TRANSACTION;SELECT stok INTO
v_stok_material_bp FROMmaterial_mitra WHERE
ID_MATERIAL='DW' ANDID_MITRA=$idmitra FOR
UPDATE;
5 95
t12
IF v_stok_material_dw=0THEN SET
v_sisa_stok_material_dw =$dw;
ELSE SETv_sisa_stok_material_dw =v_stok_material_dw + $dw;
END IF;
5+5 95
t13UPDATE material_mitra SET
STOK =v_sisa_stok_material_dw where
ID_MITRA=$idmitra andID_MATERIAL='DW';
10 95
105
t14
INSERT INTOdetail_pemakaian_mitra(NO_RE
QUEST, ID_MATERIAL,JML_REQUEST)VALUES($nor
eq,'DW',$dw);10 95
t15
SELECT STOK INTOv_stok_material_telkom_dw
FROM material_telkom WHEREID_MATERIAL='DW' FOR
UPDATE;
10 95
t16
UPDATE material_telkom SETSTOK=v_stok_material_telkom_
dw - $dw WHEREID_MATERIAL='DW';
1095-5=
90
t17
INSERT INTO mitra(ID_MITRA,PEMBERI, PENERIMA,
NO_REQUEST)VALUES($idmitra, $pemberi,
$penerima, $noreq);
10 90
t18
INSERT INTOpemakaian_material_mitra(NO_
REQUEST, TGL_REQUEST,ID_MITRA)
VALUES($noreq, $tglrequest,$idmitra);
10 90
t19 commit/unlock 10 90
Ketika transaksi pertama mulai dilakukan, proses select, insert dan update
tabel material_mitra, detail_pemakaian_mitra, pemakaian_material_mitra, dan
material_telkom, akan di-lock secara otomatis. Untuk operasi pembacaan data yang
akan diikuti dengan operasi update data tersebut memberikan exclusive lock dengan
cara memberikan perintah for update setelah perintah select. Dalam hal ini, yang di-
lock adalah perintah select pada saat melakukan transaksi awal yaitu pada saat begin
106
transaction. Level lock untuk perintah select ini adalah per record, maksudnya
adalah yang di-lock adalah perintah select per baris data dalam basis data. Oleh
karena itulah, maka kondisi wait terjadi, dan kondisi wait ini akan berakhir ketika
transaksi pertama telah di-commit atau di-unlock. Dengan demikian perintah select
pada transaksi kedua dapat dilakukan. Teknik ini merupakan salah satu alternatif
dalam menerapkan 2PL dalam mesin basis data InnoDB MySQL sehingga tidak
menutup kemungkinan melakukan penelitian untuk mencari alternatif lain dalam
menjaga konsistensi data. Selain itu untuk menjaga supaya tidak terjadi lost update
data, maka diawal transaksi, diberikan level isolasi dengan tingkat serializable, dan
autocommit dibuat disable atau di-set 0. Sedangkan di akhir transaksi, autocommit
dikembalikan lagi ke kondisi enable atau di-set 1 untuk meningkatkan keamanan
transaksi.
Sehingga, jika ada transaksi kedua yang menyusul, maka transaksi tersebut
akan menunggu sampai transaksi pertama selesai dijalankan. Dengan begitu,
transaksi kedua tidak diijinkan untuk melakukan proses select, insert dan update
tabel material_mitra, detail_pemakaian_mitra, pemakaian_material_mitra, dan
material_telkom sampai seluruh transaksi pertama commit. Akan tetapi, jika ada
kegagalan saat melakukan transaksi pertama, maka secara otomatis, transaksi akan
gagal dan akan melakukan perulangan transaksi dari awal. Karena dalam basis data
ini menggunakan tipe InnoDB untuk semua tabelnya, maka transaksi yang sedang
dijalankan akan secara otomatis melakukan locking tabel, untuk mencegah transaksi
selanjutnya berjalan sebelum transaksi awal selesai. Gambar 4.48 adalah sintaks
store procedure dengan nama sp_save_request.sql yang digunakan untuk menu
tambah data pemakaian material mitra.
107
DELIMITER $$DROP PROCEDURE IF EXISTS `telkom`.`sp_save_request`$$CREATE PROCEDURE `sp_save_request`( $dw integer(10),……, $hp integer(10),
$noreq varchar(20),$idmitra varchar(20),$pemberi varchar(20),$penerima varchar(20),$tglrequest datetime)
MODIFIES SQL DATABEGIN
DECLARE v_stok_material_dw integer;DECLARE v_stok_material_telkom_dw integer;DECLARE v_sisa_stok_material_dw integer;
…..DECLARE v_stok_material_hp integer;
DECLARE v_stok_material_telkom_hp integer;DECLARE v_sisa_stok_material_hp integer;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;SET AUTOCOMMIT=0;START TRANSACTION;
SELECT stok INTO v_stok_material_dw FROM material_mitra WHERE ID_MATERIAL='DW'AND ID_MITRA=$idmitra FOR UPDATE;
….SELECT stok INTO v_stok_material_hp FROM material_mitra WHERE ID_MATERIAL='HP'AND ID_MITRA=$idmitra;
IF v_stok_material_dw=0 THENSET v_sisa_stok_material_dw = $dw;
ELSESET v_sisa_stok_material_dw = v_stok_material_dw + $dw;
END IF;….. (HP)
IF v_stok_material_hp=0 THENSET v_sisa_stok_material_hp = $hp;
ELSESET v_sisa_stok_material_hp = v_stok_material_hp + $hp;
END IF;
UPDATE material_mitra SET STOK = v_sisa_stok_material_dwwhere ID_MITRA=$idmitra and ID_MATERIAL='DW';
….(HP)UPDATE material_mitra SET STOK = v_sisa_stok_material_hpwhere ID_MITRA=$idmitra and ID_MATERIAL='HP';
INSERT INTO detail_pemakaian_mitra(NO_REQUEST, ID_MATERIAL, JML_REQUEST)VALUES($noreq,'DW',$dw);
…. (HP)INSERT INTO detail_pemakaian_mitra(NO_REQUEST, ID_MATERIAL, JML_REQUEST)
VALUES($noreq,'HP',$hp);
108
SELECT STOK INTO v_stok_material_telkom_dw FROM material_telkomWHERE ID_MATERIAL='DW' FOR UPDATE;
… (HP)SELECT STOK INTO v_stok_material_telkom_hp FROM material_telkomWHERE ID_MATERIAL='HP' FOR UPDATE;
UPDATE material_telkom SET STOK=v_stok_material_telkom_dw - $dwWHERE ID_MATERIAL='DW';
… (HP)UPDATE material_telkom SET STOK=v_stok_material_telkom_hp - $hpWHERE ID_MATERIAL='HP';
INSERT INTO mitra(ID_MITRA, PEMBERI, PENERIMA, NO_REQUEST)VALUES($idmitra, $pemberi, $penerima, $noreq);
INSERT INTO pemakaian_material_mitra(NO_REQUEST, TGL_REQUEST, ID_MITRA)VALUES($noreq, $tglrequest, $idmitra);
COMMIT;SET AUTOCOMMIT=1;
END$$DELIMITER ;
Gambar 4.48. Sintaks Store Procedure Untuk Menu Tambah Data Pemakaian
Material Mitra
4.5. Analisa Sistem Lama Dan Sistem Baru
Dalam hal ini ada beberapa kelebihan dan kelemahan yang terdapat pada
sistem lama dan sistem baru. Pada sistem lama yang digunakan, banyak terjadi
redundansi data pada basis data, sehingga masih belum memenuhi standar aturan
basis data yang ada.
Pada sistem lama, belum menggunakan store procedure. Penggunaan store
procedure ini difungsikan untuk mendukung penerapan manajemen transaksi yang
dapat digunakan untuk mengatur jalannya transaksi dalam program inventori barang
109
ini. Selain itu penggunaan store procedure ini untuk membungkus sejumlah perintah
transaksi untuk sebuah transaksi yang mempermudah programmer untuk melakukan
pemanggilan perintah transaksi. Sehingga programmer tidak perlu menuliskan ulang
perintah yang sama dalam melakukan transaksi yang berulang-ulang.
Jika tidak menggunakan manajemen transaksi, maka kemungkinan untuk
terjadinya ketidakkonsistenan data, dapat terjadi sewaktu-waktu. Selain itu
manajemen transaksi ini dapat digunakan untuk mencegah ketidakkonsistenan data
akibat dari kejadian yang tidak terduga.
Pada sistem yang baru ini, sudah diterapkan manajemen transaksi untuk
mengatur dan menjaga data-data yang tersimpan dalam basis data supaya tetap
konsisten pada saat melakukan transaksi. Berikut ini adalah kelebihan dari program
yang baru:
Redundansi data sudah dapat diminimalkan dengan merancang basis data
menggunakan tahap-tahap perancangan basis data. Perancangan basis data
tersebut menggunakan metodologi RPL terstruktur (Whitten, 2004) yaitu:
merancang use case diagram, ER-Diagram,DFD dan physical diagram.
Untuk transaksi pemakaian material per mitra maupun pemakaian material
pelanggan telah dilengkapi dengan store procedure menggunakan konsep
manajemen transaksi untuk menangani masalah concurrency control.
Sudah terdapat penanganan atau warning untuk proses transaksi permintaan
material untuk pelanggan maupun mitra Telkom, ketika stok material dalam
basis data sudah tidak mencukupi atau habis.
110
Sudah terdapat menu bantuan untuk mempermudah user dalam menggunakan
aplikasi program baru ini.
Sudah terdapat fasilitas untuk mencetak laporan dalam bentuk hardcopy.
Berikut ini adalah kelemahan dari program yang baru:
Penanganan error masih belum sempurna, untuk masalah input karakter.
Tampilan program masih belum fleksibel, karena harus menggunakan
rekomendasi dengan resolusi tertentu.
111
BAB V
KESIMPULAN DAN SARAN
Berdasarkan pembahasan hasil pada bab 4, dapat ditarik kesimpulan dan
saran, diantaranya adalah sebagai berikut:
5.1. KESIMPULAN
1. Program ini sudah dapat memberikan informasi mengenai monitoring
penyediaan stok material per mitra Telkom secara up-to-date seperti nama mitra
Telkom, jumlah stok material per mitra Telkom, data pelanggan Telkom pada
kondisi terakhir.
2. Program ini merupakan aplikasi berbasis web dengan menggunakan teknologi
PHP dan MySQL, yang menerapkan konsep manajemen transaksi untuk
mengatasi masalah concurrency control, sehingga menjaga data tetap konsisten.
5.2. SARAN
1. Program ini sebaiknya dilengkapi lagi dengan menambahkan menu untuk
menambahkan jumlah stok material ke gudang Telkom.
2. Tampilan untuk program ini sebaiknya dibuat lebih fleksibel untuk dapat
digunakan di berbagai jenis browser.
112
DAFTAR PUSTAKA
Bakken, S.S, Aulbach, A., Schmid, E. , Winstead, J., Wilson, L.T., Lerdorf, R.
dan Suraski, Z., PHP Manual, PHP Documentation Group, 2000
Connolly, T.M, Database Systems: A Practical Approach to Design, Implementation,
and Management 3rd Edition, Pearson Education Limited England, 2002.
Darmawan, JB. B, 2007, Teknik Kontrol Concurrency Menggunakan 2PL Dalam
MySQL untuk Menangani Masalah Dalam Concurrency, Prosiding Seminar
Nasional Sains dan Teknologi Universitas Sanata Dharma, Pemanfaatan
Potensi Lokal Untuk Meningkatkan Daya Saing Bangsa, halaman 279-287
Kofler, M., The Definitive Guide to MySQL 5 (Third Edition), Apress, United States
of America, 2005
Maria Polina, A. dan Siang, JJ., Kiat Jitu Menyusun Skripsi Jurusan
Informatika/Komputer, Andi Offset, 2005, 2006
Nidnid, Tentang XAMPP (Apache, PHP, MySQL dan phpMyAdmin), 2008,
http://php-mysql-solution.blogspot.com/2008/01/tentang-xampp-apache-php-
mysql-dan.html diakses pada tanggal 7 April 2008, 10:01:04 AM
Ramakrishnan, R., Gehrke, J., Database Management Systems-Third Edition,
McGraw-Hill Companies, Inc., 2003
Sanjaya, Ridwan, Pengolahan Database MySQL 5 dengan JAVA 2 disertai Teknik
Pencetakan Laporan, Andi Offset, 2005
113
Setyaji, R., Praktikum Berkas dan Basis Data, Bab MySQL: Store Procedure and
Function Pertemuan ke-6 , Universitas Gajah Mada, 2007
http://satryo06.web.ugm.ac.id/download/makul/Praktikum%20Basis%20Data
/p6-MySQL%20-%20basic%20procedure%20and%20function.pdf
diakses pada tanggal 18 September 2007, 10:35:04 AM
Supriyanto, A., Pengantar Teknologi Informasi, Penerbit Salemba Infotek,
Jakarta, 2005
Sutarman, Membangun Aplikasi Web dengan PHP dan MySQL, GRAHA ILMU
Sutisna, D., 7 Langkah Mudah Menjadi WEBMASTER, Mediakita, 2007
Whitten, Jeffrey L, Systems Analysis and Design Methods, McGraw-Hill Companies,
2004.
114