sistem informasi monitoring korosi pipa minyak …...sistem informasi monitoring korosi pipa minyak...
TRANSCRIPT
SISTEM INFORMASI MONITORING
KOROSI PIPA MINYAK BERBASIS WEB
(Studi Kasus : Stasiun Rawa – PT. ConocoPhillips Indonesia Inc. Ltd)
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar
Sarjana Komputer
TOMMY AKBAR NUGRAHA
104091002815
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2010 M / 1432 H
i
SISTEM INFORMASI MONITORING KOROSI PIPA MINYAK BERBASIS WEB
(Studi Kasus : Stasiun Rawa – PT. ConocoPhillips Indonesia Inc. Ltd)
Skripsi Sebagai Salah Satu Syarat Untuk Memperoleh Gelar
Sarjana Komputer Fakultas Sains dan Teknologi
Universitas Islam Negeri (UIN) Syarif Hidayatullah Jakarta
Oleh Tommy Akbar Nugraha
104091002815
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI (UIN)
SYARIF HIDAYATULLAH JAKARTA
2010 M / 1432 H
ii
SISTEM INFORMASI MONITORING KOROSI PIPA MINYAK BERBASIS WEB
(Studi Kasus : Stasiun Rawa – PT. ConocoPhillips Indonesia Inc. Ltd)
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh
Gelar Sarjana Komputer
Pada Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh
Tommy Akbar Nugraha 104091002815
Menyetujui,
Pembimbing I
Ir. Bakri La Katjong, MT, M.Kom NIP. 470 035 764
Pembimbing II
Zainul Arham, M.Si NIP. 19740730 200710 1 002
Mengetahui,
Ketua Program Studi Teknik Informatika
Yusuf Durachman, M.Sc, MIT NIP. 19710522 200604 1 002
iii
PENGESAHAN UJIAN
Skripsi berjudul ”Sistem Informasi Monitoring Korosi Pipa Minyak Berbasis Web
(Studi Kasus : Stasiun Rawa – PT. ConocoPhillips Inc. Ltd)” yang ditulis oleh Tommy
Akbar Nugraha, NIM 104091002815 telah diuji dan dinyatakan lulus dalam sidang
Munaqosyah Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Syarif
Hidayatullah Jakarta pada Hari Senin, Tanggal 31 Maret 2010. Skripsi telah diterima
sebagai salah satu syarat untuk memperoleh gelar sarjana strata satu (S1) Program Studi
Teknik Informatika.
Jakarta, Oktober 2010
Menyetujui,
Penguji I
Khodijah Hulliyah, M.Si NIP. 19730402 200112 2 001
Penguji II
Fitri Mintarsih, M.Kom NIP. 19721223 200710 2 004
Pembimbing I
Ir. Bakri La Katjong, MT, M.Kom NIP. 470 035 764
Pembimbing II
Zainul Arham, M.Si NIP. 19740730 200710 1 002
Mengetahui,
Dekan Fakultas Sains dan Teknologi, UIN Syarif Hidayatullah Jakarta
DR. Syopiansyah Jaya Putra, M.Sis NIP. 19680117 200112 1 001
Ketua Program Studi Teknik Informatika
Yusuf Durachman, M.Sc, MIT NIP. 19710522 200604 1 002
iv
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR
HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI
SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU
LEMBAGA MANAPUN
Jakarta, Oktober 2010
Tommy Akbar Nugraha 104091002815
v
ABSTRAK
TOMMY AKBAR NUGRAHA. SISTEM INFORMASI MONITORING KOROSI PIPA MINYAK BERBASIS WEB (Studi Kasus: Stasiun Rawa – PT. CononoPhillips Indonesia INC. LTD). (Dibimbing Oleh BAKRI LA KATJONG dan ZAINUL ARHAM).
Pada industri perminyakan, jaringan pipa merupakan salah satu bagian terpenting dari industri tersebut. Pada jaringan pipa terdapat berbagai permasalahan yang dapat terjadi, salah satunya adalah korosi. Jika pada suatu pipa telah mengalami korosi, maka dapat dipastikan pipa tersebut akan mengalami kebocoran. Untuk mengetahui pipa akan mengalami korosi dapat diketahui dari hasil monitoring pipa, selanjutnya hasil monitoring tersebut dianalisis sehingga didapat hasil keadaan pipa. Pada Stasiun Rawa milik PT. ConocoPhillips Indonesia (COPI), data hasil monitoring pipa masih kurang terorganisasi dengan baik.
Oleh karena itu, penulis membuat sistem informasi yang ditujukan sebagai media penyimpanan informasi, pengolahan informasi dan menganalisis informasi sehingga didapat suatu rekomendasi tentang tindakan pencegahan atau perbaikan yang perlu dilakukan. Penulis memilih sistem informasi berbasis web base, agar sistem yang akan dibangun dapat diakses dimana saja baik pengguna yang ada di kantor pusat ataupun pengguna di daerah penambangan.
Dalam pembuatan sistem informasi ini metodologi pengembangan sistem yang digunakan adalah System Development Life Cycle (SDLC). Perangkat lunak yang digunakan untuk mengembangkan sistem ini adalah Macromedia Dreamweaver dan UltraEdit-32 Text Editor sebagai media untuk merancang tampilan dan menuliskan kode program, XAMPP sebagai web server, dan Mozilla Firefox untuk melihat hasil tampilan sistem informasi di komputer dengan sistem operasi Windows XP Professional Service Pack 2.
Kata Kunci: Korosi, SDLC, Web Base, XAMPP
vi
KATA PENGANTAR
Puji Syukur penulis panjatkan kehadirat Allah SWT yang telah
memberikan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan
penulisan skripsi yang berjudul : “SISTEM INFORMASI MONITORING
KOROSI PIPA MINYAK BERBASIS WEB (Studi Kasus : PT.
ConocoPhillips Inc. Ltd)” dengan baik. Shalawat serta salam selalu tercurah
kepada Rasulullah SAW yang senantiasa menuntun umatnya hingga seperti
sekarang ini.
Penulisan skripsi ini merupakan salah satu tugas wajib mahasiswa sebagai
persyaratan untuk menempuh gelar Strata 1 (S1) pada Program Studi Teknik
Informatika Universitas Islam Negeri Syarif Hidayatullah Jakarta.
Penulis ingin menyampaikan rasa terima kasih kepada seluruh pihak yang
telah membantu sehingga penulisan skripsi ini dapat diselesaikan. Ucapan terima
kasih dan penghargaan yang sebesar-besarnya penulis sampaikan kepada:
1. Bapak Dr. Sopiyansyah Jaya Putra, M.SIS, selaku Dekan Fakultas Sains dan
Teknologi, UIN Syarif Hidayatullah Jakarta.
2. Bapak Yusuf Durrachman, M.Sc, MIT, selaku Ketua Program Studi Teknik
Informatika, Ibu Viva Arifin, MMSI, selaku Sekretaris Program Studi Teknik
Informatika dan seluruh pihak akademik, baik tingkat program studi maupun
tingkat fakultas.
3. Bapak Bakri La Katjong, MT, M.Kom dan Bapak Zainul Arham M.Si, selaku
dosen pembimbing skripsi yang telah memberikan bimbingan, masukan dan
dorongan serta waktunya kepada penulis.
vii
4. Ibu, Ayah dan Adik tercinta yang telah memberikan doa, dorongan baik moril
maupun materil, dan motivasi sebesar-besarnya kepada penulis.
5. Bapak Teddy Firmansyah, selaku Manajer Operational PT. Wilson Walton
Indonesia yang telah memberikan kesempatan kepada penulis untuk
melakukan penelitian.
6. Seluruh staff PT. Wilson Walton Indonesia yang telah membantu penulis
memberikan data dan informasi yang penulis butuhkan dalam penulisan
skripsi ini.
7. Seluruh teman-temanku, khususnya TI-A 2004 yang selalu memberikan
semangat kepada penulis serta kebersamaannya selama ini.
8. Serta Semua pihak yang tidak dapat disebutkan satu persatu, yang telah
berperan dalam penyelesaian skripsi ini.
Penulis menyadari bahwa penulisan skripsi ini masih jauh dari sempurna,
oleh karena itu penulis mengharapkan kritik dan saran yang bersifat membangun
demi kesempurnaan penulisan di masa mendatang. Akhir kata semoga skripsi ini
bermanfaat bagi penulis dan bagi pihak yang membutuhkan.
Jakarta, Oktober 2010
Tommy Akbar Nugraha
viii
DAFTAR ISI
Halaman Judul ................................................................................................. i
Lembar Persetujuan Pembimbing .................................................................. ii
Lembar Pengesahan Ujian ............................................................................... iii
Lembar Pernyataan .......................................................................................... iv
Abstrak .............................................................................................................. v
Kata Pengantar ................................................................................................ vi
Daftar Isi ........................................................................................................... viii
Daftar Gambar.................................................................................................. xii
Daftar Tabel....................................................................................................... xiii
Daftar Lampiran ............................................................................................... xiv
Daftar Simbol .................................................................................................... xv
Daftar Istilah ..................................................................................................... xvii
BAB 1 PENDAHULUAN
1.1 Latar Belakang ....................................................................................... 1
1.2 Perumusan Masalah ............................................................................... 4
1.3 Batasan Masalah .................................................................................... 4
1.4 Tujuan dan Manfaat Penelitian .............................................................. 5
1.4.1 Tujuan Penelitian ........................................................................... 5
1.4.2 Manfaat Penelitian ........................................................................ 5
1.5 Metode Penelitian .................................................................................. 6
1.5.1 Metode Pegumpulan Data ............................................................. 6
1.5.2 Metode Pengembangan Sistem ..................................................... 7
1.6 Kerangka Berfikir .................................................................................. 7
1.6.1 Corrosion Risk Assesment (CRA) ................................................. 8
1.7 Sistematika Penulisan ............................................................................ 9
BAB 2 LANDASAN TEORI
2.1 Korosi ..................................................................................................... 11
2.1.1 Pengertian Korosi .......................................................................... 11
ix
2.1.2 Penyebab Korosi ........................................................................... 11
2.1.3 Akibat Korosi ................................................................................ 13
2.1.4 Penanggulangan Korosi ................................................................ 14
2.1.5 Corrosion Risk Assesment (CRA) ................................................ 17
2.2 Konsep Dasar Sistem Informasi ............................................................. 21
2.2.1 Pengertian Sistem .......................................................................... 21
2.2.2 Pengertian Informasi ..................................................................... 23
2.2.3 Pengertian Sistem Informasi .......................................................... 25
2.3 Metode Pengembangan Sistem .............................................................. 27
2.4 Tools Analisis dan Desain Sistem Informasi ......................................... 29
2.4.1 Flowchart ...................................................................................... 29
2.4.2 Data Flow Diagram (DFD) ........................................................... 29
2.4.3 Entity Relationalship Diagram (ERD) .......................................... 31
2.4.4 Basis Data ..................................................................................... 33
2.5 Perangkat Lunak dalam Perancangan Sistem ........................................ 34
2.5.1 MySQL .......................................................................................... 34
2.5.1.1 Database, tabel, baris, kolom ............................................ 34
2.5.1.2 Perintah-perintah SQL ...................................................... 34
2.5.2 PHP ................................................................................................ 39
2.5.2.1 Nama File .......................................................................... 40
2.5.2.2 Tag Awal dan Tag Akhir .................................................. 41
2.5.2.3 Komentar .......................................................................... 42
2.5.2.4 Skrip PHP ......................................................................... 42
2.5.2.5 Case Sensitive ................................................................... 43
BAB 3 METODOLOGI PENELITIAN
3.1 Alat dan Bahan........................................................................................ 44
3.1.1 Alat................................................................................................. 44
3.1.2 Bahan ............................................................................................. 45
3.2 Waktu dan Tempat Penelitian ............................................................... 45
3.3 Gambaran Umum Perusahaan................................................................. 46
3.3.1 Sejarah dan Perkembangannya ...................................................... 46
x
3.3.2 Visi, Misi, Kebijakan dan Sasaran Mutu ....................................... 48
3.3.3 Struktur Organisasi ........................................................................ 49
3.4 Tahapan Penelitian .................................................................................. 51
3.5 Metode Pengumpulan Data ..................................................................... 51
3.5.1 Studi Pustaka.................................................................................. 51
3.5.2 Wawancara .................................................................................... 52
3.6 Metode Pengembangan Sistem ............................................................... 53
3.6.1 Perencanaan.................................................................................... 53
3.6.2 Analisis........................................................................................... 54
3.6.3 Perancangan ................................................................................... 55
3.6.4 Implementasi .................................................................................. 57
3.6.5 Pemeliharaan .................................................................................. 57
BAB 4 HASIL DAN PEMBAHASAN
4.1 Perencanaan Sistem ............................................................................................ 59
4.1.1 Identifikasi Kebutuhan (User Need Assisment) ........................................ 59
4.1.2 Identifikasi Masalah .................................................................................. 60
4.1.3 Tujuan Pengembangan Sistem .................................................................. 61
4.2 Analisa Sistem .................................................................................................... 61
4.2.1 Analisa Sistem yang Sedang Berjalan ....................................................... 61
4.2.2 Analisa Kebutuhan Sistem yang Sedang Berjalan .................................... 63
4.2.3 Alternatif Pemecahan Masalah ................................................................. 63
4.3 Perancangan Sistem ........................................................................................... 64
4.3.1 Data Flow Diagram (DFD) ....................................................................... 64
4.3.2 Perancangan Basis Data ............................................................................ 68
4.3.2.1 Entity Relationalship Diagram (ERD) ................................................ 68
4.3.2.2 Normalisasi ......................................................................................... 70
4.3.2.3 Relational Database Management System (RDBMS) ........................ 80
4.3.2.4 Kamus Data ......................................................................................... 81
4.3.2.5 Spesifikasi File Data ........................................................................... 82
4.3.3 Desain Struktur Menu Sistem Informasi ................................................... 101
4.4 Implementasi Sistem .......................................................................................... 105
xi
4.4.1 Sarana Pendukung Aplikasi ....................................................................... 105
4.4.2 Pengujian Sistem ....................................................................................... 106
4.4.2 Implementasi Sistem ................................................................................. 106
4.5 Pemeliharaan Sistem .......................................................................................... 106
BAB 5 PENUTUP
5.1 Kesimpulan ......................................................................................................... 108
5.2 Saran.................................................................................................................... 108
DAFTAR PUSTAKA ................................................................................................... 110
DAFTAR PUSTAKA PENUNJANG .......................................................................... 112
LAMPIRAN A WAWANCARA ................................................................................. 113
LAMPIRAN B KUESIONER ...................................................................................... 120
LAMPIRAN C TAMPILAN APLIKASI ..................................................................... 124
LAMPIRAN D PENGUJIAN....................................................................................... 149
LAMPIRAN E SOURCE CODE ................................................................................. 153
LAMPIRAN F DOKUMEN-DOKUMEN ................................................................... 210
xii
DAFTAR GAMBAR
Gambar 1.1 Grafik Produksi Minyak dan Biaya Perawatan .................................. 2
Gambar 1.2 Alur Kerangka Berfikir ...................................................................... 7
Gambar 1.3 Alur CRA ........................................................................................... 9
Gambar 2.1 Rust Scale ........................................................................................... 13
Gambar 2.2 Rust Hole ............................................................................................ 13
Gambar 2.3.a Alur Kerja Umum CRA.................................................................. 17
Gambar 2.3.b Rincian Alur Kerja CRA ................................................................. 17
Gambar 2.4.a Pembagian Kategori Resiko PoF..................................................... 19
Gambar 2.4.b Pembagian Kategori Resiko CoF .................................................... 19
Gambar 2.5 Persentase Parameter PoF dan CoF.................................................... 20
Gambar 2.6 Risk Matrix PoF dan CoF................................................................... 21
Gambar 2.7 Simbol 1 to 1 ...................................................................................... 32
Gambar 2.8 Simbol 1 to M..................................................................................... 33
Gambar 2.9 Simbol M to N.................................................................................... 33
Gambar 3.1 Struktur Organisasi PT. Wilson Walton Indonesia ............................ 50
Gambar 3.2 Tahapan Penelitian ............................................................................. 51
Gambar 3.3 Tahapan Pengembangan Metode SDLC ............................................ 53
Gambar 4.1 Bagan Alir Sistem yang Sedang Berjalan .......................................... 62
Gambar 4.2 Diagram Konteks................................................................................ 64
Gambar 4.3 DFD Level 1 ...................................................................................... 66
Gambar 4.4 ERD Awal .......................................................................................... 69
Gambar 4.5 RDBMS .............................................................................................. 80
Gambar 4.6 Struktur Menu Admin ........................................................................ 102
Gambar 4.7 Struktur Menu Manager ..................................................................... 103
Gambar 4.8 Struktur Menu Field Engineer ............................................................ 104
xiii
DAFTAR TABEL
Tabel 1.1 Data Produksi Minyak dan Biaya Perawatan ......................................................... 2
Tabel 3.1 Daftar Bahan Penelitian.......................................................................................... 45
Tabel 4.1 Spesifikasi Tabel gl................................................................................................. 83
Tabel 4.2 Spesifikasi Tabel gl_chemical_treatment ............................................................... 84
Tabel 4.3 Spesifikasi Tabel gl_corr_rate ................................................................................ 85
Tabel 4.4 Spesifikasi Tabel gl_corr_risk_data ....................................................................... 86
Tabel 4.5 Spesifikasi Tabel gl_ext_corr_protection ............................................................... 88
Tabel 4.6 Spesifikasi Tabel gl_general................................................................................... 89
Tabel 4.7 Spesifikasi Tabel gl_int_corr_mon_dev ................................................................. 91
Tabel 4.8 Spesifikasi Tabel gl_pigging_facility ..................................................................... 93
Tabel 4.9 Spesifikasi Tabel gl_pipe_condition....................................................................... 96
Tabel 4.10 Spesifikasi Tabel gl_scaling_tendency................................................................. 98
Tabel 4.11 Spesifikasi Tabel gl_water_sampling ................................................................... 99
Tabel 4.12 Spesifikasi Tabel user ........................................................................................... 101
xiv
DAFTAR LAMPIRAN
LAMPIRAN A WAWANCARA ..................................................................... 113
LAMPIRAN B KUESIONER ......................................................................... 120
LAMPIRAN C TAMPILAN APLIKASI ....................................................... 124
LAMPIRAN D PENGUJIAN .......................................................................... 149
LAMPIRAN E SOURCE CODE .................................................................... 153
LAMPIRAN F DOKUMEN-DOKUMEN ..................................................... 210
xv
DAFTAR SIMBOL
Flowchart Diagram (Munawar, 2005)
No Nama Simbol Keterangan
1 Arus / Flow
Menyatakan jalannya arus suatu proses.
2 Process
Menyatakan suatu tindakan (proses) yang dilakukan komputer.
3 Manual
Menyatakan suatu tindakan (proses) yang tidak dilakukan oleh komputer.
4
Decision
Menunjukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya / tidak.
5 Predefined Process
Menyediakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal.
xvi
6 Terminal
Menyatakan permulaan atau akhir suatu program.
7 Input / Output
Menyatakan proses input atau output tanpa bergantung jenis peralatannya.
8 Document
Mencetak keluaran dalam bentuk dokumen.
xvii
DAFTAR ISTILAH
No Istilah Penjelasan
1. Database Kumpulan dari data atau fakta suatu
organisasi secara terstruktur dalam domain
tertentu untuk mendukung aplikasi pada
sistem tertentu
2. Hardware Perangkat lunak dapat juga dikatakan
sebagai 'penterjemah' perintah-perintah yang
dijalankan pengguna komputer untuk
diteruskan ke atau diproses oleh perangkat
keras.
3. Input Adalah segala sesuatu yang dibutuhkan agar
pelaksanaan kegiatan dan program dapat
berjalan atau dalam rangka menghasilkan
output, misalnya : sumber daya manusia,
dana, material, waktu, teknologi, dan
sebagainya.
9. Output Berupa produk/jasa (fisik dan /atau non fisik)
sebagai hasil langsung dari pelaksanaan
suatu kegiatan dan program berdasarkan
masukan yang digunakan.
10. Software Program komputer yang berfungsi sebagai
sarana interaksi antara pengguna dan
perangkat keras. Perangkat lunak dapat juga
dikatakan sebagai 'penterjemah' perintah-
perintah yang dijalankan pengguna komputer
untuk diteruskan ke atau diproses oleh
perangkat keras.
xviii
12. User Pengguna sistem/individu yang berhubungan
dengan sistem, baik admin ataupun end user.
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Perkembangan Teknologi Informasi meningkat sangat cepat seiring
dengan perkembangan teknologi yang terus meningkat dari waktu ke waktu.
Saat ini hampir semua perusahaan telah memanfaatkan perkembangan
teknologi tersebut, tidak terkecuali pada industri perminyakan. Karena pada
industri perminyakan memiliki berbagai permasalahan yang tidak dapat
diselesaikan hanya dengan cara yang konvensional. Oleh karena itu
dibutuhkan teknologi informasi sebagai suatu solusi yang tepat untuk
menyelesaikan permasalahan yang ada.
Pada industri perminyakan, jaringan pipa merupakan salah satu
bagian penting dari industri tersebut. Pada jaringan pipa terdapat berbagai
permasalahan yang dapat terjadi, salah satunya adalah korosi pada pipa. Jika
pada suatu pipa telah mengalami korosi, maka dapat dipastikan pipa tersebut
akan mengalami kebocoran. Sehingga pipa tersebut tidak dapat digunakan
oleh sumur minyak untuk proses produksi. Dapat dilihat pada Tabel 1.1 dan
Gambar 1.1 bahwa korosi merupakan salah satu hal yang sangat penting
pada proses produksi minyak. Dari gambar tersebut dapat dilihat bahwa
untuk perawatan pipa dibutuhkan biaya yang tidak sedikit, sebab dari tahun
ke tahun biayanya terus meningkat. Sedangkan produksi minyak terus
menurun dari tahun ke tahun. Dan salah satu penyebabnya adalah korosi.
2
Tahun Produksi Minyak (dalam US$ / hari)
Biaya Perawatan (dalam US$ / tahun)
2000 5,296,900 3,600,000 2001 5,172,650 3,840,000 2002 5,014,100 4,080,000 2003 4,935,000 4,320,000 2004 4,837,700 4,560,000 2005 4,643,800 4,800,000 2006 4,614,400 5,040,000 2007 4,439,400 5,280,000 2008 4,374,510 5,520,000 2009 4,138,680 5,760,000
Tabel 1.1. Data Produksi Minyak dan Biaya Perawatan (Sumber: http://lifting.migas.esdm.go.id)
5,296,900 5,172,6505,014,100 4,935,000 4,837,700
4,643,800 4,614,4004,439,400 4,374,510
4,138,680
3,600,0003,840,000
4,080,0004,320,000
4,560,0004,800,000
5,040,0005,280,000
5,520,0005,760,000
0
1,000,000
2,000,000
3,000,000
4,000,000
5,000,000
6,000,000
7,000,000
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
Tahun
(dal
am U
S$)
Produksi Minyak (dalam US$ / hari) Biaya Perawatan (dalam US$ / tahun)
Gambar 1.1. Grafik Produksi Minyak dan Biaya Perawatan
PT. Wilson Walton Indonesia (WWI) adalah salah satu kontraktor
sekaligus konsultan dibidang korosi. Melihat hal tersebut WWI mempunyai
beberapa ide untuk dapat menanggulangi permasalahan korosi tersebut.
Salah satunya adalah dengan menganalisa aktivitas atau tingkatan korosi
yang sedang terjadi, analisa tersebut dilakukan untuk mengetahui tingkatan
3
korosi pada pipa. Jadi kita dapat mengetahui pipa yang memerlukan tindakan
pencegahan ataupun perawatan lebih. Untuk dapat melakukan analisa korosi
tersebut dibutuhkan data-data mengenai suatu pipa. Data yang dibutuhkan
berupa desain, konstruksi, keamanan dan perawatan pipa. Karena pada
industri minyak dan gas dokumentasi mengenai aset pipa masih kurang
terorganisasi dengan baik, apalagi jika pipa tersebut telah berumur.
Untuk menganalisa data-data diatas, sehingga didapat suatu hasil
analisa korosi pada suatu pipa yaitu dengan menggunakan rumus-rumus
yang terkait. Perhitungan rumus tersebut saling berhubungan antara satu
dengan yang lain, sehingga timbul suatu kerumitan untuk melakukan
perhitungan tersebut bila dilakukan dengan manual. Dengan adanya suatu
kerumitan maka dibutuhkan suatu sistem yang tepat untuk dapat
menanggulangi kerumitan tersebut.
Salah satu alternatif teknologi informasi yang penulis dan WWI
pilih untuk menanggulangi masalah tersebut adalah dengan membuat
”Sistem Informasi Monitoring Korosi Pipa Minyak Berbasis Web”. Sistem
informasi yang dibuat dapat menganalisa aktivitas atau tingkatan korosi dari
data yang ada beserta rekomendasi tentang tindakan pencegahan yang perlu
dilakukan dan juga dapat menyimpan dokumentasi aset pipa yang ada.
Tujuan dari dibuatnya sistem informasi berbasis web adalah agar hasil
analisa tersebut dapat dilihat dari mana saja, baik yang berada di jaringan
pipa ataupun diluar jaringan pipa dengan catatan memiliki koneksi internet.
Maksud dari dapat diakses dari luar jaringan pipa adalah agar kantor pusat
4
dapat melihat dan menentukan tindakan yang perlu dilakukan terhadap suatu
jaringan pipa.
1.2. Perumusan Masalah
Berdasarkan latar belakang tersebut di atas, maka penulis
menyimpulkan beberapa pokok permasalahan yang akan dikaji lebih lanjut
adalah :
1. Bagaimana membuat sistem informasi yang bisa menganalisa aktivitas
atau tingkatan korosi pada jaringan pipa ?
2. Menghasilkan sistem informasi yang dapat diakses dari mana saja oleh
pengguna secara real time ?
1.3. Batasan Masalah
Penelitian ini hanya akan dibatasi pada:
1. Pembuatan sistem informasi yang bertujuan sebagai database aset pada
jaringan pipa.
2. Pembuatan sistem informasi yang bertujuan menganalisa dan memberi
rekomendasi tentang tindakan yang perlu dilakukan yang berhubungan
dengan aktivitas korosi pada jaringan pipa.
3. Pembuatan sistem informasi pada jaringan pipa PT. ConocoPhillips
Indonesia Inc. Ltd (COPI) di Rawa Station, Sumatra Selatan.
5
1.4. Tujuan dan Manfaat Penelitian
1.4.1. Tujuan Penelitian
1. Dihasilkan suatu sistem yang dapat mengatasi permasalahan
dokumentasi aset pada jaringan pipa.
2. Sistem informasi yang dihasilkan dapat digunakan sebagai bahan
pertimbangan dalam pengambilan suatu keputusan tentang tindakan
yang perlu dilakukan pada suatu jaringan pipa.
3. Sistem informasi yang dihasilkan dapat diakses dari mana saja, tidak
terbatas oleh batasan ruang dan waktu.
1.4.2. Manfaat Penelitian
1. Bagi Penulis
a. Menerapkan dan mengembangkan ilmu yang diperoleh selama
perkuliahan
b. Membandingkan teori-teori yang ada dengan permasalahan yang
ada sebenarnya.
c. Menambah pengalaman, memperluas wawasan dan
mengembangkan potensi diri.
d. Sebagai salah satu persyaratan guna menyelesaikan Program Studi
Strata Satu (S1) Teknik Informatika UIN Syarif Hidayatullah
Jakarta.
2. Bagi Universitas
a. Untuk mengetahui sejauh mana kualitas dari mahasiswa.
6
b. Dapat menjadi sumbangan karya ilmiah dalam disiplin ilmu
Teknologi Informasi.
c. Dapat dijadikan sebagai bahan bacaan atau acuan bagi peneliti lain
yang berniat mengkaji permasalahan atau topik yang sama.
3. Bagi PT. Wilson Walton Indonesia
a. Dapat memberikan suatu solusi dalam hal dokumentasi aset pipa
pada suatu jaringan pipa milik perusahaan klien.
b. Dapat membantu klien dalam penentuan tingkatan korosi dan juga
dalam tindakan pencegahan yang perlu dilakukan pada suatu
jaringan pipa, sehingga pengeluaran untuk biaya pemeliharaan
dapat ditekan.
1.5. Metode Penelitian
Dalam rangka penulisan skripsi ini tahapan metode penelitian yang
dilakukan oleh penulis adalah :
1.5.1. Metode Pengumpulan Data
Metode pengumpulan data yang penulis gunakan dalam
pembahasan masalah skripsi ini adalah :
a. Studi Pustaka
Metode yang dilakukan dengan cara pengumpulan data secara
teoritis sebagai bahan perbandingan dengan jalan mengadakan
pengumpulan data yang diperoleh dari berbagai literature baik
dari buku maupun internet.
7
b. Wawancara
Metode ini dilakukan dengan mengajukan tanya jawab secara
langsung dengan pihak yang bersangkutan di dalam penulisan
skripsi ini (PT. Wilson Walton Indonesia).
1.5.2 Metode Pengembangan Sistem
Pengembangan sistem yang penulis gunakan dalam penelitian
ini adalah metode System Development Life Cycle (SDLC), yang
dilakukan dengan beberapa tahapan yaitu tahapan perencanaan
sistem, analisis sistem, perancangan sistem (conceptual design),
penerapan dan penggunaan sistem dan pemeliharaan (maintenance).
1.6. Kerangka Berfikir
Dalam penulisan skripsi ini, kerangka berfikir yang penulis gunakan
dapat dilihat pada Gambar 1.2 alur kerangka berfikir.
Gambar 1.2. Alur Kerangka Berfikir
10 KomponenKorosi
(Lampiran 2)
Corrosion Risk Assesment(CRA)
Decision
8
1. Tahapan awalnya adalah dengan mengumpulkan data-data berupa 10
komponen korosi (Lampiran 2), data-data tersebut didapat dari hasil
monitoring yang dilakukan oleh operator lapangan pada jaringan pipa.
2. Tahapan selanjutnya adalah memproses 10 komponen korosi tersebut
sehingga didapat suatu analisa korosi dengan menggunakan proses
Corrosion Risk Assesment (CRA).
3. Dari hasil CRA tersebut didapat suatu kesimpulan tentang keadaan pipa,
sehingga dari kesimpulan tersebut kita dapat mengambil suatu tindakan
yang perlu dilakukan pada jaringan pipa tersebut.
1.6.1. Corrosion Risk Assesment (CRA)
Corrosion Risk adalah kemungkinan terjadinya korosi
(PoF=Probability of Failure) dan akibat yang timbulkan oleh korosi
(CoF=Consequence of Failure) bagi manusia, lingkungan maupun
pipa. CRA adalah proses yang dapat membantu dalam mengenali akan
kemungkinan dan tingkat akibat yang akan ditimbulkan dari korosi.
Hasil dari proses CRA adalah Corrosion Risk Ranking (CRR).
CRR adalah tingkatan keadaan korosi pada suatu pipa, CRR ini dapat
membantu dalam menentukan tindakan prioritas yang harus dilakukan
pada inspeksi atau survey selanjutnya. Dan hasil inspeksi digunakan
untuk memperbaharui status CRR. CRR juga membantu
CRA= PoF x CoF
9
Gambar 1.3. Alur CRA
1.7. Sistematika Penulisan
Dalam penulisan skripsi ini, penulis membaginya dalam lima bab
pembahasan. Rincian pembahasan setiap bab yaitu sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisikan latar belakang penulisan, ruang lingkup
masalah, batasan masalah, tujuan, manfaat, metode penelitian
dan sistematika penulisan.
InspeksiAtau
Survey
Corrosion Risk Assesment(CRA)
DataKorosi
Corrosion Risk Ranking(CRR)
10
BAB II LANDASAN TEORI
Bab ini menjelaskan teori-teori tentang analisa dan
perancangan sistem, serta teori-teori dan pustaka yang relevan
dengan permasalahan dari penelitian yang dilakukan.
BAB III METODOLOGI PENELITIAN
Bab ini membahas metode yang digunakan penulis dalam
melakukan pencarian data maupun pengembangan sistem yang
dilakukan pada penelitian ini.
BAB IV HASIL DAN PEMBAHASAN
Bab ini membahas tentang perencanaan, perancangan,
kontruksi, implementasi serta pengujian sistem yang dibangun,
dengan mengacu pada model pengembangan sistem Sistem
Development Life Cycle (SDLC).
BAB V PENUTUP
Bab ini merupakan bab akhir yang memuat kesimpulan dan
saran dari hasil penelitian yang telah dibuat.
11
BAB II
LANDASAN TEORI
2.1. Korosi
2.1.1. Pengertian Korosi
“One general definition of corrosion is the degradation of a
material through environmental interaction. This definition encompasses
all materials, both naturally occuring and man-made and includes
plastics, ceramics, and metals.”( A.W. Peabody, 2001:1)
Korosi adalah kerusakan atau degradasi logam akibat reaksi
dengan lingkungan yang korosif. Korosi dapat juga diartikan sebagai
serangan yang merusak logam karena logam bereaksi secara kimia atau
elektrokimia dengan lingkungan. (http://id.wikipedia.org/wiki/Korosi).
Korosi atau karat adalah suatu zat yang berwarna merah kecoklatan
yang berbentuk pada permukaan basi atau baja sebagai akibat adanya
proses oksidasi. Besi (Fe) yang bersenyawa dengan oksigen akan
membentuk besi oksidasi (FeO), kemudian besi oksida ini bersenyawa
dengan air menjadi besi yang berkarat.
2.1.2. Penyebab Korosi
Korosi pada pipa disebabkan karena pipa berbahan logam, logam
itu sendiri mudah sekali mengalami karat yang menyebabkan korosi pada
12
pipa. Korosi timbul disebabkan bahan logam bereaksi dengan lingkungan
secara kimiawi sehingga meyebabkan karat.
1. Anoda: Fe(s) ® Fe2+ + 2e
Katoda: 2 H+ + 2 e- ® H2
2 H2O + O2 + 4e- ® 4OH-
2. 2H+ + 2 H2O + O2 + 3 Fe ® 3 Fe2+ + 4 OH- + H2 Fe(OH)2 oleh O2 di udara dioksidasi menjadi Fe2O3 . nH2O
Adapun faktor-faktor yang berpengaruh pada terjadi korosi adalah sebagai
berikut:
1. Kelembaban udara
2. Elektrolit
3. Zat terlarut pembentuk asam (CO2, SO2)
4. Adanya O2
5. Lapisan pada permukaan logam
6. Letak logam dalam deret potensial reduksi
Secara garis besar penyebab korosi ada dua jenis yaitu:
1. Korosi Internal
Yaitu korosi yang terjadi akibat adanya kandungan CO2 dan H2S pada
minyak bumi, sehingga apabila terjadi kontak dengan air akan membentuk
asam yang merupakan penyebab korosi.
13
2. Korosi Eksternal
Yaitu korosi yang terjadi pada bagian permukaan dari sistem perpipaan
dan peralatan, baik yang kontak dengan udara bebas dan permukaan
tanah, akibat adanya kandungan zat asam pada udara dari tanah.
2.1.3. Akibat Korosi
Korosi yang terjadi pada permukaan logam dalam jangka waktu
tertentu akan menimbulkan karat (rust scale) dan lubang karat (rust hole).
Keadaan ini akan menyebabkan kondisi logam menjadi lemah dan tidak
berguna. Banyak installasi besi baja yang rusak karena peristiwa korosi
ini, dan menimbulkan kerugian yang tidak sedikit jumlahnya.
Gambar 2.1 Rust Scale
Gambar 2.2 Rust Hole
14
2.1.4. Penanggulangan Korosi
Penyelidikan terhadap pencegahan korosi yang efektif terus menerus
dilakukan oleh banyak pihak diantaranya :
1. National Association of Corrosion Engineers (NACE)
2. Federation of Sociates for Paint Technology
3. Steel Structure Painting Council (SSPC)
4. dan lain-lain
Berikut metode pencegahan korosi :
1. Protective Coating
Metoda pencegahan sederhana dan primitive kini sudah lama
ditinggalkan, karena ternyata metoda tersebut tidak dapat mencegah
korosi secara tuntas dan kerugian demi kerugian tetap saja terjadi, maka
pada tahun 1930 di Australia ditemukan cara pencegahan korosi dengan
menggunakan Inorganic Zinc Silicate Coating dan di Amerika ditemukan
Organic Coating.
Kemudian pada tahun 1950 terjadi kerjasama serta perpaduan ke dua
teknik tersebut. Hal ini ternyata memberikan dampak baru dalam upaya
mencegah korosi.
Sejak itu telah banyak pula sistim dan produk baru yang
dikembangkan dan diperkenalkan guna melindungi besi dan baja dari
kerusakan yang merugikan itu.
Dengan berkembangnya metoda baru ini berkembang pula teknologi
sandblasting atau abrasive blasting yaitu suatu cara membersihkan
15
permukaan besi atau baja dengan menggunakan pasir kwarsa yang
mengandung kadar silica tinggi.
Pasir kwarsa ini disemprotkan dengan angina bertekanan tinggi dari
sebuah kompresor, sehingga besi atau baja itu bersih dari karat dan
tampak keputih-putihan (white metal). Dari penyelidikan dan
pengalaman sandblasting merupakan faktor penting sekali yang harus
dilakukan sebelum aplikasi coating, karena memberikan jaminan besi
atau baja tersebut bebas dari serangan korosi untuk masa waktu tertentu.
Teknologi coating dan sandblasting init ternyata telah memberikan
bukti yang dapat dipercaya dalam melindungi atau mencegah logam dari
bahaya korosi sehingga kerugian lebih lanjut akibat korosi dapat
dihindari. Bebas dari korosi berarti penghematan.
2. Cathodic Protection
Untuk melindungi logam terhadap bahaya korosi para ahli juga
menemukan suatu metoda lain yang disebut Cathodic Protection (sistim
perlindungan katodik). Cathodic protection bekerja dengan cara mengubah
seluruh permukaan logam menjadi daerah katoda, yaitu dengan memberikan
arus proteksi dari luar yang akan menekan atau menahan arus yang akan
keluar dari permukaan logam yang menyebabkan korosi.
Arus proteksi dari luar ini terus menerus mengalir melalui elektrolit
menuju permukaan logam yang hendak dilindungi. Arus dari luar ini
menyebabkan timbulnya perubahan potensial pada permukaan logam
tersebut (polarisasi).
16
Arus proteksi pada cathodic protection ini didapat dengan 2 (dua)
cara :
a. Sacrificial Anode
Cara ini menggunakan suatu anoda tertentu yang dibuat dari
logam lain, dipasang pada permukaan besi yang akan dilindungi dan
berada didalam elektrolit yang sama. Anoda ini disebut anoda
korban (sacrificial) dan umumnya terbuat dari logam Aluminium,
Zinc atau Magnesium.
b. Impressed Current
Sistim ini menggunakan transformer rectifier sebagai sumber
daya listrik dan anoda-anoda khusus. Cara kerjanya adalah sebagai
berikut :
Arus listrik AC diubah menjadi arus DC dan dialirkan melalui
anoda di dalam elektrolit menuju besi yang akan dilindungi. Anoda
dan besi yang akan dilindungi harus berada pada satu elektrolit yang
sama.
Unsur penting dalam perlindungan katodik adalah kemampuan
untuk memberikan suatu tingkat perlindungan. Tingkat perlindungan ini
dapat diketahui dengan mengukur potensial permukaan tersebut.
Baja dalam elektrolit seperti air laut mempunyai potensial alamiah
sebesar kurang lebih -0,6 V terhadap sel pembanding Cu/CuSO4. Angka ini
mungkin lebih rendah (-0,5 V) bila baja terkorosi, atau lebih besar (-0,6 V)
bila baja tersebut bersih dan diblasting. Korosi dapat dicegah dengan
17
mengubah potensial permukaan hingga mencapai -0,85 V atau lebih negatif
dengan menggunakan perlindungan katodik.
2.1.5. Corrosion Risk Assesment (CRA)
Corrosion Risk Assesment (CRA) adalah probabilitas terjadinya
karat dan konsekuensi yang ditimbulkan bagi pekerja maupun bagi
jaringan pipa. Hasil dari CRA adalah suatu tingkatan resiko pada suatu
jaringan pipa, baik itu akan berdampak pada pekerja maupun jaringan pipa
tersebut akibat korosi. Hasil dari CRA juga dapat digunakan sebagai
tingkatan prioritas dalam hal pemeliharaan dan pengawasan jaringan pipa.
Sebelum kegiatan CRA dilakukan, dibutuhkan semua data yang
berhubungan dengan pipa. Data yang dibutuhkan tidak hanya data yang
berhubungan dengan masalah teknik pada pipa, tetapi juga dibutuhkan
proses data, data produksi, data korosi, data leak, data pigging, dan data
keamanan pada pipa. Alur kerja CRA dari yang sederhana sampai dengan
lebih rinci disusun dalam Gambar 2.3.a dan b sebagai berikut:
Tingkatan Resiko Karat Tingkatan Resiko karat Pipa Tingkatan Korosi Pipa
Gambar 2.3.a. Alur Kerja Umum CRA
Data Aset (Lapangan & Kantor) - Teknik - Produksi - Korosi - Pigging - Keamanan - Leak - Dan lain-lain
Probability of Failure (PoF)
Consequency of Failure (CoF)
Matrik Resiko Perhitungan
Tingkatan Resiko Tingkatan Resiko
Gambar 2.3.b. Rincian Alur Kerja CRA
18
Dari Gambar 2.3.b diatas kita dapat melihat alur kerja CRA lebih
rinci, proses awalnya yaitu dari proses pengumpulan data asset lapangan
dan kantor. Data yang dikumpulkan berupa data dari segi teknik, produksi,
korosi, pigging, keamanan, leak, dan lain-lain. Data-data tersebut
kemudian dikelompokan menjadi dua kategori yaitu Probability of Failure
(PoF) dan Consequency of Failure (CoF). Dari hasil pembagian dua
kategori tersebut dibentuk menjadi suatu matrik, CoF sebagai sumbu x dan
PoF sebagai sumbu y dapat dilihat pada Gambar 2.4.a dan Gambar 2.4.b.
Dari matrik tersebut kita dapat gunakan sebagai perhitungan tingkatan
resiko korosi pada suatu jaringan pipa. Hasil akhir dari proses CRA atau
perhitungan tingkatan resiko adalah tingkatan resiko pipa untuk pipa yang
terkorosi.
WWI mengusulkan beberapa hal yang menjadi parameter atau
komponen PoF dan CoF dari produksi (hidrokarbon) cluster line, yaitu
sebagai berikut:
PoF
a. Year of Service, persentasenya 20%
b. Fluid characteristic, persentasenya 20%
c. Corrosion inhibitor treatment, persentasenya 10%
d. Mechanical cleaning treatment, persentasenya 10%
e. Coating atau wrapping treatment, persentasenya 10%
f. CP treatment, persentasenya 10%
19
g. Number of Leaks, persentasenya 20 %
Penilaian terhadap parameter PoF terbagi menjadi 5 bagian yaitu dengan
pembagian kategori resiko dari 1 sampai 5.
5
4
3
2
1
Gambar 2.4.a Pembagian Kategori Resiko PoF
CoF
a. Production loss, persentasenya 50%
b. Reputation, persentasenya 15%
c. Safety, persentasenya 15%
d. Environmental or community impact, persentasenya 20%
Penilaian terhadap parameter CoF juga terbagi menjadi 5 bagian yaitu
dengan pembagian kategori resiko dari A sampai E
A B C D E
. Gambar 2.4.b Pembagian Kategori Resiko CoF
20
Gambar 2.5. Persentase Paramater PoF dan CoF
21
Dari Gambar 2.5. diatas dapat dilihat pembagian data korosi berdasarkan
kategori PoF dan CoF berikut persentase komponennya dan besar bobot
detail komponen tersebut.
Gambar 2.6. diatas adalah sebagai hasil yang akan didapat dari PoF dan
CoF yaitu berupa matrik resiko.
2.2. Konsep Dasar Sistem Informasi
2.2.1. Pengertian Sistem
Secara sederhana sistem dapat didefinisikan sebagai sekelompok
elemen yang saling berhubungan atau berinteraksi hinga membentuk satu
kesatuan. Akan tetapi, konsep umum sistem berikut ini memberikan
konsep dasar yang lebih tepat untuk bidang sistem informasi. Dimana
sistem diartikan sebagai sekelompok elemen-elemen yang terintegrasi
dengan maksud yang sama untuk mencapai suatu tujuan. (Whitten,
Gambar 2.6. Risk Matrix PoF dan CoF
22
2006:45). Elemen tersebut bisa berupa organisasi, orang atau benda yang
melakukan suatu pekerjaan, dimana pekerjaan tersebut merupakan tujuan
bersama dari masing-masing elemen.
Sebuah sistem memiliki karakteristik, yang mencirikan bahwa hal
tersebut dikatakan sebagai suatu sistem. Adapun karakteristik yang
dimaksud adalah, sebagai berikut :
1. Komponen Sistem (Component)
Suatu sistem terdiri dari sejumlah komponen atau elemen yang
saling berinteraksi, komponen atau elemen sistem dapat berupa
subsistem atau bagian dari sistem. Setiap subsistem mempunyai
sifat-sifat dari sistem yang mempengaruhi proses dari sistem.
2. Batas Sistem (Boundary)
Batas sistem merupakan daerah yang membatasi antara suatu sistem
dengan sistem yang lainnya atau dengan lingkungan luar. Batas
suatu sistem menunjukkan lingkup (scope) dari sistem tersebut.
3. Lingkungan Luar (Environment)
Lingkungan luar dari suatu sistem adalah apapun diluar batas dari
sistem yang mempengaruhi operasi dari sistem.
4. Penghubung (Interface)
Penghubung sistem merupakan media penghubung antara satu
subsistem dengan subsistem yang lain untuk dapat berinteraksi
membentuk suatu kesatuan.
23
5. Masukan (Input)
Masukan sistem merupakan energi yang dimasukan ke dalam sistem
yang berupa masukan perawatan (maintenance input) dan keluaran
sinyal (signal output). Maintenance input adalah energi yang
dimasukan supaya sistem tersebut dapat beroperasi. Signal output
adalah energi yang diproses untuk mendapatkan keluaran.
6. Keluaran (Output)
Keluaran sistem adalah hasil dari energi yang diolah dan
diklasifikasikan menjadi keluaran yang berguna.
7. Pengolahan (Process)
Suatu sistem dapat mempunyai suatu bagian pengolahan yang akan
merubah masukan menjadi keluaran.
8. Sasaran (Objective)
Suatu sistem harus mempunyai sasaran, karena sasaran sangat
menentukan sekali masukan yang dibutuhkan oleh sistem dan
keluaran yang akan dihasilkan sistem.
2.2.2. Pengertian Informasi
Informasi adalah data yang telah diproses sehingga menjadi lebih
bermakna (McLeod, 2004:12). Informasi di bentuk dari data yang dengan
penuh harapan mempunyai arti bagi penerimanya (Whitten, 2004:27).
Informasi sendiri dapat dikelompokkan menjadi tiga bagian, yaitu :
24
1. Informasi Strategis
Informasi Strategis merupakan informasi yang digunakan untuk
mengambil keputusan jangka panjang.
2. Informasi Taktis
Informasi taktis merupakan informasi yang dibutuhkan untuk
mengambil keputusan jangka menengah.
3. Informasi Teknis
Informasi Teknis merupakan informasi yang dibutuhkan untuk
keputusan sehari-hari
Sedangkan kualitas informasi bergantung pada tiga hal, yaitu
(Jogiyanto, 2005:10) :
1. Akurat
Akurat berarti informasi harus bebas dari suatu kesalahan dan tidak
menyesatkan. Akurat juga berarti informasi harus jelas
mencerminkan maksudnya. Informasi harus akurat karena dari
sumber informasi sampai ke penerima informasi kemungkinan
banyak terjadi gangguan (noise) yang dapat merubah atau merusak
informasi tersebut.
2. Tepat pada waktunya
Tepat pada waktunya berarti informasi yang datang pada penerima
tidak boleh terlambat, karena informasi merupakan landasan
didalam mengambil keputusan.
25
3. Relevan
Relevan berarti informasi tersebut mempunyai manfaat untuk
pemakainya. Relevansi informasi untuk tiap-tiap orang satu dengan
lainnya berbeda.
Informasi yang berkualitas merupakan informasi yang memiliki
memiliki nlai tinggi. Dimana suatu informasi dikatakan bernilai bila
manfaatnya lebih efektif dibandingkan biaya untuk mendapatkannya.
Sebagian besar informasi tidak dapat ditaksir keuntungannya dengan nilai
uang, tetapi dapat ditaksir nilai efektifnya. Pengukuran nilai informasi
biasanya dihubungkan dengan analisis cost effectiveness atau cost benefit.
(Jogiyanto, 2005:10)
2.2.3. Pengertian Sistem Informasi
Sistem informasi dapat didefinisikan sebagai suatu susunan dari
orang, data, proses dan teknologi informasi yang saling berhubungan
untuk mengumpulkan, memproses, menyimpan dan menyediakan keluaran
informasi yang diperlukan untuk mendukung suatu organisasi. (Whitten,
2004:12). Sistem informasi dapat digolongkan menurut fungsinya, antara
lain sebagai berikut:
1. Transaction Processing System (TPS), suatu sistem informasi yang
memproses data tentang transaksi bisnis. Seperti pesanan (order),
kartu catatan waktu, pembayaran, reservasi dan sebagainya. (Whitten,
2004:12).
26
2. Management Information System (MIS), suatu sistem informasi untuk
menghasilkan laporan yang berorientasi pada manajemen yang
berdasarkan pada proses transaksi dan operasi dari organisasi.
(Whitten, 2004:12)
3. Decision Support System (DSS), suatu sistem informasi yang
membantu mengidentifikasi pengambilan keputusan yang mungkin
atau menyediakan informasi untuk membantu pengambilan keputusan
manajemen. (Whitten, 2004:12)
4. Executive Information System (EIS), suatu sistem informasi yang
mendukung perencanaan dan kebutuhan penilaian dari manajer
eksekutif. (Whitten, 2004:12)
5. Expert System (ES), sistem informasi yang menangkap keahlian dari
para pekerja lalu menirukan keahlian tersebut untuk dimanfaatkan
oleh orang yang tidak ahli. (Whitten, 2004:12)
6. Communication and Collaburation System, suatu sistem informasi
yang memberikan peluang komunikasi antara para pekerja, mitra dan
pelanggan untuk meningkatkan kemampuan bekerja sama. (Whitten,
2004:12)
7. Office Automation System, suatu sistem informasi yang mendukung
cakupan luas dari aktifitas kantor yang disediakan untuk
meningkatkan alur kerja karyawan dan membantu karyawan
membuat dan membagi dokumen yang dapat mendukung aktifitas
kantor sehari-hari. (Whitten, 2004:12).
27
2.3. Metode Pengembangan Sistem
Metodologi pengembangan sistem adalah suatu proses standar yang
diikuti oleh organisasi untuk melaksanakan seluruh langkah yang diperlukan
untuk menganalisis, merancang, mengimplementasikan dan memelihara
sistem informasi. (Hoffer dkk, 1998).
Salah satu metodologi pengembangan sistem yang sering digunakan
adalah System Development Life Cycle (SDLC). Metode ini merupakan
suatu proses yang direkayasa untuk mengembangkan sistem dari tahap
perencanaan sampai penerapan. Disebut sebagai Life Cycle atau siklus hidup
karena sistem dapat diperbaharui sesuai dengan kebutuhan, aktivitas dari
siklus hidup ini disebut tahapan (fase).
Adapun tahapan – tahapan dari SDLC adalah sebagai berikut :
1. Perencanaan Sistem (System Planning)
Tujuan dari tahap ini adalah membuat persiapan penelitian
(preliminary investigation) atau yang disebut studi kelayakan
(feasibility study).
2. Analisis Sistem (System Analysis)
Tahap ini bertujuan untuk memahami kebutuhan dari sistem, dengan
menggunakan teknik-teknik pengumpulan data.
Pada tahap ini akan diuraikan mengenai :
28
a. Profil Tempat Penelitian
Profil tempat penelitian disini akan menguraikan tentang latar
belakang, visi, misi, tujuan, struktur organisasi dari tempat
penelitian ini dilakukan.
b. Analisis Sistem berjalan
Analisis sistem berjalan akan menguraikan sistem yang berjalan
saat ini di tempat penelitian.
c. Analisis Sistem Usulan
Analisis sistem usulan akan menguraikan tentang sistem usulan
yang dapat membantu menyelesaikan permasalahan yang ada di
tempat penelitian.
3. Perancangan Sistem (System Design)
Tahap ini bertujuan untuk membuat rincian rancangan sistem (System
Design Specification), yaitu blue print dari sistem yang baru yang
terdiri dari :
a. Perancangan proses yang meliputi Diagram Konteks, DFD Zero,
DFD Level 1.
b. Perancangan basis data yang meliputi ERD, Normalisasi dan
kamus data.
c. Perancangan Input dan Output yang meliputi tampilan program.
4. Implementasi Sistem (System Implementation)
29
Tahap ini bertujuan untuk menulis kode program, menguji,
mendokumentasikan program. Kemudian membuat evaluasi system
untuk menentukan apakah sistem beroperasi secara tepat
5. Operasi dan Pemeliharaan Sistem
Tahap ini bertujuan untuk memelihara dan meningkatkan kerja system
dengan memperbaiki kesalahan dan mengadaptasikan sistem dengan
lingkungan.
2.4. Tools Analisis dan Desain Sistem Informasi
2.4.1. Flowchart
Flowchart dalam Bahasa Indonesia di terjemahkan sebagai Diagram
Alir. Dari dua kata ini, maka dapat kita bayangkan bahwa flowchart itu
berbentuk diagram yang bentuknya dapat mengalirkan sesuatu
Dalam flowchart dilukiskan suatu aliran kegiatan dari awal hingga
akhir mengenai suatu langkah-langkah dalam penyelesaian suatu masalah.
Masalah tersebut bisa bermacam-macam, mulai dari masalah yang
sederhana sampai yang kompleks. Masalah yang kita pelajari tentu saja
masalah pemrograman dengan menggunakan komputer, tetapi secara
logika dapat kita awali dengan mengamati permasalahan dalam kehidupan
sehari-hari kita.
30
2.4.2. Data Flow Diagram (DFD)
Menurut McLeod (2004) Data Flow Diagram (DFD) adalah
gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk-
bentuk simbol untuk menggambarkan bagaimana data mengalir dari suatu
proses yang saling berkaitan. Sedangkan menurut Whitten, Bentey dan
Dittman (2006) DFD adalah alat yang menggambarkan aliran data melalui
sistem dan kerja atau pengolahan yang dilakukan oleh sistem tersebut.
Untuk memudahkan pembacaan DFD, maka penggambaran DFD
disusun berdasarkan tingkatan atau level dari atas ke bawah, yaitu :
1. Diagram Konteks (Level 0)
Merupakan diagram paling atas yang terdiri dari suatu proses dan
menggambarkan ruang lingkup proses.
2. Diagram Zero (Level 1)
Merupakan diagram yang berada diantara Diagram konteks dan
Diagram Detail serta menggambarkan proses utama dari DFD.
3. Diagram Detail (Primitif)
Merupakan penguraian dalam proses yang ada dalam Diagram Zero,
diagram yang paling rendah dan tidak dapat diuraikan lagi.
Data Flow Diagram (DFD) sendiri memiliki empat komponen
(Whitten 2004:326), yaitu :
1. Terminator (External entity) ;
Mendefinisikan orang, unit organisasi, sistem lain, atau organisasi lain
yang berada di luar sistem tetapi berinteraksi dengan sistem.
31
Terminator diberi nama yang berhubungan dengan sistem tersebut dan
biasanya menggunakan kata benda. Simbol ini menggambarkan asal
dan tujuan dari data dan atau informasi.
2. Proses ;
Kerja yang dilakukan pada atau sebagai respon terhadap aliran data
masuk/kondisi. Komponen proses menggambarkan transformasi input
menjadi output. Penamaan proses disesuaikan dengan proses/kegiatan
yang sedang dilakukan.
3. Alur data (garis berarah) ;
Digunakan untuk menerangkan perpindahan data/paket data dari satu
bagian ke bagian lainnya. Alur data dapat berupa kata, pesan,
formulir/informasi.
4. Data store ;
Menggambarkan tempat penyimpanan data (sementara) yang akan
digunakan oleh proses-proses yang ada di dalam sistem. Komponen ini
digunakan untuk membuat model sekumpulan paket data dan diberi
nama dengan kata benda bersifat jamak. Data store dapat berupa
file/database yang tersimpan dalam harddisk atau bersifat manual
seperti buku alamat, file folder. (Whitten 2004:329-346)
2.4.3. Entity Relationship Diagra (ERD)
Entity Relationship Diagram (ERD) digunakan untuk
menggambarkan hubungan antara data store yang ada di dalam diagram
Nama aliran data
32
aliran data (Whitten, 2006 : 45). Komponen-komponen yang digunakan di
dalam diagram hubungan data menurut McLeod (2004) antara lain :
1. Entitas, digambarkan dengan bentuk persegi panjang yang menyatakan
obyek atau kejadian ;
2. Relasi, digambarkan dengan bentuk belah ketupat (diamond) yang
menyatakan asosiasi antara dua entitas ;
3. Atribut, digambarkan dengan bentuk elips yang menunjukkan
karakteristik dari entitas atau sesuatu yang menjelaskan entitas atau
hubungan ;
4. Garis, menghubungkan antara entity set dengan atribut-atributnya dan
antara entity set dengan relationship setnya dan digambarkan oleh ;
5. Cardinality
Ada 3 dasar cardinality / hubungan yang terjadi, yaitu :
a. Satu ke satu (one to one atau 1 : 1)
Derajat hubungan antar entitas 1 : 1 terjadi bila entitas A hanya
boleh berpasangan dengan satu anggota dari entitas B. Demikian
pula sebaliknya.
Gambar 2.7. Simbol 1 to 1
b. Satu ke banyak (one to many atau 1 : M) atau banyak ke satu
(many to one atau M : 1)
Derajat hubungan ini terjadi bila tiap anggota entitas A boleh
berpasangan dengan lebih dari satu anggota entitas B. Sebaliknya
1 1
33
setiap anggota entitas B hanya boleh berpasangan dengan satu
anggota entitas A.
Gambar 2.8. Simbol 1 to M
c. Banyak ke banyak (Many to many atau M : N)
Terjadi bila tiap anggota entitas A boleh berpasangan dengan lebih
dari satu anggota entitas B. Demikian pula sebaliknya.
Gambar 2.9. Simbol M to N
2.4.4. Basis Data
Menurut McLeod (2001, 258), “Basis data adalah suatu koleksi data
komputer yang terintegrasi, diorganisasikan dan di simpan dengan suatu
cara yang memudahkan pengambilan kembali “.
Dua tujuan utama dari konsep Basis Data adalah meminimasikan
pengulangan data dan mencapai independensi data. Pengulangan data
(data redundancy) adalah duplikasi data--artinya, data yang sama
disimpan dalam beberapa file. Independensi data adalah kemampuan untuk
membuat perubahan dalam struktur data tanpa membuat perubahan pada
program yang memproses data. Independensi dicapai dengan
1 M
M N
34
menempatkan spesifikasi data dalam tabel dan kamus yang terpisah secara
fisik dari program. Program mengacu pada table untuk mengakses data.
2.5. Perangkat Lunak dalam Perancangan Sistem
2.5.1. MySQL
MySQL merupakan software sistem manajemen database
(Database Management System - DBMS) yang sangat popular dikalangan
pemrogram web, terutama di lingkungan Linux dengan menggunakan
script PHP dan Perl (Sidik, 2005).
MySQL adalah multi user database yang menggunakan bahasa
Structure Query Language (SQL). MySQL dalam operasi client server
melibatkan server diamone di sisi server dan berbagai program serta
library yang berjalan disisi client. MySQL mampu untuk menangani data
yang cukup besar.
SQL adalah bahasa standar yang digunakan untuk mengakses
server database. bahasa ini pada awalnya dikembangkan oleh IBM, namun
telah diadopsi dan digunakan sebagai standar industri. dengan
menggunakan SQL, proses akses database menjadi userfriendly
dibandingkan dengan menggunakan dbase atau clipper yang masih
menggunakan perintah-perintah pemrograman.
2.5.1.1 Database, tabel, baris, kolom
Dalam konteks bahasa SQL, pada umumnya informasi
tersimpan dalam tabel-tabel yang secara logik merupakan struktur
35
dua dimensi yang terdiri atas baris-baris data yang berada dalam
satu atau lebih kolom. Baris pada tabel sering disebut sebagai
instance dari data, sedangkan kolom sering disebut sebagai
attributes atau field. Keseluruhan tabel tersebut dihimpun dalam
satu kesatuan yang disebut database.
2.5.1.2 Perintah-perintah SQL
Perintah SQL dibedakan menjadi:
1. DDL (Data Definition Language)
Merupakan kelompok perintah yang digunakan untuk
melakukan pendefinisian database dan pendefinisian tabel.
Dengan kelompok perintah dalam DDL ini maka kita dapat
membuat tabel, mengubah strukturnya, menghapus tabel,
membuat indeks untuk tabel, dan lain-lain yang bermuara pada
pembentukan struktur database.
a. Membuat Database
Perintah :
CREATE DATABASE namadatabase;
Namadatabse diawali dengan menggunakan huruf,
kemudian diikuti dengan kombinasi huruf dan karakter,
sebaiknya tidak mengandung spasi dan tanda baca. Perintah
ini digunakan pertama kali sebelum membuat tabel, view,
36
fungsi, prosedur atau pun komponen lain suatu database.
Diberikan satu kali saja untuk sebuah database.
b. Membuat Tabel
Perintah:
CREATE TABLE namatabel
(
Field1 TipeData1 [ , Field2 TipeData2 [ , …] ]
)
Namatabel diawali huruf, kemudian diikuti dengan
kombinasi huruf dan angka, jangan menggunakan spasi
atau tanda baca. Field1 adalah nama field yang kesatu,
Field2 adalah nama field kedua, dan seterusnya, sejumlah
field yang akan didefinisikan untuk suatu tabel. TipeData1
adalah tipe data dan jumlah digit (jika ada) untuk field yang
kesatu, TipeData2 adalah tipe data dan jumlah digit (jika
ada) untuk field yang kedua, dan seterusnya sejumlah field
yang akan didefinisikan.
c. Menghapus Tabel
Perintah:
DROP TABLE namatabel;
Namatabel adalah nama dari tabel yang akan dihapus secara
fisik. Penghapusan ini menyebabkan struktur dan data yang
dibuat akan hilang.
37
d. Menghapus Database
Perintah:
DROP DATABASE namadatabase
Namadatabase adalah nama dari database yang akan
dihapus. Penghapusan database akan menyebabkan seluruh
struktur dan data yang ada di dalamnya menjadi hilang.
Hati-hati dalam memberikanperintah drop database ini,
karena apabila telah dihapus tidak ada mekanisme yang
memungkinkan kita mendapatkan kembali struktur dan data
yang ada di dalam database tersebut.
2. DML (Data Manipulation Language)
Perintah (statement) SQL digunakan untuk melakukan
manipulasi data dalam database, menambahkan (insert),
mengubah (update), menghapus (delete), mengambil dan
mencari data (query).
a. Insert
Perintah:
INSERT INTO namatabel (field1 [ , field2 [ , ... ] ] )
VALUES (nilai1 [ , nilai2 [ , ... ] ] );
Namatabel adalah tabel yang akan diisi data. Field1, field2,
... adalah field-field (kolom) dari tabel yang akan diisi.
Nilai1, nilai2, ... adalah data yang akan dimasukkan ke
dalam tiap kolom yang disebutkan pada bagian field.
38
Penulisan nilai1, nilai2, ... disesuaikan dengan tipe datanya,
jika tipe data merupakan kelompok tipe data karakter maka
data harus diapit dengan menggunakan tanda petik.
b. Update
Perintah:
UPDATE namatabel SET field1 = nilai1 [ , field2 = nilai2 [ ,
...] ] [WHERE kondisi];
Namatabel adalah nama dari table yang akan diperbaiki
datanya. Field1 adalah nama field dalam table yang akan
diubah. Nilai1 adalah data yang akan dimasukkan ke dalam
field1, field2 dan nilai2 adalah nama field dan datanya, dan
seterusnya. Kondisi adalah keriteria data dalam tabel yang
akan diperbaiki.
Perintah update digunakan untuk memperbaiki data dalam
suatu record (baris) dalam suatu table. Perbaikan dapat
dilakukan untuk satu record, beberapa, atau seluruh record.
c. Delete
Perintah:
DELETE FROM namatabel [ WHERE kondisi ] ;
Namatabel adalah nama dari tabel yang akan dihapus
datanya. Kondisi adalah kriteria data dalam tabel yang akan
dihapus.
39
Perintah delete digunakan untuk melakukan penghapusan
record dari suatu tabel yang memiliki kondisi yang
dinyatakan dalam pernyataan kondisi.
d. Select
Perintah:
SELECT ( * | field1 [ , field2 [ , ...] ] ) FROM namatabel
[ WHERE kondisi]
Namatabel adalah nama dari tabel yang akan ditampilkan
datanya. Field1, field2, … adalah nama field yang akan
ditampilkan datanya. * digunakan untuk menampilkan
seluruh field dari table. Kondisi adalah criteria data dalam
table yang akan ditampilkan.
Perintah select digunakan untuk menampilkan isi dari suatu
table. Bentuk perintah di atas adalah bentuk perintah select
yang sederhana yang digunakan untuk menampilkan data
dari suatu tabel saja. Perintah select ini dapat digunakan
untuk menampilkan data dari berbagai tabel.
2.5.2. PHP
PHP merupakan script untuk pemrograman script web server-side,
script yang membuat dokumen HTML secara on the fly, dokumen HTML
yang dihasilkan dari suatu aplikasi bukan dokumen HTML yang dibuat
dengan menggunakan editor teks atau editor HTML (Sidik, 2004).
40
Dengan menggunakan PHP maka maintenance suatu situs
web menjadi lebih mudah. Proses update data dapat dilakukan dengan
menggunakan aplikasi yang sibuat dengan menggunakan script PHP.
PHP/FI merupakan nama awal dari PHP. PHP – Personal Home
Page, FI adalah Form Interface. Dibuat pertama kali oleh Rasmus Lerdoff.
PHP, awalnya merupakan program CGI yang dikhususkan untuk
menerima input melalui form yang ditampilkan dalam browser web.
2.5.2.1. Nama File
Nama file script PHP menggunakan ekstensi file .php
sebagai standar. Ekstensi file .php bisa diubah karena
tidakmenjadi keharusan, perubahan dapat dilakukan oleh
administrator server – web master tempat server web yang akan
digunakan untuk hosting script PHP yang kita punya. Sebaiknya
kita menggunakan standar, untuk memudahkan kita melakukan
pengelolaan file yang kita miliki.
Script PHP sebaiknya diberi nama sesuai maksud dan
kegunaan dari script yang dibuat tersebut, sebaiknya diawali
dengan huruf diikuti dengan kombinasi huruf dan angka, diikuti
dengan ekstensi .php, contoh nama file yang dianjurkan seperti :
bacafile.php, data_karyawan1.php, dan sebagainya.
41
2.5.2.2. Tag Awal dan Tag Akhir
Script PHP diawali dan diakhiri dengan menggunakan tag
khusus. Ada 4 macam cara yang dapat digunakan untuk
menuliskan script PHP di dalam suatu dokumen HTML.
1. Cara I
<? echo(“Script PHP”); ?>
2. Cara II
<?php echo(“Script PHP”); ?>
3. Cara III
<% echo(“Script PHP”); %>
4. Cara IV
<% =$namaVar; %>
Cara I merupakan cara yang lebih praktis, selalu
mengasumsikan bahwa <? adalah awal dari script PHP. Pada cara
II penulisan php digunakan untuk informasi bahwa berikutnya
adalah script PHP. Cara III dan cara IV menggunakan gaya
Active Server Pages (ASP). ASP adalah teknik pemrograman web
dengan bahasa script VBScript, merupakan produk yang
dikembangkan oleh Microsoft, merupakan default piranti
pengembangan web untuk produk Microsoft (IIS). Cara III dan IV
dapat dilakukan oleh PHP apabila nilai asp_tags pada php.ini
diberi nilai On bukan Off.
42
2.5.2.3. Komentar
Komentar yang dimaksud dalam script PHP adalah
bagian script PHP yang tidak akan dieksekusi, karena merupakan
catatan terhadap fungsi dari script atau menjelaskan maksud dari
sebagian script yang dituliskan. Ada tiga macam penulisan
komentar dalam PHP:
1. /* komentar */ cara penulisan komentar dari bahasa
pemrograman C
2. // komentar cara penulisan komentar dari bahasa
pemrograman C++
3. # komentar cara penulisan komentar dari pemrograman
script shell Bourne di Unix/Linux
2.5.2.4. Skrip PHP
Ada 3 cara untuk menuliskan skrip PHP, yaitu:
1. <?
Script PHP anda
?>
2. <?php
Script PHP anda
?>
3. <script language = “php”>
Script PHP anda
43
</script>
Skrip PHP berkdudukan sebagai tag dalam bahasa
HTML. Sebagaimana diketahui, HTML (Hypertext Markup
Language) adalah bahasa standar untuk membuat halaman-
halaman web. Sebagai contoh, berikut adalah kode HTML
(disimpan dengan ekstensi .htm atau .html)
2.5.2.5. Case Sensitive
Script PHP menerapkan aturan case sensitive yakni
adanya perbedaan penulisan antara huruf besar dengan huruf
kecil. Setiap penulisan di dalam script harus mengikuti aturan
penulisan yang telah ditentukan, case sensitive dikenakan
terutama untuk nama-nama variabel.
44
BAB III
METODOLOGI PENELITIAN
3.1. Alat dan Bahan
3.1.1. Alat
Alat yang digunakan untuk pengolahan data dalam penelitian
dan untuk membangun aplikasi ini adalah perangkat keras dan lunak.
Berikut ini merupakan spesifikasi dari alat yang digunakan :
1. Perangkat Keras
a. Personal Computer, dengan spesifikasi :
o Processor Intel Pentium D CPU 2.80 GHz
o Harddisk 80 GB
o Memory DDR2 2 GB
o LAN Card
o DVD – RW
o Keyboard dan Mouse
b. Printer Kyocera
2. Perangkat Lunak
a. Windows XP Service Pack 2
b. Macromedia Dreamweaver
c. XAMPP
d. UltraEdit-32 Text Editor
45
3.1.2. Bahan
Bahan-bahan yang digunakan dalam penelitian ini dapat dilihat
pada tabel 3.1. berikut ini :
Tabel 3.1. Daftar Bahan Penelitian
No Bahan Sumber
1. Drawing PDF as-built. PT. Conoco Phillips Indonesia (COPI)
3.2. Waktu dan Tempat Penelitian
Dalam pembuatan aplikasi analisis data monitoring korosi pipa penulis
melakukan penelitian ke salah satu kontraktor dari PT. Conoco Phillips
Indonesia (COPI), yaitu PT. Wilson Walton Indonesia yang berkaitan untuk
pengumpulan dan observasi data-data. Berikut adalah deskripsi lokasi dan
waktu penelitian dalam pengembangan analisis data monitoring korosi pipa:
1. PT. Wilson Walton Indonesia (WWI)
Waktu penelitian : Maret 2009 – Agustus 2009
Alamat : Jl. Raya Tanjung Barat No. 155 Jakarta
Selatan 12530, Indonesia, Telp : (021)
781 6411, Fax : (021) 781 6433
46
3.3. Gambaran Umum Perusahaan
Lokasi penelitian skripsi ini, penulis mengadakan penelitian pada PT.
WILSON WALTON INDONESIA berada di Gedung sendiri yang beralamat di
Jalan Raya Tanjung Barat No. 155 Jakarta Selatan 12350 Indonesia.
3.3.1. Sejarah dan Perkembangannya
PT. Wilson Walton Indonesia didirikan pada tahun 1994 sebagai
bagian dari Corrpro Companies Inc., yang merupakan perusahaan
internasional yang berkantor pusat di Amerika Serikat di bidang
engineering, jasa dan konsultasi korosi di berbagai macam lingkungan.
Pada tahun 2003, PT. Wilson Walton Indonesia, menjadi
perusahaan independen yang berkomitmen untuk melayani area Indonesia,
Singapura, Malaysia dan Brunei Darussalam dengan dukungan penuh dari
Corrpro Companies Inc.
PT. Wilson Walton Indonesia, juga merupakan agen tunggal dari
Rohrback Cosasco System (RCS), perusahaan terkemuka dalam bidang
Corrosion Monitoring, Specialty Polymer Coating (SPC), produsen coating
yang terbuat dari 100% solid, perusahaan yang bergerak di bidang
Intelligent Pigging. PT. Wilson Walton Indonesia mempunyai keahlian di
bidang, diantaranya:
a. Corrosion engineering dan Control
b. Sistem Proteksi Katodik
c. Internal Corrosion Monitoring
47
d. Specialty Coating dan Coating Assessment
e. Intelligent Pigging dan Inline Inspection
f. Pipeline Integrity Management Services
Saat ini untuk mendukung kegiatan operasionalnya, PT. Wilson
Walton Indonesia, memiliki dua kantor cabang yang berlokasi di
Balikpapan dan Pekanbaru.
PT. Wilson Walton Indonesia percaya bahwa kepuasan pelanggan
dapat dicapai pada semua tingkatan dengan meyakinkan seluruh tahapan
dari desain sampai realisasi jasa berjalan sesuai prosedur. Pelayanan ini
disempurnakan melalui perekayasaan dan penelitian yang
berkesinambungan, mutu yang terjaga baik, manajemen keselamatan serta
jangkauan produk dan jasa yang luas, dimana semuanya ini terarah pada
pemeliharaan sumber-sumber energi dunia, infrastruktur dan lingkungan.
Dengan sudah menerapkan Standar Sistem Manajemen Mutu ISO
9001:2008 ini, PT. Wilson Walton Indonesia telah menyediakan kerangka
kerja pengelolaan mutu yang jauh lebih baik sehingga mampu
menyempurnakan praktek pengelolaan mutu yang sudah ada selama ini,
seiring dengan tuntutan terhadap pemenuhan persyaratan standar yang
jauh melebihi dari persyaratan sebelumnya. Selain itu, sertifikasi ISO
9001:2008 yang telah memberikan pengakuan Internasional bagi PT.
Wilson Walton Indonesia.
Bagi PT. Wilson Walton Indonesia, ISO 9001:2008 merupakan
cara terbaik untuk mengukur keseriusan perusahaan dalam usaha
48
berkelanjutan untuk meningkatkan mutu produk, efektivitas dan efisiensi
dari segala aspek serta, peningkatan motivasi kerja karyawan serta
mendorong mereka agar lebih bertanggung jawab terhadap pekerjaannya,
mengutamakan mutu produk dan jasa, disiplin kerja dan dokumentasi hasil
kerja yang lebih konsisten.
3.3.2. Visi, Misi, Kebijakan dan Sasaran Mutu
Sebagai salah satu wujud komitmen PT. Wilson Walton Indonesia
dalam berupaya memuaskan pelanggan dan melakukan perbaikan
berkelanjutan, maka manajemen PT. Wilson Walton Indonesia mempunyai
Visi, Misi dan menetapkan Kebijakan Mutu sebagai kerangka kerja untuk
menetapkan dan meninjau Sasaran Mutu, yang dikomunikasikan dalam
organisasi untuk dipahami dan dilaksanakan serta ditinjau secara terus-
menerus agar senantiasa sesuai dengan perkembangan jaman.
a. Visi
PT. Wilson Walton Indonesia
Menjadi Mitra terbaik bagi perusahaan minyak & gas, pertambangan,
pembangkit listrik dan infrastruktur dalam bidang korosi dan pipeline
integrity di Indonesia dan regional dengan menitik beratkan pada
profesionalisme, ketepatan waktu, standardisasi mutu dan kepuasan
pelanggan
49
b. Misi
PT. Wilson Walton Indonesia
Memberikan jasa pelayanan dengan Komitmen, Kepercayaan dan
menunjukkan hasil yang sesuai dengan keinginan pelanggan.
3.3.3. Struktur Organisasi
Pengorganisasian adalah masalah yang sangat diutamakan dalam
suatu perusahaan, karena didalam organisasi itu terdapat dengan jelas fungsi
dan tanggung jawab dari setiap bagian. Jika setiap bagian tersebut berfungsi
sesuai dengan tugas yang dibebankan, maka kegiatan perusahaan akan
berjalan dengan baik dan akan terlihat juga perkembangan perusahaan
dalam mencapai mengoperasikan suatu kegiatan, langkah pertama yang
dilakukan oleh seorang pimpinan adalah menetapkan pekerjaan apa yang
harus dikerjakan oleh para pegawai agar dapat merealisakan apa yang
menjadi tujuan perusahaan. Pekerjaan ini harus dibagi-bagi menjadi tugas-
tugas kecil agar dikerjakan oleh penerima tugas, dan tugas ini harus
ditetapkan dengan jelas kepada siapa tugas ini diserahkan apa yang menjadi
kewajibannya dan kepada siapa sipenerima tugas ini bertanggung jawab atas
pelaksanaan tugasnya. Pembagian tugas ini sangat perlu dalam suatu
organisasi dalam suatu organisasi agar tidak terjadi tumpang tindih,
melainkan agar jelas yang harus dikerjakan dengan wewenang yang mereka
pilih dan miliki.
50
Gambar 3.1. Struktur Organisasi PT. Wilson Walton Indonesia
President Director
Marketing &Commercial Director Operation Director
Chief Financial
Officer
BranchOffices
Balikpapan
Pekanbaru
Sales Coordinator
Account Manager
ManagementRepresentative
Operation Manager Finance & Accounting
Manager
Accounting & Tax
ProcurementLogistic & Warehouse
Office, GA, HRD
Cost Control
Finance & Cashier
AssistantOperation Manager
EngineeringDepartment
Lead Engineer
Corrosion / CPEngineer
Corrosion / CPTechnician
Project Department
PIC /ProjectLeader
Engineer
Technician
PIC /ProjectLeader
Engineer
Technician
PIC /Project
Engineer
Technician
PIC /Project
Engineer
Technician
Admin & IT
Expeditor
IT
Drafter
51
3.4. Tahapan Penelitian
Pada gambar 3.2. dibawah ini merupakan gambar tahapan penelitian
yang dilakukan oleh penulis :
Gambar 3.2. Tahapan Penelitian
3.5. Metode Pengumpulan Data
Dalam rangka menyusun skripsi ini dilakukan riset atau penelitian
untuk mendapatkan data-data atau bahan materi yang diperlukan. Adapun
metode pengumpulan data-data yang diperlukan adalah sebagai berikut:
3.5.1. Studi Pustaka
Dalam metode ini dilakukan pencarian buku-buku maupun
website yang membahas tentang analisa aktivitas atau tingkatan
Analisis
Analisa Sistem yang Sedang
Berjalan
Bagan Alir Sistem yang
Sedang Berjalan
Analisa Kebutuhan
Sistem yang Sedang Berjalan
Alternatif Pemecahan
Masalah
Perancangan
Data Flow Diagram (DFD)
Desain Kamus Data
Normalisasi
Desain Basis Data
Desain Struktur Menu Sistem
Informasi
ERD (Entity Relationalship Diagram)
Mulai
Identifikasi Kebutuhan (User Need Assisment)
Perencanaan
Identifikasi Masalah
Tujuan Pengembangan
Sistem
Implementasi Pemeliharaan
Sarana Pendukung
Aplikasi
Implementasi Sistem
Pemeliharaan Sistem
Selesai
1
1
2
2
3
3
4
4
52
korosi pada jaringan pipa diantaranya adalah buku berjudul
“Pipeline Risk Management Manual” karangan W. Kent Muhlbauer,
“Peabody's Control of Pipeline Corrosion” karangan A. W. Peabody
dan juga standar-standar yang mengatur tentang korosi seperti ASM
Metal Handbook, ASME dan NACE Standard. Untuk pembuatan
aplikasi berbasis web penulis menggunakan referensi buku berjudul
“Pemrograman Web dengan PHP”, “MySQL untuk Pengguna ,
Administrator, & Pengembang Aplikasi Web” karangan Betha Sidik.
Buku-buku, literature, dan situs-situs yang penulis gunakan sebagai
referensi dapat dilihat pada daftar pustaka.
3.5.2. Wawancara
Dalam tahapan ini penulis melakukan wawancara dengan
Manager Operation, Field Engineer spesialis internal, Field
Engineer spesialis eksternal dan Field Engineer spesialis pipeline
integrity PT. Wilson Walton Indonesia (WWI), pada hari Selasa 10
Maret 2009. Wawancara ini dilakukan untuk mengetahui informasi
apa yang menjadi kebutuhan user untuk aplikasi yang akan dibangun
nantinya. Dari wawancara tersebut juga didapatkan informasi
mengenai sistem yang sedang berjalan, kelemahan sistem yang
sedang berjalan dan sistem yang harus dirancang. Dari wawancara
tersebut dapat diketahui bahwa analisa aktivitas korosi ini akan di
gunakan sebagai bahan pertimbangan, tentang tindakan yang perlu
53
dilakukan pada jaringan pipa. Adapun daftar pertanyaan yang
disampaikan dalam wawancara ini dapat dilihat pada Lampiran A.
3.6. Metode Pengembangan Sistem
Metodologi yang digunakan untuk membangun sistem ini adalah
konsep siklus hidup pengembangan sistem atau System Development Life
Cycle (SDLC) yang dikembangkan oleh Hosier (Prahasta, 2005: 223).
Gambar 3.2 merupakan gambaran tahapan-tahapan dalam SDLC yaitu:
Perencanaan Sistem, Analisis Sistem, Perancangan Sistem, Implementasi
dan Pemeliharaan.
Gambar 3.3. Tahapan Pengembangan Metode SDLC
3.6.1. Perencanaan
Tahap ini merupakan tahap awal yang bertujuan mencari
permasalahan dan kendala-kendala yang ada pada sistem yang
Perencanaan
Analisis
Pemeliharaan
Implementasi
Perancangan
54
berjalan serta merumuskan tujuan dibuatnya “Sistem Informasi
Monitoring Korosi Pipa Minyak Berbasis Web”.
Pada tahapan ini penulis melakukan penelitian awal untuk
mengidentifikasi masalah awal yang ada pada sistem yang ada
kemudian menentukan faktor penyebabnya, selain itu penulis
mengidentifikasi kebutuhan pengguna terhadap sistem yang akan
dibuat.
3.6.2. Analisis
Pada tahap ini kegiatan yang dilakukan adalah menganalisis
sistem yang berjalan untuk kemudian menyimpulkan permasalahan
yang terjadi khususnya dalam prosedur pengumpulan data kemudian
proses analisa data tersebut, hingga menghasilkan suatu laporan
berupa tingkatan korosi pada suatu jaringan pipa. Tahap ini
merupakan dasar bagi perancangan sistem yang baru sehingga
menghasilkan pengolahan data dan laporan yang lebih baik.
Kegiatan analisis kebutuhan dan kondisi meliputi :
1. Gambaran Umum daerah penelitian
Tujuannya adalah memberikan gambaran tentang kondisi
jaringan pipa COPI, yang bermanfaat sebagai informasi dalam
melakukan perawatan pipa.
55
2. Diagram Alir Data Sistem yang berjalan pada COPI
Tujuannya adalah untuk mengetahui prosedur pengolahan data
jaringan pipa yang sedang berjalan sehingga dapat mengetahui
kekurangan dan kelebihan dari sistem yang ada.
3. Usulan Pemecahan Masalah
Memberikan usulan pemecahan masalah pada COPI dalam
meningkatkan efektivitas penyimpanan dan pengolahan data
pipa dengan membuat usulan sistem baru yang berbasis web,
yang mampu memberikan informasi tingkatan korosi pada
jaringan pipa COPI.
3.6.3. Perancangan
Pada tahap ini, kebutuhan-kebutuhan atau spesifikasi
perangkat lunak yang dihasilkan pada tahap analisis
ditransformasikan. Tahap perancangan ini biasanya dilakukan dalam
dua tahap yang lebih rinci, desain utama dan detail desain. Bagian-
tahap yang pertama menghasilkan rancangan yang bersifat global,
sedangkan bagian-tahap yang kedua menghasilkan rancangan detail
hingga semua modul, tipe (struktur) data, fungsi & prosedurnya
(baik metode yang berfungsi sebagai interface maupun yang terdapat
didalam setiap modul terdefinisi).
Tahap perancangan adalah tahapan yang bertujuan untuk
mengatasi permasalahan yang ada. Dalam tahap ini digunakan
56
beberapa tools (alat) untuk membuat rancangan sistem, diantaranya
adalah sebagai berikut :
a. Perancangan Proses
Dalam melakukan perancangan sistem, penulis menggunakan
alat Data Flow Diagram (DFD) untuk menggambarkan suatu
sistem yang diusulkan berikut kamus datanya (Data
Dictionary) untuk menjelaskan data yang ada pada DFD.
b. Perancangan Basis Data
Setelah perancangan sistem dilakukan kemudian penulis
merancang basis datanya dengan menggunakan alat bantu
Entity Relationship Diagram (ERD) yang menggambarkan
hubungan antar entitas yang ada pada DFD. Untuk
mengefisienkan dan mengefektifkan serta menghindari data
yang sama, dalam basis data penulis juga melakukan
normalisasi.
c. Perancangan Struktur Menu Aplikasi
Perancangan Struktur Menu Aplikasi bertujuan untuk
menentukan menu-menu yang diperlukan pada aplikasi yang
akan dikembangkan.
d. Perancangan Antarmuka Aplikasi
Perancangan antarmuka aplikasi bertujuan untuk menemukan
bentuk yang optimal dari tampilan aplikasi, sehingga dapat
mempermudah pengguna dalam berkomunikasi dengan sistem.
57
3.6.4. Implementasi
Tahapan ini merupakan tahap lanjutan dari desain aplikasi
sistem, yaitu menterjemahkan desain aplikasi sistem ke dalam
bahasa pemrograman yang dapat dimengerti oleh sistem komputer
(coding). Dalam tahapan ini dijelaskan secara detail penggunaan
sistem dari proses memperbaharui informasi data hasil monitoring
korosi pipa hingga proses kondisi tingkatan korosi pada suatu
jaringan pipa.
Selain itu pada tahapan ini dilakukan pengujian aplikasi oleh
pengguna yaitu operator lapangan dan field engineer. Pengujian
terlebih dahulu dilakukan pada setiap modul. Jika setiap modul
selesai diuji dan tidak bermasalah, modul-modul tersebut segera
diintegrasikan (dan dikompilasi) hingga membentuk suatu perangkat
lunak yang memfokuskan pada masalah-masalah logika internal,
fungsi eksternal, potensi masalah yang mungkin terjadi, dan
pemeriksaan hasil (apakah sudah sesuai dengan permintaan).
3.6.5. Pemeliharaan
Tahapan ini merupakan tahapan akhir jika sistem yang telah
dibuat telah diimplementasikan dengan baik. Untuk itu sistem yang
ada harus benar-benar diimplementasikan dengan baik, agar
pengguna yang akan menggunakan dalam hal ini COPI, dapat
mempergunakan sistem dengan baik.
58
Tahap ini ditandai oleh penyerahan (delivery) perangkat
lunak kepada pemesannya yang kemudian dioperasikan oleh
pengguna. Dalam masa operasional sehari-hari, suatu perangkat
lunak mungkin saja mengalami kesalahan atau kegagalan dalam
menjalankan fungsi-fungsinya (errors atau bugs). Atau, pengguna
bisa saja meminta peningkatan kemampuan (jumlah atau kualitas)
perangkat lunak pada pengembangannya. Dengan demikian, kedua
faktor ini menyebabkan perlunya perangkat lunak dipelihara (di-
maintain) dari waktu-ke-waktu.
59
BAB IV
HASIL DAN PEMBAHASAN
4.1. Perencanaan Sistem
4.1.1. Identifikasi Kebutuhan (User Need Assisment)
Mengidentifikasikan kebutuhan merupakan langkah pertama
yang dilakukan dalam tahap perencanaan sistem. Kebutuhan itu
dapat juga diartikan sebagai suatu keinginan atau suatu hal. Untuk
itu dibuat suatu sistem yang dapat memenuhi kebutuhan informasi
aset pipa dan keadaan resiko pipa. Dari hasil penelitian dan
melakukan wawancara ke PT. Wilson Walton Indonesia dengan
Bapak Teddy Firmansyah. selaku Manager Operation, Bapak
Wahyudi Wibawa selaku Field Engineer spesialis eksternal, Bapak
Bashari Rozardi selaku Field Engineer spesialis pipeline integrity
dan Bapak Paul Indrawan Syukur selaku Field Engineer spesialis
internal diperoleh berbagai kebutuhan yang diharapkan oleh COPI,
antara lain:
1. Kebutuhan akan suatu sistem yang dapat memberikan
informasi aset pipa.
2. Kebutuhan sistem informasi yang dapat menganalisa data hasil
monitoring korosi.
60
3. Kebutuhan sistem informasi yang dapat diakses dari mana saja
tidak terbatas ruang dan waktu. (Hasil Wawancara lengkap
dapat dilihat dalam Lampiran A).
4.1.2. Identifikasi Masalah
Adapun permasalahan yang terjadi dalam sistem yang sedang
berjalan antara lain :
1. Data hasil monitoring korosi pipa hanya berbentuk lembaran-
lembaran kertas, tidak adanya media penyimpanan alternatif.
2. Sistem yang diterapkan masih kurang efektif, karena setelah
proses pengumpulan data monitoring korosi. Data tersebut
masih harus diproses oleh seorang Field Engineer (FE),
sehingga di dapat hasil analisa. Pada proses penganalisaan
data, masing-masing FE memiliki cara-cara sendiri untuk
menganalisa data tersebut. Hal tersebut terjadi karena belum
ada bentuk standar untuk proses penganalisaan data hasil
monitoring korosi pipa.
3. Hasil analisa monitoring korosi pipa kemudian dikirim ke
kantor pusat untuk dilaporkan ke General Manager (GM)
menggunakan email oleh masing-masing FE. Hal tersebut
kurang efektif, karena GM harus menunggu FE mengirim
email hasil analisa tersebut dan melihat hasil analisa tersebut
pada email GM.
61
4.1.3. Tujuan Pengembangan Sistem
Berdasarkan permasalahan-permasalahan yang ada di atas
maka dapat dirumuskan tujuan dari pengembangan Sistem Informasi
Monitoring Korosi Pipa Minyak Berbasis Web ini adalah sebagai
berikut :
1. Dapat digunakan sebagai media penyimpanan alternatif yang
mampu memberikan informasi mengenai aset pipa minyak.
2. Dapat digunakan sebagai bentuk standar untuk proses data
hasil monitoring korosi pipa minyak..
3. Dapat digunakan sebagai sistem informasi aset pipa minyak
berikut kondisi korosi pipa minyak, yang dapat diakses dimana
saja dan kapan saja dengan bantuan internet.
4.2. Analisa Sistem
4.2.1. Analisa Sistem yang Sedang Berjalan
Data hasil monitoring korosi pada pipa masih belum terorganisir
dengan baik dan proses penganalisaan data belum ada bentuk baku. Masih
belum terorganisir dengan baik, itu dikarenakan data tersebut belum tersusun
dengan rapih dan data tersebut hanya ada dalam bentuk lembaran-lembaran
kertas. Proses penganalisaan data belum ada bentuk baku, itu dikarenakan
untuk memproses analisa data korosi masing-masing Field Engineer masih
belum memiliki standar tentang proses analisa data korosi.
62
Dapat dilihat pada Gambar 4.1 bahwa sistem monitoring korosi pipa
yang sedang berjalan, awalnya dimulai dari operator lapangan melakukan
pengumpulan data-data yang berhubungan dengan korosi pada suatu
jaringan pipa dalam bentuk lembaran-lembaran kertas, kemudian data-data
tersebut diolah dengan menggunakan program ms. Excel oleh masing-
masing Field Engineer yang bertanggung jawab atas suatu jaringan pipa
untuk mendapatkan hasil dari monitoring korosi pipa. Hasil tersebut
kemudian dikirim dengan menggunakan email ke General Manager (GM) di
kantor pusat.
Gambar 4.1 Bagan Alir Sistem yang Sedang Berjalan
Sistem yang Sedang Berjalan
Operator Field Engineer Kantor Pusat /General Manager
Start
End
PengumpulanData
Korosi Pipa
AnalisaData Korosi
Pipa
DataKorosiPipa
Hasil AnalisaData Korosi
Pipa
63
4.2.2. Analisa Kebutuhan Sistem yang Sedang berjalan
Sistem yang sedang berjalan memiliki permasalahan dalam hal
penyimpanan data, pemrosesan data dan pengiriman data hasil monitoring
korosi pada pipa.
Dari hasil analisa sistem yang sedang berjalan pada proses
pengumpulan data dan pemrosesan data hasil monitoring korosi pada pipa,
berikut beberapa kelemahan pada proses sistem diantaranya:
a. Hasil monitoring hanya dalam catatan kertas sebagai media
penyimpanan data, bisa saja catatan kertas tersebut hilang atau rusak.
b. Memakan waktu cukup lama dalam memproses hasil monitoring,
karena masih harus di analisa oleh field engineer.
c. Hasil analisa harus dikirim oleh tiap-tiap field engineer ke General
Manager di kantor pusat.
4.2.3. Alternatif Pemecahan Masalah
a. Dibuat suatu program yang berfungsi untuk menyimpan data aset pipa
minyak dan juga memproses hasil monitoring berbasis komputer
dalam bentuk database.
b. Program yang dibuat berbasis web untuk memudahkan dalam
mengakses hasil monitoring korosi pipa minyak, jadi kita dapat
mengakses hasil monitoring tersebut dari mana saja. Karena luasnya
jaringan pipa dan lokasi jaringan pipa yang berbeda-beda.
64
c. Selain itu program tersebut dapat memberi rekomendasi tindakan
pencegahan yang perlu dilakukan berdasarkan dari hasil analisa data
monitoring korosi.
4.3. Perancangan Sistem
4.3.1. Data Flow Diagram (DFD)
Perancangan Data Flow Diagram dirancang untuk sebuah
sistem usulan berdasarkan hasil alternatif pemecahan masalah.
Diagram ini menggambarkan secara garis besar masukan atau
keluaran yang ada pada sistem. Berikut adalah perancangan diagram
konteks untuk alternatif pemecahan masalah. Gambar dapat dilihat
pada Gambar 4.2.
a. Aliran data diawali dari bagian Operation memberikan laporan
hasil inspeksi korosi kepada bagian Field Engineer (FE).
Gambar 4.2. Diagram Konteks
Sistem InformasiMonitoring Korosi
Pipa MinyakField Engineer
General Manager(Kantor Pusat)
Komponen Korosi
Decision
CRR ApprovalCRR
65
b. Hasil laporan inspeksi korosi berupa komponen korosi, yaitu data
korosi yang akan dimasukkan ke dalam Sistem Informasi
Monitoring Korosi Pipa Minyak Berbasis Web oleh FE.
c. Sistem Informasi Monitoring Korosi Pipa Minyak Berbasis Web
memberikan laporan berupa ranking resiko korosi (Corrosion
Risk Rangking/CRR) pada suatu jaringan pipa kepada General
Manager (GM) di kantor pusat.
d. Dari hasil CRR yang didapat GM, GM kemudian mengambil
suatu keputusan (decision maker) yang perlu dilakukan pada
suatu jaringan pipa.
e. Decision tersebut kemudian diterima oleh FE, dengan decision
tersebut FE dapat membuat rencana pekerjaan perawatan pipa
yang akan dilakukan oleh bagian Operation.
Setelah merancang diagram konteks, maka selanjutnya
merancang DFD Level 1, diagram ini dibuat untuk menggambarkan
arus data dari tahapan proses diagram sebelumnya.
Diagram ini menggambarkan proses–proses yang terdapat dalam
Sistem Informasi Monitoring Korosi Pipa Minyak Berbasis Web,
diantaranya perancangan interface dan analisa data. Pengolahan peta
dan pengumpulan data informasi yang kemudian diolah pada sistem,
sehingga menghasilkan output berupa Informasi Monitoring Korosi
Pipa Minyak yang diinformasikan kepada Field Engineer dan
66
General Manager. Pada Gambar 4.3 merupakan gambar DFD level
1.
Berikut ini merupakan penjelasan dari Gambar 4.3 DFD Level 1 :
a. FE (Field Engineer) mendapatkan data hasil inspeksi pipa yang
didapat dari bagian Operation, kemudian data-data yang
merupakan komponen korosi diinputkan ke dalam sistem
informasi monitoring korosi, diantaranya data gathering line,
data general, data internal corrosion monitoring device, data
Gambar 4.3. DFD Level 1
Field Engineer
General
Int. Corr. Mon. Dev.
Water Sampling
Chemical Treatment
Scaling Tendency
Ext. Corr. Protection
Corr. Risk Data
Corr. Rate
Pigging Facility
Pipe Condition
GeneralManager
Keputusan dan Rekomendasi
PoF & CoFKomponen
Korosi CRR
Persetujuan
Data Korosi
Gathering Line
2.0Mengkategorikan
Data Korosi
1.0Menginput
DataKorosi
3.0Mengkonversi
PoF & CoF
4.0PembuatanKeputusan
dan Rekomendasi
67
water sampling, data chemical treatment, data scaling tendency,
data external corrosion protection, data corrosion risk, data
corrosion rate, data pigging facility dan data pipe condition.
b. Setelah FE menginputkan semua data-data korosi, data-data
tersebut kemudian dikategorikan menjadi dua buah kategori
yaitu: PoF (Probability of Failure) dan CoF (Consequence of
Failure) sehingga menghasilkan data yang termasuk PoF dan
CoF.
c. Data PoF dan CoF kemudian dikonversi sehingga menghasilkan
Corrosion Risk Ranking (CRR). CRR adalah tingkatan resiko
terjadinya korosi pada suatu pipa.
d. Dari CRR tersebut General Manager (GM) diminta untuk
memberi persetujuan (approval) dari hasil CRR yang didapat,
sehingga sistem dapat melakukan proses ke tahap selanjutnya
berupa pembuatan suatu keputusan dan rekomendasi tentang
tindakan perbaikan atau pencegahan yang perlu dilakukan pada
suatu pipa. Hasil dari keputusan dan rekomendasi akan diterima
oleh FE untuk direalisasikan oleh bagian Operation.
68
4.3.2. Perancangan Basis Data
Perancangan basis data perlu dilakukan setelah mendapatkan
gambaran sistem dari sudut pandang pengguna. Tahapan awal dalam
perancangan basis data ini adalah membuat pemodelan data
konseptual yang akan dijadikan konsep basis data, setelah didapat
model basis data, maka data konseptual tersebut diwujudkan dalam
hubungan antara tabel menggunakan asosiasi sehingga didapatkan
model data relational.
Berikut ini akan dijelaskan langkah-langkah yang dilakukan
dalam merancang basis data :
4.3.2.1 Entity Relationalship Diagram (ERD)
Setelah dilakukan perancangan sistem, selanjutnya dilakukan
perancangan database yang bertujuan untuk menggambarkan
hubungan antar entity. Perancangan database yang dibuat
menggunakan struktur ERD, struktur ERD sebelum di
normalisasi pada sistem informasi monitoring korosi ini terlihat
pada Gambar 4.4 berikut:
69
memiliki
gl_corr_rate
retrieving_date_ coupon
corr_rate_ coupon
. . .
gl_chemical_ treatment
chemical_ treatment_type
condition_ct
. . .
gl_corr_risk_data
contingency_line
community
. . .
gl_ext_corr_ protection
type_cp
anode_ weight
. . .
gl_ general
pipe_size
pipe_grade
. . .
gl_ pigging_ facility
barrel_ length_ launcher
nominal _ length_launcher
. . .
gl_int_corr_mon_dev
fitting_size
condition
. . .
gl_pipe_ condition
original_gl
location
. . .
gl_ water_ sampling
nos condition_ws
. . .
gl_ scaling_ tendency
pipeline_number
line_type
nos_af plug _manufacture
. . .
line_type
line_type line_type
line_type
line_type
line_type
line_typeline_typeline_type
pipeline_number
pipeline_number pipeline_number
pipeline_number
pipeline_number
pipeline_number
pipeline_numberpipeline_numberpipeline_number
Gambar 4.4. ERD Awal
70
4.3.2.2 Normalisasi
a. Unnormalized
Dibawah ini adalah bentuk dari tabel tidak normal dimana
masih ditunjukkan atribut yang bernilai banyak atau
berulang.
gl_pipe_condition pipeline_number line_type original_gl location km anomaly_length pipe_anomaly type_coating condition_coating
gl_corr_rate pipeline_number line_type retrieving_corr_rate_coupon corr_rate_coupon interrogated_corr_rate_probe corr_rate_probe date_previous_wall_thickness date_current_wall_thickness wt_remaining_previous_wall_thickness wt_remaining_current_wall_thickness defect_length_max corr_rate total_wt_lost
gl_corr_risk_data pipeline_number line_type contingency_line community population_density no_leak date_leak remedial_action location
gl_chemical_treatment pipeline_number line_type chemical_treatment_facility chemical_treatment_type location condition nos access_fitting_system device_manufacture injection_tube operation_condition treatment_method brand injection_rate recomendation_injection_rate
gl_scaling_tendency pipeline_number line_type sampling_facility fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date scale_index tendency scale_growth
gl_ext_corr_protection pipeline_number line_type type_cp anode_weight anode_type nos_anode year_installed design_life current_output test_point_nos insulation_flange highest_pipe_soil_potential lowest_pipe_soil_potential soil_resistivity_location soil_resistivity_lowest soil_corrosiveness_category highest_soil_resistivity
71
gl_water_sampling pipeline_number line_type water_sampling_facility location nos condition temperature ph sand h2s co2_dissolved srb mn residual_amine residual_phosphate residual_sulfit alkalinity cl sulfate o2_dissolved iron_count
gl_pigging_facility pipeline_number line_type facility_avaibiality barrel_length_launcher nominal_length_launcher reducer_length_launcher bridle_door_launcher valve_body_width_launcher access_length_launcher access_width_launcher barrel_od_launcher barrel_id_launcher barrel_t_launcher nominal_t_launcher barrel_length_receiver nominal_length_receiver reducer_length_receiver bridle_door_receiver valve_body_width_receiver access_length_receiver access_width_receiver barrel_od_receiver barrel_id_receiver barrel_t_receiver nominal_t_receiver pigging_type clean_pig_recomendation clean_pig_activity out_come
72
gl_int_corr_mon_dev pipeline_number line_type facility_access_fitting location_device fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date coupon_surface_area density probe_type probe_element probe_length probe_span probe_id installation_date corr_rate coupon_id_a initial_weight_a final_weight_a color_coupon_a body_attack_a washer_attack_a edge_attack_a erosion_attack_a scale_a pitting_a debris_a coupon_id_b initial_weight_b final_weight_b color_coupon_b body_attack_b washer_attack_b edge_attack_b erosion_attack_b scale_b pitting_b debris_b
gl_general pipeline_number line_type description service status equipment pipe_size schedule nominal_wt year_built flange_rating design_temp pipe_grade smys length year_service psv_setting fluid_from design_factor design_press design_life current_service bopd bwpd bfpd mscfd remaining_life op_temp op_press calculated_actual_maop actual_maop
73
b. 1NF
Bentuk normal pertama terpenuhi jika sebuah table tidak
memiliki atribut bernilai banyak (multivalued attribute) atau
lebih dari satu atribut dengan nilai domain yang sama.
Fathansyah Ir (1999:65)
gl pipeline_number line_type description service status
gl_pipe_condition original_gl location km anomaly_length pipe_anomaly type_coating condition_coating
gl_corr_risk_data contingency_line community population_density no_leak date_leak remedial_action location
gl_corr_rate retrieving_corr_rate_coupon corr_rate_coupon interrogated_corr_rate_probe corr_rate_probe date_previous_wall_thickness date_current_wall_thickness wt_remaining_previous_wall_thickness wt_remaining_current_wall_thickness defect_length_max corr_rate total_wt_lost
gl_ext_corr_protection type_cp anode_weight anode_type nos_anode year_installed design_life current_output test_point_nos insulation_flange highest_pipe_soil_potential lowest_pipe_soil_potential soil_resistivity_location soil_resistivity_lowest soil_corrosiveness_category highest_soil_resistivity
74
gl_chemical_treatment chemical_treatment_facility chemical_treatment_type location condition nos access_fitting_system device_manufacture injection_tube operation_condition treatment_method brand injection_rate recomendation_injection_rate
gl_scaling_tendency sampling_facility fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date scale_index tendency scale_growth
gl_water_sampling water_sampling_facility location nos condition temperature ph sand h2s co2_dissolved srb mn residual_amine residual_phosphate residual_sulfit alkalinity cl sulfate o2_dissolved iron_count
gl_pigging_facility facility_avaibiality barrel_length_launcher nominal_length_launcher reducer_length_launcher bridle_door_launcher valve_body_width_launcher access_length_launcher access_width_launcher barrel_od_launcher barrel_id_launcher barrel_t_launcher nominal_t_launcher barrel_length_receiver nominal_length_receiver reducer_length_receiver bridle_door_receiver valve_body_width_receiver access_length_receiver access_width_receiver barrel_od_receiver barrel_id_receiver barrel_t_receiver nominal_t_receiver pigging_type clean_pig_recomendation clean_pig_activity out_come
75
gl_general description service status equipment pipe_size schedule nominal_wt year_built flange_rating design_temp pipe_grade smys length year_service psv_setting fluid_from design_factor design_press design_life current_service bopd bwpd bfpd mscfd remaining_life op_temp op_press calculated_actual_maop actual_maop
gl_int_corr_mon_dev facility_access_fitting location_device fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date coupon_surface_area density probe_type probe_element probe_length probe_span probe_id installation_date corr_rate coupon_id_a initial_weight_a final_weight_a color_coupon_a body_attack_a washer_attack_a edge_attack_a erosion_attack_a scale_a pitting_a debris_a coupon_id_b initial_weight_b final_weight_b color_coupon_b body_attack_b washer_attack_b edge_attack_b erosion_attack_b scale_b pitting_b debris_b
76
c. 2NF
Bentuk normalisasi kedua terpenuhi jika normalisasi pertama
terpenuhi, dan semua atribut yang tidak termasuk dalam key
primer memiliki ketergantungan fungsional pada key primer
secara utuh. Sebuah tabel tidak memenuhi 2NF jika
ketergantungannya hanya bersifat parsial. Dengan demikian
untuk membentuk normal kedua haruslah sudah ditentukan
kunci-kunci fieldnya. Kunci field harus unik dan dapat
mewakili atrribut lain yang memenuhi anggotanya.
gl id_gl* pipeline_number line_type description service status
gl_general id_general* equipment pipe_size schedule nominal_wt year_built flange_rating design_temp pipe_grade smys length year_service psv_setting fluid_from design_factor design_press design_life current_service bopd bwpd bfpd mscfd remaining_life op_temp op_press calculated_actual_maop actual_maop
gl_water_sampling id_water* water_sampling_facility location nos condition temperature ph sand h2s co2_dissolved srb mn residual_amine residual_phosphate residual_sulfit alkalinity cl sulfate o2_dissolved iron_count
gl_chemical_treatment id_chemical* chemical_treatment_facility chemical_treatment_type location condition nos access_fitting_system device_manufacture injection_tube operation_condition treatment_method brand injection_rate recomendation_injection_rate
gl_corr_risk_data id_corr_risk* contingency_line community population_density no_leak date_leak remedial_action location
gl_scaling_tendency id_scaling_tendency* sampling_facility fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date scale_index tendency scale_growth
77
gl_int_corr_mon_dev id_int_corr_mon_dev* facility_access_fitting location_device fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date coupon_surface_area density probe_type probe_element probe_length probe_span corr_rate scale_coupon corr_rate coupon_id_a initial_weight_a final_weight_a color_coupon_a body_attack_a washer_attack_a edge_attack_a erosion_attack_a scale_a pitting_a debris_a coupon_id_b initial_weight_b final_weight_b color_coupon_b body_attack_b washer_attack_b edge_attack_b erosion_attack_b scale_b pitting_b debris_b
gl_ext_corr_protection id_ext* id_type_cp anode_weight anode_type nos_anode year_installed design_life current_output test_point_nos insulation_flange highest_pipe_soil_potential lowest_pipe_soil_potential soil_resistivity_location soil_resistivity_lowest id_soil_corrosiveness** highest_soil_resistivity
gl_pigging_facility id_pig* facility_avaibiality barrel_length_launcher nominal_length_launcher reducer_length_launcher bridle_door_launcher valve_body_width_launcher access_length_launcher access_width_launcher barrel_od_launcher barrel_id_launcher barrel_t_launcher nominal_t_launcher barrel_length_receiver nominal_length_receiver reducer_length_receiver bridle_door_receiver valve_body_width_receiver access_length_receiver access_width_receiver barrel_od_receiver barrel_id_receiver barrel_t_receiver nominal_t_receiver pigging_type clean_pig_recomendation clean_pig_activity out_come
gl_pipe_condition id_pipe_condition* original_gl location km anomaly_length pipe_anomaly type_coating condition_coating
78
d. 3NF
Pada bentuk normal ketiga tabel haruslah dalam bentuk
normal kedua dan semua atribut bukan primer tidak
mempunyai hubungan transitif. Dengan kata lain, setiap
atribut bukan kunci harus bergantung pada primary key
secara menyeluruh. Pada tabel bentuk normal kedua sudah
memenuhi bentuk normal ketiga, sehingga tidak perlu
disederhanakan lagi.
gl id_gl* pipeline_number line_type description service status
gl_general id_general* id_gl** equipment pipe_size schedule nominal_wt year_built flange_rating design_temp pipe_grade smys length year_service psv_setting fluid_from design_factor design_press design_life current_service bopd bwpd bfpd mscfd remaining_life op_temp op_press calculated_actual_maop actual_maop
gl_water_sampling id_water* id_gl** water_sampling_facility location nos condition temperature ph sand h2s co2_dissolved srb mn residual_amine residual_phosphate residual_sulfit alkalinity cl sulfate o2_dissolved iron_count
gl_chemical_treatment id_chemical* id_gl** chemical_treatment_facility chemical_treatment_type location condition nos access_fitting_system device_manufacture injection_tube operation_condition treatment_method brand injection_rate recomendation_injection_rate
gl_corr_risk_data id_corr_risk* id_gl** contingency_line community population_density no_leak date_leak remedial_action location
gl_scaling_tendency id_scaling_tendency* id_gl** sampling_facility fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date scale_index tendency scale_growth
79
gl_int_corr_mon_dev id_int_corr_mon_dev* id_gl** facility_access_fitting location_device fitting_size access_fitting_type nos_af fitting_manufacture condition plug_manufacture coupon_type holder_length installation_date retrieving_date coupon_surface_area density probe_type probe_element probe_length probe_span corr_rate scale_coupon corr_rate coupon_id_a initial_weight_a final_weight_a color_coupon_a body_attack_a washer_attack_a edge_attack_a erosion_attack_a scale_a pitting_a debris_a coupon_id_b initial_weight_b final_weight_b color_coupon_b body_attack_b washer_attack_b edge_attack_b erosion_attack_b scale_b pitting_b debris_b
gl_ext_corr_protection id_ext* id_gl** id_type_cp anode_weight anode_type nos_anode year_installed design_life current_output test_point_nos insulation_flange highest_pipe_soil_potential lowest_pipe_soil_potential soil_resistivity_location soil_resistivity_lowest id_soil_corrosiveness** highest_soil_resistivity
gl_corr_rate id_corr_rate* id_gl** retrieving_corr_rate_coupon corr_rate_coupon interrogated_corr_rate_probe corr_rate_probe date_previous_wall_thickness date_current_wall_thickness wt_remaining_previous_wall_thickness wt_remaining_current_wall_thickness defect_length_max corr_rate total_wt_lost
gl_pigging_facility id_pig* id_gl** facility_avaibiality barrel_length_launcher nominal_length_launcher reducer_length_launcher bridle_door_launcher valve_body_width_launcher access_length_launcher access_width_launcher barrel_od_launcher barrel_id_launcher barrel_t_launcher nominal_t_launcher barrel_length_receiver nominal_length_receiver reducer_length_receiver bridle_door_receiver valve_body_width_receiver access_length_receiver access_width_receiver barrel_od_receiver barrel_id_receiver barrel_t_receiver nominal_t_receiver pigging_type clean_pig_recomendation clean_pig_activity out_come
gl_pipe_condition id_pipe_condition* id_gl** original_gl location km anomaly_length pipe_anomaly type_coating condition_coating
80
4.3.2.3 Relational Database Management System (RDBMS)
Gambar 4.5. RDBMS
gl id_gl* pipeline_number line_type description service status
gl_water_sampling id_water* id_gl** water_sampling_facility location …
gl_general id_general* id_gl** equipment pipe_size …
gl_corr_risk_data id_corr_risk* id_gl** contingency_line community …
gl_chemical_treatment id_chemical* id_gl** chemical_treatment_facility chemical_treatment_type …
gl_scaling_tendency id_scaling_tendency* id_gl** fitting_size access_fitting_type …
gl_int_corr_mon_dev id_int_corr_mon_dev* id_gl** facility_access_fitting location_device …
gl_ext_corr_protection id_ext* id_gl** id_type_cp anode_weight …
gl_pigging_facility id_pig* id_gl** facility_avaibiality barrel_length_launcher …
gl_pipe_condition id_pipe_condition* id_gl** original_gl location …
gl_corr_rate id_corr_rate* id_gl** retrieving_corr_rate_coupon corr_rate_coupon …
81
4.3.2.4 Kamus Data
gl = {@id_gl + pipeline_number + line_type + description + service + status + risk + pof + cof}
gl_chemical_treatment = {@id_chemical + id_gl + chemical_treatment_type + condition_ct + nos + access_fitting_system + device_manufacture + injection_tube + operation_condition + treatment_method + brand + injection_rate + recommendation_injection_rate + chemical_facility}
gl_corr_rate = {@id_corr_rate + id_gl + retrieving_date_coupon + corr_rate_coupon + interrogated_date_probe + corr_rate_probe + date_previous_inspection + date_current_inspection + wt_remaining_previous + wt_remaining_current + total_wt_lost + defect_length_max + corr_rate_wt}
gl_corr_risk_data = {@id_corr_risk + id_gl + contingency_line + community + population_density + no_of_leak + date_leak + remedial_action + location }
gl_ext_corr_protection = {@id_ext + id_gl + type_cp + anode_weight + anode_type + nos_anode + year_installed + design_life_cp + current_output + test_point_nos + insulation_flange + tr_output_v + tr_output_a + highest_pipe_soil + lowest_pipe_soil + location_soil + lowest_soil + soil_corrosive + highest_soil} gl_general = {@id_general + id_gl + date_update + equipment + pipe_size + pipe_grade + design_factor + schedule + smys + design_press + nominal_wt + length + design_life + year_built + year_service + current_service + flange_rating + fange + psv_setting + design_temp + fluid_from + bopd + bwpd + bfpd + mscfd + remaining_life + op_temp + op_press + calculated_maop + actual_maop} gl_int_corr_mon_dev = {@id_int_corr + id_gl + fitting_size + fitting_manufacture + access_fitting_type + condition + nos_af + plug_manufacture + coupon_type + holder_length + installation_date_coupon + retrieving_date + coupon_surface + density + probe_type + probe_element + probe_length + probe_span + probe_id + installation_date_probe + corr_rate + coupon_id_a + initial_weight_a + final_weight_a + color_coupon_a + body_attack_a + washer_attack_a + edge_attack_a + erosion_attack_a + scale_a + pitting_a +
82
debris_a + coupon_id_b + initial_weight_b + final_weight_b + color_coupon_b + body_attack_b + washer_attack_b + edge_attack_b + erosion_attack_b + scale_b + pitting_b + debris_b}
gl_pigging_facility = {@id_pig + id_gl + barrel_length_launcher + nominal_length_launcher + reducer_length_launcher + bridle_door_launcher + valve_body_width_launcher + access_length_launcher + access_width_launcher + barrel_od_launcher + barrel_id_launcher + barrel_t_launcher + nominal_t_launcher + trap_height_launcher + kicker_launcher + balance_pipe_launcher + reducer_type_launcher + angle_launcher + barrel_length_receiver + nominal_length_ receiver + reducer_length_ receiver + bridle_door_ receiver + valve_body_width_ receiver + access_length_ receiver + access_width_ receiver + barrel_od_ receiver + barrel_id_ receiver + barrel_t_ receiver + nominal_t_ receiver + trap_height_ receiver + kicker_ receiver + balance_pipe_ receiver + reducer_type_ receiver + angle_ receiver + pigging_type + cleaning_pigging_recomendation + cleaning_pigging_activity + date_pigging + out_come}
gl_pipe_condition = {@id_pipe_condition + id_gl + original_gl + location + km + anomaly_length + pipe_anomaly + type_coating + condition_coating}
gl_scaling_tendency = {@id_scaling + id_gl + fitting_size + access_fitting_type + nos_af + fitting_manufacture + condition + plug manufacture + coupon_type + holder_length + installation_date + retrieving_date + scale_index + tendency + scale_growth}
gl_water_sampling = {@id_water + id_gl + nos + condition_ws + temperature + ph + sand + h2s + co2_dissolved + srb + mn + residual_amine + residual_phosphate + residual_sulfit + alkalinity + cl + sulfate + o2_dissolved + iron_count + water_sampling}
user = {@username + password + status + area}
4.3.2.5 Spesifikasi File Data
1. Nama Tabel : gl
Keterangan : Tabel ini berisi data gathering line
83
PrimaryKey : id_gl
ForeignKey : -
Tabel 4.1. Spesifikasi Tabel gl
Field Name Data Type Length Description
id_gl INT 100
pipeline_number VARCHAR 100
line_type ENUM 'Production
Line','Water
Injection
Line','Gas Lift
Line'
description TEXT
service VARCHAR 30
status ENUM 'running','not
running'
risk ENUM 'low','middle','high'
pof ENUM '1','2','3','4','5'
cof ENUM 'A','B','C','D','E'
2. Nama Tabel : gl_chemical_treatment
Keterangan : Tabel ini berisi data chemical treatment
PrimaryKey : id_chemical
84
ForeignKey : id_gl
Tabel 4.2. Spesifikasi Tabel gl_chemical_treatment
Field Name Data Type Length Description
id_chemical INT 50
id_gl INT 100
chemical_treatme
nt_type
ENUM 'Corr. Inhibitor','Scale
Inhibitor','Biocide','De
mulsifier','Oxygen
Scavanger','N/A'
condition_ct ENUM 'Unserviceable','Service
able'
Nos INT 30
access_fitting_sys
tem
ENUM '2 Inch Access
Fitting','1 Inch Access
Fitting','Threadolet
Nipple','N/A'
device_manufactu
re
ENUM 'RCS','KS','Caproco','Ot
hers'
injection_tube ENUM 'Quill','Atomizer','Other
s'
operation_conditi
on
ENUM 'Running','Not
Running'
85
treatment_method ENUM 'Batching','Continue','B
atch Per Interval then
Continous'
Brand VARCHA
R
30
injection_rate INT 20
recommendation_
injection_rate
INT 20
chemical_facility ENUM 'yes','no'
3. Nama Tabel : gl_corr_rate
Keterangan : Tabel ini berisi data corrosion rate
PrimaryKey : id_corr_rate
ForeignKey : id_gl
Tabel 4.3. Spesifikasi Tabel gl_corr_rate
Field Name Data Type Length Description
id_corr_rate INT 50
id_gl INT 100
retrieving_date_coup
on
DATE
corr_rate_coupon DOUBLE
interrogated_date_pro DATE
86
be
corr_rate_probe DOUBLE
date_previous_inspec
tion
DATE
date_current_inspecti
on
DATE
wt_remaining_previo
us
DOUBLE
wt_remaining_curren
t
DOUBLE
total_wt_lost DOUBLE
defect_length_max DOUBLE
corr_rate_wt INT 15
4. Nama Tabel : gl_corr_risk_data
Keterangan : Tabel ini berisi data corrosion risk
PrimaryKey : id_corr_risk
ForeignKey : id_gl
Tabel 4.4. Spesifikasi Tabel gl_corr_risk_data
Field Name Data Type Length Description
id_corr_risk INT 50
id_gl INT 100
87
contingency_line ENUM 'In Place','Easy to
Install','No Contingency
Line','No Data'
Community ENUM 'No Impact','Get Impact Pay
Compensation','Get Impact
No Compensation','No
Data'
population_density ENUM 'Density < 10','10 < Density
< 46','Density > 46','No
Data'
no_of_leak ENUM '1','2','3','4','5','6','7','8','9','10'
date_leak DATE
remedial_action ENUM 'Temporary
Clamp','Permanent
Sleeve/patching','Cut and
Replace','None'
Location VARCHAR 50
5. Nama Tabel : gl_ext_corr_protection
Keterangan : Tabel ini berisi data external corrosion
protection
PrimaryKey : id_ext
ForeignKey : id_gl
88
Tabel 4.5. Spesifikasi Tabel gl_ext_corr_protection
Field Name Data Type Length Description
id_ext INT 50
id_gl INT 100
type_cp ENUM 'SACP','ICCP','SACP &
ICCP','None'
anode_weight INT 10
anode_type INT 10
nos_anode INT 10
year_installed INT 10
design_life_cp INT 10
current_output INT 10
test_point_nos INT 10
insulation_flange INT 10
tr_output_v INT 10
tr_output_a INT 10
highest_pipe_soil INT 10
lowest_pipe_soil INT 10
location_soil VARCHAR 10
lowest_soil INT 50
soil_corrosive ENUM 'Negligible','Moderately
Corrosive','Corrosive','Very
89
Corrosive'
highest_soil INT 50
6. Nama Tabel : gl_general
Keterangan : Tabel ini berisi data general
PrimaryKey : id_general
ForeignKey : id_gl
Tabel 4.6. Spesifikasi Tabel gl_general
Field Name Data Type Length Description
id_general INT 50
id_gl INT 100
date_update DATE
equipment VARCHAR 100
pipe_size ENUM '2','2.5','3','3.5','4','5','6','8','10','12'
pipe_grade ENUM 'API 5L Grade B','API 5L X42'
design_factor FLOAT
schedule ENUM '40','80','none'
smys INT 10
design_press INT 10
nominal_wt FLOAT
length INT 10
design_life INT 10
90
year_built INT 10
year_service INT 10
current_service VARCHAR 50
flange_rating ENUM '150','300','600','900','1500'
fange INT 10
psv_setting INT 10
design_temp INT 10
fluid_from TEXT
bopd FLOAT
bwpd FLOAT
bfpd FLOAT
mscfd FLOAT
remaining_life INT 20
op_temp INT 20
op_press INT 20
calculated_maop FLOAT
actual_maop INT 20
7. Nama Tabel : gl_int_corr_mon_dev
Keterangan : Tabel ini berisi data internal corrosion
monitoring device
PrimaryKey : id_int_corr
ForeignKey : id_gl
91
Tabel 4.7. Spesifikasi Tabel gl_int_corr_mon_dev
Field Name Data Type Length Description
id_int_corr INT 50
id_gl INT 100
fitting_size ENUM '2 Inch Access
Fitting','1 Inch Access
Fitting','N/A'
fitting_manufactu
re
ENUM 'RCS','KS','Caproco','Ot
hers'
access_fitting_typ
e
ENUM 'Flare
Weld','Flange','Threado
llet Nipple'
condition ENUM 'Serviceable','UnServic
eable'
nos_af INT 10
plug_manufacture VARCHAR 20
coupon_type ENUM 'Strip Coupon 1
Inch','Strip Coupon 2
Inch','Flush Disc
Coupon','N/A'
holder_length VARCHAR 50
installation_date_ DATE
92
coupon
retrieving_date DATE
coupon_surface INT 50
density INT 50
probe_type ENUM 'Microcor','LPR','ER','N
/A'
probe_element ENUM 'Tube Loop','Wire
Loop','Flush'
probe_length INT 10
probe_span INT 10
probe_id INT 10
installation_date_
probe
DATE
corr_rate INT 10
coupon_id_a INT 10
initial_weight_a INT 10
final_weight_a INT 10
color_coupon_a VARCHAR 20
body_attack_a ENUM 'yes','no'
washer_attack_a ENUM 'yes','no'
edge_attack_a ENUM 'yes','no'
erosion_attack_a ENUM 'yes','no'
93
scale_a ENUM 'yes','no'
pitting_a ENUM 'yes','no'
debris_a ENUM 'yes','no'
coupon_id_b INT 10
initial_weight_b INT 10
final_weight_b INT 10
color_coupon_b VARCHAR 20
body_attack_b ENUM 'yes','no'
washer_attack_b ENUM 'yes','no'
edge_attack_b ENUM 'yes','no'
erosion_attack_b ENUM 'yes','no'
scale_b ENUM 'yes','no'
pitting_b ENUM 'yes','no'
debris_b ENUM 'yes','no'
8. Nama Tabel : gl_pigging_facility
Keterangan : Tabel ini berisi data pigging facility
PrimaryKey : id_pig
ForeignKey : id_gl
Tabel 4.8. Spesifikasi Tabel gl_pigging_facility
Field Name Data Type Length Description
id_pig INT 50
94
id_gl INT 100
barrel_length_launch
er
INT 30
nominal_length_laun
cher
INT 30
reducer_length_launc
her
INT 30
bridle_door_launcher INT 30
valve_body_width_la
uncher
INT 30
access_length_launch
er
INT 30
access_width_launch
er
INT 30
barrel_od_launcher INT 30
barrel_id_launcher INT 30
barrel_t_launcher INT 30
nominal_t_launcher INT 30
trap_height_launcher INT 30
kicker_launcher INT 30
balance_pipe_launch
er
INT 30
reducer_type_launche INT 30
95
r
angle_launcher INT 30
barrel_length_receive
r
INT 30
nominal_length_
receiver
INT 30
reducer_length_
receiver
INT 30
bridle_door_ receiver INT 30
valve_body_width_
receiver
INT 30
access_length_
receiver
INT 30
access_width_
receiver
INT 30
barrel_od_ receiver INT 30
barrel_id_ receiver INT 30
barrel_t_ receiver INT 30
nominal_t_ receiver INT 30
trap_height_ receiver INT 30
kicker_ receiver INT 30
balance_pipe_
receiver
INT 30
96
reducer_type_
receiver
INT 30
angle_ receiver INT 30
pigging_type ENUM 'Cleaning','Gauge'
,'Inspection'
cleaning_pigging_rec
omendation
INT 30
cleaning_pigging_act
ivity
INT 30
date_pigging DATE
out_come ENUM 'Debris','Damage',
'Metal Loss'
9. Nama Tabel : gl_pipe_condition
Keterangan : Tabel ini berisi data pipe condition
PrimaryKey : id_pipe_condition
ForeignKey : id_gl
Tabel 4.9. Spesifikasi Tabel gl_pipe_condition
Field Name Data Type Length Description
id_pipe_condi
tion
INT 50
id_gl INT 100
97
original_gl ENUM 'Above Ground with
Support','Under
Ground','None'
location ENUM '1st Location','2nd
Location','3rd Location','4th
Location','5th Location','6th
Location','7th Location','8th
Location','9th Location','10th
Location'
km INT 50
anomaly_leng
th
INT 50
pipe_anomaly ENUM 'Buried','Above Ground with
Support','Lay Down on
Soil','Hanging','None'
type_coating ENUM 'Wrapping','Asphalt
Coating','FBE','3LPE','3LPP','
Protective Coating','Bare'
condition_coa
ting
ENUM '<5%','5%-40%','>40%','No
Data'
10. Nama Tabel : gl_scaling_tendency
Keterangan : Tabel ini berisi data scaling tendency
98
PrimaryKey : id_scaling
ForeignKey : id_gl
Tabel 4.10. Spesifikasi Tabel gl_scaling_tendency
Field Name Data Type Length Description
id_scaling INT 50
id_gl INT 100
fitting_size ENUM '2 Inch Access Fitting','1
Inch Access Fitting','N/A'
access_fitting_type ENUM 'Flare
Weld','Flange','Threadolle
t Nipple'
nos_af INT 20
fitting_manufacture ENUM 'RCS','KS','Caproco','Othe
rs'
condition ENUM 'Unserviceable','Serviceab
le'
plug_manufacture VARCHAR 20
coupon_type ENUM 'Scale Coupon 1
Inch','Scale Coupon 2
Inch','Flush Disc
Coupon','N/A'
holder_length INT 20
99
installation_date DATE
retrieving_date DATE
scale_index INT 10
tendency ENUM 'Possible','Severe','No
Tendency'
scale_growth INT 20
11. Nama Tabel : gl_water_sampling
Keterangan : Tabel ini berisi data water sampling
PrimaryKey : id_water
ForeignKey : id_gl
Tabel 4.11. Spesifikasi Tabel gl_water_sampling
Field Name Data Type Length Description
id_water INT 50
id_gl INT 30
nos INT 30
condition_ws ENUM 'Unserviceable','Service
able'
temperature INT 10
ph INT 10
sand INT 10
h2s INT 10
100
co2_dissolved INT 10
srb ENUM '0','SRB <= 10','10 <
SRB < 100','100 <SRB
< 1000','1000 < SRB <
10000','SRB >=
10000','No Data'
mn INT 10
residual_amine INT 10
residual_phosph
ate
INT 10
residual_sulfit INT 10
alkalinity INT 10
cl INT 10
sulfate INT 10
o2_dissolved INT 10
iron_count INT 10
water_sampling ENUM 'yes','no'
12. Nama Tabel : user
Keterangan : Tabel ini berisi data user atau pengguna
PrimaryKey : username
ForeignKey : -
101
Tabel 4.12. Spesifikasi Tabel user
Field Name Data Type Length Description
username VARCHAR 30
password VARCHAR 40
status ENUM '0','1','2'
4.3.3. Desain Struktur Menu Sistem Informasi
Dalam ”Sistem Informasi Monitoring Korosi Pipa Minyak”
terdapat 3 golongan yang dapat mengakses yaitu admin, manager
(mg), dan field engineer (fe). Ketiga pengguna diatas memiliki
struktur menu yang berbeda, berikut merupakan gambaran hierarki
struktur menu Sistem Informasi Monitoring Korosi Pipa Minyak, ada
Gambar 4.6, 4.7, dan 4.8
102
Sistem InformasiMonitoring Korosi Pipa Minyak
User
New Edit
Database
SQL
Map
GatheringLine
RiskRanking
Home Map Print Print
AdvanceView Map
Logout
Excel
to
Add
User
Save Cancel Save Cancel
Delete
Convert
Excel
Edit
Save Cancel
Gambar 4.6. Struktur Menu Admin
103
Sistem InformasiMonitoring Korosi Pipa Minyak
ChangePassword
AllData
Detail
Save Cancel
ApproveData
Approve Cancel
Map
GatheringLine
RiskRanking
Home Map Print Print
AdvanceView Map
Logout
Review
Detail
Approve Cancel
Gambar 4.7. Struktur Menu Manager
104
Gambar 4.8. Struktur Menu Field Engineer
Sistem Informasi
Monitoring Korosi Pipa Minyak
ChangePassword
AllData
Detail Edit
Save CancelPrint Edit
Save Cancel
Save Cancel
ReviewData
WaitingApprove
Data
CancelApprove
Data
Edit
Save Cancel
Map
GatheringLine
RiskRanking
Home Map Print Print Edit
Save Cancel
AdvanceView Map
Logout
105
4.4. Implementasi Sistem
Pada tahap ini dilakukan implementasi hasil rancangan ke dalam
baris-baris kode program yang dapat dimengerti oleh komputer. Selain itu
juga membahas sarana pendukung lain yang diperlukan agar sistem berjalan
dengan baik.
4.4.1. Sarana Pendukung Aplikasi
Aplikasi ini dikembangkan dengan menggunakan hardware
dan software berikut :
a. Perangkat Keras (Hardware)
o Processor Intel Pentium D CPU 2.80GHz
o Harddisk 80 GB
o Memory DDR2 2 GB
o LAN Card
o DVD – RW
o Keyboard dan Mouse
o Printer Kyocera
b. Perangkat Lunak (Software)
o Windows XP Service Pack 2
o Macromedia Dreamweaver
o XAMPP
o UltraEdit-32 Text Editor
o Mozilla Firefox
106
4.4.2. Pengujian Sistem
Penulis menggunakan metode pengujian unit dengan
pendekatan black-box testing. Black-box testing adalah pengujian
yang dilakukan untuk antar muka perangkat lunak, pengujian ini
dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja
dengan baik dalam arti masukan yang diterima dengan benar dan
keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari
eksternal data berjalan dengan baik (http://widiyati.wordpress.com/,
20 September 2009). Hasil pengujian sistem informasi monitoring
korosi berbasis web dengan pendekatan black-box testing dapat
dilihat pada Lampiran D.
4.4.3. Implementasi Sistem
Dalam implementasi sistem ini dapat berjalan pada browser
Mozilla Firefox, Internet Explorer dan Opera. Dalam pengujian
menggunakan jaringan sistem ini telah diujikan pada sistem operasi
Microsoft Windows XP Service Pack 2.
4.5. Pemeliharaan Sistem
Proses dari SDLC yang terakhir merupakan proses maintenance
yaitu perawatan dalam sistem. Proses perawatan meliputi pengupdatean
data, pengelolaan database, backup database dan perawatan komponen
107
hardware. Proses ini dapat dilakukan jika dalam proses implementasi sistem
user (Administrator) dapat mengoperasikan sistem dengan baik.
108
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan uraian dan pembahasan pada bab-bab sebelumnya, maka
dapat ditarik kesimpulan bahwa :
1. Dengan sistem informasi ini dapat mempercepat pengolahan data dan
pembuatan laporan, serta informasi yang dihasilkan lebih akurat, cepat dan
lengkap, sehingga terjadinya kesalahan-kesalahan yang disebabkan
keterbatasan seperti human error atau ketidaksengajaan dapat dikurangi.
2. Sistem Informasi Monitoring Korosi Pipa Minyak Berbasis Web sehingga
dapat digunakan dimana saja oleh pengguna dengan menggunakan akses
internet. Hal tersebut akan lebih memudahkan pekerjaan dan dapat
meningkatkan kelancaran proses pembuatan tindakan perbaikan maupun
pencegahan yang perlu dilakukan pada suatu jaringan pipa.
5.2 Saran
Berdasarkan kesimpulan-kesimpulan yang telah dikemukakan, dapat
diajukan beberapa saran untuk pengembangan lebih lanjut antara lain :
1. Mengadakan suatu pelatihan bagi pengguna yang menggunakan sistem ini
sehingga dalam pengoperasiannya mendapatkan hasil yang maksimal.
2. Karena sistem ini hanya digunakan untuk mengolah data yang berasal dari
inputan engineer. Maka untuk pengembangan lebih lanjut, data yang
109
diproses adalah data yang berasal langsung dari alat-alat yang digunakan
untuk memantau aktivitas korosi pada suatu jaringan pipa minyak.
110
DAFTAR PUSTAKA
API (American Petroleum Institute). 2002. Risk-based Inspection. API,
Washington.
Hartono, Jogiyanto. 2005. Analisis & Desain Informasi: pendekatan terstruktur
teori dan praktek aplikasi bisnis. Andi, Yogyakarta.
Kadir, Abdul. 2003. Pengenalan Sistem Informasi. Jakarta : Graha Ilmu
Muhlbauer, W. Kent. 2004. Pipeline Risk Management Manual Ideas,
Techniques, and Resources Third Edition. Elsevier, Oxford.
NACE (International the Corrosion Society) Standard. 1999. NACE
International. Texas.
Peabody, A. W. 2001. Peabody's Control of Pipeline Corrosion Second Edition.
NACE International, Texas.
Pierre, R. Roberge. 2008. Corrosion Engineering Principles and Practice.
McGraw-Hill, New York.
Sanjaya, Ridwan. 2006. Rekayasa Grafis dengan Menggunakan PHP. Penerbit
Andi, Yogyakarta.
Sidik, Betha. 2004. Pemrograman Web dengan PHP. Informatika, Jakarta.
Sidik, Betha. 2005. MySQL. Informatika, Bandung
111
Sidik, Betha. 2005. MySQL untuk Pengguna, Administrator, & Pengembang
Aplikasi Web. Informatika, Jakarta.
Simarta, J. & Paryudi, I. 2006. Basis Data. Penerbit Andi, Yogyakarta.
Siswoutomo, Wiwit. 2004. Membangun Web Service Open Source Menggunakan
PHP. Penerbit PT Elex Media Komputindo, Jakarta.
Syafii, M., 2005. Panduan Membuat Aplikasi Database dengan PHP 5 MySQL
PostgreSQL Oracle. Penerbit Andi, Yogyakarta.
Wahana Komputer. 2006. Seti Panduan Lengkap Menguasai Pemrograman Web
dengan PHP5. Penerbit Andi, Yogyakarta, Wahana Komputer,
Semarang.
Whitten, Jeffery L, Lonnie D. Bentley, Kevin C. Dittman. 2004. System
Analysis and Design Methods 6th. New York : McGraw-Hill
112
DAFTAR PUSTAKA PENUNJANG
http://id.wikipedia.org/ wiki/Korosi , 12 September 2009, pk. 08.45 WIB.
http://W3Schools.com, 15 September 2009, pk. 10.30 WIB
http://www.w3.org, 22 September 2009, pk. 08.00 WIB
http://ilmukomputer.com, 05 Desember 2009, pk. 14.45 WIB
http://www.ilmuwebsite.com, 10 Desember 2009, pk. 10.45 WIB
http://lifting.migas.esdm.go.id/, 12 Desember 2009, pk. 16.45 WIB
113
LAMPIRAN A
WAWANCARA
1. Wawancara 1
Institusi : PT. Wilson Walton Indonesia
Tanggal : 10 Maret 2009
Nama Responden : Bapak Teddy Firmansyah
Jabatan : Operation Manager
No. Pertanyaan Jawaban
1. Apa tugas dari Bidang
Operation ?
Secara garis besar tugasnya adalah
melakukan perencanaan dan pelaksana
program yang telah dirancang di bidang
korosi, baik itu program perawatan pipa,
perbaikan pipa ataupun survey pada suatu
jaringan pipa.
2. Apa peran teknologi
komputer pada bidang
korosi pipa minyak?
Peran teknologi komputer pada bidang
korosi pipa minyak memiliki peran yang
cukup penting pada bidang korosi, mulai
dari proses perencanaan, proses
pelaksanaan, sampai proses analisa hasil
pelaksanaan. Yaitu sebagai alat bantu
dalam proses penyimpanan, perhitungan
dan analisa data.
3. Apa ada suatu inovasi yang
ingin diwujudkan pada
bidang korosi dengan
memanfaatkan teknologi
komputer ?
Ya ada, kami selaku kontraktor sekaligus
konsultan dibidang korosi menginginkan
membantu klien-klien kami dalam proses
penyimpanan data-data pipa. Karena kami
melihat, banyak klien kami kurang
memperhatikan dalam penyimpanan data-
data tersebut. Sehingga jika data-data
114
tersebut dibutuhkan, memerlukan waktu
yang cukup lama untuk mendapatkan data-
data tersebut.
4. Bagaimana bentuk sistem
yang sedang berjalan di
klien ?
Pertama operator lapangan melakukan
monitoring berupa pengumpulan data
korosi pada suatu jaringan pipa. Data-data
tersebut dicatat pada lembaran-lembaran
kertas. Data-data tersebut yang berupa
catatan, kemudian diserahkan ke Field
Engineer (FE) untuk di analisa. Hasil
analisa tersebut berupa perkiraan keadaan
pipa, berdasarkan data-data tersebut. Hasil
analisa tersebut kemudian dikirim ke kantor
pusat, tepatnya ke General Manager (GM)
melalui email. Setelah GM mendapat hasil
analisa tersebut, GM dapat memutuskan
tindakan yang perlu dilakukan pada suatu
jaringan pipa.
5. Apa kekurangan yang
terdapat pada sistem yang
sedang berjalan ?
Ada beberapa kekurangan yang terdapat
pada sistem yang sedang berjalan:
a. Media penyimpanan data yang hanya
menggunakan lembaran-lembaran
kertas.
b. Proses penganalisaan data yang belum
mempunyai bentuk baku untuk
menganalisa data.
c. Pengiriman hasil analisa
6. Apa alternatif pemecahan
masalah yang ingin
ditawarkan ?
Iya ada beberapa alternatif pemecahan
masalah tersebut diantaranya:
a. Dibuat suatu database, sebagai media
lain yang digunakan untuk penyimpanan
data.
115
b. Data dari database tersebut selanjutnya
dapat langsung diproses sehingga
menghasilkan suatu analisa hasil
monitoring korosi pada pipa.
c. Baik data ataupun hasil analisa data
monitoring korosi pipa dapat dilihat dari
mana saja tidak terbatas oleh ruang.
Karena jarak antar jaringan pipa yang
berjauhan dan apalagi jarak antara
jaringan pipa dengan kantor pusat.
7. Bagaimana bentuk sistem
yang ingin ditawarkan ?
Pertama operator lapangan melakukan
monitoring berupa pengumpulan data
korosi pada suatu jaringan pipa. Data-data
tersebut dicatat pada lembaran-lembaran
kertas. Data-data tersebut yang berupa
catatan, kemudian diinputkan ke suatu
sistem informasi oleh operator. Dari sistem
informasi tersebut baik GM ataupun FE
dapat melihat keadaan pipa dari hasil
monitoring lapangan. Dari sistem informasi
tersebut juga didapat suatu rekomendasi,
rekomendasinya yaitu berupa tindakan
yang perlu dilakukan pada suatu jaringan
pipa.
2. Wawancara 2
Institusi : PT. Wilson Walton Indonesia
Tanggal : 10 Maret 2009
Nama Responden : Bapak Wahyudi Wibawa
Jabatan : Field Engineer spesialis korosi eksternal
116
No. Pertanyaan Jawaban
1. Apa pengertian dari korosi
eksternal pada suatu pipa ?
Korosi eksternal pada suatu pipa secara
umum adalah korosi yang diakibatkan oleh
faktor luar (lingkungan).
2. Apa saja yang termasuk
faktor lingkungan yang
menyebabkan terjadinya
korosi eksternal ?
Faktor lingkungan yang menjadi penyebab
korosi eksternal diantaranya temperatur,
tanah, air.
3. Bagaimana cara
penganalisaan data korosi
eksternal yang ada sekarang
ini ?
Cara penganalisaan dimulai dari data yang
didapat dari operator lapangan kami
kumpulkan. Kemudian kami analisa
dengan program excel. Setelah hasilnya
didapat, kami laporkan ke manager.
4. Apakah dengan sistem yang
sekarang ini, baik proses
maupun hasil sudah baik ?
Belum baik, karena dalam proses
penganalisaan sehingga menghasilkan
suatu kesimpulan diantara kami, hasilnya
berbeda.
5. Mengapa bisa terjadi
perbedaan hasil tersebut ?
Perbedaan tersebut terjadi, karena kami
memiliki proses penganalisaan yang
berbeda-beda.
6. Data apa saja yang termasuk
ke dalam korosi eksternal ?
Yang termasuk ke dalam data korosi
eksternal diantaranya: data external
corrosion protection, dan data pipe
condition.
3. Wawancara 3
Institusi : PT. Wilson Walton Indonesia
Tanggal : 10 Maret 2009
Nama Responden : Bapak Paul Indrawan Syukur
Jabatan : Field Engineer spesialis internal
117
No. Pertanyaan Jawaban
1. Apa pengertian dari korosi ? Korosi adalah degradasi atau penurunan
kualitas dari material pipa yang
disebabkan akibat interaksi dengan
lingkungan sekitar.
2. Apa itu korosi internal dan
data-data apa saja yang
berkaitan dengan korosi
internal ?
Korosi internal adalah korosi yang
disebabkan oleh material asing yang ada
atau terbawa dari proses produksi minyak.
Data-data yang berkaitan dengan korosi
internal diantaranya : data scaling
tendency, data water sampling, data
internal corrosion monitoring device, data
corrosion risk, data corrosion rate, data
chemical treatment.
3. Menurut anda apa saja
keuntungan yang akan
didapat dari pembuatan
sistem informasi monitoring
korosi ?
Keuntungan yang paling utama adalah
pasti dari sisi finansial, karena dengan
adanya sistem informasi ini diharapkan
hasil akhir keadaan suatu pipa dapat
didapat lebih cepat. Sehingga manager
dapat memberi suatu keputusan (decision)
tentang tindakan perbaikan atau
pencegahan. Mengapa dikatakan
keuntungan utama dari sisi finansial,
karena dengan sistem informasi ini
diharapkan keputusan dan rekomendasi
yang dihasilkan lebih tepat. Karena selama
ini biaya untuk perwatan ataupun
perbaikan suatu pipa terus meningkat dari
tahun ke tahun, sedangkan produksi
minyak dari tahun ke tahun terus menurun.
Jadi dapat kita simpulkan bahwa
118
perawatan ataupun perbaikan yang selama
ini dilakukan kurang tepat, hal tersebut
bisa saja diakibatkan karena tidak adanya
tingkatan prioritas.
4. Wawancara 4
Institusi : PT. Wilson Walton Indonesia
Tanggal : 10 Maret 2009
Nama Responden : Bapak Bashari Rozardi
Jabatan : Field Engineer spesialis pipeline integrity
No. Pertanyaan Jawaban
1. Apa pengertian pipeline
integrity ?
Pipeline integrity adalah kesatuan dari
seluruh komponen pipa, yang berupa data
internal corrosion, data eksternal corrosion
dan data general.
2. Data apa saja yang ada di
dalam data general ?
Data general diantaranya yaitu data desain
jaringan pipa dan data produksi pipa.
3. Apa komentar Anda dengan
akan dibuatnya suatu sistem
informasi monitoring korosi
?
Saya sangat mengharapkan, sistem yang
akan dibuat dapat melakukan semua
tahapan analisa sehingga menghasilkan
suatu kesimpulan, seperti yang kami
lakukan. Tetapi perbedaanya yaitu dengan
sistem yang baru proses penganalisaan
data dilakukan dengan lebih mudah, hasil
yang didapat bisa lebih cepat.
119
Kesimpulan Wawancara :
o Tugas dari bagian operation adalah melakukan perencanaan dan pelaksana
program yang telah dirancang di bidang korosi, baik itu program perawatan
pipa, perbaikan pipa ataupun survey pada suatu jaringan pipa.
o Hasil data monitoring korosi pipa hanya menggunakan lembaran-lembaran
kertas sebagai media penyimpanannya, belum adanya bentuk baku untuk
menganalisa data.
Dari kesimpulan di atas dapat diketahui bahwa proses penyimpanan dan
penganalisaan data monitoring korosi masih belum efektif sehingga dibutuhkan
suatu sistem informasi yang dapat digunakan penganalisaan data monitoring
korosi dan sebagai penyimpanan data aset pipa yang dapat diakses kapan saja dan
dimana saja, sehingga General Manager dapat memutuskan tindakan apa yang
perlu dilakukan pada suatu jaringan pipa.
120
LAMPIRAN B
KUESIONER
Kuesioner ini bertujuan untuk meminta pendapat kepada para Engineer dan
Manager setelah mencoba “Sistem Informasi Monitoring Korosi Pipa Minyak
Berbasis Web” yang penulis ajukan.
Nama :
Jabatan : Engineer / Manager
1. Apakah Anda sudah mencoba menggunakan “Sistem Informasi
Monitoring Korosi Pipa Minyak Berbasis Web” ?
a. Ya b. Tidak
2. Bagaimana prosedur pengoperasian “Sistem Informasi Monitoring Korosi
Pipa Minyak Berbasis Web” ?
a. Sangat Mudah b. Mudah
c. Sulit d. Sangat Sulit
3. Apakah akses informasi yang diberikan oleh “Sistem Informasi
Monitoring Korosi Pipa Minyak Berbasis Web” ini sudah memadai ?
a. Sangat Memadai b. Memadai
c. Cukup Memadai d. Kurang Memadai
4. Apakah pada waktu sistem ini Anda gunakan pernah terjadi error atau
tidak sesuai dengan permintaan yang diminta ?
a. Pernah b. Tidak Pernah
5. Bagaimana tanggapan Anda mengenai pengembangan sistem informasi
ini, untuk mengakses ataupun memproses data korosi ?
a. Sangat Baik b. Baik
c. Cukup d. Kurang
121
6. Menurut Anda, apakah sistem informasi ini layak untuk dijadikan sebagai
database data korosi dan penganalisa data korosi ?
a. Sangat Layak b. Layak
c. Cukup Layak d. Kurang Layak
122
TRANSKIP KUESIONER
Responden : 9 Engineer, 1 Manager PT. Wilson Walton Indonesia
Jenis Kuesioner : Kuesioner tertutup, yaitu responden diminta untuk
memilih jawaban yang telah disediakan.
Tujuan : Meminta tanggapan dan pendapat kepada para Engineer
atau Manager mengenai “Sistem Informasi Monitoring
Korosi Pipa Minyak Berbasis Web” apakah sistem ini
layak untuk diterapkan.
Berikut Pertanyaan dan Hasil Persentasi Kuesioner yang didapat :
Jumlah Responden Jumlah No Pertanyaan
yang memilih Persentase %
1 Apakah Anda sudah mencoba
menggunakan "Sistem Informasi
Monitoring Korosi Pipa Minyak
Berbasis Web" ?
a. Ya 10 100
b. Tidak 0 0
2 Bagaimana prosedur pengoperasian
"Sistem Informasi Monitoring Korosi
Pipa Minyak Berbasis Web" ?
a. Sangat Mudah 2 20
b. Mudah 7 70
c. Sulit 1 10
d. Sangat Sulit 0 0
3 Apakah akses informasi yang diberikan
oleh "Sistem Informasi Monitoring
123
Korosi Pipa Minyak Berbasis Web"
ini sudah memadai ?
a. Sangat Memadai 2 20
b. Memadai 6 60
c. Cukup Memadai 2 20
d. Kurang Memadai 0 0
4 Apakah pada waktu sistem ini Anda
gunakan pernah terjadi error atau
tidak sesuai dengan permintaan
yang diminta ?
a. Pernah 0 0
b. Tidak Pernah 10 100
5 Bagaimana tanggapan Anda mengenai
pengembangan sistem informasi ini,
untuk mengakses ataupun memproses
data korosi ?
a. Sangat Baik 1 10
b. Baik 8 80
c. Cukup 1 10
d. Kurang 0 0
6 Menurut Anda, apakah sistem informasi
ini layak untuk dijadikan sebagai
database data korosi dan penganalisa
data korosi ?
a. Sangat Layak 1 10
b. Layak 6 60
c. Cukup Layak 3 30
d. Kurang Layak 0 0
124
LAMPIRAN C
TAMPILAN APLIKASI
1. Halaman Login Pengguna
125
2. Halaman Utama Administrator
126
3. Halaman Administrasi Pengguna Sistem Informasi
127
4. Form Pengguna baru
128
5. Halaman Edit Akses Pengguna
129
6. Halaman Administrasi Backup Database
130
7. Halaman Utama Field Engineer (FE)
131
8. Halaman Ganti Password FE
132
9. Halaman Waiting Approval Data
133
10. Map Stasiun Rawa
134
11. Halaman Utama Gathering Line (GL)
135
12. Halaman Risk Ranking
136
13. Halaman General
137
14. Halaman Internal Corrosion Monitoring Device
138
15. Halaman Water Sampling
139
16. Halaman Chemical Treatment
140
17. Halaman Scaling Tendency
141
18. Halaman External Corrosion Protection
142
19. Halaman Corrosion Risk Data
143
20. Halaman Corrosion Rate
144
21. Halaman Pigging Facility
145
22. Halaman Pipe Condition
146
23. Halaman Edit Password Manager (MG)
147
24. Halaman Approval Data
148
25. Halaman Review Data Korosi
149
LAMPIRAN D
PENGUJIAN
Dibawah ini merupakan tabel hasil pengujian dari ”Sistem Informasi Monitoring
Korosi Pipa Minyak Berbasis Web (Studi Kasus : PT. ConocoPhillips Inc. Ltd)” :
No. Rancangan Proses Hasil Yang Diharapkan Hasil Keterangan
1. Mulai menjalankan
sistem dengan
halaman login
pengguna
Masuk halaman login Sesuai
2. Inputan halaman
login (username dan
password), diperiksa
ke dalam database.
Pengguna termasuk ke
salah satu dari pengguna
yang dapat mengakses
sistem informasi ini, yaitu:
administrator, Field
Engineer (FE) dan
Manager (MG)
Sesuai
3. Masuk halaman
utama administrator.
Terdapat 4 link, yaitu:
User, Database, Map dan
logout.
Sesuai
4. Masuk halaman user
pada admin.
Terdapat link untuk
membuat pengguna baru,
Sesuai
150
pengedit ataupun
menghapus pengguna yang
ada.
5. Masuk halaman
pengguna baru.
Dapat dibuatnya pengguna
baru dengan username,
password dan akses yang
diinputkan.
Sesuai
6. Masuk halaman edit
pengguna yang ada.
Data pengguna yang ada
dapat diubah sesuai dengan
yang diinginkan.
Sesuai
7. Pada halaman user
pada admin, klik
hapus salah satu
pengguna.
Terhapusnya data
pengguna tersebut.
Sesuai
8. Pada halam backup
database pada
halaman admin.
Backup dapat
menghasilkan 2 buah
format backup, yaitu: sql
dan excel.
Sesuai
9. Pada halaman Field
Engineer (FE),
terdapat link change
password.
Password FE dapat diubah
sesuai dengan yang
diinputkan.
Sesuai
10. Pada halaman Dapat dilihat data yang Sesuai
151
Review data. menunggu approval dan
data yang di cancel
Manager.
11. Link pada halaman
map.
Link pada setiap gathering
line.
Sesuai
12. Link risk ranking
pada halaman utama
gathering line.
Di dapat risk ranking pada
gathering line tersebut.
Sesuai
13. Link advance view
pada halaman utama
gathering line
Dapat dilihat detail data
dari suatu gathering line.
Sesuai
14. Link edit pada
halaman detail
gathering line.
Dapat diinputkan
perubahan data yang terjadi
pada suatu gathering line.
Sesuai
15. Link change
password pada
halaman utama
Manager.
Password manager berubah
sesuai dengan yang
diinputkan.
Sesuai
16. Link approval data
pada halaman utama
Manager.
Terdapat data yang
menunggu approval
ataupun data yang telah di
cancel Manager.
Sesuai
17. Link pada waiting Manager dapat Sesuai
152
approve data. memutuskan dengan
memilih salah satu link
yang ada, diantaranya:
approve data, cancel data
ataupun melihat dengan
detail data tersebut.
153
LAMPIRAN E SOURCE CODE
1. index.htm <html> <head> <title>Login WWI</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor=black text="#FFFFFF"> <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr align="left" valign="bottom"> <td colspan="3" valign="middle"> <form name="form1" method="post" action="login.php"> <table width="150" border="3" align="center" cellpadding="0" cellspacing="0" bordercolor="#666666"> <tr> <td width="300"><table width="285" height="97" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#0033CC"> <!--DWLayoutTable--> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top" align=center> <img src=image/login.png> <font size="4" face="Verdana, Arial, Helvetica, sans-serif">Login</font> </td> </tr> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top"> </td> </tr> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top"> </td> </tr> <tr align="left" valign="middle"> <td> </td> <td width="64" height="22"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Username:</font></p> </td> <td> </td> </tr> <tr align="left" valign="bottom"> <td> </td> <td height="19" colspan="3" valign="top" width="194"> <input name="username" type="text" id="username" size="32"> </td> <td> </td> </tr> <tr align="left" valign="middle"> <td> </td> <td height="19"> <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Password:</font></p></td> <td> </td> </tr> <tr align="left" valign="bottom"> <td> </td> <td height="19" colspan="3" valign="top"> <input name="password" type="password" id="password" size="32"></td> </td> <td> </td> </tr> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top"> </td> </tr> <tr align="left" valign="bottom"> <td> </td>
154 <td height="17" colspan="3"><div align="center"> <input type="submit" name="Submit" value="Submit"> <input type="reset" name="Reset" value="Reset"> </div></td> <td> </td> </tr> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top"> </td> </tr> <tr align="left" valign="bottom"> <td> </td> <td height="19" colspan="3" valign="top" align=center> <p><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color=red>@ 2010 PT. Wilson Walton Indonesia</p> </td> <td> </td> </tr> <tr align="left" valign="bottom"> <td height="19" colspan="3" valign="top"> </td> </tr> </table></td> </tr> </table> </form></td> </tr> </table> </body> </html> 2. database.php <? $database="copi"; $hostname="localhost"; $user="root"; $pass=""; $koneksi=mysql_connect($hostname,$user,$pass); mysql_select_db($database,$koneksi); ?> 3. login.php <?php include("database.php"); if(ereg("[a-z]|[A-Z]|[0-9]$",$username) && ereg("[a-z]|[A-Z]|[0-9]$",$password)) { $pass=md5($password); $perintah="SELECT * FROM user WHERE username = '$username'"; $query=mysql_query($perintah) or die ("ada yg salah"); $data=mysql_fetch_array($query); $sesi_useradm=$data[username]; $sesi_usermg=$data[username]; $sesi_userfe=$data[username]; $sesi_userop=$data[username]; $sesi_user=$data[username]; $sesi_adm=$data[username]; if($pass=="") $pass=" "; if ($pass != $data[password] || $username!=$data[username]) { header("Location:index.htm"); } else { session_start(); if($data[status]=='0') { //Admin session_register('sesi_useradm'); header("Location:admin/index.php"); } else if($data[status]=='1') {
155 //MG session_register('sesi_usermg'); $user_loginmg = $data[username]; header("Location:mg/index.php"); } else if($data[status]=='2') { //FE session_register('sesi_userfe'); $user_loginfe = $data[username]; header("Location:fe/index.php"); } else { header("Location:index.htm"); } } mysql_free_result($query); } else { header("Location:index.htm"); } ?> 4. session.php <?php session_start(); if (session_is_registered("sesi_useradm")) { } else header("Location:../index.htm"); ?> 5. index.php (admin) <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <br><br> <h1>Admin</h1> <br><br> <table> <tr> <td align=center> <a href="user.php?hal=1"><img src="../image/user.png" alt="a" width="64"></a> </td align=center> <td> <a href="backup_db.php"><img src="../image/database.png" alt="a" width="64"></a> </td> <td align=center>
156 <a href="map.php"><img src="../image/map.png" alt="a" width="64"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="64"></a> </td> </tr> <tr> <td align=center> User </td> <td align=center> Database </td> <td align=center> Map </td> <td align=center> Logout </td> </tr> </table> </center> </body> </html> 6. user.php <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <br> <table> <tr> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br> <h2>User</h2>
157<a href=add_user.php><img src=../image/add.png width=32></a><br> Add New User <table border=1 cellpadding=0 cellspacing=0 align="center"> <tr align="center"> <th bgcolor= class=> Username </th> <th bgcolor= class=> Password </th> <th bgcolor= class=> Status </th> <th bgcolor= class=> Area </th> <th bgcolor=> </th> <th bgcolor=> </th> </tr> <? $table = user; $i=1; $hal = $_GET[hal]; if(!isset($_GET['hal'])) { $page = 1; } else { $page = $_GET['hal']; } $max_results = 21; $from = (($page * $max_results) - $max_results); $query = mysql_query("SELECT * FROM $table ORDER BY username ASC LIMIT $from, $max_results "); while($baris = mysql_fetch_array($query)) { if($i%2) { echo "<tr bgcolor=>"; } else { echo "<tr bgcolor=>"; } echo" <td><font class=style8> $baris[0] </td> <td><font class=style8> $baris[1] </td> <td align=center><font class=style8>$baris[2]</td> <td align=center><font class=style8>$baris[3]</td> <td><a href='edit_user.php?username=$baris[0]' class=style2><img src=../image/edit.png width=32></a></td> <td><a href='del_user.php?username=$baris[0]' class=style2><img src=../image/delete.png width=32></a></td> </tr>"; $i++; } echo "</table><br><br>"; $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM $table"),0); $total_pages = ceil($total_results / $max_results); echo "<center><b><font class=style7>Select a Page</font></b><br>"; if($hal > 1) { $prev = ($page - 1); echo "<a href=$_SERVER[PHP_SELF]?hal=$prev> <-Previous </a> "; } for($i = 1; $i <= $total_pages; $i++) { if(($hal) == $i) { echo "$i "; } else { echo "<a href=$_SERVER[PHP_SELF]?hal=$i>$i</a> "; } } // Build Next Link if($hal < $total_pages) { $next = ($page + 1); echo "<a href=$_SERVER[PHP_SELF]?hal=$next>Next-></a>"; } ?> </center> </body> </html>
158 7. add_user.php <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <table> <tr> <td align=center> <a href="user.php?hal=1"><img src="../image/back.png" alt="a" width="32"></a> </td> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Back </td> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br> <h2>Form New User</h2> <div align=center> <form action="p_user.php" method="post"> <table width="400" height="140" border="0" align="center" cellpadding="0" cellspacing="0"> <tr align="left" valign="middle"> <td width="28" height="25" class="style7">Username</td> <td width="8" height="25" class="style7">:</td> <td width="92" height="25"><input name="username" type="text" id="username"></td> </tr> <tr align="left" valign="middle"> <td width="26" height="25" class="style7">Password</td> <td width="8" height="25" class="style7">:</td> <td height="25"><input name="password" type="password" id="password"></td> </tr> <tr align="left" valign="middle"> <td width="26" height="25" class="style7">Status</td> <td width="8" height="25" class="style7">:</td> <td height="25"> <select name="status">
159 <option value="">------- Status -------</option> <option value="0">Admin</option> <option value="1">GM</option> <option value="2">FE</option> <option value="3">OP</option> </td> </tr> <tr align="left" valign="middle"> <td width="26" height="25" class="style7">Area</td> <td width="8" height="25" class="style7">:</td> <td height="25"><input name="area" type="text" id="area"></td> </tr> <tr> <td height="25" colspan="3"><div align="center"><br> <input type="submit" name="Submit" value="Save"> <a href="user.php?hal=1"><input type="reset" value="Cancel"></a> </div> </td> </tr> </table> </form> </div> </center> </body> </html> 8. p_user.php <html> <body> <? include "session.php"; include "database.php"; $username=$_POST["username"]; $password=$_POST["password"]; $status=$_POST["status"]; $area=$_POST["area"]; $perintah="select username from user where username='$username'"; $query=mysql_query($perintah); if($jumlah=mysql_num_rows($query)>0) { echo "<br><table align=center valign=middle><tr><td align=center class=style7>"; echo "Username yang dimasukkan sudah ada di dalam database !!!</td></tr>"; echo "<tr><td align=center><input type=button name=Submit value=Back onClick=self.history.back();>"; echo "</td></tr></table>"; } else { $pass=md5($password); $query2 ="INSERT INTO user (username,password,status,area) VALUES"; $query2 .="('$username','$pass','$status','$area')"; $hasil_mysql2=mysql_query($query2, $koneksi); if($query2) { header("Location:user.php"); } } ?> </body> </html>
9. edit_user.php <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); }
160 #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <h1>Admin</h1> <table> <tr> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br> <? include("database.php"); $query=mysql_query("select * from user where username='$username'", $koneksi) or die (mysql_error()); while($row=mysql_fetch_array($query)) { echo "<form method=post action=pedituser.php>"; echo "<center><table width=420 height=140 border=0 align=center cellpadding=0 cellspacing=0>"; echo "<tr><td height=50 colspan=3 align=center>"; echo "<b><font size=3 class=style7>Edit User</font></b></td></tr>"; echo "<tr align=left>"; echo "<td width=26 height=25 class=style7></td>"; echo "<td width=8 height=25 class=style7></td>"; echo "<td height=25 class=style7> <input type=\"hidden\" name=\"username\" value=\"$row[0]\">"; echo "<tr align=left valign=middle>"; echo "<td width=96 height=25 class=style7>Username</td>"; echo "<td width=8 height=25 class=style7>:</td>"; echo "<td height=25>$row[0]"; echo "</td></tr>"; echo "<tr align=left valign=middle>"; echo " <td width=96 height=25 class=style7>Password</td>"; echo "<td width=8 height=25 class=style7>:</td>"; echo "<td height=25><input name=\"password\" type=\"password\">"; echo "</td></tr>"; echo "<tr align=left valign=middle>"; echo "<td width=26 height=25 class=style7>Status</td>"; echo "<td width=8 height=25 class=style7>:</td>"; echo "<td height=25><select name=\"status\">"; if($row[2]=='0') { echo "<option value=>------- Status -------</option>"; echo "<option value=\"0\" selected=\"selected\">Admin</option>"; echo "<option value=\"1\">GM</option>"; echo "<option value=\"2\">FE</option>"; echo "<option value=\"3\">OP</option>"; } elseif($row[2]=='1') { echo "<option value=>------- Status -------</option>"; echo "<option value=\"0\">Admin</option>"; echo "<option value=\"1\" selected=\"selected\">GM</option>"; echo "<option value=\"2\">FE</option>"; echo "<option value=\"3\">OP</option>"; } elseif($row[2]=='2') {
161 echo "<option value=>------- Status -------</option>"; echo "<option value=\"0\">Admin</option>"; echo "<option value=\"1\">GM</option>"; echo "<option value=\"2\" selected=\"selected\">FE</option>"; echo "<option value=\"3\">OP</option>"; } elseif($row[2]=='3') { echo "<option value=>------- Status -------</option>"; echo "<option value=\"0\">Admin</option>"; echo "<option value=\"1\">GM</option>"; echo "<option value=\"2\">FE</option>"; echo "<option value=\"3\" selected=\"selected\">OP</option>"; } else { echo "<option value=>------- Status -------</option>"; echo "<option value=\"0\">Admin</option>"; echo "<option value=\"1\">GM</option>"; echo "<option value=\"2\">FE</option>"; echo "<option value=\"3\">OP</option>"; } echo "<td></tr>"; echo "<tr><td> </td></tr>"; echo "<tr> <td colspan=3 align=center><div align=\"center\"><a href=user.php?hal=1><input type=button name=\"cancel\" value=\"cancel\"></a> <input type=\"submit\" name=\"submit\" value=\"update\"></td></tr>"; echo "<tr><td> </td></tr>"; echo "</form>"; echo "</table>"; } ?> </center> </body> </html> 10. pedituser.php <html> <body> <? include "session.php"; include "database.php"; $username=$_POST["username"]; $password=$_POST["password"]; $status=$_POST["status"]; $area=$_POST["area"]; $pass=md5($password); $query="UPDATE user set password='$pass',status='$status',"; $query .="area='$area' where username='$username'"; $hasil_mysql=mysql_query($query, $koneksi); if($query) { header("Location:user.php?hal=1"); } ?> </body> </html> 11. backup_db.php <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); }
162 #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <br> <table> <tr> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br><br> <b><h2>Backup Database<h2></b><br> <table> <tr> <td align=center> <a href="sql_backup.php"><img src="../image/sql.png" alt="a" width="64"></a> </td> <td align=center> <a href="xls_backup.php"><img src="../image/excel.png" alt="a" width="64"></a> </td> </tr> <tr> <td align=center> SQL </td> <td align=center> Excel </td> </tr> </table> </center> </body> </html> 12. sql_backup.php <? include("database.php"); include("session.php"); $target="file"; if($target=="file") { header('Content-Type: application/octetstream'); header('Content-Disposition: filename="backup.sql"'); $asfile="download"; } $crlf="\r\n"; $link = mysql_connect("localhost", "root", ""); $database = mysql_select_db("medco"); $dbname = "medco"; $dump_buffer=""; $tables = mysql_query("show tables from $dbname"); $num_tables = mysql_num_rows($tables);
163 if($num_tables == 0) { echo "# No Tables Found"; exit; } $dump_buffer.= "# DatabaseBackup $crlf"; $dump_buffer.= "# Backup made:$crlf"; $dump_buffer.= "# ".date("F j, Y, g:i a")."$crlf"; $dump_buffer.= "# Database: $dbname$crlf"; $dump_buffer.= "# Backed up tables : $dbname $crlf"; $i = 0; while($i < $num_tables) { $table = mysql_tablename($tables, $i); //echo $table . "<br>"; $dump_buffer.= "# --------------------------------------------------------$crlf"; $dump_buffer.= "$crlf#$crlf"; $dump_buffer.= "# Table structure for table '$table'$crlf"; $dump_buffer.= "#$crlf$crlf"; $db = $table; $dump_buffer.= get_table_def($table, $crlf,$dbname).";$crlf"; $dump_buffer.= "$crlf#$crlf"; $dump_buffer.= "# Dumping data for table '$table'$crlf"; $dump_buffer.= "#$crlf$crlf"; $tmp_buffer=""; get_table_content($dbname, $table, 0, 0, 'my_handler', $dbname); $dump_buffer.=$tmp_buffer; $i++; $dump_buffer.= "$crlf"; } echo $dump_buffer; exit; function get_table_def($table, $crlf,$dbname) { $schema_create = "DROP TABLE IF EXISTS $table;$crlf"; $db = $table; $schema_create .= "CREATE TABLE $table ($crlf"; $result = mysql_query("SHOW FIELDS FROM " .$dbname."." . $table) or die(); while($row = mysql_fetch_array($result)) { $schema_create .= " $row[Field] $row[Type]"; if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0")) $schema_create .= " DEFAULT '$row[Default]'"; if($row["Null"] != "YES") $schema_create .= " NOT NULL"; if($row["Extra"] != "") $schema_create .= " $row[Extra]"; $schema_create .= ",$crlf"; } $schema_create = ereg_replace(",".$crlf."$", "", $schema_create); $result = mysql_query("SHOW KEYS FROM " .$dbname."." . $table) or die(); while($row = mysql_fetch_array($result)) { $kname=$row['Key_name']; $comment=(isset($row['Comment'])) ? $row['Comment'] : ''; $sub_part=(isset($row['Sub_part'])) ? $row['Sub_part'] : ''; if(($kname != "PRIMARY") && ($row['Non_unique'] == 0)) $kname="UNIQUE|$kname"; if($comment=="FULLTEXT") $kname="FULLTEXT|$kname"; if(!isset($index[$kname])) $index[$kname] = array(); if ($sub_part>1) $index[$kname][] = $row['Column_name'] . "(" . $sub_part . ")"; else $index[$kname][] = $row['Column_name']; } while(list($x, $columns) = @each($index)) { $schema_create .= ",$crlf"; if($x == "PRIMARY") $schema_create .= " PRIMARY KEY ("; elseif (substr($x,0,6) == "UNIQUE") $schema_create .= " UNIQUE " .substr($x,7)." ("; elseif (substr($x,0,8) == "FULLTEXT") $schema_create .= " FULLTEXT ".substr($x,9)." ("; else
164 $schema_create .= " KEY $x ("; $schema_create .= implode($columns,", ") . ")"; } $schema_create .= "$crlf)"; if(get_magic_quotes_gpc()) { return (stripslashes($schema_create)); } else { return ($schema_create); } } function get_table_content($db, $table, $limit_from = 0, $limit_to = 0,$handler) { // Defines the offsets to use if ($limit_from > 0) { $limit_from--; } else { $limit_from = 0; } if ($limit_to > 0 && $limit_from >= 0) { $add_query = " LIMIT $limit_from, $limit_to"; } else { $add_query = ''; } get_table_content_fast($db, $table, $add_query,$handler); } function get_table_content_fast($db, $table, $add_query = '',$handler) { $result = mysql_query('SELECT * FROM ' . $db . '.' . $table . $add_query) or die(); if ($result != false) { @set_time_limit(1200); // 20 Minutes // Checks whether the field is an integer or not for ($j = 0; $j < mysql_num_fields($result); $j++) { $field_set[$j] = mysql_field_name($result, $j); $type = mysql_field_type($result, $j); if ($type == 'tinyint' || $type == 'smallint' || $type == 'mediumint' || $type == 'int' || $type == 'bigint' ||$type == 'timestamp') { $field_num[$j] = true; } else { $field_num[$j] = false; } } // end for // Get the scheme if (isset($GLOBALS['showcolumns'])) { $fields = implode(', ', $field_set); $schema_insert = "INSERT INTO $table ($fields) VALUES ("; } else { $schema_insert = "INSERT INTO $table VALUES ("; } $field_count = mysql_num_fields($result); $search = array("\x0a","\x0d","\x1a"); //\x08\\x09, not required $replace = array("\\n","\\r","\Z"); while ($row = mysql_fetch_row($result)) { for ($j = 0; $j < $field_count; $j++) { if (!isset($row[$j])) { $values[] = 'NULL'; } else if (!empty($row[$j])) { // a number if ($field_num[$j]) { $values[] = $row[$j]; } // a string else { $values[] = "'" . str_replace($search, $replace, addslashes($row[$j])) . "'"; } } else { $values[] = "''"; } // end if } // end for $insert_line = $schema_insert . implode(',', $values) . ')'; unset($values); // Call the handler $handler($insert_line); } // end while } // end if ($result != false) return true; }
165 function my_handler($sql_insert) { global $crlf, $asfile; global $tmp_buffer; if(empty($asfile)) $tmp_buffer.= htmlspecialchars("$sql_insert;$crlf"); else $tmp_buffer.= "$sql_insert;$crlf"; } function faqe_db_error() { return mysql_error(); } function faqe_db_insert_id($result) { return mysql_insert_id($result); } ?>
13. xls_backup.php <? include("database.php"); include("session.php"); ?> <html> <head> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> <title>Daftar Tabel</title> </head> <body id="GreyWhite"> <br> <div align=center> <table> <tr> <td align=center> <a href="backup_db.php"><img src="../image/back.png" alt="a" width="32"></a> </td> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Back </td> <td align=center> Home </td> <td align=center> Logout </td> </tr>
166</table> </div> <br> <center> <h2>Backup Database to Excel</h2> </center> <div align="center"> <table border="0" width="463" cellspacing="1" id="table1" style="font-family: Tahoma; font-size: 10pt; color: #000080"> <form method="POST" action="pxls_backup.php"> <tr> <td bgcolor="#D3E3EB" width="459" valign="top" colspan="2"> <table border="0" cellspacing="1" width="100%" id="table2"> <tr> <td width="153" bgcolor="#83B0C7" align="center"> <p style="margin: 2px 3px"><b> <font size="2" color="#000080">Table Name</font></b></td> <td width="47" bgcolor="#83B0C7" align="center"> <p style="margin: 2px 3px"><b> <font size="2" color="#000080">Data Total</font></b></td> <td width="123" bgcolor="#83B0C7" align="center"> <p style="margin: 2px 3px"><b> <font size="2" color="#000080">Date Modified</font></b></td> <td width="62" bgcolor="#83B0C7" align="center"> <p style="margin: 2px 3px"><b> </tr> <?php $koneksi=mysql_connect("localhost","$user","$password"); $query=mysql_query ("SHOW TABLE STATUS FROM $database Like '%' "); while ($data=mysql_fetch_array($query) ) { ?> <tr> <td width="153" bgcolor="#F9D3A2"> <p style="margin: 2px 3px"> <font size="2" color="#000080"> <?=$data[Name]?></font></td> <td width="47" bgcolor="#F9D3A2"> <p style="margin: 2px 3px" align="center"> <font size="2" color="#000080"><?=$data[Rows]?></font></td> <td width="123" bgcolor="#F9D3A2"> <p style="margin: 2px 3px"> <font size="2" color="#000080"> <?=$data[Create_time]?></font></td> <td bgcolor="#F9D3A2"> <p style="margin: 2px 3px"> <input type="radio" value="<?=$data[Name]?>" name="tabel"></td> </tr> <? } ?> </table> </div> </td> </tr> <tr> <td colspan=4 bgcolor="#D3E3EB" width="83" valign="top" align=center> <input type="submit" value="Convert to Excel" name="transfer"> </td> </tr> </form> </table> </div> </body> </html>
14. chg_pass.php <html> <head> <style type="text/css"> a:hover,
167 a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center> <br> <table> <tr> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br> <? include("database.php"); $query=mysql_query("select * from user where username='$sesi_userfe'", $koneksi) or die (mysql_error()); while($row=mysql_fetch_array($query)) { echo "<form method=post action=pchg_pass.php>"; echo "<table width=250 height=140 border=0 align=center cellpadding=0 cellspacing=0>"; echo "<tr><td height=40 colspan=3 align=center>"; echo "<b><font size=5 class=style7>Change Password</font></b></td></tr>"; echo "<input type=\"hidden\" name=\"username\" value=\"$row[0]\">"; echo "<tr align=left valign=middle>"; echo "<td width=106 height=25 class=style7>Username </td>"; echo "<td width=8 height=25 class=style7> : </td>"; echo "<td height=25>$row[0]"; echo "</td></tr>"; echo "<tr align=left valign=middle>"; echo " <td width=56 height=25 class=style7>New Password</td>"; echo "<td width=8 height=25 class=style7> : </td>"; echo "<td height=25><input name=\"password\" type=\"password\">"; echo "</td></tr>"; echo "<tr><td> </td></tr>"; echo "<tr> <td colspan=3 align=center> <input type=\"submit\" name=\"submit\" value=\"update\"> <a href=index.php><input type=\"button\" name=\"cancel\" value=\"cancel\"></a> </td> </tr>"; echo "<tr><td> </td></tr>"; echo "</form>"; echo "</table>";
168 } ?> </center> </body> </html> 15. pchg_pass.php <html> <body> <? include "session.php"; include "database.php"; $username=$_POST["username"]; $password=$_POST["password"]; $pass=md5($password); $query="UPDATE user set password='$pass' where username='$username'"; $hasil_mysql=mysql_query($query, $koneksi); if($query) { header("Location:index.php"); } ?> </body> </html>
16. save_data_gl.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Admin Panel (Proses Edit GL)</title> <link href="../main.css" rel="stylesheet" type="text/css"> </head> <body> <? include ("database.php"); include ("session.php"); //$year_service= $tgl1 = $date_update; $tgl2 = date("Y-m-d"); // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun dari tanggal pertama $pecah1 = explode("-", $tgl1); $date1 = $pecah1[2]; $month1 = $pecah1[1]; $year1 = $pecah1[0]; // memecah tanggal untuk mendapatkan bagian tanggal, bulan dan tahun dari tanggal kedua $pecah2 = explode("-", $tgl2); $date2 = $pecah2[2]; $month2 = $pecah2[1]; $year2 = $pecah2[0]; $year_service=$year2-$year_built; //BFPD $bfpd=$bopd+$bwpd; //SMYS if($pipe_grade='API 5L Grade B') { $smys=35000; } elseif($pipe_grade='API 5LX42') { $smys=42000; } //Nominal WT if($pipe_size=='2') { if($schedule=='40') { $nominal_wt=0.154;
169 } elseif($schedule=='80') { $nominal_wt=0.218; } } elseif($pipe_size=='2.5') { if($schedule=='40') { $nominal_wt=0.203; } elseif($schedule=='80') { $nominal_wt=0.276; } } elseif($pipe_size=='3') { if($schedule=='40') { $nominal_wt=0.216; } elseif($schedule=='80') { } } elseif($pipe_size=='3.5') { if($schedule=='40') { $nominal_wt=0.226; } elseif($schedule=='80') { $nominal_wt=0.318; } } elseif($pipe_size=='4') { if($schedule=='40') { $nominal_wt=0.237; } elseif($schedule=='80') { $nominal_wt=0.337; } } elseif($pipe_size=='5') { if($schedule=='40') { $nominal_wt=0.258; } elseif($schedule=='80') { $nominal_wt=0.375; } } elseif($pipe_size=='6') { if($schedule=='40') { $nominal_wt=0.28; } elseif($schedule=='80') { $nominal_wt=0.432; } } elseif($pipe_size=='8') { if($schedule='40') { $nominal_wt=0.322; }
170 elseif($schedule=='80') { $nominal_wt=0.5; } } elseif($pipe_size=='10') { if($schedule=='40') { $nominal_wt=0.365; } elseif($schedule=='80') { $nominal_wt=0.593; } } elseif($pipe_size=='12') { if($schedule=='40') { $nominal_wt=0.406; } elseif($schedule=='80') { $nominal_wt=0.687; } } //Remaining Life $mawt=($op_press*$pipe_size)/((2*$smys*$design_factor)+$op_press); $remaining_life=(($wt_remaining_current-$mawt)*1000)/$corr_rate_wt; //Actual MAOP if($psv_setting < $flange_rating) { $actual_maop=$psv_setting; } elseif(($psv_setting > $flange_rating) || ($psv_setting=0)) { $actual_maop=$flange_rating; } //Calculated MAOP $A=(0.893*$length)/sqrt($pipe_size*$nominal_wt); $P=(2*$nominal_wt*$design_factor*$smys)/$pipe_size; $X=1-((2*$total_wt_lost)/(3*$nominal_wt)); $Y=1-(((2/3)*$total_wt_lost)/($nominal_wt*(sqrt(($A*$A)+1)))); if($A<=4) { $calculated_maop=(1.1*$P*$Y)/$Y; } elseif($A>4) { $calculated_maop=1.1*$P*(1-($total_wt_lost/$nominal_wt)); } $query="UPDATE gl_general_fe set date_update='$tgl2',equipment='$equipment',pipe_size='$pipe_size',pipe_grade='$pipe_grade',design_factor='$design_factor',schedule='$schedule',smys='$smys',design_press='$design_press',nominal_wt='$nominal_wt',"; $query .="length='$length',design_life='$design_life',year_built='$year_built',year_service='$year_service',current_service='$current_service',flange_rating='$flange_rating',fange='$fange',psv_setting='$psv_setting',design_temp='$design_temp',"; $query .="fluid_from='$fluid_from',bopd='$bopd',bwpd='$bwpd',bfpd='$bfpd',mscfd='$mscfd',remaining_life='$remaining_life',op_temp='$op_temp',op_press='$op_press',calculated_maop='$calculated_maop',actual_maop='$actual_maop',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql=mysql_query($query, $koneksi); //Coupon Surface Area & Density if($coupon_type_int='Strip Coupon 1 Inch') { $coupon_surface_int=3.4; $density_int=7.85; } elseif($coupon_type_int='Strip Coupon 2 Inch') { $coupon_surface_int=5.2; $density_int=7.85; }
171 elseif($coupon_type_int='Flush Disc Coupon') { $coupon_surface_int=2.5; $density_int=7.85; } //Corrosion Rate if(($final_weight_a_int-$initial_weight_a_int) > ($final_weight_b_int-$initial_weight_b_int)) { $weight_int=$final_weight_a_int-$initial_weight_a_int; } else { $weight_int=$final_weight_b_int-$initial_weight_b_int; } $date=($retrieving_date_int-$installation_date_coupon_int); $corr_rate_int=($weight_int*22300)/($date*$density_int*$coupon_surface_int); $query2="UPDATE gl_int_corr_mon_dev_fe set fitting_size_int='$fitting_size_int',fitting_manufacture_int='$fitting_manufacture_int',access_fitting_type_int='$access_fitting_type_int',condition_int='$condition_int',nos_af_int='$nos_af_int',plug_manufacture_int='$plug_manufacture_int',coupon_type_int='$coupon_type_int',holder_length_int='$holder_length_int',installation_date_coupon_int='$installation_date_coupon_int',"; $query2 .="retrieving_date_int='$retrieving_date_int',coupon_surface_int='$coupon_surface_int',density_int='$density_int',probe_type_int='$probe_type_int',probe_element_int='$probe_element_int',probe_length_int='$probe_length_int',probe_span_int='$probe_span_int',probe_id_int='$probe_id_int',installation_date_probe_int='$installation_date_probe_int',corr_rate_int='$corr_rate_int',coupon_id_a_int='$coupon_id_a_int',"; $query2 .="initial_weight_a_int='$initial_weight_a_int',final_weight_a_int='$final_weight_a_int',color_coupon_a_int='$color_coupon_a_int',body_attack_a_int='$body_attack_a_int',washer_attack_a_int='$washer_attack_a_int',edge_attack_a_int='$edge_attack_a_int',erosion_attack_a_int='$erosion_attack_a_int',scale_a_int='$scale_a_int',pitting_a_int='$pitting_a_int',debris_a_int='$debris_a_int',coupon_id_b_int='$coupon_id_b_int',"; $query2 .="initial_weight_b_int='$initial_weight_b_int',final_weight_b_int='$final_weight_b_int',color_coupon_b_int='$color_coupon_b_int',body_attack_b_int='$body_attack_b_int',washer_attack_b_int='$washer_attack_b_int',edge_attack_b_int='$edge_attack_b_int',erosion_attack_b_int='$erosion_attack_b_int',scale_b_int='$scale_b_int',pitting_b_int='$pitting_b_int',debris_b_int='$debris_b_int',status_int='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql2=mysql_query($query2, $koneksi); $query3="UPDATE gl_water_sampling_fe set nos='$nos',condition_ws='$condition_ws',temperature='$temperature',ph='$ph',sand='$sand',h2s='$h2s',co2_dissolved='$co2_dissolved',"; $query3 .="srb='$srb',mn='$mn',residual_amine='$residual_amine',residual_phosphate='$residual_phosphate',residual_sulfit='$residual_sulfit',alkalinity='$alkalinity',"; $query3 .="cl='$cl',sulfate='$sulfate',o2_dissolved='$o2_dissolved',iron_count='$iron_count',status='Waiting Approve',water_sampling='$water_sampling' where id_gl='$id_gl'"; $hasil_mysql3=mysql_query($query3, $koneksi); $query4="UPDATE gl_chemical_treatment_fe set chemical_treatment_type='$chemical_treatment_type',condition_ct='$condition_ct',nos='$nos',access_fitting_system='$access_fitting_system',"; $query4 .="device_manufacture='$device_manufacture',injection_tube='$injection_tube',operation_condition='$operation_condition',treatment_method='$treatment_method',"; $query4 .="brand='$brand',injection_rate='$injection_rate',recommendation_injection_rate='$recommendation_injection_rate',status='Waiting Approve',chemical_facility='$chemical_facility' where id_gl='$id_gl'"; $hasil_mysql4=mysql_query($query4, $koneksi); //Tendency $query5="UPDATE gl_scaling_tendency_fe set fitting_size='$fitting_size',access_fitting_type='$access_fitting_type',nos_af='$nos_af',fitting_manufacture='$fitting_manufacture',"; $query5 .="condition='$condition',plug_manufacture='$plug_manufacture',coupon_type='$coupon_type',holder_length='$holder_length',installation_date='$installation_date',"; $query5 .="retrieving_date='$retrieving_date',scale_index='$scale_index',tendency='$tendency',scale_growth='$scale_growth',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql5=mysql_query($query5, $koneksi); //Soil Corrosive $query6="UPDATE gl_ext_corr_protection_fe set type_cp='$type_cp',anode_weight='$anode_weight',anode_type='$anode_type',nos_anode='$nos_anode',year_installed='$year_installed',"; $query6 .="design_life_cp='$design_life_cp',current_output='$current_output',test_point_nos='$test_point_nos',insulation_flange='$insulation_flange',tr_output_v='$tr_output_v',tr_output_a='$tr_output_a',highest_pipe_soil='$highest_pipe_soil',";
172 $query6 .="lowest_pipe_soil='$lowest_pipe_soil',location_soil='$location_soil',lowest_soil='$lowest_soil',soil_corrosive='$soil_corrosive',highest_soil='$highest_soil',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql6=mysql_query($query6, $koneksi); $query7="UPDATE gl_corr_risk_data_fe set contingency_line='$contingency_line',community='$community',"; $query7 .="population_density='$population_density',no_of_leak='$no_of_leak',date_leak='$date_leak',"; $query7 .="remedial_action='$remedial_action',location='$location',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql7=mysql_query($query7, $koneksi); //WT Lost $total_wt_lost=$nominal_wt-$wt_remaining; $query8="UPDATE gl_corr_rate_fe set retrieving_date_coupon='$retrieving_date_coupon',corr_rate_coupon='$corr_rate_coupon',interrogated_date_probe='$interrogated_date_probe',"; $query8 .="corr_rate_probe='$corr_rate_probe',date_previous_inspection='$date_previous_inspection',date_current_inspection='$date_current_inspection',wt_remaining_previous='$wt_remaining_previous',"; $query8 .="wt_remaining_current='$wt_remaining_current',total_wt_lost='$total_wt_lost',defect_length_max='$defect_length_max',corr_rate_wt='$corr_rate_wt',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql8=mysql_query($query8, $koneksi); $query9="UPDATE gl_pigging_facility_fe set barrel_length_launcher='$barrel_length_launcher',nominal_length_launcher='$nominal_length_launcher',reducer_length_launcher='$reducer_length_launcher',bridle_door_launcher='$bridle_door_launcher',"; $query9 .="valve_body_width_launcher='$valve_body_width_launcher',access_length_launcher='$access_length_launcher',access_width_launcher='$access_width_launcher',barrel_od_launcher='$barrel_od_launcher',barrel_id_launcher='$barrel_id_launcher',barrel_t_launcher='$barrel_t_launcher',"; $query9 .="nominal_t_launcher='$nominal_t_launcher',trap_height_launcher='$trap_height_launcher',kicker_launcher='$kicker_launcher',balance_pipe_launcher='$balance_pipe_launcher',reducer_type_launcher='$reducer_type_launcher',"; $query9 .="angle_launcher='$angle_launcher',barrel_length_receiver='$barrel_length_receiver',nominal_length_receiver='$nominal_length_receiver',reducer_length_receiver='$reducer_length_receiver',bridle_door_receiver='$bridle_door_receiver',valve_body_width_receiver='$valve_body_width_receiver',"; $query9 .="access_length_receiver='$access_length_receiver',access_width_receiver='$access_width_receiver',barrel_od_receiver='$barrel_od_receiver',barrel_id_receiver='$barrel_id_receiver',barrel_t_receiver='$barrel_t_receiver',nominal_t_receiver='$nominal_t_receiver',"; $query9 .="trap_height_receiver='$trap_height_receiver',kicker_receiver='$kicker_receiver',balance_pipe_receiver='$balance_pipe_receiver',reducer_type_receiver='$reducer_type_receiver',angle_receiver='$angle_receiver',pigging_type='$pigging_type',"; $query9 .="cleaning_pigging_recomendation='$cleaning_pigging_recomendation',cleaning_pigging_activity='$cleaning_pigging_activity',date_pigging='$date_pigging',out_come='$out_come',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql9=mysql_query($query9, $koneksi); $query10="UPDATE gl_pipe_condition_fe set original_gl='$original_gl',location='$location',"; $query10 .="km='$km',anomaly_length='$anomaly_length',pipe_anomaly='$pipe_anomaly',type_coating='$type_coating',"; $query10 .="condition_coating='$condition_coating',status='Waiting Approve' where id_gl='$id_gl'"; $hasil_mysql10=mysql_query($query10, $koneksi);
//$year_of_service= == gl_general if($year_service <= 1) { $year_of_service=0.15*0; } elseif ($year_service <= 5) { $year_of_service=0.15*1.25; } elseif ($year_service <= 10) { $year_of_service=0.15*2.5; } elseif ($year_service < 16) { $year_of_service=0.15*3.75; } elseif ($year_service >= 16) { $year_of_service=0.15*5; } else { }
173 //$number_of_leak= gl_corr_risk_data ==> no of leak if($no_of_leak <= 1) { $number_leak=0; } else if($no_of_leak <= 5) { $number_leak=0.15*1.25; } else if($no_of_leak < 10) { $number_leak=0.15*2.5; } else if($no_of_leak < 16) { $number_leak=0.15*3.75; } else if($no_of_leak >= 16) { $number_leak=0.15*5; } else { } //$fluid_characteristic= ==> gl_water_sampling ==> gl_general ==> gl_scaling_tendency if($sand != 0 || $h2s > 4 || $ph >= 5 || $srb=="1000 < SRB < 10000" || $srb=="SRB >= 10000 /ml" || $actual_maop < $op_press || $scale_index > 0.5 || $sand=="No Data" || $h2s=="No Data" || $ph=="No Data" || $co2_dissolved=="No Data" || $co2_dissolved > 5) { $fluid_characteristic=5*0.15; } else { $fluid_characteristic=0; }
//$soil_resistivity= ==> gl_ext_corr_protection if($soil_corrosive=="Very Corrosive" || $soil_corrosive=="No Data") { $soil_resistivity=5*0.15; } elseif($soil_corrosive=="Corrosive") { $soil_resistivity=3.75*0.15; } elseif($soil_corrosive=="Moderately Corrosive") { $soil_resistivity=2.5*0.15; } elseif($soil_corrosive=="Midly Corrosive") { $soil_resistivity=1.25*0.15; } elseif($soil_corrosive=="Negligible") { $soil_resistivity=0*0.15; } else { $soil_resistivity=0; } //$condition_coating=$data3[8]; if($condition_coating=="<5%") { $coating=0; } elseif($condition_coating=="5%-40%") { $coating=2.5*0.1; } elseif($condition_coating==">40%" || $condition_coating=="No Data") { $coating=5*0.1; } else {
174 } if($highest_pipe_soil < 850 || $highest_pipe_soil != 0) { $cathodic_protection=2.5*0.1; } elseif($highest_pipe_soil >= 850) { $cathodic_protection=0*0.1; } elseif($highest_pipe_soil = 0) { $cathodic_protection=5*0.1; } else { } //$mechanical_cleaning= ==> gl_pigging_facility If((empty($cleaning_pigging_activity)) or (empty($cleaning_pigging_recomendation))) { $mechanical_cleaning=5*0.1; } ElseIf((empty($cleaning_pigging_activity)) && (empty($cleaning_pigging_recomendation))) { $mechanical_cleaning=5*0.1; } Else { If($cleaning_pigging_activity > 0 && $cleaning_pigging_recomendation > 0) { If($cleaning_pigging_activity < $cleaning_pigging_recomendation) { $mechanical_cleaning=2.5*0.1; } ElseIf($cleaning_pigging_activity >= $cleaning_pigging_recomendation && $cleaning_pigging_activity!=0 && $cleaning_pigging_recomendation !=0) { $mechanical_cleaning=0; } ElseIf($cleaning_pigging_activity = 0 && $cleaning_pigging_recomendation != 0) { $mechanical_cleaning=5*0.1; } } } //$corrosion_treatment= ==> gl_chemical_treatment if ($chemical_treatment_type=="Scale Inhibitor") { if ($injection_rate=='0' || $recommendation_injection_rate=='0') { $corrosion_treatment=5*0.1; } else { if ($injection_rate > 0 && $recommendation_injection_rate > 0) { if ($injection_rate >= $recommendation_injection_rate && $injection_rate !=0 && $recommendation_injection_rate !=0) { $corrosion_treatment=0; } elseif ($injection_rate < $recommendation_injection_rate) { $corrosion_treatment=2.5*0.1; } elseif ($injection_rate=0) { $corrosion_treatment=5*0.1; } } } } else { $corrosion_treatment=0; } //Faktor PoF
175 $factor_pof=$year_of_service+$number_leak+$coating+$cathodic_protection+$corrosion_treatment+$mechanical_cleaning+$fluid_characteristic+$soil_resistivity; //Category PoF if($factor_pof <= 1) { $category_pof=1; } elseif ($factor_pof <= 2) { $category_pof=2; } elseif ($factor_pof <= 3) { $category_pof=3; } elseif ($factor_pof <= 4) { $category_pof=4; } elseif ($factor_pof > 4) { $category_pof=5; }
//$prod_loss= ==> gl_general $query3 = mysql_query("SELECT bopd FROM gl_general where bopd > 0 ", $koneksi) or die (mysql_error()); while($baris = mysql_fetch_array($query3)) { $jumlahBOPD=$jumlahBOPD+$baris[0]; } $aBOPD=0; //0 $bBOPD=0.02*$jumlahBOPD; //2% $cBOPD=0.05*$jumlahBOPD; //5% $dBOPD=0.1*$jumlahBOPD; //10% $eBOPD=0.15*$jumlahBOPD; //15% if($bopd > 0) { $xBOPD=$bopd; if($xBOPD==0) { $prod_loss=0; } elseif($xBOPD <= $bBOPD) { $prod_loss=0.5*2; } elseif($xBOPD <= $cBOPD) { $prod_loss=0.5*4; } elseif($xBOPD <= $dBOPD) { $prod_loss=0.5*6; } elseif($xBOPD <= $eBOPD) { $prod_loss=0.5*8; } elseif($xBOPD > $eBOPD) { $prod_loss=0.5*10; } } //$public_image= ==> gl_corr_risk_data $querymd = mysql_query("SELECT mscfd FROM gl_general where mscfd > 0 ", $koneksi) or die (mysql_error()); while($barismd = mysql_fetch_array($querymd)) { $jumlahMSCFD=$jumlahMSCFD+$barismd[0]; } $aMSCFD=0; //0 $bMSCFD=0.02*$jumlahMSCFD; //2%
176 $cMSCFD=0.05*$jumlahMSCFD; //5% $dMSCFD=0.1*$jumlahMSCFD; //10% $eMSCFD=0.15*$jumlahMSCFD; //15% if($mscfd > 0) { $xMSCFD=$mscfd; if($xMSCFD==0) { $public_image=0; } elseif($xMSCFD <= $bMSCFD) { $public_image=0.15*2; } elseif($xMSCFD <= $cMSCFD) { $public_image=0.15*4; } elseif($xMSCFD <= $dMSCFD) { $public_image=0.15*6; } elseif($xMSCFD <= $eMSCFD) { $public_image=0.15*8; } elseif($xMSCFD > $eMSCFD) { $public_image=0.15*10; } } //$environment_community_impact= ==> gl_corr_risk_data if($community=="No Impact") { $environment_community_impact=0; } elseif($community=='Get Impact No Compensation') { $environment_community_impact=5*0.2; } elseif($community=='Get Impact Pay Compensation' || $community=='No Data') { $environment_community_impact=10*0.2; } if($contingency_line=='In Place') { $pipe_safety=0*0.15; } elseif($contingency_line=='Easy to Install') { $pipe_safety=5*0.15; } elseif($contingency_line=='No Contingency Line'|| $contigency_line=='No Data') { $pipe_safety=10*0.15; } else { $pipe_safety=0; } //Faktor CoF $factor_cof=$prod_loss+$public_image+$pipe_safety+$environment_community_impact; //Category CoF if($factor_cof <= 2) { $category_cof= "A"; } elseif($factor_cof <= 4) {
177 $category_cof= "B"; } elseif ($factor_cof <= 6) { $category_cof= "C"; } elseif($factor_cof <= 8) { $category_cof= "D"; } elseif($factor_cof > 8) { $category_cof= "E"; } //Risk if($category_pof=='1' && $category_cof=='A') { $risk="low"; } elseif($category_pof=='2' && $category_cof=='A') { $risk="low"; } elseif($category_pof=='3' && $category_cof=='A') { $risk="low"; } elseif($category_pof=='4' && $category_cof=='A') { $risk="middle"; } elseif($category_pof=='5' && $category_cof=='A') { $risk="middle"; } elseif($category_pof=='1' && $category_cof=='B') { $risk="low"; } elseif($category_pof=='2' && $category_cof=='B') { $risk="low"; } elseif($category_pof=='3' && $category_cof=='B') { $risk="middle"; } elseif($category_pof=='4' && $category_cof=='B') { $risk="middle"; } elseif($category_pof=='5' && $category_cof=='B') { $risk="high"; } elseif($category_pof=='1' && $category_cof=='C') { $risk="low"; } elseif($category_pof=='2' && $category_cof=='C') { $risk="middle"; } elseif($category_pof=='3' && $category_cof=='C') { $risk="middle"; } elseif($category_pof=='4' && $category_cof=='C') { $risk="high"; } elseif($category_pof=='5' && $category_cof=='C') { $risk="high"; } elseif($category_pof=='1' && $category_cof=='D') { $risk="low";
178 } elseif($category_pof=='2' && $category_cof=='D') { $risk="middle"; } elseif($category_pof=='3' && $category_cof=='D') { $risk="high"; } elseif($category_pof=='4' && $category_cof=='D') { $risk="high"; } elseif($category_pof=='5' && $category_cof=='D') { $risk="high"; } elseif($category_pof=='1' && $category_cof=='E') { $risk="middle"; } elseif($category_pof=='2' && $category_cof=='E') { $risk="high"; } elseif($category_pof=='3' && $category_cof=='E') { $risk="high"; } elseif($category_pof=='4' && $category_cof=='E') { $risk="high"; } elseif($category_pof=='5' && $category_cof=='E') { $risk="high"; } $query11="UPDATE gl_fe set status='$status',risk='$risk',data_st='Waiting Approve',pof='$category_pof',cof='$category_cof' where id_gl='$id_gl'"; $hasil_mysql11=mysql_query($query11, $koneksi); if($query11) { header("Location:map.php"); } ?> </body> </html>
17. app_data.php <html> <head> <meta http-equiv=refresh content=5;url=app_data.php> <style type="text/css"> a:hover, a:focus { /* we use :focus for keyboard navigation */ z-index: 200 /* bring to top when the mouse is over */ } a img { border: none; -webkit-transition: all .2s; /* in Safari, every animatable property triggers an animation in .2s */ } a:hover img, a:focus img { -webkit-transform: scale(2); -moz-transform: scale(2); } #GreyWhite { background-color: #FBFBFB; } </style> </head> <body id="GreyWhite"> <? include("database.php"); include("session.php"); ?> <center>
179<br> <table> <tr> <td align=center> <a href="index.php"><img src="../image/home.png" alt="a" width="32"></a> </td> <td align=center> <a href="logout.php"><img src="../image/logout.png" alt="a" width="32"></a> </td> </tr> <tr> <td align=center> Home </td> <td align=center> Logout </td> </tr> </table> <br> <h3>Waiting Approve Data</h3> <table border=1 cellpadding=0 cellspacing=0 align="center"> <tr align="center"> <th bgcolor= class=> Pipeline Number </th> <th bgcolor= class=> Line Type </th> <th bgcolor= class=> Description </th> <th bgcolor= class=> Service </th> <th bgcolor= class=> Status </th> <th bgcolor= class=> Risk </th> <th bgcolor=> </th> <th bgcolor=> </th> <th bgcolor=> </th> </tr> <? $query = mysql_query("SELECT * FROM gl_general_fe where status='Waiting Approve'"); while($baris = mysql_fetch_array($query)) { $perintah2="select * from gl_fe where id_gl='$baris[1]'"; $query2=mysql_query($perintah2); $data2=mysql_fetch_array($query2); if($i%2) { echo "<tr bgcolor=>"; } else { echo "<tr bgcolor=>"; } echo" <td><font class=style8> $data2[1] </td> <td><font class=style8> $data2[2] </td> <td><font class=style8> $data2[3] </td> <td><font class=style8> $data2[4] </td> <td><font class=style8> $data2[5] </td> <td><font class=style8> "; if($data2[6]=='low') { echo "<b><font color='#66cc00'>$data2[6]</font></b>"; } elseif($data2[6]=='middle') { echo "<b><font color='#eeee00'>$data2[6]</font></b>"; } else { echo "<b><font color='red'>$data2[6]</font></b>"; } echo " </td> <td><a href='p_app.php?id_gl=$baris[0]' class=style2><img src=../image/approve.png width=32></a></td> <td><a href='cancel_data_gl.php?id_gl=$baris[0]' class=style2><img src=../image/cancel.png width=32></a></td> <td><a href='review.php?id_gl=$baris[0]' class=style2><img src=../image/review.png width=32></a></td> </tr>"; $i++; } echo "</table><br><br>";
180 ?> <br> <h3>Cancel Approve Data</h3> <table border=1 cellpadding=0 cellspacing=0 align="center"> <tr align="center"> <th bgcolor= class=> Pipeline Number </th> <th bgcolor= class=> Line Type </th> <th bgcolor= class=> Description </th> <th bgcolor= class=> Service </th> <th bgcolor= class=> Status </th> <th bgcolor= class=> Risk </th> <th bgcolor= class=> Note </th> </tr> <? $query = mysql_query("SELECT * FROM gl_general_fe where status='Cancel'"); while($baris = mysql_fetch_array($query)) { if($i%2) { echo "<tr bgcolor=>"; } else { echo "<tr bgcolor=>"; } echo" <td><font class=style8> $baris[1] </td> <td><font class=style8> $baris[2] </td> <td><font class=style8> $baris[3] </td> <td><font class=style8> $baris[4] </td> <td><font class=style8> $baris[5] </td> <td><font class=style8> $baris[6] </td> <td><font class=style8> $baris[8] </td> </tr>"; $i++; } echo "</table><br><br>"; ?> </center> </body> </html>
18. cancel_data_gl.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Admin Panel (Proses Edit GL)</title> <link href="../main.css" rel="stylesheet" type="text/css"> </head> <body> <? include ("database.php"); include "session.php"; $query="UPDATE gl_general_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql=mysql_query($query, $koneksi); $query2="UPDATE gl_int_corr_mon_dev_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql2=mysql_query($query2, $koneksi); $query3="UPDATE gl_water_sampling_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql3=mysql_query($query3, $koneksi); $query4="UPDATE gl_chemical_treatment_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql4=mysql_query($query4, $koneksi); $query5="UPDATE gl_scaling_tendency_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql5=mysql_query($query5, $koneksi);
181 $query6="UPDATE gl_ext_corr_protection_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql6=mysql_query($query6, $koneksi); $query7="UPDATE gl_corr_risk_data_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql7=mysql_query($query7, $koneksi); $query8="UPDATE gl_corr_rate_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql8=mysql_query($query8, $koneksi); $query9="UPDATE gl_pigging_facility_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql9=mysql_query($query9, $koneksi); $query10="UPDATE gl_pipe_condition_fe set status='Cancel' where id_gl='$id_gl'"; $hasil_mysql10=mysql_query($query10, $koneksi);
if($query10) { header("Location:app_data.php"); } ?> </body> </html>
19. risk_ranking.php <html> <title>Risk Ranking Statement</title> <head> <link href="main.css" rel="stylesheet" type="text/css"> </head> <body> <? include "database.php"; $sesi_gl=$data[gl]; session_start(); session_register('sesi_gl'); $perintah="select * from gl where id_gl='$id_gl'"; $query=mysql_query($perintah); $data=mysql_fetch_array($query); $perintah1a="select * from gl_general where id_gl='$id_gl'"; $query1a=mysql_query($perintah1a); $data1a=mysql_fetch_array($query1a); $perintah2a="select * from gl_chemical_treatment where id_gl='$id_gl'"; $query2a=mysql_query($perintah2a); $data2a=mysql_fetch_array($query2a); ?> <h1>RISK RANKING STATEMENT</h1> <h2>Production Line Network</h2> <table border=1 bgcolor=silver align=left width=950> <tr> <td> <table> <tr> <td> </td> <td width=100> Evaluation Date </td> <td> </td> <td> : </td> <td> </td> <td> <? echo date("d-m-Y") ?> </td> <td> </td> <td>
182 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td width=120> Line Status </td> <td> </td> <td> : </td> <td> </td> <td> <? echo "$data[5]"; ?> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Pipeline ID </td> <td> </td> <td> : </td> <td> </td> <td width=200> <? echo "$data[1]"; ?> </td> <td> </td> <td> </td> <td> </td>
183 <td> </td> <td> </td> <td> </td> <td width=120> Year Service </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[14]"; ?> </td> <td> Year </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Description </td> <td> </td> <td> : </td> <td> </td> <td> <? echo "$data[3]"; ?> </td> <td> </td> <td> </td> <td> </td> <td>
184 </td> <td> </td> <td> </td> <td width=120> Design Service </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[13]"; ?> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Fluid From </td> <td> </td> <td> : </td> <td> </td> <td> <? echo "$data1a[3]"; ?> </td> <td> </td> <td> </td> <td> </td> <td>
185 </td> <td> </td> <td> </td> <td width=120> Design Life </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[12]"; ?> </td> <td> Year </td> <td> </td> </tr> </table> </td> </tr> </table> <table> <tr> <td> </td> </tr> </table> <br><br> <table border=1 bgcolor=silver align=left width=950> <tr> <td> <table> <tr> <td> </td> <td width=100> Pipe Grade </td> <td> </td> <td> : </td> <td> </td> <td width=130> <? echo " $data1a[5]"; ?> </td> <td> </td> <td>
186 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td width=120> Design Press </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[9]"; ?> </td> <td> Psi </td> <td> </td> </tr> <tr> <td> </td> <td width=100> SMYS </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[8]"; ?> </td> <td> Psi </td> <td>
187 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td width=120> Operate Press </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[27]"; ?> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Pipe Size </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[4]"; ?> </td> <td> Inch </td> <td>
188 </td> <td> </td> <td> </td> <td> </td> <td> </td> <td width=120> Operate Temp </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[26]"; ?> </td> <td> Psi </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Nominal WT </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[10]"; ?> </td> <td> Inch </td> <td> </td>
189 <td> </td> <td> </td> <td> </td> <td> </td> <td width=120> Current Service </td> <td> </td> <td> : </td> <td> </td> <td colspan=2> <? echo " $data1a[15]"; ?> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Length </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[11]"; ?> </td> <td> m </td> <td> </td> <td> </td>
190 <td> </td> <td> </td> <td> </td> <td width=120> Chemical Injection </td> <td> </td> <td> : </td> <td> </td> <td> <? echo "$data2a[13]"; ?> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td width=100> Line Type </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data[2]"; ?> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td>
191 </td> <td> </td> <td width=120> Design Temp </td> <td> </td> <td> : </td> <td> </td> <td> <? echo " $data1a[19]"; ?> </td> <td> F </td> <td> </td> </tr> </table> </td> </tr> </table> <table> <tr> <td> </td> </tr> </table> <table> <tr> <td> </td> </tr> </table> <br><br><br><br><br><br><br> <br><br><br><br><br><br> <h5><b>RISK RANKING FOR YEAR</b></h5> <? //$year_of_service= == gl_general $perintah1="select * from gl_general where id_gl='$id_gl'"; $query1=mysql_query($perintah1); $data1=mysql_fetch_array($query1); $year_service=$data1[14]; if($year_service==0) { $year_of_service=0.15*5; } else { if($year_service > 0) { if($year_service <= 1) { $year_of_service=0.15*0; } elseif ($year_service <= 5) { $year_of_service=0.15*1.25; } elseif ($year_service <= 10) {
192 $year_of_service=0.15*2.5; } elseif ($year_service < 16) { $year_of_service=0.15*3.75; } elseif ($year_service >= 16) { $year_of_service=0.15*5; } } else { } } //$number_of_leak= gl_corr_risk_data ==> no of leak $perintah2="select * from gl_corr_risk_data where id_gl='$id_gl'"; $query2=mysql_query($perintah2); $data2=mysql_fetch_array($query2); $number_of_leak=$data2[5]; if($number_of_leak=0) { $number_leak=0.15*5; } else { if($year_service > 0) { if($number_of_leak <= 1) { $number_leak=0; } else if($number_of_leak <= 5) { $number_leak=0.15*1.25; } else if($number_of_leak < 10) { $number_leak=0.15*2.5; } else if($number_of_leak < 16) { $number_leak=0.15*3.75; } else if($number_of_leak >= 16) { $number_leak=0.15*5; } } Else { } }
//$coating= ==> condition coating ==> gl_pipe_condition $perintah3="select * from gl_pipe_condition where id_gl='$id_gl'"; $query3=mysql_query($perintah3); $data3=mysql_fetch_array($query3); $condition_coating=$data3[8]; if($condition_coating=="<5%") { $coating=0; } elseif($condition_coating=="5%-40%") { $coating=2.5*0.1; } elseif($condition_coating==">40%" || $condition_coating=="No Data") { $coating=5*0.1; } else { } //$cathodic_protection= ==> highest pipe to soil potential ==> gl_ext_corr_protection
193 $perintah4="select * from gl_ext_corr_protection where id_gl='$id_gl'"; $query4=mysql_query($perintah4); $data4=mysql_fetch_array($query4); $highest_pipe_soil=$data4[13]; if ($highest_pipe_soil==0) { $cathodic_protection=5*0.1; } else if ($highest_pipe_soil > 0) { if ($highest_pipe_soil < 850 && $highest_pipe_soil!= 0) { $cathodic_protection=2.5*0.1; } else if ($highest_pipe_soil >= 850) { $cathodic_protection=0*0.1; } else if ($highest_pipe_soil = 0) { $cathodic_protection=5*0.1; } }
//$corrosion_treatment= ==> gl_chemical_treatment $perintah5="select * from gl_chemical_treatment where id_gl='$id_gl'"; $query5=mysql_query($perintah5); $data5=mysql_fetch_array($query5); $chemical_treatment_type=$data5[2]; $injection_rate=$data5[11]; $recommendation_injection_rate=$data5[12]; if ($chemical_treatment_type=="Scale Inhibitor") { if ($injection_rate=='0' or $recommendation_injection_rate=='0') { $corrosion_treatment=5*0.1; } Else { If ($injection_rate > 0 && $recommendation_injection_rate > 0) { If ($injection_rate >= $recommendation_injection_rate && $injection_rate !=0 && $recommendation_injection_rate !=0) { $corrosion_treatment=0; } ElseIf ($injection_rate < $recommendation_injection_rate) { $corrosion_treatment=2.5*0.1; } ElseIf ($injection_rate=0) { $corrosion_treatment=5*0.1; } } } } else { $corrosion_treatment=0; } //$mechanical_cleaning= ==> gl_pigging_facility $perintah14="select * from gl_pigging_facility where id_gl='$id_gl'"; $query14=mysql_query($perintah14); $data14=mysql_fetch_array($query14); $cleaning_pigging_activity=$data14[36]; $cleaning_pigging_recomendation=$data14[35]; If((empty($cleaning_pigging_activity)) or (empty($cleaning_pigging_recomendation))) { $mechanical_cleaning=5*0.1; } ElseIf((empty($cleaning_pigging_activity)) && (empty($cleaning_pigging_recomendation))) { $mechanical_cleaning=5*0.1; }
194 Else { If($cleaning_pigging_activity > 0 && $cleaning_pigging_recomendation > 0) { If($cleaning_pigging_activity < $cleaning_pigging_recomendation) { $mechanical_cleaning=2.5*0.1; } ElseIf($cleaning_pigging_activity >= $cleaning_pigging_recomendation && $cleaning_pigging_activity!=0 && $cleaning_pigging_recomendation !=0) { $mechanical_cleaning=0; } ElseIf($cleaning_pigging_activity = 0 && $cleaning_pigging_recomendation != 0) { $mechanical_cleaning=5*0.1; } } }
//$fluid_characteristic= ==> gl_water_sampling ==> gl_general ==> gl_scaling_tendency $perintah16="select sand from gl_water_sampling where id_gl='$id_gl'"; $query16=mysql_query($perintah16); $sand=mysql_fetch_array($query16); $perintah17="select h2s from gl_water_sampling where id_gl='$id_gl'"; $query17=mysql_query($perintah17); $h2s=mysql_fetch_array($query17); $perintah18="select srb from gl_water_sampling where id_gl='$id_gl'"; $query18=mysql_query($perintah18); $srb=mysql_fetch_array($query18); $perintah19="select actual_maop from gl_general where id_gl='$id_gl'"; $query19=mysql_query($perintah19); $actual_maop=mysql_fetch_array($query19); $perintah20="select op_press from gl_general where id_gl='$id_gl'"; $query20=mysql_query($perintah20); $op_press=mysql_fetch_array($query20); $perintah21="select scale_index from gl_scaling_tendency where id_gl='$id_gl'"; $query21=mysql_query($perintah21); $scale_index=mysql_fetch_array($query21); $perintah22="select ph from gl_water_sampling where id_gl='$id_gl'"; $query22=mysql_query($perintah22); $ph=mysql_fetch_array($query22); $perintah23="select co2_dissolved from gl_water_sampling where id_gl='$id_gl'"; $query23=mysql_query($perintah23); $co2=mysql_fetch_array($query23); if($sand != 0 || $h2s > 4 || $ph >= 5 || $srb=="1000 < SRB < 10000" || $srb=="SRB >= 10000 /ml" || $actual_maop < $op_press || $scale_index > 0.5 || $sand=="No Data" || $h2s=="No Data" || $ph=="No Data" || $co2_dissolved=="No Data" || $co2_dissolved > 5) { $fluid_characteristic=5*0.15; } else { $fluid_characteristic=0; } //$soil_resistivity= ==> gl_ext_corr_protection $perintah24="select soil_corrosive from gl_ext_corr_protection where id_gl='$id_gl'"; $query24=mysql_query($perintah24); $soil_corrosive=mysql_fetch_array($query24); if($soil_corrosive=="Very Corrosive" || $soil_corrosive=="No Data") { $soil_resistivity=5*0.15; } elseif($soil_corrosive=="Corrosive") { $soil_resistivity=3.75*0.15; } elseif($soil_corrosive=="Moderately Corrosive") { $soil_resistivity=2.5*0.15;
195 } elseif($soil_corrosive=="Midly Corrosive") { $soil_resistivity=1.25*0.15; } elseif($soil_corrosive=="Negligible") { $soil_resistivity=0*0.15; }
//Faktor PoF $factor_pof=$year_of_service+$number_leak+$coating+$cathodic_protection+$corrosion_treatment+$mechanical_cleaning+$fluid_characteristic+$soil_resistivity; //Category PoF if($factor_pof <= 1) { $category_pof=1; } elseif ($factor_pof <= 2) { $category_pof=2; } elseif ($factor_pof <= 3) { $category_pof=3; } elseif ($factor_pof <= 4) { $category_pof=4; } elseif ($factor_pof > 4) { $category_pof=5; } //$prod_loss= ==> gl_general $query3 = mysql_query("SELECT bopd FROM gl_general where bopd > 0 ", $koneksi) or die (mysql_error()); while($baris = mysql_fetch_array($query3)) { $jumlahBOPD=$jumlahBOPD+$baris[0]; } $bopd=$data1[26]; $aBOPD=0; $bBOPD=0.02*$jumlahBOPD; $cBOPD=0.05*$jumlahBOPD; $dBOPD=0.1*$jumlahBOPD; $eBOPD=0.15*$jumlahBOPD; if($bopd > 0) { $xBOPD=$bopd; if($xBOPD=0) { $prod_loss=0; } elseif($xBOPD <= $bBOPD) { $prod_loss=0.5*2; } elseif($xBOPD <= $cBOPD) { $prod_loss=0.5*4; } elseif($xBOPD <= $dBOPD) { $prod_loss=0.5*6; } elseif($xBOPD <= $eBOPD) { $prod_loss=0.5*8; } elseif($xBOPD > $eBOPD) { $prod_loss=0.5*10; } }
196 //$public_image= ==> gl_corr_risk_data $perintah28="select * from gl_corr_risk_data where id_gl='$id_gl'"; $query28=mysql_query($perintah28); $data28=mysql_fetch_array($query28); $population_density=$data28[4]; if($population_density=="Density > 46" || $population_density=="No Data") { $public_image=10*0.15; } elseif($population_density=="10 < Density < 46 ") { $public_image=5*0.15; } elseif($population_density=="Density < 10") { $public_image=0*0.15; }
//$pipe_safety= ==> gl_corr_risk_data $perintah29="select contingency_line from gl_corr_risk_data where id_gl='$id_gl'"; $query29=mysql_query($perintah28); $contingency_line=mysql_fetch_array($query29); if($contingency_line=='In Place') { $pipe_safety=0*0.15; } elseif($contingency_line=='Easy to Install') { $pipe_safety=5*0.15; } elseif($contingency_line=='No Continggency Line' || $contigency=='No Data') { $pipe_safety=10*0.15; } else { } //$environment_community_impact= ==> gl_corr_risk_data $perintah30="select community from gl_corr_risk_data where id_gl='$id_gl'"; $query30=mysql_query($perintah30); $community=mysql_fetch_array($query30); if($community=="No Impact") { $environment_community_impact=0; } elseif($community=='Get Impact No Compensation') { $environment_community_impact=5*0.2; } elseif($community=='Get Impact Pay Compensation' || $community=='No Data') { $environment_community_impact=10*0.2; } //Faktor CoF $factor_cof=$prod_loss+$public_image+$pipe_safety+$environment_community_impact; //Category CoF if($factor_cof <= 2) { $category_cof= "A"; } elseif($factor_cof <= 4) { $category_cof= "B"; } elseif ($factor_cof <= 6) { $category_cof= "C"; } elseif($factor_cof <= 8) { $category_cof= "D"; } elseif($factor_cof > 8) { $category_cof= "E";
197 } //Factor CoF PoF $factor_cof_pof=$factor_cof+$factor_pof; //Category CoF PoF $category_cof_pof=$category_cof+$category_pof;
//Ranking if($category_pof=='1' && $category_cof=='A') { $A1="X"; } elseif($category_pof=='2' && $category_cof=='A') { $A2="X"; } elseif($category_pof=='3' && $category_cof=='A') { $A3="X"; } elseif($category_pof=='4' && $category_cof=='A') { $A4="X"; } elseif($category_pof=='5' && $category_cof=='A') { $A5="X"; } elseif($category_pof=='1' && $category_cof=='B') { $B1="X"; } elseif($category_pof=='2' && $category_cof=='B') { $B2="X"; } elseif($category_pof=='3' && $category_cof=='B') { $B3="X"; } elseif($category_pof=='4' && $category_cof=='B') { $B4="X"; } elseif($category_pof=='5' && $category_cof=='B') { $B5="X"; } elseif($category_pof=='1' && $category_cof=='C') { $C1="X"; } elseif($category_pof=='2' && $category_cof=='C') { $C2="X"; } elseif($category_pof=='3' && $category_cof=='C') { $C3="X"; } elseif($category_pof=='4' && $category_cof=='C') { $C4="X"; } elseif($category_pof=='5' && $category_cof=='C') { $C5="X"; } elseif($category_pof=='1' && $category_cof=='D') { $D1="X"; } elseif($category_pof=='2' && $category_cof=='D') { $D2="X"; } elseif($category_pof=='3' && $category_cof=='D') {
198 $D3="X"; } elseif($category_pof=='4' && $category_cof=='D') { $D4="X"; } elseif($category_pof=='5' && $category_cof=='D') { $D5="X"; } elseif($category_pof=='1' && $category_cof=='E') { $E1="X"; } elseif($category_pof=='2' && $category_cof=='E') { $E2="X"; } elseif($category_pof=='3' && $category_cof=='E') { $E3="X"; } elseif($category_pof=='4' && $category_cof=='E') { $E4="X"; } elseif($category_pof=='5' && $category_cof=='E') { $E5="X"; } include "rumus_risk.php"; ?> <table> <tr> <td> <table border=1> <tr> <td> </td> <td align=center colspan=8> <b>*Score</b> </td> <td align=middle> <b>Factor</b> </td> <td align=center> <b>Category</b> </td> </tr> <tr> <td align=center> <b> Probability <br> of Failure </b> </td> <td align=center bgcolor=#0033FF> <? echo "$year_of_service"; ?> </td> <td align=center bgcolor=#0099FF> <? echo "$number_leak"; ?> </td> <td align=center bgcolor="#CC99FF"> <? echo "$coating"; ?> </td> <td align=center bgcolor="#990099"> <? echo "$cathodic_protection"; ?> </td> <td align=center bgcolor="#009933"> <? echo "$corrosion_treatment"; ?> </td> <td align=center bgcolor=#00FF00> <? echo "$mechanical_cleaning"; ?> </td> <td align=center bgcolor="#00FFFF"> <? echo "$fluid_characteristic"; ?> </td> <td align=center bgcolor=#FF00FF> <? echo "$soil_resistivity"; ?>
199 </td> <td align=center> <? echo "$factor_pof"; ?> </td> <td align=center> <? echo "$category_pof"; ?> </td> </tr> <tr> <td align=center> <b> Consequence <br>of Failure </b> </td> <td align=center colspan=2 bgcolor="#FF6633"> <? echo "$prod_loss"; ?> </td> <td align=center colspan=2 bgcolor="#FFCC66"> <? echo "$public_image"; ?> </td> <td align=center colspan=2 bgcolor="#FFFF66"> <? echo "$pipe_safety"; ?> </td> <td align=center colspan=2 bgcolor="#99FF99"> <? echo "$environment_community_impact"; ?> </td> <td align=center> <? echo "$factor_cof"; ?> </td> <td align=center> <? echo "$category_cof"; ?> </td> </tr> <tr> <td align=center> <b> Risk <br>CoF * PoF </b> </td> <td align=center colspan=8> </td> <td align=center> <? echo "$factor_cof_pof"; ?> </td> <td align=center> <? echo "$category_pof$category_cof"; ?> </td> </tr> </table> <table> <tr> <td bgcolor=#0033FF> </td> <td> Year Service </td> <td> </td> <td bgcolor="#990099"> </td> <td> Cathodic Protection </td> <td> </td> <td bgcolor=#00FFFF> </td> <td> Fluid Characteristic </td> <td>
200 </td> <td bgcolor=#FFCC66> </td> <td> Public Image </td> </tr> <tr> <td bgcolor=#0099FF> </td> <td> Number of Leak </td> <td> </td> <td bgcolor=#009933> </td> <td> Corrosion Treatment </td> <td> </td> <td bgcolor=#FF00FF> </td> <td> Soil Resistivity </td> <td> </td> <td bgcolor=#FFFF66> </td> <td> Pipe Safety </td> </tr> <tr> <td bgcolor="#CC99FF"> </td> <td> Coating </td> <td> </td> <td bgcolor=#00FF00> </td> <td> Mechanical Cleaning </td> <td> </td> <td bgcolor=#FF6633> </td> <td> Prod Loss </td> <td> </td> <td bgcolor=#99FF99> </td> <td> Environment & Community Impact </td>
201 </tr> </table> </td> <td> <table> <tr> <td> </td> </tr> </table> </td> <td> <table border=1 bordercolor=black> <tr> <td rowspan=7 bgcolor=#0099FF> <font color=white><b>PoF</b></font> </td> <td align=right bgcolor=#FFCC66> <b>5</b> </td> <td bgcolor=yellow align=center> <b> <? echo " $A5 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $B5 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $C5 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $D5 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $E5 "; ?> </b> </td> </tr> <tr> <td align=right bgcolor=#FFCC66> <b>4</b> </td> <td bgcolor=yellow align=center> <b> <? echo " $A4 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $B4 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $C4 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $D4 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $E4 "; ?> </b> </td> </tr> <tr> <td align=right bgcolor=#FFCC66> <b>3</b> </td> <td bgcolor=green align=center> <b> <? echo " $A3 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $B3 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $C3 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo "$D3 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $E3 "; ?> </b> </td> </tr> <tr>
202 <td align=right bgcolor=#FFCC66> <b>2</b> </td> <td bgcolor=green align=center> <b> <? echo " $A2 "; ?> </b> </td> <td bgcolor=green align=center> <b> <? echo " $B2 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $C2 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $D2 "; ?> </b> </td> <td bgcolor=red align=center> <b> <? echo " $E2 "; ?> </b> </td> </tr> <tr> <td align=right bgcolor=#FFCC66> <b>1</b> </td> <td bgcolor=green align=center> <b> <? echo " $A1 "; ?> </b> </td> <td bgcolor=green align=center> <b> <? echo " $B1 "; ?> </b> </td> <td bgcolor=green align=center> <b> <? echo " $C1 "; ?> </b> </td> <td bgcolor=green align=center> <b> <? echo " $D1 "; ?> </b> </td> <td bgcolor=yellow align=center> <b> <? echo " $E1 "; ?> </b> </td> </tr> <tr> <td align=right bgcolor=#FFCC66> </td> <td bgcolor=#FFCC66> <b>A</b> </td> <td bgcolor=#FFCC66> <b>B</b> </td> <td bgcolor=#FFCC66> <b>C</b> </td> <td bgcolor=#FFCC66> <b>D</b> </td> <td bgcolor=#FFCC66> <b>E</b> </td> </tr> <tr> <td colspan=6 align=center bgcolor=#0099FF> <font color=white><b>CoF</b></font> </td> </tr> </table> </td> </tr> </table> <br> <h5><b> CORROSION MATRIK </b></h5> <table border=1> <tr align=center> <td width=220> <b>CORROSION TASK</b> </td> <td width=185> <b>Corrosion Monitoring</b> </td> <td width=120>
203 <b>Data Finding</b> </td> <td> <b>Thereshold</b> </td> <td> <b>Consequence</b> </td> <td width=160> <b>Requirement For</b> </td> </tr> <? $perintaht="select * from gl_corr_rate where id_gl='$id_gl'"; $queryt=mysql_query($perintaht); $datat=mysql_fetch_array($queryt); $perintah2t="select * from gl_scaling_tendency where id_gl='$id_gl'"; $query2t=mysql_query($perintah2t); $data2t=mysql_fetch_array($query2t); $perintah3t="select * from gl_water_sampling where id_gl='$id_gl'"; $query3t=mysql_query($perintah3t); $data3t=mysql_fetch_array($query3t); $perintah4t="select * from gl_pipe_condition where id_gl='$id_gl'"; $query4t=mysql_query($perintah4t); $data4t=mysql_fetch_array($query4t); $perintah5t="select * from gl_ext_corr_protection where id_gl='$id_gl'"; $query5t=mysql_query($perintah5t); $data5t=mysql_fetch_array($query5t); $perintah6t="select * from gl_chemical_treatment where id_gl='$id_gl'"; $query6t=mysql_query($perintah6t); $data6t=mysql_fetch_array($query6t); if($datat[5] > 0) { //$coreRate = CDbl($datat[5]) if($datat[5] > 5) { $LossWallTicknes = "Replace Corr. Monitoring Coupon By Probe"; } elseif($datat[5] <= 5) { $LossWallTicknes = "Maintain Corrosion Inhibitor pump and Injection Rate at Current Condition"; } } else { $LossWallTicknes = "-"; } if($data2t[13]=="No Tendency") { $PluggingWell = "Maintain Scale Inhibitor pump and Injection Rate at Current Condition"; } elseif($data2t[13]=="Possible" || $data2t[13]=="Severe") { $PluggingWell = "Inject Scale Inhibitor at Well head or downhole and Cleaning pipeline such as Mechanical Cleaning pigging"; } if($data3t[19]=="yes") { if($data3t[13]=="0" || $data3t[13]=="SRB <= 10" || $data3t[13]=="10 < SRB < 100" || $data3t[13]=="100 < SRB <1000") { $LackMicrobialControl="Maintain Biocide Injection rate at Curent Condition"; } elseif($data3t[13]=="1000 < SRB < 10000" || $data3t[13]=="SRB >= 10000" || $data3t[13]=="No Data") { $LackMicrobialControl="Cleaning pipeline by pigging and inject Biocide"; } elseif($data3t[13]=="No Data") { $LackMicrobialControl="Conduct Sampling analisis dan Install Sampling Point"; } } else
204{ $LackMicrobialControl = "Install Sampling Point"; }
//$ironCount if($data3t[18] > 0) { //$ironCount = CDbl(PLAdvForm.txtIronCount.Value) if($data3t[18] > 50) { $IncreaseIronIndicatePotential="Internal coating is required and Inject corrosion inhibitor at well head or downhole"; } elseif($data3t[18] <= 50) { $IncreaseIronIndicatePotential="Maintain Corrosion Inhibitor Pump and Injection rate at curent condition"; } } else { $IncreaseIronIndicatePotential="-"; } //$02 if($data3t[17] > 0) { //$O2 = CDbl(PLAdvForm.txtO2.Value) if($data3t[17] > 50) { $DriedGasCorrosion = "Oxigen scavenger treatment required"; } elseif($data3t[17] <= 50) { $DriedGasCorrosion = "Maintain Oxigen scavenger injection rate at current condition"; } } else { $DriedGasCorrosion="-"; } //$ScaleIndex if($data2t[12] > 0) { //$ScaleIndex = CDbl(PLAdvForm.txtScaleIndex.Value) if($data2t[12] <= 0.5) { $PluggingWellTubing = "Maintain Scale inhibitor pump and Injection Rate at Current Condition"; } elseif($data2t[12] > 0.5) { $PluggingWellTubing = "Inject Scale Inhibitor at Well head or downhole Cleaning pipeline such as Mechanical Cleaning pigging"; } } else { $PluggingWellTubing="-"; } //condition_coating if($data4t[8]==">40%") { $InitiateExtCorrCoating = "Refurbish coating condition"; $InitiateExtCorrPipeDefect = "Refurbish coating condition"; } else { $InitiateExtCorrCoating = " Repair at location where coating is damage"; $InitiateExtCorrPipeDefect = " Repair at location where coating is damage"; } //$highest_pipe_soil if($data5t[13]=="") { $PotentialIncreaseCorrPipeSoil = "Install cathodic protection"; $InitiateExtCorrPipeSoil = "Install cathodic protection"; } else { if($data5t[13] < 750)
205 { $InitiateExtCorrPipeSoil = "Install cathodic protection"; $PotentialIncreaseCorrPipeSoil = "Install cathodic protection"; } elseif($data5t[13] >= 750 & $data5t[13] <= 900) { $InitiateExtCorrPipeSoil = "Refurbish Cathodic protection"; $PotentialIncreaseCorrPipeSoil = "Refurbish Cathodic protection"; } else { $InitiateExtCorrPipeSoil = "Maintain Cathodic Protection"; $PotentialIncreaseCorrPipeSoil = "Maintain Cathodic Protection"; } } $pic=$data6t[11]/$data6t[12]; if($data6t[13]=="yes") { //chemical_treatment_type if($data6t[2]=="N/A") { //$coreRate = CDbl($datat[5]) if($datat[3] > 0) { if($datat[3] > 5) { $PotentialIncreaseCorrCI = "Replace Corr. Monitoring Coupon By Probe"; } elseif($datat[3] <= 5) { $PotentialIncreaseCorrCI = "Maintain Corrosion Inhibitor pump and Injection Rate at Current Condition"; } } //$tendency=$data2t[16] if($data2t[13]=="No Tendency") { $PotentialScaleWellTubing = "Maintain Scale Inhibitor pump and Injection Rate at Current Condition"; } elseif($data2t[13]=="Possible" || $data2t[13]=="Severe") { $PotentialScaleWellTubing = "Inject Scale Inhibitor at Well head or downhole and Cleaning pipeline such as Mechanical Cleaning pigging"; } } elseif($data6t[2]=="Corr.Inhibitor") { if($data6t[2] = "Corr.Inhibitor") { $CorrosionInhibitorInjection = $data6t[11]; $ScaleInhibitorInjection = $data6t[11]; if($pic <= 0.85) { $PotentialIncreaseCorrCI = "Maintain Injection dossage at " & $data6t[12] & " ppm "; $PotentialScaleWellTubing = "Maintain Injection dossage at " & $data6t[12] & " ppm "; } elseif($pic > 0.85) { $PotentialIncreaseCorrCI = "Keep Maintain at Current dossage " & $data6t[12] & " ppm "; $PotentialScaleWellTubing = "Keep Maintain at Current dossage " & $data6t[12] & " ppm "; } else { } } } else { $CorrosionInhibitorInjection = "No"; $ScaleInhibitorInjection = "No"; $PotentialIncreaseCorrCI = "No"; $PotentialScaleWellTubing = "No"; } } else { if($datat[3] > 0) {
206 //$coreRate = CDbl($datat[5]); if($datat[3] > 5) { $PotentialIncreaseCorrCI = "Inject Corrosion Inhibitor"; } elseif($datat[3] <= 5) { $PotentialIncreaseCorrCI = "Maintain at Current Condition"; } } else { $PotentialIncreaseCorrCI = "-"; } if($data2t[13]=="No Tendency") { $PotentialScaleWellTubing = "Maintain at Current Condition"; } elseif($data2t[13]=="Possible" || $data2t[13]=="Severe") { $PotentialScaleWellTubing = "Inject Scale Inhibitor"; } else { $PotentialScaleWellTubing = "-"; } $CorrosionInhibitorInjection = $data6t[11]; $ScaleInhibitorInjection = $data6t[11]; } ?> <tr align=center> <td rowspan=8> <b>CORROSION <br> MONITORING</b> </td> <td height=70> Weight Coupon </td> <td height=70> <font color=blue> <? echo "$datat[5]"; ?> </font> </td> <td height=70> Corr. Rate > 5 Mpy </td> <td height=70> Loss Wall Thickness </td> <td height=70 align=left> <font color=blue> <? echo "$LossWallTicknes"; ?> </td> </tr> <tr align=center> <td height=70> Scale Coupon </td> <td> <font color=blue> <? echo "$data2t[13]"; ?> </font> </td> <td> Scaling Indication </td> <td> Plugging Well </td> <td align=left> <font color=blue><? echo "$PluggingWell"; ?> </font> </td> </tr> <tr align=center> <td height=70> SRB Sampling </td> <td>
207 <font color=blue> <? echo "$data3t[13]"; ?> </font> </td> <td> Planktonic < 1000 ml </td> <td> Lack of Microbial Control </td> <td align=left> <font color=blue><? echo "$LackMicrobialControl"; ?> </font> </td> </tr> <tr align=center> <td height=70> Iron Counts Sampling </td> <td> <font color=blue> <? echo "$data3t[18]"; ?> </font> </td> <td> Fe < 50 ppm </td> <td width=200> Any Increase in Iron content would indicate potential internal corr. </td> <td align=left> <font color=blue> <? echo "$IncreaseIronIndicatePotential"; ?> </font> </td> </tr> <tr align=center> <td height=70> O2 Dissolve Monitoring </td> <td> <font color=blue> <? echo "$data3t[17]"; ?> </td> <td> O2 < 50 ppb </td> <td> Dried gas hence no corrosion threat </td> <td align=left> <font color=blue> <? echo "$DriedGasCorrosion"; ?> </td> </tr> <tr align=center> <td height=70> Sampling For Scale Index Calculation </td> <td> <font color=blue> <? echo "$data2t[12]"; ?> </td> <td> 0.5 < SI < 1 </td> <td> Plugging Well tubing </td> <td align=left> <font color=blue><? echo "$PluggingWellTubing"; ?> </td> </tr> <tr align=center> <td height=70> Coating Inspection </td> <td> <font color=blue> <? echo "$data4t[8]"; ?> </td> <td>
208 Coating damage > 40 % </td> <td> Initiate external corrosion </td> <td align=left> <font color=blue><? echo "$InitiateExtCorrCoating"; ?> </td> </tr> <tr align=center> <td height=70> CP Potential Reading </td> <td> <font color=blue> <? echo "$data5t[13]"; ?> </td> <td width=190> Pipe to Soil potential > -850 mV vs Cu/CuSO4 </td> <td> Initiate external corrosion </td> <td align=left> <font color=blue><? echo "$InitiateExtCorrPipeSoil"; ?> </td> </tr> <tr align=center> <td rowspan=4> <b>CORROSION CONTROL / <br> RECOMENDATION</b> </td> <td height=70> Corrosion Inhibitor Injection </td> <td> <font color=blue> <? echo "$CorrosionInhibitorInjection"; ?> </td> <td height=70> Maintain Cl Pump & Avabiality > 85 % Performance </td> <td> Potential of Increase Corrosion Rate </td> <td align=left> <font color=blue> <? echo "$PotentialIncreaseCorrCI"; ?> </td> </tr> <tr align=center> <td height=70> Scale Inhibitor Injection </td> <td> <font color=blue> <? echo "$ScaleInhibitorInjection"; ?> </td> <td> Maintain CL Pump & Avabiality > 85 % Performance </td> <td> Potential of Scale Formation at Well tubing </td> <td align=left> <font color=blue><? echo "$PotentialScaleWellTubing"; ?> </td> </tr> <tr align=center> <td height=70> Coating Refurbishment
209 </td> <td> <font color=blue> <? echo "$data4t[8]"; ?> </td> <td> No Significant pipe defect </td> <td> Initiate external corrosion </td> <td align=left> <font color=blue><? echo "$InitiateExtCorrPipeDefect"; ?> </td> </tr> <tr align=center> <td height=70> CP Upgrading </td> <td> <font color=blue> <? echo "$data5t[13]"; ?> </td> <td> Pipe to Soil petential > -850 mV vs Cu/CuSO4 </td> <td> Potential of Increase Corrosion Rate </td> <td align=left> <font color=blue><? echo "$PotentialIncreaseCorrPipeSoil"; ?> </td> </tr> </table> <br> <center> <a href=index.php><img src=../image/home.png width=64></a> <a href=map.php><img src=../image/map.png width=64></a> <a href=report_risk.php?id_gl=<? echo $data[0] ?>><img src=../image/pdf.png width=64></a> </center> </body> </html>
210
LAMPIRAN F
DOKUMEN-DOKUMEN
Komponen-komponen Korosi
Komponen-komponen korosi, yaitu:
a. General
General adalah data desain umum suatu pipa minyak. Desain tersebut dibuat oleh
para enggineer sesuai fungsi yang diinginkan dari suatu pipa minyak. Data-data
desain pipa diantaranya: pipe size, schedule, year built, flange rating, design
temperature, pipe grade, length, PSV setting, design factor, design pressure, design
life, BOPD, dan BWPD. Dari data-data tersebut didapat BFPD, SMYS, nominal
wallthickness, remaining life, actual MAOP, year service, calculated MAOP.
Year Service
BFPD
SMYS
Year Service = Year Now – Year Built
BFPD = BOPD + BWPD
Jika Pipe Grade = API 5L Grade B, maka SMYS = 35000 Dan jika Pipe Grade = API 5L X42, maka SMYS = 42000
211
Nominal WT (Wall Thickness)
Remaining Life
Actual MAOP
mawt = (OpPress * Pipe Size) (2 * SMYS * Design Factor) + OpPress remainingLife = (WTRemaining – mawt) * 1000 CorrRate
Jika PSV Setting (psi) < Flange Rating (psi), maka Actual MAOP = PSV Setting (psi) Dan jika PSV Setting > Flange Rating (psi) atau PSV Setting (psi) kosong maka Actual MAOP = Flange Rating (psi)
Pipe Size Schedule Nominal WT 2 40
80 0.154 0.218
2.5 40 80
0.203 0.276
3 40 80
0.216 0.3
3.5 40 80
0.226 0.318
4 40 80
0.237 0.337
5 40 80
0.258 0.375
6 40 80
0.28 0.432
8 40 80
0.322 0.5
10 40 80
0.365 0.593
12 40 80
0.406 0.687
212
Calculated MAOP
b. Internal Corrosion Monitoring Device
Data internal corrosion monitoring device adalah data laju korosi yang di dapat
dengan menggunakan beberapa alat yang ditempatkan di dalam pipa. Alat-alat yang
digunakan adalah coupon dan probe, data-data yang dipergunakan adalah fitting
size, access fitting type, fitting manufacture, condition, coupon type, holder length,
installation date coupon, retrieving date, probe type, probe element, probe length,
probe span, probe ID, installation date probe, coupon ID A, initial weight coupon
A, final weight coupon A, color coupon A, coupon ID B, initial weight coupon B,
final weight coupon B, color coupon B,. Dari data-data tersebut di dapat coupon
surface area, density, corrosion rate.
Jika A < = 4 , maka
Dan jika A > 4 , maka
213
Coupon Surface Area dan Density
Corrosion Rate
c. Water Sampling
Data water sampling adalah data yang didapat dari keadaan air disekitar pipa
minyak. Data-data yang didapat dari water sampling sebagai berikut temperature,
pH, sand, H2S, CO2 dissolved, SRB, Mn, residual amine, residual phosphate,
residual sulfit, alkalinity, CL-, sulfate, O2 dissolved, iron count.
d. Chemical Treatment
Data chemical treatment adalah data chemical treatment yang digunakan pada suatu
pipa minyak. Data-data chemical treatment diantaranya chemical treatment type,
condition, nos, access fitting type, device manufacture, injection tube, operation
Jika (Final Weight Coupon A - Initial weight Coupon A) > (Final Weight Coupon B - Initial weight Coupon B) , maka Δ Weight = Final Weight Coupon A - Initial Weight Coupon A Jika Tidak Δ Weight = Final Weight Coupon B - Initial Weight Coupon B Δ Date = (Retrieving Date Coupon - Instalation Date Coupon) ( day )
Corr.Rate = Δ Weight * 22300 . Δ Date * Density * Coupon Surface Area
Jika coupon type = Strip Coupon 1 Inch maka Coupon Surface Area = 3.4 Density = 7.85 Dan jika coupon type = Strip Coupon 2 Inch maka Coupon Surface Area = 5.2 Density = 7.85 Dan jika coupon type = Flush Disc Coupon maka Coupon Surface Area = 2.5 Density = 7.85
214
condition, treatment method, brand, injection rate, dan recommendation injection
rate.
e. Scaling Tendency
Data scaling tendency adalah data scaling tendency yang digunakan pada suatu pipa
minyak. Data-data scaling tendency diantaranya access fitting size, access fitting
type, fitting manufacture, condition, plug manufacture, coupon type, holder length,
installation date, retrieving date, scale index, dan scale growth. Dari data-data
tersebut didapat tendency.
Tendency
f. External Corrosion Protection
External corrosion protection adalah sistem perlindungan korosi dari luar pipa
minyak. Data-data external corrosion protection diantaranya type cathodic
protection, anode weight, anode type, nos anode, year installed, design life, current
output, test point nos, insulation flange, highest pipe to soil potential, lowest pipe to
soil potential, lowest soil resistivity, dari data-data tersebut didapat soil
corrosiveness category.
Jika 0 < Scale Index < 1 maka Tendency = Possible Dan jika Scale Index >= 1 maka Tendency = Severe Dan jika Scale Index <= 0 maka Tendency = No Tendency
215
Soil Corrosiveness Category
g. Corrosion Risk Data
Corrosion risk data adalah data-data yang menggambarkan resiko yang dapat
ditimbulkan akibat korosi baik bagi lingkungan ataupun manusia. Data-data
tersebut diantaranya contingency line, community / environment impact if pipeline
leaking, population density, no of leak, date, remedial action, location.
h. Corrosion Rate
Corrosion rate adalah data-data yang memperlihatkan tingkatan korosi pada suatu
pipa minyak. Data-data yang digunakan diantaranya retrieving date coupon,
corrosion rate coupon, interrogated date probe, corrosion rate probe, date previous
wall thickness (wt) inspection, previous wt remaining, defect length max, date
current inspection, current wt remaining, current corrosion rate. Dari data-data
corrosion rate ini di dapat Wall Thickness (WT) Lost.
WT Lost
Jika Lowest Soil Resistivity < 500 (ohm cm) maka Soil Corrosivenes Category = Very Corrosive
Dan Jika 500 (ohm cm) <= Lowest Soil Resistivity < 1000 (ohm cm) Soil Corrosivenes Category = Corrosive
Dan Jika 1000 (ohm cm) <= Lowest Soil Resistivity < 2000 (ohm cm) Soil Corrosivenes Category = Moderately Corrosive
Dan Jika 2000 (ohm cm) <= Lowest Soil Resistivity < 10000 (ohm cm) Soil Corrosivenes Category = Midly Corrosive
Dan Jika Lowest Soil Resistivity >= 10000 (ohm cm) Soil Corrosivenes Category = Negligible
WT Lost (Inch) = Nominal WT – WT Remaining
216
i. Pigging Facility
Pigging facility adalah desain fasilitas pigging yang digunakan pada pipa minyak.
Pigging digunakan untuk membersihkan bagian dalam pipa dari kotoran-kotoran
ataupun material-material yang terbawa pada saat minyak mengalir pada pipa
tersebut. Data-data yang terdapat pada pigging facility diantaranya barrel length
launcher, nominal length launcher, reducer length launcher, bridle to door launcher,
valve body width launcher, access length launcher, access width launcher, barrel
OD launcher, barrel ID launcher, barrel t launcher, nominal t launcher, barrel OD
launcher, barrel length receiver, nominal length receiver, reducer length receiver,
bridle to door receiver, valve body width receiver, access length receiver, access
width receiver, barrel OD receiver, barrel ID receiver, barrel t receiver, nominal t
receiver, barrel OD receiver, pigging type, out come.
j. Pipe Condition
Pipe condition adalah data yang didapat dari pengamatan pada kondisi pipa. Data-
data pipe condition diantaranya original gathering line placement, location, KM,
anomaly length, pipe anomaly, type coating, condition coating.