5302412024_laporan pkl.pdf
TRANSCRIPT
LAPORAN
PRAKTIK KERJA LAPANGAN
DI PT PLN (PERSERO) APD JATENG DAN DIY SEMARANG
INFORMASI GANGGUAN JARINGAN DENGAN
SMART SENDER SMS GATEWAY
Disusun Oleh
Nama : Aswita Nurrika
NIM : 5302412024
Jurusan/Prodi : Teknik Elektro/PTIK
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SEMARANG
TAHUN 2015
Abstrak
Aswita Nurrika
Informasi Gangguan Jaringan dengan Smart Sender SMS Gateway
Di PT PLN (Persero) APD Jateng dan DIY Semarang
Pendidikan Teknik Informatika dan Komputer – Jurusan Teknik Elektro
Universitas Negeri Semarang
Tahun 2015
Praktik kerja lapangan (PKL) merupakan kegiatan yang wajib dilaksanakan
bagi mahasiswa program studi (Prodi) dan dilaksanakan pada suatu instansi yang
sesuai dengan disiplin ilmu sebagai jembatan bagi mahasiswa untuk
mengaplikasikan ilmu yang diperoleh di bangku kuliah ke dalam dunia kerja.. Hal
ini dengan maksud agar mahasiswa bisa memperoleh pengalaman di dunia kerja.
Pengalaman tersebut bisa berupa wawasan tentang suatu teknologi, kemampuan
dan keuletan bekerja dalam suatu lembaga/instansi. Pelaksanaan praktik kerja
lapangan di PT PLN (Persero) Area Pengatur Distribusi Jawa Tengah dan DIY
yang berjasa dalam bidang penyediaan dan penyaluran listrik. Dalam hal ini,
mahasiswa mempunyai kewajiban untuk menyampaikan dan menerapkan apa yang
telah dipelajari.
Metode pengumpulan data yang digunakan untuk memperoleh data
diantaranya: Observasi, Interview, Literatur dan Bimbingan. Pertama metode
observasi yaitu metode pengumpulan data dengan melakukan pengamatan langsung
pada objek di lapangan. Kedua, metode interview yaitu metode pengumpulan data
dengan mengajukan pertanyaan secara langsung kepada para karyawan. Ketiga,
metode Literatur yaitu pengumpulan data dengan mempelajari bahan-bahan tertulis
baik dari buku atau dokumen tertulis lainnya. Keempat, metode bimbingan yaitu
metode melakukan bimbingan secara langsung kepada dosen pembimbing maupun
pembimbing lapangan.
Pekerjaan atau kegiatan yang dilakukan selama melaksanakan Praktik Kerja
Lapangan (PKL) di PT. PLN (Persero) APD Jateng dan DIY Semarang dibagi
menjadi 2 jenis pekerjaan yaitu pekerjaan umum dan pekerjaan spesifik atau projek.
Pekerjaan umum mencakup mapping data, pemeliharaan master station maupun
workstation, dll. Sedangkan pekerjaan spesifik/projek yang diberikan, penulis
angkat sebagai judul dari laporan ini yaitu pengembangan pengiriman sistem SMS
Gateway yang sudah ada.
Simpulan dari Praktik Kerja Lapangan yaitu Sistem SMS Gateway suatu
instansi dapat terus dikembangkan menjadi sistem yang lebih baik. Seperti halnya
Sistem Pengiriman SMS Gateway Gangguan dengan Gammu yang awalnya
menggunakan 1 modem sekarang menggunakan multi modem dengan konsep
mengirimkan SMS ke nomor-nomor sesuai dengan provider masing-masing
modem. Sedangkan saran dari Praktik Kerja Lapangan yaitu mahasiswa perlu lebih
banyak belajar tidak hanya sesuatu yang diajarkan di bangku perkuliahan.
Kata Kunci : SMS Gateway, Multi Modem, Sistem Pengiriman.
KATA PENGANTAR
Dengan mengucap puji syukur kehadirat Allah SWT, yang telah melimpahkan
rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Laporan Praktik
Kerja Lapangan dengan judul INFORMASI GANGGUAN JARINGAN DENGAN
SMART SENDER SMS GATEWAY di PT PLN (Persero) APD Jateng dan DIY
Semarang. Dengan terselesaikannya laporan ini, penulis ingin menyampaikan rasa
syukur dan terima kasih kepada :
1. Bapak Drs. Suryono, M.T, Ketua Jurusan Teknik Elektro Fakultas Teknik
Universitas Negeri Semarang
2. Ibu Riana Defi MP,S.T, M.T selaku dosen pembimbing yang dengan sabar
mengarahkan dan membimbing penulis.
3. Saudara Angga Rajasa, selaku Supervisor TI dan pembimbing lapangan
yang telah bersedia meluangkan waktunya kepada penulis untuk
membimbing selama Praktik Kerja Lapangan (PKL).
4. Seluruh karyawan PT PLN (Persero) APD Jateng dan DIY Semarang dan
seluruh pihak yang telah banyak membantu.
Semoga laporan pelaksanaan Praktik Kerja Lapangan ini dapat bermanfaat
bagi kita semua.
Semarang, Februari 2015
Penulis,
DAFTAR ISI
Halaman
JUDUL .................................................................................................................... i
HALAMAN PENGESAHAN ............................................................................... ii
ABSTRAK ............................................................................................................ iii
KATA PENGANTAR .......................................................................................... iv
DAFTAR ISI ........................................................................................................... v
DAFTAR GAMBAR ........................................................................................... vii
DAFTAR TABEL ................................................................................................ ix
BAB I PENDAHULUAN
1.1 Latar Belakang ................................................................................................... 1
1.2 Tujuan dan Manfaat ........................................................................................... 3
1.3 Tempat dan Pelaksanaan .................................................................................... 4
1.4 Pengumpulan Data ............................................................................................. 6
BAB II KEGIATAN/PEKERJAAN
2.1 Pekerjaan secara umum ...................................................................................... 7
2.2 Pekerjaan secara spesifik.................................................................................. 11
BAB III ANALISIS
3.1 Kebutuhan Fisik ............................................................................................... 27
3.2 Kebutuhan Fungsional ..................................................................................... 27
3.3 Testing .............................................................................................................. 30
3.4 Analisa Perbandingan....................................................................................... 33
BAB IV PENUTUP
4.1 Kesimpulan ...................................................................................................... 37
4.2 Saran ................................................................................................................. 37
DAFTAR PUSTAKA ........................................................................................... 37
LAMPIRAN .......................................................................................................... 38
DAFTAR GAMBAR
Gambar 1. Struktur Organisasi…………………………………………………… 5
Gambar 1. Modem Huawei E3131& modem at&t ..............................................12
Gambar 2. Modem yang terdeteksi ……………………………………………..13
Gambar 3. Setting konfigurasi Gammu ………………………………………...14
Gambar 4. Konfigurasi modem di command prompt ..........................................15
Gambar 5. Konfigurasi smsdrc modem 1……………………………………….16
Gambar 6. Instal service gammu..........................................................................16
Gambar 7. Start service gammu………………………………………………...17
Gambar 8. Services……………………………………………………………...17
Gambar 9. Properties service gammu…………………………………………..18
Gambar 10. Koneksi ke Oracle..............................................................................19
Gambar 11. Tools-Options ....................................................................................19
Gambar 12. Jendela Options……………………………………………………..20
Gambar 13. Koneksi ke Oracle sukses…………………………………………...21
Gambar 14. File php.ini…………………………………………………………..21
Gambar 15. Jendela Environment Variables …………………………………….22
Gambar 16. Edit System Variable………………………………………………...23
Gambar 17. Koneksi ke MySQL sukses………………………………………….23
Gambar 18. Struktur Tabel Provider……………………………………………..24
Gambar 19. Isian Tabel Provider…………………………………………………24
Gambar 20. Source Code Pengiriman 1 Modem…………………………………25
Gambar 21. Source Code Pengiriman Multi Modem……………………………25
Gambar 22. Diagram Desain Sistem…………………………………………….28
Gambar 23. Flowchart Sistem Pengiriman……………………………………...29
Gambar 24. Tes SMS Navicat …………………………………………………..31
Gambar 25. Tabel gangguan………………………………………………...…...31
Gambar 26. Tampilan di Localhost………………………………………………32
DAFTAR TABEL
Tabel 1. Deskripsi Kegiatan………………………………………………………. 7
Tabel 2. Perbandingan Sistem……………………………………………………34
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perusahaan yang dapat mempertahankan pelanggan dan meningkatkan
kepuasan pelanggan dapat disebut perusahaan yang mempunyai integritas tinggi
dan tingkat pelayanan yang baik. Perencanaan dan penggunaan teknologi informasi
yang tepat akan sangat membantu perusahaan untuk mencapai visi dan misi
perusahaan.
PT PLN (Persero) adalah Badan Usaha Milik Negara yang bergerak di
bidang penyediaan sampai penyaluran jasa tenaga listrik. PT PLN (Persero) telah
secara konsisten melaksanakan usaha penyediaan tenaga listrik yang andal dengan
tingkat harga yang terjangkau oleh seluruh lapisan masyarakat, sehingga sektor
ketenagalistrikan merupakan elemen sentral dari strategi pertumbuhan ekonomi
yang cepat dan pemerataan pembanguan sosial di Indonesia ini sesuai dengan
tujuan didirikannya PT PLN (Persero) berdasarkan Undang-Undang No. 15 Tahun
1985.
Bagi PT PLN (Persero) keandalan akan pasokan energi listrik adalah
merupakan kepuasan pelanggan. demi menjaga keandalan sistem penyaluran
tenaga listrik menggunakan sistem pengoperasian yang mempunyai tingkat
keandalan yang tinggi, di karenakan PT PLN (Persero) mempunyai visi diakui
sebagai perusahaan kelas dunia yang dinilai dari SAIDI (System Average
Interuption Duration Index) dan SAIFI (System Average Interuption Frequency
Index).
Sebagai perusahaan penyedia energi kelistrikan tingkat nasional, PLN
(Persero) dituntut untuk terus meningkat kepuasan pelayanan pelanggan. Salah satu
pemanfaatan teknologi perangkat seluler yang umum dipakai dalam PLN adalah
informasi tentang gangguan penyaluran energi listrik. Pegawai yang berada di
pelayanan jaringan listrik harus cepat mengetahui informasi adanya gangguan
jaringan listrik. Informasi yang tampil yang dapat diperoleh dari Pegawai berupa
SMS PMT (Pemutus Tegangan).
Dalam hal ini, SCADA (Supervisory Control and Data Acquisition)
mempunyai peran penting, selain berfungsi untuk mempercepat penormalan
gangguan dapat juga berfungsi mengirimkan informasi berupa gangguan jaringan
(PMT Trip) kepada user sistem dengan melalui metode SMS Gateway.
Metode SMS Gateway dirasa cukup efektif dalam penyampaian informasi
gangguan jaringan. Namun, dibutuhkan suatu pengembangan untuk meningkatkan
tingkat efektifitas dan efisiensi dari sistem pengiriman gangguan jaringan listrik
menggunakan media SMS Gateway.
Salah satu kelemahan media SMS Gateway Gangguan Jaringan yang ada di
PT PLN (Persero) APD (Area Pengatur Distribusi) Semarang adalah anggaran yang
dibutuhkan untuk pengiriman sms membutuhkan jumlah yang cukup besar per
bulannya. Sedangkan per harinya sms yang dapat dikirimkan dapat berjumlah
kuranng lebih sebanyak 2500 sms dan hanya dikirim oleh 1 jenis provider. Hal ini
merupakan sesuatu yang perlu untuk diminimalisir dalam rangka membuat sistem
yang efektif dan efisien.
Dalam suatu perusahaan jasa khususnya Perusahaan Listrik Negara,
masalah yang dihadapi sangatlah komplek. Oleh karena itu penulis memberi
batasan – batasan masalah, dalam hal ini kaitannya dengan projek yang penulis
laksanakan. Adapun laporan ini penulis mengambil judul yang mencakup projek
yang diberikan yaitu tentang Pembuatan Informasi Gangguan Jaringan dengan
Smart Sender SMS Gateway di PT PLN (Persero) APD Jateng dan DIY.
1.2 Tujuan dan Manfaat
a. Tujuan
Tujuan dari pembuatan projek Pembuatan Informasi Gangguan Jaringan
dengan Smart Sender SMS Gateway di PT PLN (Persero) APD Jateng dan DIY
adalah :
(1) Memenuhi nilai mata kuliah Praktik Kerja Lapangan (PKL) sebagai salah satu
syarat mencapai kelulusan pada prodi. S-1 Pendidikan Teknik Informatika dan
Komputer, Jurusan Teknik Elektro, Fakultas Teknik Universitas Negeri
Semarang
(2) Melakukan pengembangan terhadap sistem SMS Gateway yang telah ada.
(3) Meminimalisasi penggunaan anggaran untuk pengiriman informasi melalui
SMS Gateway.
(4) Menambah wawasan dan pengalaman kerja di lapangan atau industri yang
relevan sesuai dengan disiplin ilmu teknik informatika dan komputer pada
umumnya
b. Manfaat
Manfaat dari pembuatan projek Pembuatan Informasi Gangguan Jaringan
dengan Smart Sender SMS Gateway di PT PLN (Persero) APD Jateng dan DIY
adalah :
(1) Mampu mengembangkan cara berpikir dan aplikasi langsung dari materi
perkuliahan yang telah diperoleh pada perkuliahan.
(2) Mampu mengembangkan wawasan dan pengalaman kerja dibidang teknik
informatika dan komputer pada umumnya dan SMS Gateway pada khusunya.
(3) Dapat lebih mempersiapkan diri sebagai calon lulusan yang handal, berkualitas
dan siap untuk bekerja sesuai pengalaman yang didapat di lapangan.
(4) Dapat mengembangkan program SMS Gateway yang sedang berjalan.
1.3 Tempat dan Pelaksanaan
a. Tempat Pelaksanaan
Penulis mendapatkan kesempatan untuk melaksanakan praktek di PT PLN
(Persero) Area Pengatur Distribusi Semarang yang beralamatkan di Jalan Gatot
Subroto No. 5 Semarang. Penempatan pelaksanaan Praktik Kerja Lapangan
ditentukan oleh Asistan Manajer SCADA (Supervisory, Controlling and Acquisition
Data) & Telekomunikasi PT PLN (Persero) Area Distribusi Jawa Tengah dan
D.I.Yogyakarta dan mendapatkan kesempatan ditempatkan di bagian TI (Teknologi
Informasi) SCADA PLN (Persero) Area Distribusi Jawa Tengah dan
D.I.Yogyakarta.
b. Waktu Pelaksanaan
Waktu pelaksanaan Praktik Kerja Lapangan (PKL) ini di mulai pada tanggal
19 Januari 2015 sampai dengan 27 Februari 2015 hari kerja sesuai dengan ketentuan
yang berlaku. Pada hari Senin sampai Kamis kegiatan operasional di mulai pukul
07.30 s/d 16.30 WIB sedangkan hari Jumat di mulai 07.30 s/d 15.00 WIB.
c. Struktur Organisasi
Gambar 1. Struktur Organisasi
1.4 Pengumpulan Data
Dalam menyusun laporan, penulis melakukan pengumpulan data dengan
metodologi sebagai berikut:
a. Metode Observasi, adalah metode pengambilan data dengan cara langsung
mengamati dan mencatat pada objek yang dipelajari.
b. Metode Interview, adalah metode pengumpulan data dengan cara melakukan
tanya jawab langsung kepada pihak petugas perusahaan atau tenaga ahli yang
paham tentang hal-hal yang menjadi permasalahan dalam laporan yang di buat di
lapangan.
c. Metode Literatur, adalah metode pengambilan data dengan mempelajari
literature, yang berupa buku–buku ataupun bentuk lain yang berhubungan dengan
objek yang dipelajari guna mendukung penyelesaian Praktik Kerja Lapangan
sampai dengan penyusunan laporan.
d. Metode Bimbingan, adalah melakukan konsultasi atau bimbingan dalam
mendokumentasikan bidang keilmuan yang diperoleh selama Praktik Kerja
Lapangan. Kegiatan bimbingan ini dilakukan kepada pembimbing lapangan di PT
PLN (Persero) APD Jateng dan DIY Semarang dan kepada pembimbing dari
Universitas Negeri Semarang.
BAB II
PEKERJAAN/KEGIATAN
2.1 Pekerjaan Secara Umum
Tabel 1. Deskripsi Kegiatan
Hari 1& 2 Pembuatan Smart SLD
(p macro station dan
pemindahan station
dari KP_SMG ke
Feeder-XXXYY)
Pembuatan Smart SLD (Single Line
Diagram) adalah salah satu
pengembangan dari sistem yang sudah
ada di PT PLN (Persero) APD Jateng dan
DIY. Sedangkan p macro adalah tombol
untuk menghubungkan dari satu layar ke
layar lain dan penulis juga memindahkan
data yang ada pada station KP_SMG ke
dalam feeder baru yang sudah dibuat. Hal
ini dimaksudkan untuk merapikan data
guna keperluan pembuatan Smart SLD.
Hari 3 Pengecekan database
SCADA
Pengecekan database SCADA salah
satunya adalah melakukan pengecekan
pada IP Address masing-masing RTU
yang ada. Hal ini ditujukan untuk
mengkoreksi jika ada RTU yang tidak
memiliki IP Address yang tidak sesuai
dengan data yang ada.
Hari 4 Merapikan dokumen
SCADA
Mengurutkan dokumen-dokumen yang
ada pada SCADA sesuai dengan tahun.
Hal ini ditujukan untuk merapikan
dokumen-dokumen penting tersebut dan
agar lebih mudah dalam melakukan
pencarian dokumen.
Hari 5 Membuat SMS
Gateway Gammu dan
MySQL
SMS Gateway merupakan salah satu
media yang digunakan pada PT PLN
(Persero) APD Jateng dan DIY Semarang
untuk mengirimkan informasi gangguan
jaringan pada pegawai yang berada pada
zona gangguan. Dan untuk mempelajari
konsep dari SMS Gateway yang
digunakan penulis mempelajari terlebih
dahulu tentang SMS Gateway
menggunakan gammu dan MySQL
dengan 1 modem. Ini adalah tahap
pengenalan terhadap projek yang akan
diberikan.
Hari 6 Membuat SMS
Gateway dengan
Gammu dan MySQL
dengan 2 modem
Membuat SMS Gateway dengan Gammu
dan MySQL dengan multi modem
merupakan projek yang diberikan selama
PKL, dan membuat SMS Gateway
dengan 2 modem adalah langkah awal
untuk menggunakan SMS Gateway Multi
Modem.
Hari 7 Mempelajari script
PHP SMS Gateway
Pada tahap ini adalah tahap mempelajari
script php aslinya yaitu menggunakan
sistem pengiriman dengan single modem
atau seperti biasanya. Di tahap ini selain
mempelajari script php yang diberikan
juga tahap mencari tahu solusi
pengkodingan php dengan multi modem.
Hari 8&9 Membuat script PHP
SMS Gateway 2
modem
Setelah mempelajari script php yang
sudah ada, maka selama 2 hari melakukan
pengkodingan php untuk mencari tahu
script yang tepat digunakan untuk sistem
SMS Gateway dengan Multi Modem.
Hari 10&11 Mengkoneksikan PHP
dengan Oracle
Permasalahan yang dihadapi pada tahap
ini adalah pengoperasian database
Oracle. Dikarenakan belum mengerti
banyak tentang Oracle maka
pengkoneksian ke database Oracle untuk
pengambilan data diperlukan waktu 2
hari.
Hari 12 Testing script PHP di
Localhost XAMPP
dan Mengecek Power
Meter GI (Gardu
Induk) Kudus
Saat file php dan koneksi ke database
Oracle maupun MySQL sudah siap maka
testing script tersebut dilakukan. Untuk
testing menggunakan localhost XAMPP.
Pada testing ini tidak ada kesulitan yang
berarti. Selain itu, penulis juga
mendapatkan pekerjaan lain yaitu
mengecek Power Meter GI Kudus, yaitu
mengecek IP Addressnya untuk
mengetahui adanya kesalahan penulisan
atau tidak.
Hari 13 Mapping Relay GI
Kudus pada SCADA
Explorer
Menyesuaikan dan mengganti IP Address
Relay GI Kudus agar data yang
dimasukkan sesuai dengan data yang ada
di lapangan.
Hari 14 Menghitung dan
memvalidasi KW
Total Incoming GI
(Gardu Induk)
Menghitung KW Total Incoming pada GI
seluruh Jateng dan DIY dengan
menggunakan rumus yang sudah dibuat
dan divalidasi apakah benar atau salah
angka yang tertera.
Hari 15&16 Setting SMS Gateway
dengan 3 modem
Dikarenakan server error selama
beberapa hari lalu maka pembuatan
projek SMS Gateway Multi Modem ini
pun dilanjutkan pada hari ke-15. Disini
menggunakan 3 modem karena suatu
kebutuhan. Sistemnya tidak jauh berbeda
dengan menggunakan 2 modem.
Hari 17 Testing PHP SMS
Gateway dengan 3
modem
Setelah semua settingan dan script php 3
modem sudah siap maka dilakukan
testing kembali dan jika tidak ada error
maka program berhasil dibuat.
Hari 18&20 Membuat Instruksi
Kerja (IK) SMS
Gateway dengan 3
modem
Instruksi Kerja ditujukan untuk
melaporkan langkah-langkah apa saja
yang dilakukan dalam pembuatan projek
SMS Gateway Multi Modem ini sehingga
dapat dijadikan pedoman dalam
pembuatan projek yang berkaitan dengan
ini.
Hari 19 Perbaikan setting SMS
Gateway Gammu
dengan 3 modem
Dikarenakan program mengalami
gangguan yaitu salah satu provider tidak
dapat melakukan pengiriman maka
dilakukan perbaikan setting SMS
Gateway tersebut, yaitu dengan
memindahkan port modem ke tempat
yang aman dan tidak dimungkinkan
adanya gangguan dan melakukan
konfigurasi ulang untuk modem tersebut.
Hari 21 Mapping Power Meter
GI (Gardu Induk)
Weleri pada SCADA
Explorer
Menyesuaikan dan mengganti IP Address
Power Meter GI Weleri agar data yang
dimasukkan sesuai dengan data yang ada
di lapangan.
Hari 22 Rename Keypoint
Area Yogyakarta
Mengganti nama Keypoint area
Yogyakarta dan menyesuaikan dengan
data yang ada di lapangan dalam rangka
update data.
Hari 23 Mapping Power Meter
GI Kebumen pada
SCADA Explorer
Menyesuaikan dan mengganti IP Address
Power Meter GI Kebumen agar data yang
dimasukkan sesuai dengan data yang ada
di lapangan.
Hari
22,24,26,27
Pemeliharaan
Komputer
Workstation
Pemeliharaan komputer Workstation
disini adalah komputer yang biasa
dipegang oleh engineer dalam melakukan
pekerjaannya. Dilakukan pemeliharaan
agar dapat mengetahui apa saja yang
kurang atau perlu diperbaiki dalam
rangka memperbaiki performa komputer
itu sendiri. Pemeliharaan komputer
Workstation meliputi clean up disk, disk
defragment, update anti virus, mengecek
komponen yang ada pada komputer, serta
membersihkan monitor, keyboard, dan
CPU. Setelah itu, semua data itu direkap
untuk dilaporkan kepada pimpinan.
Hari 25 Mengumpulkan data
Laporan PKL
Pengumpulan data laporan ini berupa
wawancara terkait dengan projek yang
diberikan sebelumnya dan menggali
informasi tentang data-data yang
dibutuhkan. Selain itu juga screenshoot
tampilan dari projek dalam rangka
memenuhi kebutuhan data laporan.
Hari 28 Membuat Paper
Laporan
Paper laporan dibuat bertujuan untuk
memberikan gambaran kepada pihak
instansi terhadap laporan seperti apa yang
hendak dibuat. Dan paper ini
memudahkan dalam memahami apa yang
ada dalam sebuah laporan PKL.
Hari 29 Penyerahan paper dan
penarikan PKL
Hari terakhir PKL ditutup dengan
menyerahkan hasil akhir paper untuk
diteliti dan ditelaah kebenaran isinya.
2.2 Pekerjaan Secara Spesifik
Pekerjaan secara spesifik disini akan membahas mengenai salah satu
kegiatan yang dilakukan selama PKL yaitu projek pembuatan Informasi
Gangguan Jaringan dengan Smart Sender SMS Gateway. Projek ini
merupakan salah satu pengembangan dari sistem SMS Gateway yang sudah
ada.
a. Persiapan
Hal-hal yang harus dipersiapkan dalam pembuatan projek ini antara lain:
(1) Modem 3 buah
Menggunakan modem AT&T 1 buah dan modem Huawei 2 buah.
(2) Aplikasi Gammu
Untuk download aplikasi gammu dengan versi yang diinginkan dapat
mendownload di www.wammu.eu/gammu .
(3) Komputer Engineer
Yang dimaksud komputer engineer adalah komputer yang digunakan khusus
untuk pengiriman SMS Gateway.
(4) Notepad++
Aplikasi yang berfungsi untuk membuat atau mengedit script php, file .dll, dan
lain lain.
(5) XAMPP
Digunakan untuk mengkoneksikan PHP dengan database, disini XAMMP
menghubungkan ke database Oracle dan MySQL.
(6) Navicat Premium
Digunakan untuk mempermudah dalam memasukkan data ke dalam database.
Aplikasi ini sangat membantu dalam penginputan data agar cepat dan praktis.
b. Konfigurasi
Setelah itu perlu dikonfigurasikan antara gammu, mysql, php, dan oracle.
Berikut ini adalah langkah-langkahnya:
(1) Instal Gammu dan ekstrak file winrarnya (jika belum ada).
(2) Colokkan modem yang ingin diinstal di Gammu ke sembarang port komputer
(lihat gambar di bawah)
Gambar 2. modem Huawei E3131(kiri) & modem at&t (kanan)
(3) Setelah file gammu di instal dan modem sudah dicolokan, langkah berikutnya
adalah setting konfigurasi. Setting ini diperlukan untuk keperluan penyesuaian
jenis modem dan nomor port yang akan digunakan. Pastikan 3 buah modem
tersebut sudah dikenali oleh komputernya. Untuk mengetahui nomor port yang
digunakan oleh modem klik Start - Control Panel - Device Manager – Modem
Gambar 3. Modem yang terdeteksi
Penting !!
Jika pada Control Panel – Device Manager – Modem tidak muncul portnya,
meskipun driver sudah terinstal, maka Anda masih dapat melihat portnya
melalui Control Panel – System – Hardware – Device Manager – Ports (COM
& LPT). Seandainya nomor port muncul baik di Control Panel – Device
Manager – Modem maupun Control Panel – System – Hardware – Device
Manager – Ports (COM & LPT) dan ternyata nomor portnya berbeda, maka
pilih nomor port yang di Control Panel –Device Manager– Modem.
(4) Pada masing-masing driver modem yang sudah terinstal klik Kanan –
Properties – Modem. Untuk mengetahui nomor port dan mengganti Maximum
Port Speed menjadi 115200 lalu klik Apply – OK.
(5) Langkah berikutnya, setting konfigurasi Gammu dengan cara edit file
GAMMURC menggunakan Notepad++, dan mengubah bagian pada port dan
connection. Parameter port itu nanti diisi dengan nomor port dimana modem
yang dicolokan di komputer.
Gambar 4. Setting konfigurasi Gammu
Keterangan :
Gammu adalah setting konfigurasi untuk modem 1, dan Gammu1 adalah
setting konfigurasi untuk modem 2. Langkah berikutnya, melakukan
pengecekan apakah konfigurasi modem sudah sesuai. Jalankan Command
Prompt, kemudian ketikkan perintah berikut untuk masuk ke direktori
D:\gammu\bin\gammu-identify
jika konfigurasi sesuai maka tampil informasi seperti berikut:
Gambar 5. Konfigurasi modem di command prompt
Keterangan: gammu 0 untuk modem 1, gammu 1 untuk modem 2 dan
gammu 2 untuk modem 3.
(6) Selanjutnya, lakukan konfigurasi pada file smsdrc. Jika menggunakan tiga
modem, maka file smsdrc dicopy sebanyak tiga dengan nama yang berbeda.
Kemudian hilangkan tanda # di file tersebut yang akan dikonfigurasi.
Gambar 6.Konfigurasi smsdrc modem 1
Keterangan:
Copy paste file smsdrc menjadi smsdrc1 dan smsdrc2. Lalu rubah port dan
phoneid-nya. Sehingga akan ada 3 file smsdrc dengan phoneid IM3,XL, dan
tsel.
(7) Setelah konfigurasi smsdrc, selanjutnya instal service gammu, buka Command
Prompt lalu ketik : gammu-smsd –i –c smsdrc –n gammuSMSD. Jika
berhasil maka akan tampil pesan seperti berikut:
Gambar 7. Instal service gammu
Kemudian jalankan service gammu dengan perintah gammu- smsd –s –c
smsdrc –n gammuSMSD. Jika berhasil maka akan tampil pesan seperti
berikut:
Gambar 8. Start service gammu
(8) Lakukan penginstalan service pada smsdrc1 dan smsdrc2 dengan
mengetikkan :
Gammu-smsd –i –c smsdrc1 –n gammu1
Gammu-smsd –i –c smsdrc2 –n gammu2
(9) Apabila ketiga service telah sukses dikonfigurasi di command prompt,
selanjutnya adalah memulai service, dengan membuka Control Panel-
Administrative Tools-Service. Akan muncul tampilan berikut:
Gambar 9. Services
(10) Cari gammu SMSD Service (gammu1) untuk modem 1, Gammu SMSD
Service (gammu2) untuk modem 2. Double click maka akan muncul tampilan
berikut :
Gambar 10. Properties service gammu
Kemudian pilih tab Recovery, pada first failure, second failure dan subsequent
failures pilih restart the service. Selanjutnya pilih tab General, pilih Start
kemudian klik Apply.
(11) Untuk dapat mengakses data Oracle dari server diperlukan Oracle Instant
Client, sesuai dengan versinya. Disini, menggunakan Oracle Instant Client
version 10.2.0.4 karena Oracle yang digunakan versi 10. Setelah download
Oracle Instant Client di website resmi Oracle, tempatkan di folder Xampp.
(12) Setelah mengkonfigurasi Gammu, langkah selanjutnya menyambungkan
database dari oracle melalui Navicat. Langkah pertama yaitu membuka
aplikasi Navicat. Akan muncul tampilan seperti di bawah ini:
Gambar 11. Koneksi ke Oracle
(13) Klik Tools pada menu bar, lalu pilih Options. Seperti tampilan berikut.
Gambar 12. Tools-Options
(14) Setelah itu, pilih OCI pada tab kiri bawah. Maka akan muncul tampilan seperti
ini.
Gambar 13. Jendela Options
Pada tab general, terdapat pilihan OCI library, kemudian klik browse. Dan cari
file oci.dll yang terdapat di folder Oracle Instant Client, Klik Open. Pada
pilihan SQL Plus, biarkan kosong. Kemudian OK.
(15) Untuk menyambungkan ke database Oracle, klik icon Connection, pilih
Oracle. Maka akan muncul tab general, dimana isikan Connection Name, Host,
Port, Service Name/SID, username, dan password. Kemudian klik Test
Connection. Database Oracle disini sebagai sumber data (data source) dari
SMS yang akan dikirimkan.
Gambar14. Koneksi ke Oracle sukses
(16) Langkah selanjutnya mengedit file php.ini di folder Xampp/php. Lalu
uncomment/hilangkan titik koma di depan extension=php_oci8.dll.
Gambar 15. File php.ini
Lalu, akan muncul dialog PHP Warning: PHP StartuP: Unable to load
dynamic library. Untuk mengatasi hal tersebut, copy file oci.dll,
orannzsbb10.dll dan oraocci10, ke C:\WINDOWS\System32.
(17) Selanjutnya, tambahkan PATH pada Environment Variabel di Sistem. Dengan
cara, klik Start-Control Panel-System. Pilih tab Advanced, lalu klik
Environment Variables. Maka akan muncul tampilan berikut.
Gambar 16. Jendela Environment Variables
Pada tab System variables pilih PATH kemudian klik Edit, lalu tambahkan
address dimana tempat file Oracle Instant Client berada, lalu Klik OK.
Gambar 17. Edit System Variable
(18) Langkah selanjutnya yaitu, meng-copy seluruh isi folder Oracle Instant Client
ke dalam folder Xampp/Apache/bin.
(19) Pada aplikasi Navicat perlu menyambungkan database MYSQL dengan cara
klik icon Connection pilih MYSQL, dan isikan Connection Name, Host, Port,
Username dan Password kemudian Klik OK.
Gambar 18. Koneksi ke MySQL sukses
Pilih speedjardist, klik kanan pilih New Table, kemudian isikan field yaitu
id(int), provider(varchar), nomor(varchar). Save. Lalu masukkan data seperti
pada gambar 20.
Gambar 19. Struktur Tabel Provider
Gambar 20. Isian Tabel Provider
Pada tahap pemrograman, bagian yang diubah adalah bagian memasukkan
pesan ke tabel outbox pengiriman sms. berikut ini adalah potongan source code
aslinya atau sebelum dirubah:
Gambar 21. Source Code Pengiriman 1 Modem
Dan di bawah ini adalah hasil modifikasi dari sistem pengiriman sms dengan
menggunakan single modem menjadi multi modem.
//lempar ke modem
$query_sms = "INSERT INTO $data_repl_f.outbox
(DestinationNumber, TextDecoded,SenderID) VALUES
('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info." Indikasi :
".$var_gangguan." ".$time."','IM3')";
//lempar ke modem
$pecah = substr($hsl[0], 0,4);
$cek = "SELECT provider FROM $data_repl_f.`provider`
WHERE nomor = $pecah";
$cek2 = mysql_query($cek, $replikasi_f);
while ($cek3=mysql_fetch_array($cek2)){
$tel="tsel";
$im3="IM3";
if($tel==$cek3['provider']){
$query_sms = "INSERT INTO $data_repl_f.outbox
(DestinationNumber, TextDecoded,SenderID) VALUES
('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info."
Indikasi : ".$var_gangguan." ".$time."','tsel')"; }
Gambar 22. Source Code Pengiriman Multi Modem
elseif($im3 == $cek3['provider']){
$query_sms = "INSERT INTO $data_repl_f.outbox
(DestinationNumber, TextDecoded,SenderID) VALUES
('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info."
Indikasi : ".$var_gangguan." ".$time."','IM3')"; }
else{
$query_sms = "INSERT INTO $data_repl_f.outbox
(DestinationNumber, TextDecoded,SenderID) VALUES
('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info."
Indikasi : ".$var_gangguan." ".$time."','XL')";}
echo 'send to modem ------>'.$query_sms.'<br>';
}
BAB III
ANALISA HASIL PEKERJAAN
3.1 Kebutuhan Fisik
Untuk membuat Analisa Pembuatan Informasi Gangguan Jaringan dengan
Smart Sender SMS Gateway, komponen-komponen yang penulis gunakan adalah
sebagai berikut :
a. Perangkat keras : 1 buah laptop.
b. Perangkat lunak : Sistem operasi windows xp, Navicat Premium, aplikasi
Gammu, Oracle Instant Client, Notepad++, Xampp.
3.2 Kebutuhan Fungsional
a. Diagram Desain
Secara sederhana, dalam hal pengembangan sistem SMS Gateway yang
sudah ada maka sistem ini menggunakan multi modem multi provider. Disini
menggunakan 3 jenis provider yaitu IM3, Telkomsel dan XL yang mana penentuan
provider tersebut diambil dari banyaknya user yang memiliki provider-provider
tersebut.
Inti dari sistem ini adalah pada saat proses pengiriman atau saat penginputan
sms ke dalam outbox. Dalam hal ini sistem akan membaca 4 digit depan nomor
handphone yang ada pada nomor yang akan dikirmkan dan mencocokkan 4 digit
depan nomor itu dengan tabel provider yang ada pada database MySQL. Setelah
itu program akan membaca provider apa yang digunakan dengan melihat kesamaan
4 digit nomor depan nomor dengan nama provider yang sudah dilist di dalam tabel
provider pada database.
Saat sistem membaca nomor tersebut adalah nomor dengan provider IM3
maka secara otomatis sistem akan menginputkan ke dalam tabel outbox dengan
SenderID-nya adalah IM3. Jika sistem membaca nomor tersebut adalah nomor
dengan provider Telkomsel maka secara otomatis sistem akan menginputkan ke
dalam tabel outbox dengan SenderID-nya adalah Telkomsel. Dan jika sistem
membaca nomor tersebut bukan nomor IM3 maupun nomor Telkomsel maka secara
otomatis sistem akan menginputkan ke dalam tabel outbox dengan SenderID-nya
adalah XL. Visualisasi deskripsi pada bagian ini dapat dilihat gambar 23.
Gambar 23. Diagram Desain Sistem
a. Flowchart Program
Gambar 24. Flowchart Sistem Pengiriman
Penjelasan poin per poin berikut adalah untuk yang ada di gambar 24
diatas:
(1) Sistem akan membaca nomor handphone yang terpilih.
(2) Lalu diambil 4 digit depan nomor yang dipilih.
(3) Mencocokkan 4 digit nomor yang dipecah dengan tabel nomor dengan 4 digit
nomor yang ada pada provider yang sudah dibuat. Dalam hal pembuatan tabel
provider penginputan 4 digit depan nomor-nomor seluruh provider harus benar,
akurat dan dapat dipercaya. Dan nomor-nomor seluruh provider harus benar-
benar terisi untuk menghindari terjadinya pending sms dikarenakan tidak
diketahui identitas nomornya.
(4) Setelah ditemukan kecocokan 4 digit nomor yang dipecah dengan data nomor-
nomor provider yang ada di dalam tabel provider, maka sistem akan membaca
nama provider pada tabel provider yang sesuai dengan nomor.
(5) Jika sistem membaca nama providernya adalah IM3 maka sistem akan
menginputkan SenderID ke dalam outbox yaitu IM3. Yang artinya sistem akan
mengirimkan dengan modem berprovider atau bernama IM3.
(6) Juga jika sistem membaca nama providernya adalah tsel maka sistem akan
menginputkan SenderID ke dalam outbox yaitu tsel. Yang artinya sistem akan
mengirimkan dengan modem berprovider atau bernama telkomsel.
(7) Namun, jika sistem tidak membaca keduanya bahwa nomor tersebut bukan
termasuk nomor IM3 maupun nomor Telkomsel maka secara otomatis sistem
akan mengirim ke nomor tersebut dengan modem berprovider XL.
3.3 Testing
a. Uji Kinerja Gammu
Untuk menguji coba apakah gammu dapat berjalan dengan baik, maka hal-
hal yang perlu dilakukan diantaranya:
(1) Pastikan semua service gammu sudah berjalan atau dalam keadaan Start.
(2) Jalankan XAMPP.
(3) Lalu masukkan script seperti di bawah ini pada aplikasi Navicat Premium:
Gambar 25. Tes SMS Navicat
Ganti SenderID sesuai dengan phoneID yang sudah dibuat, disini ada 3
phoneID yaitu IM3, tsel dan XL. Sehingga untuk mengujinya hanya perlu
mengganti SenderID dengan nama phoneID yang ingin diuji coba.
(4) Jika berhasil terkirim ke nomor tersebut sesuai dengan provider yang diinginkan
maka gammu berjalan dengan baik.
b. Uji Source Code PHP
(1) Pastikan koneksi ke Oracle dengan oracle instant client dan ke database
MySQL berhasil.
(2) Buat tabel baru dengan nama “gangguan” dan buatlah struktur tabel seperti
gambar di bawah yaitu berisikan no_rec, point_id, tgl, jam, msec, dan event.
INSERT INTO outbox (DestinationNumber, TextDecoded,
SenderID) VALUES ('085728434754', 'Test', 'tsel')
Gambar 26. Tabel gangguan
(3) Ganti nama dc_osiris_event_gangguan3 (nama table untuk menyimpan data)
dengan nama tabel yang baru saja dibuat. Fungsinya agar pengecekan source
code tidak mengganggu sistem yang sedang berjalan.
(4) Lalu ketikkan localhost/nama folder/nama file php di web browser. Pada projek
ini:localhost/kode/trip_sms3.php. Atasi segala error yang mungkin saja terjadi.
Dalam pembuatan projek ini, tidak ada error dalam source code seperti
tergambar pada gambar di bawah ini:
Send to modem -INSERT INTO
speedjardist.outbox(DestinationNumber, TextDecoded,
SenderID) VALUES(‘085648151681’,’PMT TJB03 TRIP
Indikasi : OCR/ GFR 08-02-2015 04:49:56’,’IM3’
Send to modem -INSERT INTO
speedjardist.outbox(DestinationNumber, TextDecoded,
SenderID) VALUES(‘08113800059’,’PMT TJB03 TRIP
Indikasi : OCR/ GFR 08-02-2015 04:49:56’,’tsel’
Gambar 27. Tampilan di Localhost
Dari gambar 27 di atas maka dapat diketahui bahwa program dapat membaca
nomor handphone yang akan dituju dan mengirimnya menggunakan provider
sesuai dengan yang sudah ditentukan pada tabel. sistem pengiriman SMS
Gateway dengan multi modem dengan kemampuan dapat mengirim ke nomor-
nomor yang sesuai dengan providernya masing-masing.
3.4 Analisa Perbandingan
Disini, pengembangan sistem menggunakan 3 provider yang paling banyak
digunakan oleh para Pegawai, yaitu IM3, Telkomsel, dan XL. Pegawai dengan
nomor-nomor IM3 akan menerima pesan dari modem yang berprovider IM3.
Pegawai dengan nomor-nomor Telkomsel akan menerima pesan dari modem yang
berprovider Telkomsel. Dan Pegawai dengan nomor-nomor selain nomor IM3 dan
Telkomsel akan menerima pesan dari modem yang berprovider XL. Hal ini
bukanlah sebuah masalah yang berarti karena Pegawai yang menggunakan nomor
selain IM3 dan Telkomsel jumlahnya tidak banyak.
Dalam hal penentuan provider digunakan perbandingan jumlah pegawai
yang menggunakan nomor-nomor provider dengan intensitas paling banyak
dipakai. Dan berdasarkan analisa, pengguna IM3 dan Telkomsel adalah pengguna
Send to modem -INSERT INTO
speedjardist.outbox(DestinationNumber, TextDecoded,
SenderID) VALUES(‘08383333123’,’PMT TJB03 TRIP
Indikasi : OCR/ GFR 08-02-2015 04:49:56’,’XL’
paling banyak. Maka dari itu, provider yang dipilih untuk modem SMS Gateway
adalah IM3 dan Telkomsel. Dan modem dengan provider XL akan menghandle
pengiriman sms dengan nomor-nomor yang bukan IM3 maupun Telkomsel.
Sedangkan dalam analisis penggunaan sistem lama dengan sistem baru,
maka dapat disimpulkan bahwa sistem baru merupakan pengembangan dari apa
yang kurang dari sistem yang lama dan berfungsi untuk menambal kekurangan
tersebut. Berikut ini perbandingan menggunakan sistem lama dan sistem baru SMS
Gateway diantaranya:
Tabel 2. Perbandingan Sistem
Perbedaan Sistem Lama Sistem Baru
Anggaran SMS Gateway Lebih banyak Lebih hemat
Penggunaan Modem 1 modem (Single
Modem)
3 modem (Multi
Modem)
Kerja Sistem Statis Dinamis (provider dapat
dirubah sesuai
kebutuhan)
BAB IV
PENUTUP
4.1 Kesimpulan
Dari pembahasan laporan Praktik Kerja Lapangan yang berjudul “Informasi
Gangguan Jaringan dengan Smart Sender SMS Gateway”, maka dapat diambil
beberapa simpulan, sebagai berikut :
a. SMS Gateway merupakan media pengiriman informasi gangguan jaringan yang
yang digunakan oleh PT PLN (Persero) APD Jateng dan DIY.
b. Pengembangan sistem sangat diperlukan untuk pembaharuan sistem menjadi
lebih baik.
c. Informasi Gangguan Jaringan dengan Smart Sender SMS Gateway dirasa cukup
efektif untuk meminimalisasi anggaran untuk pengiriman sms.
4.2 Saran
Setelah pelaksanaan program praktik kerja lapangan dan melakukan
evaluasi atas semua kegiatan yang berkenaan dengan pelaksanaan praktik kerja
lapangan di PT PLN (Persero) APD Jateng dan DIY Semarang, maka beberapa
saran yang bisa dilakukan, diantaranya sebagai berikut :
a. Saran Untuk Universitas Negeri Semarang
Karena pentingnya program kerja praktik dan manfaatnya bagi
mahasiswa, sebaiknya waktu pelaksanaan praktik kerja lapangan lebih
diperpanjang agar mahasiswa mengerti lebih jauh tentang dunia kerja yang
sesungguhnya.
b. Saran Untuk PT PLN (Persero) APD Jateng dan DIY Semarang
(1) Fitur-fitur dari penggunaan SMS Gateway sangatlah banyak dan sangat
bermanfaat. Akan lebih baik lagi jika fitur-fitur yang bias digunakan dengan media
SMS Gateway dapat digunakan secara lebih optimal. Seperti pada halnya
penggunaan polling sms kepuasan layanan, pengiriman sms event atau agenda yang
sudah terjadwal, atau pengembangan lainnya yang masih banyak lagi untuk di-
explore.
(2) Pengembangan suatu sistem akan lebih baik lagi jika dilakukan secara berkala
untuk mencapai tujuan sistem yang efektif dan efisien.
(3) Sistem penentuan paket sms pada masing-masing provider harus dapat
ditentukan secara bijak dan berpikir jangka panjang untuk penentuan anggaran yang
lebih optimal.
c. Saran untuk mahasiswa PKL berikutnya
Belajar banyak hal membuat semakin membuka banyak cara berpikir.
Jangan hanya belajar dari apa yang didapat dari bangku perkuliahan karena dunia
kerja jauh berbeda dari kehidupan kampus.
DAFTAR PUSTAKA
[1]. Adji, B.S. Membuat SMS Server / Gateway dengan Gammu di
Windows, <URL : http://bayusenoadji.com/en/windows/38-
windows/52-membuat-sms-server--gateway-dengan-gammu-di-
windows>
[2]. Anonim. 2014. Bahasa Pemrograman PHP,
<http://www.satriamultimedia.com/artikel_bahasa_pemrograman_php.ht
ml>
[3]. Gammu.2012.Gammu, <URL:http://wammu.eu/gammu/>
[4]. Harahap, Azhari.2010. Using gammu-smsd with multiple phone,
<URL : https://back2arie.wordpress.com/>
[5]. Haryono, Fepri. 2011. Perancangan Aplikasi SMS Gateway Untuk
Meningkatkan Kualitas Pelayanan di PT PLN (Persero) APJ
Yogyakarta. Naskah Publikasi, STMIK Amikom Yogyakarta.
[6]. Pramuko Tri Prastowo. 2010. Aplikasi SMS Gateway pada Acara
Bincang Malam Produksi LPP TVRI Pusat Jakarta. Makalah
disajikan dalam Seminar Kerja Praktik, Universitas Diponegoro,
Semarang.
[7]. Rajasa, Angga. Sistem Peringatan Dini Gangguan Komunikasi Scada.
Naskah Publikasi, PT PLN Persero (APD) Jateng&DIY Semarang.
[8]. Rosihanari.2009. Setting SMS Gateway Lebih dari 1 Modem,
<URL:http://blog.rosihanari.net/setting-gammu-untuk-aplikasi-sms-
gateway>
[9]. Wikipedia Indonesia. 2012. SMS Gateway,
<URL:http://id.wikipedia.org/wiki/SMS_Gateway>
LAMPIRAN
(1) Source Code Lengkap
<?php
//Menghubungkan dengan database lokal Collector Lama
$host_repl_f = "10.100.1.26";
$user_repl_f = "adminapd";
$pass_repl_f = "adminapd";
$data_repl_f = "speedjardist";
$replikasi_f = @mysql_connect($host_repl_f, $user_repl_f,
$pass_repl_f) or
die ("Gagal koneksi ke database collect data GI APD");
@mysql_select_db($data_repl_f, $replikasi_f) or
die ("Gagal aktif database collect data GI");
//Menghubungkan dengan server Oracle Survalent di APD
$host = "10.100.1.7";
$port = "1521";
$username = "semarang";
$password = "scada101";
$sid = "orcl";
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS =
(PROTOCOL = TCP)(HOST = $host)(PORT =
$port)))(CONNECT_DATA=(SID=$sid)))" ;
$conn = ocilogon("$username","$password",$db) or
die ("Gagal koneksi ke server Survalent APD!");
//Untuk mengecek apakah sudah ada replikasi data event
survalent ke db_collect
$sql_get_data = "SELECT COUNT(*) FROM
$data_repl_f.gangguan";
$cek_awal_event = mysql_query($sql_get_data, $replikasi_f);
while ($hsl_cek_awal_event =
mysql_fetch_row($cek_awal_event)){
//Untuk batas pengambilan data
$bts_awal = $hsl_cek_awal_event[0]+1;
$bts_akhir = $bts_awal+200;}
//query kata-kata yang tidak perlu
$var_kata = "";
$sql_kata = "SELECT * FROM
$data_repl_f.dc_osiris_kata_terbuang";
$result_kata = mysql_query($sql_kata, $replikasi_f);
while ($hasil = mysql_fetch_row($result_kata)){
$var_kata = $var_kata."AND MESSAGE NOT LIKE
'%".$hasil[1]."%'"; }//end while
//Hasil pengecekan digunakan untuk mengambil event yang ada
$sql = "SELECT * FROM (SELECT POINT_ID,
TO_CHAR(TIMESTAMP, 'YYYY-MM-DD HH24:Mi:SS') AS
WAKTU_EVENT,TO_CHAR(TIMESTAMP, 'DD-MM-YYYY
HH24:Mi:SS') AS WAKTU, MESSAGE, ROW_NUMBER()
OVER (ORDER BY TIMESTAMP) R FROM REPORT_LOG
WHERE TIMESTAMP >= TO_DATE('2015-2-08
00:00:00','YYYY-MM-DD HH24:Mi:SS')
) WHERE R BETWEEN $bts_awal AND $bts_akhir";
".$var_kata."
) WHERE R BETWEEN $bts_awal AND $bts_akhir";
//Mendefinisikan perintah SQL diatas
$stid_srv = oci_parse($conn, $sql);
//Mendefinisikan ulang data sebelum ditampilkan
oci_define_by_name($stid_srv, 'WAKTU_EVENT',
$waktu_event);
oci_define_by_name($stid_srv, 'POINT_ID', $point_id);
oci_define_by_name($stid_srv, 'WAKTU', $waktu);
oci_define_by_name($stid_srv, 'MESSAGE', $message);
oci_define_by_name($stid_srv, 'R', $r);
//eksekusi perintah sql
oci_execute($stid_srv);
//membuat class baru untuk menghitung selisih waktu
$difference = new difference();
//convert into stdclass object array
$nrows = oci_fetch_all($stid_srv,$results, null,
null,OCI_FETCHSTATEMENT_BY_ROW);
foreach ($results as $key => $val){
$obj = new stdClass();
if (is_array($val)){
foreach ($val as $k => $v){
$obj->$k = $v;}}
else{ $obj->$key = $val;}
$data_event[] = $obj;
}//end foreach
//start looping data
for ($index=0; $index < $nrows; $index++){
$result =& $data_event[$index];
//-----------------------logging di mysql raw data
//Memecah $waktu berdasarkan karakter " "
$tgl_jam = explode(" ", "$result->WAKTU");
$explode = explode("-", "$tgl_jam[0]");
$date = $explode[2].'-'.$explode[1].'-'.$explode[0];
$query = "INSERT INTO gangguan (point_id, tgl, jam,
event,msec) VALUES (";$query .= "'$result->POINT_ID',
'$date', '$tgl_jam[1]', '$result->MESSAGE' , '$result->MSEC')";
//menjalankan perintah sql diatas
$tmbh_mysql = mysql_query($query, $replikasi_f);
//cek open by [FALSE]
if(strpos(trim($result->MESSAGE,' '), 'Close') === false &&
strpos(trim($result->MESSAGE,' '), 'FROM') === false &&
strpos(trim($result->MESSAGE,' '), 'Trip') === false &&
strpos(trim($result->MESSAGE,' '), 'Alarm' ) === false &&
strpos(trim($result->MESSAGE,' '), 'Over Current') === false
&& strpos(trim($result->MESSAGE,' '), 'App') === false &&
strpos(trim($result->MESSAGE,' '), 'Fault') === false &&
strpos(trim($result->MESSAGE,' '), 'Earth') === false){
//jika event gangguan sesudah status open
$var_point_id = $result->POINT_ID;
$time = $result->WAKTU;
$pos = $index;
$time_event = $result->WAKTU_EVENT;
//setting awal setting string gangguan
$var_gangguan = '!';
//array untuk mencegah doubling status
$array_status = array();
$add_info = '';
//looping maju sebanyak 10 status
for($i=1;$i<=10;$i++){
$rs_next =& $data_event[$index+$i];
$counter = $index+$i;
/*kalau untuk status gangguan muncul sesudah pmt trip
maka looping sebanyak status gangguan + 1 (in case kalo status
gangguan muncul semua) lalu diukur dengan waktu selisih detik,
bila kurang dari sama dengan 30 detik, anggap reclose*/
if($rs_next->POINT_ID == $var_point_id &&
strpos(trim($rs_next->MESSAGE,' '), 'Open') === false &&
strpos(trim($rs_next->MESSAGE,' '), 'FROM') === false){
$diff_time = $difference->difference_time($time,$rs_next-
>WAKTU);
$difference_in_seconds = $diff_time['hour']*3600 +
$diff_time['minute']*60 + $diff_time['second'];
if($difference_in_seconds <= 30){
$rs_prev_prev =& $data_event[$counter-1];
if(strpos(trim($rs_prev_prev->MESSAGE,' '), 'FROM') ===
false)\
$add_info = 'RECLOSE';
}//end if
}//end if
//sql untuk mencari total data point gangguan
$sql_gangguan = "SELECT alias FROM
dc_osiris_map_gangguan_survalent a, dc_osiris_map_survalent b
WHERE a.feeder = b.feeder AND b.map_id = '$var_point_id'
AND a.map_id = '$rs_next->POINT_ID'";
$result = mysql_query($sql_gangguan, $replikasi_f);
//jika tidak menemukan hasil maka tidak di proses
if(mysql_num_rows($result) > 0){
//kalau selama looping ada status yang melebihi dari ambang
batas waktu maka break dari looping
$diff_time = $difference->difference_time($time,$rs_next-
>WAKTU);
$difference_in_seconds = $diff_time['hour']*3600 +
$diff_time['minute']*60 + $diff_time['second'];
if($difference_in_seconds > 30){break;}//end if
else{while ($hasil = mysql_fetch_row($result)){
//mencegah doubling status dalam sms, kalau status gangguan
belum ada dalam array array_status, maka di push array lalu
concat dengan string var_gangguan
if (!in_array($hasil[0], $array_status)) {
array_push($array_status, $hasil[0]);
$var_gangguan = $var_gangguan.' / '.$hasil[0];
}//end if
}//end while
}//end else
}//end if
//looping mundur sebanyak 10 status
for($i=1;$i<=10;$i++){
$rs_prev =& $data_event[$index-$i];
//sql untuk mencari total data point gangguan
$sql_gangguan = "SELECT alias FROM
dc_osiris_map_gangguan_survalent a, dc_osiris_map_survalent b
WHERE a.feeder = b.feeder AND b.map_id = '$var_point_id'
AND a.map_id = '$rs_prev->POINT_ID'";
$result = mysql_query($sql_gangguan, $replikasi_f);
//jika tidak menemukan hasil maka tidak di proses
if(mysql_num_rows($result) > 0){
//kalau selama looping ada status yang melebihi dari ambang
batas waktu maka break dari looping
$diff_time = $difference->difference_time($rs_prev-
>WAKTU,$time);
$difference_in_seconds = $diff_time['hour']*3600 +
$diff_time['minute']*60 + $diff_time['second'];
if($difference_in_seconds > 30){ break;}//end if
else{
while ($hasil = mysql_fetch_row($result)){
//mencegah doubling status dalam sms, kalau status gangguan
belum ada dalam array array_status, maka di push array lalu
concat dengan string var_gangguan
if (!in_array($hasil[0], $array_status)) {
array_push($array_status, $hasil[0]);
$var_gangguan = $var_gangguan.' / '.$hasil[0];
}//end if
}//end while
}//end else
}//end if
}//end for
//menghilangkan string slash indikasi gangguan
$var_gangguan = str_replace("! /", "", $var_gangguan);
//pmt open disebabkan manuver / tidak ada indikasi gangguan =
tidak dikirim
if($var_gangguan != '!'){
//Map id agar otomatis mengambil nama feeder jika map_id
sesuai
$sql = "SELECT feeder,zone FROM
speedjardist.dc_osiris_map_survalent WHERE
map_id='$var_point_id' and pemeliharaan = 0";
$row_result = mysql_query($sql, $replikasi_f);
if(mysql_num_rows($row_result) > 0){
while ($hsl_id = mysql_fetch_row($row_result)){
$nama_pmt = $hsl_id[0];
$zona = $hsl_id[1];
}//end of while
//SMS Per Zona User
$sql_sms = "SELECT Number FROM $data_repl_f.`pbk`
WHERE ApprovedSMSFault = 1 AND (zona=".$zona." OR zona
= 100)";
$result_data = mysql_query($sql_sms, $replikasi_f);
while ($hsl = mysql_fetch_row($result_data)){
//sql untuk mencegah doubling-doubling sms
$query_buffer = "INSERT INTO
speedjardist.dc_osiris_logsms_gangguan (nomor_tujuan,
logsms,asal,waktu_trip,pmt_trip) VALUES ('".$hsl[0]."','PMT
".$nama_pmt." TRIP ".$add_info." Indikasi : ".$var_gangguan."
".$time."',3,'".$time_event."','".$nama_pmt."')";
mysql_query($query_buffer,$replikasi_f);
//lempar ke modem
$query_sms = "INSERT INTO $data_repl_f.outbox
(DestinationNumber, TextDecoded,SenderID) VALUES
('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info." Indikasi :
".$var_gangguan." ".$time."','IM3')";
//logging sms
$query_log = "INSERT INTO $data_repl_f.outbox_log
(outbox_phone_number, outbox_text_message,outbox_from)
VALUES ('".$hsl[0]."','PMT ".$nama_pmt." TRIP ".$add_info."
Indikasi : ".$var_gangguan." ".$time."','SMS TRIP 3')";
//altering table outbox
$query_alter = "ALTER TABLE outbox ORDER BY
UpdatedInDB";
$sql_exception = "SELECT count(*) FROM
$data_repl_f.`dc_osiris_logsms_gangguan` WHERE logsms
LIKE '%PMT ".$nama_pmt." TRIP%' AND logsms LIKE
'%".$time."%' AND nomor_tujuan = '".$hsl[0]."' AND asal = 2";
$result_buffer = mysql_query($sql_exception, $replikasi_f);
while ($hsl_buf = mysql_fetch_row($result_buffer)){
$total_data = $hsl_buf[0];
if($total_data == 0 ){
echo 'send to modem ------>'.$query_buffer.'<br>';
mysql_query($query_sms,$replikasi_f);
mysql_query($query_log,$replikasi_f);
mysql_query($query_alter,$replikasi_f);}//end if
}//end while sql exception
}//end of if
}//end of while
}//end if
}//end if cek Open
}//end looping data
class difference {
function difference_time($d2, $d1){
$d1 = date_parse($d1);
$d2 = date_parse($d2);
//seconds
if ($d1['second'] >= $d2['second'])
$diff['second'] = $d1['second'] - $d2['second'];
else {
$d1['minute']--;
$diff['second'] = 60-$d2['second']+$d1['second'];}
//minutes
if ($d1['minute'] >= $d2['minute']){
$diff['minute'] = $d1['minute'] - $d2['minute'];}
else {
$d1['hour']--;
$diff['minute'] = 60-$d2['minute']+$d1['minute'];
}
//hours
if ($d1['hour'] >= $d2['hour']){
$diff['hour'] = $d1['hour'] - $d2['hour'];}
else {
$d1['day']--;
$diff['hour'] = 24-$d2['hour']+$d1['hour'];}
return $diff;
}//end of function
}//end of class
//Menutup koneksi ke database db_collect, replikasi data
ROPO/SCADA (first)
mysql_close($replikasi_f);
//Menutup koneksi ke server Survalent di APD
oci_close($conn);
?>