BAB II TINJAUAN PUSTAKA Bab ini berisikan penjabaran tentang dasar-dasar teori yang menjadi landasan dalam perancangan Data Collecting Pencatatan Hasil Pengukuran Beban Gardu Distribusi Berbasis Mobile. 2.1 Gardu Distribusi Gardu distribusi merupakan salah satu komponen dari suatu sistem distribusi yang berfungsi untuk menghubungkan jaringan ke konsumen atau untuk membagikan/mendistribusikan tenaga listrik pada beban/konsumen baik konsumen tegangan menengah (TM) maupun konsumen tegangan rendah (TR) (Daman, 2009). 2.1.1 Jenis-jenis Gardu Distribusi Gardu distribusi dapat dibedakan dari beberapa hal yang diantaranya (Daman Suswanto, 2009) : 1. Gardu Hubung Gardu hubung adalah gardu yang berfungsi untuk membagi beban pada sejumlah gardu atau untuk menghubungkan satu feeder TM dengan feeder TM yang lain. Dengan demikian pada gardu ini hanya dilengkapi peralatan hubung dan bila perlu misalnya untuk melayani konsumen TM dilengkapi dengan alat pembatas dan pengukur. 2. Gardu Trafo Gardu Trafo adalah gardu yang akan berfungsi untuk membagikan energi listrik pada konsumen yang memerlukan tegangan rendah. Dengan demikian pada gardu trafo dipasang/ditempatkan satu atau dua trafo distribusi yang dipergunakan untuk merubah tegangan menengah menjadi tegangan rendah selain dari peralatan hubungnya untuk melayani konsumen tegangan rendah. 5 3. Gardu Open Type (Gardu Sel) Gardu open type adalah gardu distribusi yang mempunyai peralatan hubung terbuka. Dimana dalam bekerjanya komponen dalam peralatan hubung, dapat dengan mudah dilihat mata biasa (dapat diawasi) baik pada saat masuk (menutup) atau saat keluar (membuka). Biasanya tempat pemasangan peralatan hubung semacam ini diberi sekat antara satu dengan yang lainnya yang terbuat dari tembok dan karena hal ini, gardu tembol open type sering disebut gardu sel. 4. Gardu Closed Type (Gardu Kubikel) Gardu closed type adalah gardu distribusi baik gardu trafo atau gardu hubung yang memiliki peralatan hubung tertutup. Dimana peralatan hubung baik untuk incoming, outgoing, pengamatan trafo dan sebagainnya ditempatkan dalam suatu lemari khusus yang tertutup. Gardu dengan tipe ini sering disebut sebagai gardu kubikel. 5. Gardu Tembok (Gardu Beton) Gardu tembok adalah gardu trafo /hubung yang secara keseluruhan konstruksinya tersebut dari tembok/beton. Gambar 2.1 Gardu Beton 6. Gardu Kios (Gardu Besi) Gardu kios adalah gardu yang bangunan keseluruhannya terbuat dari plat besi dengan konstruksi seperti kios. 6 Gambar 2.2 Gardu Kios 7. Gardu Portal Gardu portal adalah gardu trafo yang secara keseluruhan instalasinya dipasang pada 2 buah tiang atau lebih. Gambar 2.3 Gardu Portal dan Bagan Satu Garis 7 8. Gardu Kontrol Gardu kontrol adalah gardu trafo yang secara keseluruhan instalasinya dipasang pada satu tiang. Gambar 2.4 Gardu Kontrol 2.1.2 Komponen Utama Gardu Distribusi Secara umum komponen Utama konstruksi gardu distribusi adalah sebagai berikut: Transformator Fuse Cut Out Arrester Panel Tegangan Rendah 8 Saklar Pemutus Utama Fuse jurusan Pentanahan / Pembumian 2.2 Transformator Transformator (trafo ) adalah suatu alat listrik yang dapat memindahkan dan mengubah energi listrik dari satu atau lebih rangkaian listrik ke rangkaian listrik yang lain, melalui suatu gandengan magnet dan berdasarkan prinsip induksi elektromagnetik (Aditya, 2010). Gambar 2.5 Transformasi Energi 2.2.1 Sejarah Transformator 1831, Michael Faraday mendemonstrasikan sebuah koil dapat menghasilkan tegangan dari koil lain 1832, Joseph Henry menemukan bahwa perubahan flux yang cepat dapat menghasilkan tegangan koil yang cukup tinggi 1836, Nicholas Callan memodifikasi penemuan Henry dengan dua koil. 1850 – 1884, era penemuan generator AC dan penggunaan listrik AC 1885, Georges Westinghouse & William Stanley mengembangkan transformer berdasarkan generator AC 1889, Mikhail Dolivo-Dobrovolski mengembangkan transformer 3 fasa pertama 9 2.2.2 Prinsip Dasar Transformator Prinsip dasar suatu transformator adalah induksi bersama(mutual induction) antara dua rangkaian yang dihubungkan oleh fluks magnet. Dalam bentuk yang sederhana, transformator terdiri dari dua buah kumparan induksi yang secara listrik terpisah tetapi secara magnet dihubungkan oleh suatu path yang mempunyai relaktansi yang rendah. Kedua kumparan tersebut mempunyai mutual induction yang tinggi. Jika salah satu kumparan dihubungkan dengan sumber tegangan bolak-balik, fluks bolak-balik timbul di dalam inti besi yang dihubungkan dengan kumparan yang lain menyebabkan atau menimbulkan ggl (gaya gerak listrik) induksi ( sesuai dengan induksi elektromagnet) dari hukum faraday, Bila arus bolak balik mengalir pada induktor, maka akan timbul gaya gerak listrik (ggl). Gambar 2.6 Sejarah Perkembangan Trafo 2.2.3 Simbol Transformator Di bawah ini merupakan penggambaran symbol trafo 1 Phase dan 3 Phase: Gambar 2.7 Simbol Transformer 1 phase 10 Gambar 2.8 Simbol Transformer 3 phase Daya – daya nominal pada 50 Hz dalam KVA: Untuk transformator-transformator tiga fasa: 5, 10, 20, 30, 50, 75, 100, 125, 160, 200, 250, 325, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150, 4000, 5000, 6300, 8000, 10000, dan seterusnya. Untuk transformator-transformator satu fasa: 1, 2, 3, 5, 7, 13, 20, 35, 50, 70. Normalisasi tegangan: 125 V, 220 V, 380 V, dan 500 V untuk tegangan rendah dan 3 KV, 5 KV, 6 KV, 10 KV, 15 KV, 20 KV, 25 KV, 30 KV, 60 KV, 110 KV, 220 KV, dan 380 KV untuk tegangan tinggi. Data tersebut merupakan nilai nominal dari Daya, tegangan, frekuensi pada Transformator Distribusi menurut VDE (asosiasi listrik Jerman). 2.2.4 Macam – macam Trafo Macam-macam trafo dapat dikelompokkan menjadi : 1. Trafo Radio 2. Trafo Pengukuran 3. Trafo Tenaga 2.2.4.1 Trafo Radio Trafo yang biasa digunakan pada rangkaian radio dan televisi dengan tegangan input 220 v/110 v dan tegangan output 48 v – 24 v step down. Dimensi pada trafo ini sangat kecil dan efisiensi rendah. 11 2.2.4.2 Trafo Pengukuran Current Transformer Berfungsi untuk menurunkan besarnya arus listrik pada tegangan tinggi menjadi arus listrik yang kecil dan diperlukan untuk alat ukur dan pengaman. Gambar 2.9 Metering Current Transformer Potential Transformer Berfungsi untuk menurunkan besarnya tegangan tinggi menjadi tegangan rendah yang diperlukan untuk alat ukur dan pengaman/proteksi. 2.2.4.3 Trafo Tenaga Trafo ini biasanya digunakan pada pemakaian daya dari rumah tangga, sampai pembangkit , transmisi dan distribusi tenaga listrik. Beberapa alasan digunakannya trafo ini, antara lain : 1. Tegangan yang dihasilkan sumber tidak sesuai dengan tegangan pemakai 2. Biasanya sumber jauh dari pemakai sehingga perlu tegangan tinggi (pada jaringan transmisi) 3. Kebutuhan pemakai/beban memerlukan tegangan yang bervariasi. 12 Selain kapasitas daya, dalam pemilihan transformator perlu diperhatikan hal-hal sebagai berikut : 1. Bushing Bushing merupakan salah satu komponen pada transformator sebagai tempat penghubung antara transformator dengan jaringan luar. Bushing terbuat dari porselin, dimana porselin ini berfungsi sebagai penyekat antara konduktor (penghantar yang bertegangan) dengan tangki transformator. 2. Sistem Pendinginan Dalam memilih transformator kita harus mengetahui system pendinginan yang digunakan transformator tersebut. 3. Peralatan Proteksi Transformator Distribusi yang digunakan harus memiliki peralatan proteksi. 4. Indikator Indikator dalam transformator digunakan untuk mengetahui tinggi dari permukaan minyak dan temperature / suhu minyak. 5. Tap Changer Tap Changer adalah perubahan tegangan dari satu tegangan ke tegangan lain dilakukan dalam keadaan tanpa beban (tegangan off) dan dilakukan secara manual melalui sebuah tuas. 6. Spesifikasi Teknis Transformator Untuk pemilihan transformator perlu melihat spesifikasi teknisnya, apakah transformator tersebut Step Up atau transformator Step Down. Dari spesifikasi tersebut diperoleh informasi sebagai berikut : a. Type b. Standar menurut IEC dan SPLN c. Rating d. Vektor grup e. Sifat kelistrikan f. Berat dan dimensi 13 Deskripsi kerja transformator dan Step Down adalah sebagai berikut : a. Transformator Step Up berfungsi untuk menaikkan tegangan misalnya dari 400 V pada sisi primer menjadi 20 KV pada sisi sekunder. b. Transformator Step Down berfungsi untuk menurunkan tegangan misalnya dari 20 KV pada sisi primer menjadi 400 V pada sisi sekunder. 2.2.5 Prinsip Kerja Prinsip kerja suatu transformator adalah induksi bersama (mutual induction) antara dua rangkaian yang dihubungkan oleh fluks magnet. Dalam bentuk yang sederhana, transformator terdiri dari dua buah kumparan yang secara listrik terpisah tetapi secara magnet dihubungkan oleh suatu alur induksi. Kedua kumparan tersebut mempunyai mutual induction yang tinggi. Jika salah satu kumparan dihubungkan dengan sumber tegangan bolak-balik, fluks bolak-balik timbul di dalam inti besi yang dihubungkan dengan kumparan yang lain menyebabkan atau menimbulkan ggl (gaya gerak listrik) induksi ( sesuai dengan induksi elektromagnet) dari hukum faraday. Gambar 2.10 Rangkaian Transformer Berdasarkan hukum Faraday yang menyatakan magnitude dari electromotive force(emf) proporsional terhadap perubahan fluks terhubung dan hukum Lenz yang menyatakan arah dari emf berlawanan dengan arah fluks sebagai reaksi perlawanan dari perubahan fluks tersebut didapatkan persaman : e = emf sesaat (instantaneous emf) Ψ = fluks terhubung (linked flux) 14 Dan pada transformer ideal yang dieksitasi dengan sumber sinusoidal berlaku persamaan: E = Tegangan (rms) N = jumlah lilitan Φm = fluks puncak (peak flux) f = frekuensi Dan persamaan: Dikarenakan pada transformer ideal seluruh mutual flux yang dihasilkan salah satu kumparan akan diterima seutuhnya oleh kumparan yang lainnya tanpa adanya leakage flux maupun loss lain misalnya berubah menjadi panas. Atas dasar inilah didapatkan pula persamaan: P1 = P2 V1.I1 = V2.I2 Gambar 2.11 Grafik Arus, Tegangan dan Fluks yang terjadi 15 2.2.6 Rangkaian Ekuivalen Transformator Untuk mempermudah analisis dalam pengujian, rangkaian primer dan sekunder dibuat menjadi sebuah rangkaian yang disebut rangkaian equivalent. Pada rangkaian ini rugi tembaga pada sisi sekunder diubah menjadi nilai ekuivalennya dan dilihat dari arah primer. Gambar 2.12 Rangkaian ekuivalen transformer Dimana a adalah rasio perbandingan lilitan kumparan sekunder terhadap kumparan primer sehingga resistansi sekunder didapatkan : dan reaktansi sekunder didapatkan: 16 Dari persamaan sebelumnya dapat digambarkan rangkaian ekuivalen transformer menjadi Gambar 2.13 Rangkaian ekuivalen yang telah disederhanakan 2.2.7 Transformer Praktis Pada dasarnya rangkaian ekuivalen transformer praktis sama dengan transformer ideal, hanya saja ditambahkan rugi-rugi inti yaitu rugi hysterisis dan rugi arus pusar (eddy current). Rugi-rugi ini digambarkan sebagai induktansi dan resistansi yang terhubung secara parallel dengan kumparan primer, pada gambar dilambangkan sebagai Xm untuk induktansi dan Rm untuk resistansi. Gambar 2.14 Rangkaian ekuivalen transformer praktis Selain memperhitungkan rugi-rugi inti, transformer praktis juga memasukkan unsure fluks bocor (leakage flux). Untuk menghitung tegangan induksi akibat fluks bocor ini dapat dilakukan dengan memodifikasi Φm menjadi Φl leakage pada persamaan 2.2. 17 2.2.8 Analisis Rugi – Rugi pada Gardu Perhitungan analisa rugi – rugi atau losses atau susut pada suatu gardu distribusi dapat dilakukan dengan beberapa metode, yaitu : 1. Rugi Trafo ( Rugi Tembaga dan Rugi Inti Besi) a. Rugi Tembaga ( Pcu ) Rugi Tembaga Rugi Tembaga KUMPARAN PRIMER SUMBER FLUKS BERSAMA KUMPARAN SKUNDER Fluks bocor Rugi besi Histeresis, Eddy current Gambar 2.15 Rugi- rugi pada transformator Rugi yang disebabkan arus beban mengalir pada kawat tembaga dapat ditulis sebagai berikut : Pcu = I2 R Karena arus beban berubah ubah , rugi tembaga juga tidak konstan bergantung pada beban b. Rugi Besi ( Pi ) Rugi besi terdiri dari : (1) Rugi histerisis, yaitu rugi yang disebabkan fluks bolak balik pada inti besi, yang dinyatkan sebagai : Ph = Kh ƒBmaks watt Kh = konstanta Bmaks = fluks maksimum ( weber ) 18 Output Rugi ‘eddy current’ yaitu rugi yang disebabkan arus pusar pada inti besi. Dirumuskan sebagai : Pe = Ke ƒBmaks watt Jadi rugi besi (rugi inti) adalah: Pi = P h + Pe 2. Rugi JTR Rugi JTR merupakan pendekatan perhitungan rugi gardu distribusi dengan menghitung selisih kWh yang terukur di gardu dengan kWh pelanggan yang terpasang pada gardu tersebut. kWh Gardu diperoleh dengan mengkonversi hasil ukur gardu, dengan tahapan sebagai berikut : Beban Trafo (S) = Ir. Vrn + Is. Vsn + It. Vtn Daya Trafo = Beban Trafo * Cos Phi kWh Trafo = Daya Trafo x Jam Nyala (Waktu Beban Puncak) kWh Pelanggan diperoleh dengan mengkonversi daya kontrak pelanggan, dengan tahapan sebagai berikut : Data Daya Kontrak Pelanggan Per Gardu Daya Pelanggan = Daya Kontrak Pelanggan Per Gardu x Cos Phi kWh Pelanggan = Daya Pelanggan x Jam Nyala (Waktu Beban Puncak) 3. Derating Daya Trafo Karena Harmonisa 19 2.2.9 Transformer Tiga Fasa Konstruksi suatu trafo tiga fasa terdiri dari rangaian tiga buah trafo satu fasa. Gambar 2.16 Konstruksi trafo tiga fasa Namun pada saat ini untuk transformer tiga fasa sudah menggunakan satu buah core untuk ketiga fasanya. Pada dasarnya formulasi trafo tiga fasa dikembangkan atau merupakan jumlah vector dari tiga buah trafo satu fasa. Pada trafo satu fasa S = I. V Maka untuk trafo 3 fasa : S = S1 + S2 + S3 = I1.V1 + I2.V2 + I3.V3 Contoh perhitungan : Tabel 2.1 Hasil Pengukuran Fasa Vp-n (V) I (A) R 226 223,1 S 226 165,0 T 227 90,6 Tabel di atas adalah data hasil pengukuran gardu 3 fasa dengan daya trafo 160 kVA. 20 Untuk memperoleh beban trafo adalah sebagai berikut : S 3 Fasa = I1.V1 + I2.V2 + I3.V3 = Ir. Vrn + Is. Vsn + It. Vtn = (223,1 x 226) + (165,0 x 226) + (90,6 x 227) = 108.277 VA = 108,28 kVA Untuk menghitung bobot beban trafo maka : = S 3 Fasa x 100 % x 100 % Daya Trafo = 108.28 160 = 67,68 % 2.2.10 Variasi Tegangan Pelayanan Tegangan pelayanan merupakan tegangan pada terminal suplai yang diukur pada alat pembatas dan pengukur (APP) milik PT PLN (Persero) pada pelanggan. Variasi tegangan pelayan terjadi akibat adanya perubahan beban dan usaha pengaturan tegangan. Batas standar variasi tegangan layanan adalah sebagai berikut : Tabel 2.2 Variasi Tegangan Pelayanan Tegangan Nominal (Volt) Variasi Tegangan Batas Pelayanan (%) Tegangan Standar (Volt) +5%, -10% 198 s.d 231 220/380 Apabila tegangan pelayanan disisi pelanggan di bawah batas minimum ketentuan tegangan standar maka tegangan disebut tegangan drop (under voltage), sedangkan apabila melebihi disebut tegangan over (over voltage). 21 2.2.11 Ketidakseimbangan Beban Pada Trafo 3 Fasa Keadaan seimbang pada trafo 3 fasa adalah suatu keadaan di mana : - Ketiga vektor arus / tegangan sama besar. - Ketiga vektor saling membentuk sudut 120º satu sama lain. Sedangkan yang dimaksud dengan keadaan tidak seimbang adalah keadaan di mana salah satu atau kedua syarat keadaan seimbang tidak terpenuhi. Kemungkinan keadaan tidak seimbang ada 3 yaitu : - Ketiga vektor sama besar tetapi tidak membentuk sudut 120º satu sama lain. - Ketiga vektor tidak sama besar tetapi membentuk sudut 120º satu sama lain. - Ketiga vektor tidak sama besar dan tidak membentuk sudut 120º satu sama lain. Gambar 2.17 Vektor Diagram Arus Misalnya daya sebesar P disalurkan melalui suatu saluran dengan penghantar netral. Apabila pada penyaluran daya ini arus-arus fasa dalam keadaan seimbang, maka besarnya daya dapat dinyatakan sebagai berikut : P = 3 . [V] . [I] . cos Φ dimana : P : daya pada ujung kirim V : tegangan pada ujung kirim cos Φ : faktor daya Daya yang sampai ujung terima akan lebih kecil dari P karena terjadi penyusutan dalam saluran. 22 Jika [I] adalah besaran arus fasa dalam penyaluran daya sebesar P pada keadaan seimbang, maka pada penyaluran daya yang sama tetapi dengan keadaan tak seimbang besarnya arus-arus fasa dapat dinyatakan dengan koefisien a, b dan c sebagai berikut : [IR] = a [I] [IS] = b [I] [IT] = c [I] Dengan IR , IS dan IT berturut-turut adalah arus di fasa R, S dan T. Bila faktor daya di ketiga fasa dianggap sama walaupun besarnya arus berbeda, besarnya daya yang disalurkan dapat dinyatakan sebagai : P = (a + b + c) . [V] . [I] . cos Φ Apabila persamaan P = (a + b + c) . [V] . [I] . cos Φ dan persamaan P = 3. [V] . [I] . cos Φ menyatakan daya yang besarnya sama, maka dari kedua persamaan itu dapat diperoleh persyaratan untuk koefisien a, b, dan c yaitu : a+b+c=3 dimana pada keadaan seimbang, nilai a = b = c = 1 Contoh analisa ketidakseimbangan beban pada trafo : Tabel 2.3 Hasil Pengukuran Fasa Vp-n (V) I (A) R 226 223,1 S 226 165,0 T 227 90,6 Irata-rata = IR + IS + IT = 223,1+165,0 + 90,6 = 159,67 Ampere 3 3 Dengan menggunakan persamaan, koefisien a, b, dan c dapat diketahui besarnya, dimana besarnya arus fasa dalam keadaan seimbang ( I ) sama dengan besarnya arus rata-rata ( Irata ). IR = a . I maka: a = IR = 223,1 = 1,40 I 159,67 23 IS = b . I maka : b = IS = 165,0 = 1,03 I 159,67 IT = c . I maka : c = IT = 90,6 = 0,57 I 159,67 Pada keadaan seimbang, besarnya koefisien a, b dan c adalah 1. Dengan demikian, rata-rata ketidakseimbangan beban (dalam %) adalah : (|𝑎 − 1| + |𝑏 − 1| + |𝑐 − 1|) × 100 % 3 (|1,40 − 1| + |1,03 − 1| + |0,57 − 1|) = × 100 % 3 = = 28, 7% 2.3 Konsep Database Management System(DBMS) Perancangan sistem yang baik harus sesuai dengan beberapa komponen konsep dalam database management system. Konsep tersebut diantaranya (Fathansyah, 2002) : 2.3.1 Definisi database Basis data (database) adalah kumpulan data terhubung yang disimpan secara bersama pada suatu media, tanpa adanya suatu kerangkapan data, sehingga mudah untuk digunakan kembali, dapat digunakan oleh satu atau lebih program aplikasi secara optimal, data disimpan tanpa mengalami ketergantungan pada program yang akan menggunakannya, data disimpan sedemikian rupa sehingga apabila ada penambahan, pengambilan dan modifikasi data dapat dilakukan dengan mudah dan terkontrol. 2.3.2 Definisi DBMS DBMS merupakan kumpulan tabel yang saling berkaitan bersama dengan program sebagai pengelolanya. Basis data adalah kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam suatu paket program untuk membaca data, mengisi data, menghapus data, melaporkan data dalam basis data. 24 2.3.3 Istilah – Istilah Dalam Sistem Basis Data Beberapa istilah yang penting dan sering digunakan dalam penyusunan suatu basis data adalah (Nugroho, 2004) : a. Enterprise, yaitu suatu bentuk organisasi. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh : Sekolah, Rumah Sakit, Bank dan lain sebagainya. b. Entitas, yaitu obyek yang dapat dibedakan dengan obyek lainnya. Contoh: dalam enterprise sekolah terdapat entitas mahasiswa, mata kuliah. c. Atribut, yaitu sebutan untuk mewakili suatu entity. Contoh : dalam entitas mahasiswa memiliki atribut NIM, Nama, Alamat dan Agama. d. Nilai Data atau Data Value, yaitu informasi yang tercakup dalam setiap elemen data. Isi dari atribut disebut Nilai Data. e. Record (Tuple), yaitu kumpulan field-field yang saling berkaitan yang menginformasikan tentang suatu entity secara lengkap. f. File, yaitu kumpulan record-record yang sejenis dimana mempunyai panjang elemen yang sama, atribut yang sama namun berbeda-beda data value-nya. g. Database, yaitu kumpulan file-file yang mempunyai ikatan antara satu file dengan file lainnya sehingga membentuk suatu bangunan data. 2.3.4 Kegunaan DBMS Tujuan awal dan utama dalam pengelolaan data dalam sebuah basis data adalah agar kita dapat memperoleh atau mencari data dengan mudah dan cepat. Selain itu pemanfaatan basis data dilakukan untuk memenuhi tujuan berikut (Fathansyah, 2002) : 1. Kecepatan dan kemudahan. 2. Basis data memungkinkan kita untuk dapat menyimpan dan melakukan perubahan terhadap data dan menampilkan kembali dengan cepat dan mudah. 3. Efisiensi ruang penyimpanan (space). 25 4. Efesiensi ruang penyimpanan dilakukan karena dapat dilakukan penekanan jumlah redudansi data, dengan penerapan sejumlah pengkodean atau dengan menggunakan relasi-relasi antar kelompok data yang saling berhubungan. 5. Keakuratan (accuracy). 6. Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan menerapkan aturan tipe data, domain data dan lainnya secara ketat dapat menekan ketidakakuratan pemasukan data atau penyimpanan data. 7. Ketersediaan (availability). 8. Pertumbuhan data sejalan dengan waktu akan semakin membutuhkan ruang penyimpanan yang besar, padahal tidak semua data digunakan. Karena itu kita dapat memilih adanya data utama, data transaksi, data historis hingga data kadaluarsa. 9. Kelengkapan (completeness). 10. Lengkapnya data yang dikelola dalam sebuah basis data bersifat relative. Untuk menambah kelengkapan, maka dapat ditambahkan record-record data. 11. Keamanan (security). 12. Dalam membangun basis data, kita dapat menentukan siapa saja yang berhak menggunakan basis data dan operasi apa saja yang boleh dilakukan. 13. Kebersamaan pemakaian (share ability). Pemakaian basis data umumnya tidak terbatas pada satu pemakai atau satu lokasi saja. Basis data juga dapat dikelola oleh sistem yang didukung lingkungan banyak pemakai (multiuser). 2.3.5 Komponen DBMS Sistem basis data yang lengkap akan memiliki komponen-komponen utama yaitu sebagai berikut (Fathansyah, 2002): 1. Perangkat Keras (Hardware) Perangkat keras yang mendukung sistem basis data antara lain : - Unit pusat pengolah (CPU), berjumlah satu untuk sistem stand alone atau lebih dari satu untuk sistem jaringan. 26 - Media penyimpan data, berupa harddisk atau removable disk untuk keperluan backup data. - Media input, berupa keyboard, kamera, scanner. - Perangkat jaringan untuk koneksi, berupa LAN card, modem, wireless, infra merah. - Media output, berupa monitor untuk tampilan visual atau printer untuk mencetak laporan. 2. Perangkat Lunak (Software) Perangkat lunak yang digunakan untuk mengoperasikan sistem basis data adalah sistem operasi dan program pendukung DBMS. Sistem operasi adalah program yang mengaktifkan atau memfungsikan sistem komputer, mengendalikan seluruh sumber daya seperti proses I/O, memanajemen filefile. Sistem operasi yang banyak digunakan antara lain Micrososft Windows 98/Me/2000/NT/XP/2003, LINUX, UNIX, MS-DOS. Program pendukung DBMS antara lain DBaseIII/IV, Foxbase, Foxpro, MySQL, SQL Server, MS. Access, Oracle. 3. Basis Data (Database). Sistem database dapat memiliki beberapa database. Setiap database memiliki sejumlah objek database seperti tabel, indeks, prosedur tersimpan dan lainlain. Disamping menyimpan data, setiap database juga menyimpan definisi struktur baik untuk database maupun objek-objeknya secara detail. Yang sangat ditonjolkan dalam database adalah pengaturan, pemilahan, pengelompokan dan pengorganisasian data yang akan kita simpan sesuai fungsi dan jenisnya. Pemilahan, pengelompokkan dan pengorganisasian ini dapat berbentuk sejumlah tabel terpisah atau dalam bentuk pendefinisian kolom-kolom / field-field data dalam setiap tabel. Dalam setiap tabel terdapat record-record yang sejenis, sama bentuk. Satu record terdiri dari field-field yang saling berhubungan untuk menunjukkan bahwa field tersebut dalam satu pengertian yang lengkap dan direkam dalam satu record. 27 Operasi yang berkenaan dengan pembuatan database dan tabel merupakan operasi awal yang hanya dilakukan sekali dan berlaku seterusnya. Sedangkan operasi-operasi yang berkaitan dengan isi tabel (data) merupakan operasi rutin yang akan berlangsung berulan-ulang dan karena itu operasi-operasi inilah yang lebih tepat mewakili aktivitas pengelolaan dan pengolahan data dalam database. 4. Pemakai (User) Manusia merupakan elemen penting pada sistem basis data. Pemakai ini terbagi atas empat kategori : - System Engineer yaitu tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data dan juga mengadakan peningkatan serta melaporkan kesalahan dari sistem tersebut kepada pihak penjual. - Administrator Basis Data, yaitu tenaga ahli yang mempunyai tugas mengawasi basis data , merencanakan dan mengaturnya. - Programmer, yaitu bertugas membuat program aplikasi yang diperlukan oleh pemakai akhir dengan menggunakan data yang terdapat dalam sistem basis data. - Pemakai Akhir, yaitu tenaga ahli yang menggunakan data untuk mengambil suatu keputusan yang diperlukan dalam suatu instansi/perusahaan. 5. Aplikasi (Perangkat Lunak) Lain. Aplikasi lain ini bersifat opsional. Artinya ada tidaknya tergantung pada kebutuhan kita. DBMS yang digunakan lebih berperan dalam pengorganisasian data dalam database, sementara bagi pemakai database khususnya yang menjadi end user dapat dibuatkan program aplikasi khusus untuk melakukan pengisian, pengubahan dan pengambilan data. Program aplikasi ini ada yang disediakan bersama dengan DBMS-nya, ada juga yang dirancang dan dibuat sendiri dengan menggunakan aplikasi lain yang khusus untuk pengorganisasian database. 28 2.3.6 Abstraksi DBMS Pembuatan DBMS dan aplikasi basis data memiliki tujuan untuk menyediakan layanan antar muka (interface) dalam melihat data pemakai. Untuk itu, hal detail tentang bagaimana data disimpan dan dipelihara akan disembunyikan oleh sistem. Maka dari itu, sering kali data yang dilihat oleh pemakai sebenarnya berbeda dengan yang tersimpan secara fisik. Abstraksi data merupakan tingkatan atau level bagaimana melihat data dalam sebuah sistem database. Terdapat 3 (tiga) tingkat abstraksi data, yaitu (Fathansyah, 2002) : 1. Tingkat Fisik (Physical Level) Bagaimana sesungguhnya suatu data itu disimpan ditunjukkan pada tingkat ini. Pada tingkat ini juga pemakai berkompeten dalam mengetahui bagaimana representasi fisik dari penyimpanan dan pengorganisasian data. 2. Tingkat Logik/Konseptual (Conceptual Level) Dalam tingkat ini digambarkan data apa yang disimpan sebenarnya dalam database dan hubungannya dengan data yang lain. 3. Tingkat Penampakan (View Level) Merupakan tingkat tertinggi dari abstraksi data. Pada tingkat ini hanya sebagian data yang ditunjukkan dari database. Hanya sebagian data/informasi dalam database yang dibutuhkan pemakai dan yang kemunculannya di depan pemakai diatur oleh program aplikasi yang digunakan. 2.3.7 Bahasa DBMS DBMS merupakan perantara bagi pemakai dengan database dalam media penyimpanan seperti harddisk maupun removable disk. Cara berinteraksi antara pemakai dengan database tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut sebagai Bahasa Database atau Database Language yang terdiri atas sejumlah perintah (statement) yang diformulasikan dan dapat diberikan pemakai dan dikenali oleh DBMS untuk melakukan suatu aksi seperti permintaan (query) data tertentu. Contoh-contoh bahasa database seperti SQL (Structured Query Language). 29 Sebuah bahasa database biasanya dapat dipilah ke dalam 2 (dua) kategori, yaitu (Fathansyah, 2002) : 1. Data Definition Language (DDL) DDL adalah bahasa yang disepesifikasikan untuk medifinisikan data dan objek database. Jika perintah ini digunakan, enteri akan dibuat kedalam kamus data (data dictionary). Di dalam kategori ini terdapat beberapa contoh-contoh perintah seperti pada Tabel 2.1 berikut (Fathansyah, 2002) : Tabel 2.4 Contoh perintah-perintah Data Definition Language(DDL) Perintah Fungsi CREATE TABLE Membuat tabel baru ALTER TABLE Menambah satu atau lebih kolom (field) pada tabel yang baru dibuat DROP TABLE Menghapus suatu tabel CREATE INDEKS Membuat indeks DROP INDEKS Menghapus tabel yang sudah terindeks CREATE VIEW Memanipulasi data DROP VIEW Menghapus file view 2. Data Manipulation Language (DML) Data manipulation language (DML) adalah bahasa yang diperbolehkan pemakai untuk mengakses atau memanipulasi data yang telah diorganisasikan sebelumnya dalam model data yang tepat. Beberapa perintah yang termasuk dalam DML seperti pada Tabel 2.2 berikut (Fathansyah, 2002) : Tabel 2.5 Contoh perintah-perintah Data Manipulation Language (DML) Perintah Fungsi SELECT Menentukan data/informasi yang akan keluar dari tabel UPDATE Mengubah isi record pada suatu tabel DELETE Menghapus sebuah field INSERT Menyisipkan suatu record 30 Beberapa fasilitas yang telah disediakan dalam DML antara lain (Fathansyah, 2002) : Tabel 2.6 Contoh fasilitas Data Manipulation Language (DML) Perintah Fungsi ALL Mendapatkan semua baris yang sesuai dengan WHERE DISTINCT Mendapatkan baris yang tidak duplikat WHERE Menyatakan kondisi yang akan digabungkan dengan operator logika seperti AND, OR, NOT, dengan operator pembanding <, >, = GROUP BY Mengelompokkan baris-baris dengan isi kolom yang sama ORDER BY Menyusun tabel hasil dengan nilai pada satu atau lebih dari satu kolom 2.4 COUNT Menghitung jumlah baris SUM Menghitung jumlah nilai AVG Menghitung nilai rata-rata MIN Menghitung nilai minimal MySQL MySQL adalah sebuah aplikasi Relational Database Management Server (RDBMS) yang sangat cepat dan kokoh. Dengan menggunakan MySQL Server maka data dapat diakses oleh banyak pemakai secara bersamaan sekaligus dapat membatasi akses para pemakai berdasarkan privilege (hak akses) yang diberikan. MySQL menggunakan bahasa SQL (Structured Query Language) yaitu bahasa standar yang digunakan untuk pemrograman database. MySQL dipublikasikan sejak 1996, tetapi sebenarnya dikembangkan sejak 1979. MySQL telah memenangkan penghargaan Linux Journal Reader’s Choice Award selama tiga tahun. MySQL sekarang tersedia dibawah izin open source, tetapi juga ada izin untuk penggunaan secara komersial. Keunggulan dari MySQL adalah (Team Training, 2007): 31 o Bersifat open source. o Sistem yang digunakan oleh perangkat lunak ini tidak memberatkan kerja dari server, karena dapat bekerja di background. o Mempunyai koneksi yang stabil dan kecepatan yang tinggi. 2.4.1 Tipe Data MySQL Beberapa jenis tipe data dalam MySQL memiliki tipe tersendiri dalam tiap field di table databasenya. MySQL mengenal beberapa type data field, yaitu (Team Training, 2007) : 1. Tipe data numerik Tipe data numerik dapat dibedakan menjadi dua kelompok, yaitu tipe data integer dan tipe data floating point. Tipe data integer untuk data bilangan bulat sedangkan tipe data floating point digunakan untuk bilangan desimal. Tipe data numeric dapat kita sajikan dalam table di bawah ini (Team Training, 2007) : Tabel 2.7 Tipe Data Numerik Tipe Data Kisaran Nilai Tinyint (-128) – 127 atau 0-225 Smallint (-32768) – 32767 atau 0 – 65535 Mediumint (-8388608)-8388607 atau 0-16777215 Int (-2147683648)-(2147683647) atau 0-4294967295 Bigint (-9223372036854775808)-(9223372036854775807) atau 0 – 18446744073709551615 Float(x) (-3.402823466E+38)-(-1.175494351E-38),0,dan 1.175494351E-38 – 3.402823466E + 38 Float (-3.402823466E+38)-(-1.175494351E-38),0,dan 1.175494351E-38 – 3.402823466E + 38 Double (-1.7976E+308)–(-2.22E-308),0,dan(2.22E-308)(1.79E+308) 32 Besar kebutuhan memori penyimpanan untuk masing-masing tipe data di atas sebagai berikut (Team Training, 2007): Tabel 2.8 Kebutuhan memori tipe data numerik Kebutuhan memori penyimpanan 1 byte 2 bytes 3 bytes 4 bytes 4 bytes 8 bytes 4 bytes 8 bytes 4 bytes 8 bytes 8 bytes 8 bytes M bytes (D+2, if M < D) M bytes (D+2, if M < D) Tipe data TINYINT SMALLINT MEDIUMINT INT INTEGER BIGINT FLOAT(4) FLOAT(8) FLOAT DOUBLE DOUBLE PRECISION REAL DECIMAL(M,D) NUMERIC(M,D) 2. Tipe data string Tipe data string adalah sebagai berikut (Team Training, 2007): Tabel 2.9 Tipe Data String Tipe data CHAR(M) VARCHAR(M) TINYBLOB, TINYTEXT BLOB, TEXT MEDIUMBLOB, MEDIUMTEXT Kebutuhan memori penyimpanan M bytes, 1 <= M <= 255 L+1 bytes, dimana L <= M dan 1 <= M <= 255 L+1 bytes, dimana L < 2^8 L+2 bytes, dimana L < 2^16 L+3 bytes, dimana L < 2^24 LONGBLOB, LONGTEXT L+4 bytes, dimana L < 2^32 ENUM ('value1','value2',...) 1 or 2 bytes, tergantung pada jumlah nilai pencacahan (maksimum 65535) 1, 2, 3, 4 or 8 bytes, tergantung pada jumlah anggota yang ditetapkan ( maksimum 64) SET ('value1','value2',. ..) 33 3. Tipe data waktu Tipe data waktu adalah sebagai berikut (Team Training, 2007): Tabel 2.10 Tipe data waktu Tipe data DATETIME DATE TIMESTAMP TIME YEAR 4. Kebutuhan memori penyimpanan 8 bytes 3 bytes 4 bytes 3 bytes 1 byte Tipe data char() dan varchar() Tipe data char() dan varchar() pada prinsipnya sama. Perbedaannya adalah pada jumlah memori yang dibutuhkan untuk penyimpanan. Memori penyimpanan yang dibutuhkan tipe data char() bersifat statis, besarnya tergantung pada berapa jumlah karakter yang ditetapkan pada saat field tersebut dideklarasikan. Sebaliknya, tipe data varchar() besar memori penyimpanan tergantung terhadap berapa karakter yang digunakan ditambah 1 byte yang berisi data jumlah karakter yang digunakan (Team Training, 2007). 2.5 Perangkat Pemodelan Sistem Perangkat pemodelan merupakan salah satu ciri pendekatan terstruktur. Perangkat pemodelan digunakan untuk menguraikan sistem menjadi bagian‐bagian yang dapat diatur dan mengkomunikasikan ciri konseptual dan fungsional. 2.5.1 Statement of purpose (STP) Statement Of Purpose (STP) berisi penggambaran tekstual fungsi sistem secara keseluruhan. Hal ini berguna bagi hampir semua level antara lain level puncak, level pemakai, dan level lain yang tidak terlibat secara langsung dalam pengembangan sistem. 34 2.5.2 Event List (EL) Event List adalah daftar narasi stimuli (daftar kejadian) yang terjadi dalam lingkungan dan mempunyai hubungan dengan respon yang diberikan sistem. Aturan-aturan dalam EL antara lain daftar kejadian yang kita buat dan digambarkan dalam bentuk tekstual sederhana yang berfungsi memodelkan kejadian dalam lingkungan dimana sistem harus memberikan respon. Ketika membuat EL maka kita harus yakin perbedaan antara kejadian dan kejadian yang berelasi dengan aliran. Sebagai contoh kalimat berikut : ”Pemesanan pelanggan diterima oleh sistem” Karena yang terjadi adalah masuknya data dengan sistem sebagai pelaku, maka kalimat yang lebih tepat digunakan yaitu : ”Pelanggan memesan” 2.5.3 Diagram Konteks Diagram Konteks merupakan diagram yang menggambarkan sebuah sistem secara garis besar dan dari diagram ini dapat dipecah menjadi proses – proses / bagian yang lebih kecil lagi yang disebut DFD. 2.5.3.1 Data Flow Diagram (DFD) DFD adalah suatu gambaran grafis dari suatu sistem yang menggunakan sejumlah bentuk – bentuk simbol untuk menggambarkan bagaimana data mengalir melalui proses yang saling berkaitan. Ada beberapa simbol yang digunakan pada DFD untuk maksud mewakili (Jogiyanto,2005): 35 1. External entity (kesatuan luar) atau boundary (batas sistem) Batas sistem digunakan untuk memisahkan suatu sistem dengan lingkungan luarnya. Gambar 2.18 Notasi kesatuan luar di DFD (Sumber : Analisis dan Desain Sistem Informasi, Jogiyanto, Andi Offset) 2. Process (Proses) Suatu proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk ke dalam proses untuk dihasilkan arus data yang akan keluar dari proses. identifikasi identifikasi atau Nama Proses atau Nama proses Pemroses Gambar 2.19 Notasi proses di DFD (Sumber : Analisis dan Desain Sistem Informasi, Jogiyanto, Andi Offset) 3. Data flow (arus data) Arus data (data flow) di DFD diberi symbol suatu panah. Arus data ini mengalir diantara proses, simpanan data dan kesatuan luar. a 1 Nama arus data Kesatuan Luar Proses Gambar 2.20 Arus Data dari kesatuan luar ke proses (Sumber : Analisis dan Desain Sistem Informasi, Jogiyanto, Andi Offset) 36 4. Data Store (Simpanan Data) Simpanan data (data store) merupakan simpanan dari data yang dapat berupa suatu file atau basis data di sistem komputer, arsip atau catatan manual, kotak tempat data di meja seseorang, tabel acuan manual, dan agenda atau buku. media Nama data store Gambar 2.21 Simbol dari simpanan data di DFD (Sumber : Analisis dan Desain Sistem Informasi, Jogiyanto, Andi Offset) Petunjuk yang perlu dilakukan untuk membuat DFD yang jelas yaitu : 1. Pilih nama yang jelas bagi poses, aliran, penyimpanan dan terminator. 2. Menomori proses untuk memperjelas sistematika. 3. Menggambar DFD hingga beberapa kali sehingga cukup estetik. 4. Mencegah DFD yang terlalu komplek dan tidak perlu. 5. Menjamin konsistensi DFD tersebut secara intern ataupun yang berkaitan dengan DFD. Hal-hal penting yang harus diingat : 1. Mencegah proses yang mempunyai masukan tetapi tidak mempunyai keluaran, yang dikenal dengan lubang hitam atau kejadian sebaliknya. 2. Hati-hati dengan aliran dan proses yang tidak dinamakan karena dapat mengakibatkan elemen data yang saling tidak berhubungan menjadi satu. 3. Hati-hati dengan penyimpanan yang punya status hanya dapat dibaca atau hanya dapat ditulis dan berkaitan erat dengan proses yang hanya memproses masukan atau hanya memproses keluaran. 2.6 Pemograman Java Java adalah suatu bahasa pemograman yang dikembangkan oleh Sun microsystem dan berorientasi pada obyek (object oriented programming). Maka pada sistem Java terdapat beberapa kelas (class), yang disusun dalam suatu paket 37 (package) dan digunakan untuk pemograman suatu aplikasi. Bahasa pemograman Java sangat mirip dengan pemograman bahasa C. Hal yang membedakan bahasa pemograman Java dengan pemograman C yaitu jika pada pemograman bahasa C hanya menggunakan compiler, yaitu ketika proses compiling yang dihasilkan adalah sebuah excutable file yang hanya dapat berjalan pada mesin sesuai, sedangkan pada bahasa Java menggunakan compiler dan intepreter, compiler mengubah source code menjadi bytecode, dan bytecode tersebut yang kemudian dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter dieksekusi menjadi kode mesin (natif) seperti yang terlihat pada Gambar 2.22. Hal ini yang menyebabkan bahasa pemograman Java disebut sebagai platform independent yang artinya hasil kompilasi tidak bergantung pada platform ataupun sistem operasi, asalkan pada sistem operasi tersebut terdapat JVM. Gambar 2.22 Source code menjadi kode mesin pada bahasa Java (Sumber: http://www.master.web.id/mwmag/issue/04/content/tutorial-java-1/image01.gif diakses terakhir tanggal 20 Mei 2011) 2.6.1 Java Micro Edition ( Java ME) SUN Microsystem mengembangkan 3 Java platform seperti yang terlihat pada Gambar 2.23, yaitu adalah Java 2 Platform, Standard Edition (J2SE), Java 2 Platform Enterprise Edition (J2SE), Java Platform Micro Edition (Java ME). Perbedaan dari masing-masing platform yaitu J2SE lebih pada pengembangan aplikasi pada computer dan server untuk skala enterprise, sedangkan Java ME disediakan untuk perkembangan aplikasi device berukuran kecil dalam arti memori dan CPU yang lebih kecil dibandingkan personal computer seperti handphone, two way pager, personal digital assistant (PDA) dan lain sebagainya. 38 Gambar 2.23 Java platform (Sumber http://www.oracle.com/technetwork/java/javame/about-java-me-395899.html) 2.6.2 Arsitektur Java ME Gambar 2.24 Arsitektur Java ME Desain dari arsitektur Java ME memungkinkan sebuah aplikasi untuk bisa ditempatkan pada batasan-batasan yang dimiliki oleh sebuah small computing device. Arsitektur Java ME terdiri dari lapisan – lapisan yang diletakkan pada sistem operasi yang terdiri dari dua lapisan software yaitu : 1. Lapisan Configuration Lapisan lingkungan Java ME. Configuration terdiri dari class library yang diminimalkan karena terbatasnya ukuran memori yang ada, virtual machine yang bertujuan untuk mengeksekusi Java byte codes. Lapisan configuration juga 39 menghandle interaksi antara profile dengan KVM. Terdapat 2 macam configuration pada Java ME yaitu: a. Connected limited devices configuration (CLDC) CLDC adalah konfigurasi pada device yang mendukung aplikasi Java dengan ciri-ciri sebagai berikut: • Memory sebesar 128 Kb – 512 Kb. • 16 atau 32 bit Central Processing Unit (CPU). • Bandwidth sebesar 56 Kbs. • Menggunakan KVM untuk virtual mesin. b. Connected Device Configuration (CDC) CDC adalah konfigurasi yang didesain untuk peralatan elektronik yang mendukung aplikasi Java dengan ciri-ciri yaitu: • Memory dengan kapasitas minimum 2 MB. • 32 bit Central Processing Unit (CPU). • Bandwidth untuk yang cukup besar. • Menggunakan JVM. 2. Lapisan Profile Lapisan profile yang berisikan kumpulan application programming interfaces (APIs) minimum pada small coumputing device. Terdapat 7 (tujuh) lapisan profile yaitu: a. Mobile Information Device Profile (MIDP) Mobile Information Device Profile (MIDP) digunakan pada CLDC configuration dan berisikan Java APIs untuk user network connections, persistence storage, dan user interface. MIDP juga mengijinkan untuk mengakses library CLDC dan library MIDP. b. PDA Profile (PDAP) PDA Profile (PDAP) digunakan pada CLDC configuration dan ditujukan untuk PDA yang memiliki tampilan layar yang lebih besar dan mempunya kapasitas memori yang lebih besar dibandingkan MIDP pada mobile device. 40 c. Foundation Profile Foundation Profile digunakan pada CDC configuration dan merupakan inti dari perangkat yang mendukung aplikasi Java pada hampir semua lapisan profile yang konfigurasinya merupakan CDC. d. Personal Basis dan Personal Profile Personal Basis dan Personal Profile digunakan pada CDC Configuration dimana Personal Basic. Profile menambahkan fungsi basic user interface pada Foundation Profile. Personal Basic Profile ditujukan untuk digunakan pada device yang mendukung aplikasi Java dengan tampilan layar yang tidak rumit, maka dari itu tidak diperbolehkan tampilan window lebih dari satu. Platform yang dapat digunakan untuk mendukung tampilan layar yang kompleks dengan window lebih dari satu adalah Personal Profile. e. RMI Profile RMI Profile digunakan dengan CDC configuration dan Foundation Profile untuk menyediakan Remote Method Invocation libraries pada Foundation Profile, namun hanya pada sisi client saja. f. Game Profile Game Profile menyediakan platform untuk pembuatan game yang menggunakan CDC sebagai konfigurasinya. 2.7 Pemrograman Berbasis Web Pemrograman berbasis web menggunakan beberapa bahasa yang berbeda yang saling mendukung antara yang satu dengan yang lannya. Beberapa bahasa tersebut diantaranya (Asep Herman, 2007) : 2.7.1 Hypertext Markup Language ( HTML ) HTML merupakan suatu script (naskah) di mana informasi dan daya kreasi yang dibuat bisa ditampilkan lewat Internet. HTML sendiri adalah suatu dokumen teks biasa yang mudah untuk dimengerti dibandingkan dengan bahasa pemrograman yang lainnya, dan karena bentuknya itu maka HTML dapat dibaca oleh flatform yang berlainan seperti Windows, UNIX, dan Linux. 41 HTML merupakan bahasa pemrograman fleksibel yang bisa diletakkan atau disisipkan script dari bahasa pemrograman yang lain seperti JAVA, Visual Basic, C dan lainnya. Hypertext dalam HTML berarti bahwa kita dapat menuju ke suatu tempat, misalnya Website atau halaman homepage lain, dengan cara memilih suatu link yang biasanya digarisbawahi atau diwakili oleh suatu gambar. Selain link ke Website atau homepage lain, hypertext ini juga mengijinkan kita untuk menuju ke salah satu bagian dalam suatu teks itu sendiri. Sedangkan Markup Language menunjukkan suatu fasilitas yang berupa tanda tertentu dalam script HTML di mana kita bisa men-set judul, garis, tabel, gambar dan lainlainnya, dengan perintah khusus. Sesuai dengan namanya, bahasa ini merupakan tanda (markup) untuk menandai perintah-perintahnya. Saat ini banyak sekali aplikasi yang dapat digunakan untuk membuat halaman Web secara mudah, seperti Microsoft FrontPage, ColdFusion Studio, Macromedia Dreamweaver, dan program aplikasi lainnya. Namun demikian untuk seorang Web developer kemampuan dasar perintah HTML tetap dibutuhkan. 2.7.2 Tag-tag dasar pada HTML Untuk menyampaikan ide pada browser Web, HTML menggunakan apa yang dinamakan tag. Beberapa tag menggunakan bentuk <TAG>…</TAG> untuk menandai bagian yang termasuk di dalamnya. Beberapa tag lain hanya ditulis dengan <TAG> saja. Tag yang demikian akan mengeset atribut elemen halaman dibawahnya. Tag dapat berisi tag lain yang dapat digunakan di dalam tag ini (Asep Herman, 2007). Tag <HTML>, digunakan pada awal dan akhir dokumen HTML. Penulisannya adalah <HTML>…</HTML>. <HEAD>. Dapat berisi tag <BODY> dan Semua dokumen HTML akan selalu diletakkan di dalam tag <HTML>. Tag <HEAD>, digunakan untuk menyimpan informasi tentang halaman Web. Informasi ini tidak akan ditampilkan pada halaman Web. Bagian ini akan dipanggil sebelum bagian yang lain, oleh karena itu tag <SCRIPT> dan 42 <OBJECT> paling <HEAD>…</HEAD>. cocok diletakkan disini. Penulisannya adalah Dapat berisi tag <BASE>, <ISINDEX>, <LINK>, <META>, <NEXTID>, <TITLE>, <SCRIPT> dan <OBJECT>. Dapat diletakkan di tag <HTML>. Tag <BODY>, berisi halaman Web yang akan ditampilkan. Penulisannya adalah <BODY>……</BODY>. Atribut yang dapat dipakai (bersifat opsional) adalah ALINK = color, BACKGROUND = url, BGCOLOR = color, BGPROPERTIES = FIXED, BOTTOMMARGIN = pixels, CLASS = classname, ID = value, LANG = language, LANGUAGE = JAVASCRIPT | JSCRIPT | VBSCRIPT | VBS, LEFTMARGIN = pixels, LINK = color, RIGHTMARGIN = pixels, SCROLL = YES | NO, STYLE = css1-properties, TEXT = color, TITLE = string, TOPMARGIN = n, VLINK = color. Dapat diisi tag <H1> sampai <H6>, <P>, <OL>, <UL>, <DIR>, <MENU>, <DL>, <PRE>, <BLOCKQUOTE>, <FORM>, <ISINDEX>, <HR>, <TABLE>, <ADDRESS>, dan lain-lainnya. Diletakkan pada tag <HTML>. Tag komentar <! …>, digunakan untuk menyisipkan komentar pada halaman Web dan tidak ditampilkan pada browser Web. Tag Heading <Hn> memungkinkan untuk membuat kerangka dari halaman Web. Pemberian tag ini selalu disertai dengan nomor. Nomor ini akan mempengaruhi tampilan teks. Tag heading dengan nomor yang lebih kecil akan menampilkan tulisan yang lebih besar. Penulisannya adalah <H1>…</H1>, <H2>…</H2>, …., <H6>…</H6>. Atribut yang bisa digunakan adalah ALIGN = Center | Left | Right, CLASS = classname, ID = value, LANG = language, LANGUAGE = JavaScript | JScript | VbScript | VBS, STYLE = css1-properties, TITLE = text Tag Paragraf, <P>…</P>, digunakan untuk memisahkan muatan halaman menjadi beberapa bagian. Jika teks diletakkan dalam tag paragraf, maka teks dalam tag ini akan diletakkan pada bagian yang baru. Namun sebelumnya, tag paragraf akan mengakhiri bagian sebelumnya, kemudian meletakkan spasi sesudah bagian tersebut. Atribut yang dapat digunakan adalah ALIGN = Center | Left | Right, CLASS = classname, ID = value, LANG = language, 43 LANGUAGE = JAVASCRIPT | JSCRIPT | VBSCRIPT | VBS, STYLE = css1properties, TITLE = text. Tag paragraf dapat disisipi tag-tag yaitu antara lain <A>, <IMG>, <BR>, <EM>, <STRONG>, <CODE>, <SAMP>, <KBD>, <VAR>, <CITE>, <B>, <I>, <TT>. Tag <A>…</A>, dapat diibaratkan inti dari halaman Internet. Tag ini memungkinkan untuk melompat ke halaman lain jika daerah tertentu pada halaman Web diklik. Atribut yang bisa dipakai adalah ACCESSKEY = key, CLASS = classname, DATAFLD = colname, DATASRC = #ID, HREF = url, ID = value, LANG = language, LANGUAGE = JAVASCRIPT | JSCRIPT | VBSCRIPT | VBS, STYLE = css1-properties, TITLE = text, METHODS = http-method, NAME = name, REL = “stylesheet”, REV = “stylesheet”, TABINDEX = n, TARGET = window_name | _blank | _parent | _self | _top, URN = urn. Dapat berisi tag-tag antara lain <IMG>, <BR>, <EM>, <STRONG>, <CODE>, <SAMP>, <KBD>, <VAR>, <CITE>, <B>, <I>, <TT>. Tag tabel, <TABLE>…</TABLE>, merupakan cara penyajian data yang ditampilkan dalam bentuk baris dan kolom. Atribut yang bisa digunakan antara lain ALIGN, BORDERCOLOR, BACKGROUND, BORDERCOLORDARK, BGCOLOR, BORDER, BORDERCOLORLIGHT, CELLPADDING, CELLSPACING, CLASS, COLS, HEIGHT, WIDTH. Tag <FORM> dan <INPUT> digunakan bersama-sama untuk meminta masukan dari pengguna untuk kemudian dikirim dan diolah di dalam Server Web. Tag <FORM> menyediakan kerangkanya dan tag <INPUT> menyediakan elemen antar muka pengguna. Penulisan tag <FORM> adalah <FORM>…</FORM>. Atribut yang bisa digunakan pada tag <FORM> antara lain ACTION, METHOD, ENCTYPE. Tag <FROM> dapat berisi <H1> sampai <H6>, <P>, <OL>, <UL>, <DIR>, <MENU>, <DL>, <PRE>, <BLOCKQUOTE>, <ISINDEX>, <TABLE>, <HR>, <ADDRESS>, <INPUT>, <SELECT>, <TEXTAREA>. Tag <INPUT> memiliki sepuluh macam obyek antar muka untuk HTML versi 4.0, yaitu CHECKBOX, HIDDEN, RADIO, RESET, SUBMIT, FILE, TEXT, BUTTON, PASSWORD dan IMAGE. 44 Penulisan tag <INPUT> tanpa diakhiri dengan tag penutup </INPUT>. Atribut yang dapat dipakai antara lain TYPE, NAME, VALUE, SRC, CHECKED, SIZE, MAXLENGTH, ALIGN. Tag <SCRIPT> adalah tag yang dipakai untuk menyisipkan script (naskah) dari bahasa pemrograman lainnya seperti JavaScript dan VBScript. Penulisannnya adalah <SCRIPT>….</SCRIPT>. Atribut yang dapat dipakai diantaranya adalah LANGUAGE dan SRC. Tag <SCRIPT> dapat diletakkan pada tag <HEAD>. Tag <SCRIPT> yang diletakkkan di dalam tag <HEAD> bertujuan agar kode script dipanggil sebelum halaman Web melakukan hal-hal yang lain. Kode script dituliskan di dalam tag komentar dengan tujuan untuk menghindari browser-browser lama menjalankan kode tersebut, sedangkan untuk memberi komentar terhadap kode yang dibuat maka bisa digunakan notasi asli dari bahasa yang digunakan. 2.7.3 PHP Hyperytext Prepocessor (PHP) PHP dikenal sebagi sebuah bahasa scripting yang menyatu dengan tagtag HTML, dieksekusi di server, dan digunakan untuk membuat halaman web yang dinamis seperti halnya Active Server Pages (ASP) atau Java Server Pages (JSP) (Firdaus, 2007). 1. Perkembangan PHP Versi pertama PHP dibuat oleh Rasmus Lerdorf pada tahun 1995. Versi pertama ini berupa sekumpulan script PERL yang digunakan oleh Rasmus Lerdorf untuk membuat halaman web yang dinamis pada home page pribadinya. Rasmus menulis ulang script-script PERL tersebut menggunakan bahasa C, kemudian menambahkan fasilitas untuk Form HTML, koneksi MySQL dan meluncurlah PHP versi kedua yang diberi nama PHP/F1 pada tahun 1996. PHP versi ketiga dirilis pertengahan 1997. Pada versi ini pembuatannya tidak lagi oleh Rasmus sendiri, tetapi juga melibatkan beberapa programmer lain yang antusias untuk mengembangkan PHP. 45 Versi terakhir PHP 4.0 dirilis bulan Oktober 2000. Perubahan mendasar pada PHP 4.0 adalah integrasi Zend Engine. Zend dibuat oleh Zeef Suraski dan Andi Gutmans yang merupakan penyempurnaan dari PHP 3 scripting engine. Hal lain adalah build in HTTP session, tidak lagi menggunakan library tambahan seperti pada PHP 3. 2. Popularitas PHP Popularitas PHP sangat cepat, hal ini dikarenakan PHP merupakan software open house. Lebih dari satu juta site telah menggunakan PHP, termasuk perusahaan besar seperti Mitsubhisi dan Redhat. Penggunaan PHP sebagai bahasa script dilandasi karena kemampuan yang dimiliki software ini, seperti (Firdaus, 2007) : Life Cycle yang singkat, sehingga PHP selelu up to date mengikuti perkembangan internet. Cross platform PHP dapat dipakai dihampir semua web server yang ada di pasaran (Apache, AOLServer, Microsoft IIS, PWS, dan lain-lain) yang dijalankan pada berbagai sistem operasi (Linux, FreeBSD, Unix, Solaris, Windows). Dengan demikian, proses developing dapat dilakukan menggunakan sistem operasi yang berbeda dengan sistem operasi yang digunakan setelah publish (misalnya, developing di Windows kemudian dipasang di web server yang menggunakan sistem operasi Linux). PHP mendukung banyak paket database baik yang komersil maupun non komersil, seperti MySQL, Oracle, Microsoft SQL Server, dan yang lainnya. 3. Konsep Kerja PHP Metode kerja PHP diawali dengan permintaan suatu halaman web oleh browser, berdasarkan URL (Uniform Resource Locator) atau dikenal dengan sebutan alamat Internet. Browser mendapatkan alamat dari web server, mengidentifikasi halaman yang dikehendaki, dan menyampaikan segala informasi yang dibutuhkan oleh web server. Selanjutnya web server akan mencarikan berkas PHP yang diminta dan setelah didapatkan, isinya akan segera dikirimkan ke mesin PHP dan mesin inilah yang memproses dan memberikan hasilnya berupa kode 46 HTML ke web server. Lalu web server akan menyampaikan isi halaman web tersebut kepada client melalui browser (Firdaus, 2007). Untuk lebih jelasnya dapat dilihat pada Gambar 2.13 berikut. Script PHP Permintaan HTTP (Index.php) Mesin PHP Kode HTML User Browser Client Gambar 2.25 Konsep Kerja PHP 4. Konfigurasi dan Instalasi PHP umumnya dipasang sebagai sebuah modul Apache, sehinggga Web Server dapat langsung mengerti dan memproses script PHP karena interpreter PHP telah ditanamkan ke dalamnya. PHP dapat di-install sebagai bagian atau modul dari apache web server atau sebagai script yang mandiri. Banyak keuntungan yang diperoleh jika menggunakan PHP sebagai modul dari Apache diantaranya : Waktu eksekusi lebih cepat Akses database yang lebih fleksibel Tingkat keamanan lebih tinggi 47 5. Pemrograman PHP Perintah PHP dapat disisipkan di sembarang tempat dari tag-tag HTML. Setiap baris perintah PHP diakhiri dengan tanda titik koma (;). Penulisan script PHP dalam tag HTML dapat dilakukan dengan dua cara yaitu Embedded Script dan Non Embedded Script. Embedded Script Cara ini dilakukan dengan meletakkan script PHP di antara tag HTML. <html> <head> <title>.: Embedded Script :.</title> </head> <body> <? echo "Ini adalah contoh embedded script"; ?> </body> </html> Tampilan pada browser : Gambar 2.26 Tampilan PHP dengan embedded script 48 Non Embedded Script Non embedded script merupakan pembuatan program murni PHP, dimana tag-tag HTML yang diletakkan di dalamnya. <? echo "<html>"; echo "<head>"; echo "<title>.: Non Embedded Script :.</title>"; echo "</head>"; echo "<body>:"; echo "Ini adalah contoh non embedded script"; echo "</body>"; echo "</html>"; ?> Tampilan pada browser : Gambar 2.27 Tampilan PHP dengan non embedded script Script PHP menerapkan aturan case sensitive, yakni adanya perbedaan penulisan antara huruf besar dengan huruf kecil. Setiap penulisan didalam script harus mengikuti aturan yang telah ditentukan terutama untuk nama variabel. 2.8 Short Message Service (SMS) Short Message Service (SMS) adalah kemampuan untuk mengirim dan menerima pesan dalam bentuk teks dari dan kepada ponsel. Teks tersebut bisa terdiri dari kata-kata atau nomor atau kombinasi alphanumeric. SMS diciptakan sebagai standar pesan (message) oleh ETSI (Europesan Telecommunication Standards Institute), yang juga membuat standar GSM yang diimplementasikan 49 oleh semua operator GSM. SMS yang pertama dikirimkan pada Desember 1992 dari PC ke sebuah ponsel melalui jaringan GSM Vodafone di UK. Setiap Pesan maksimal terdiri dari 160 karakter jika menggunakan alphabet Latin, dan 70 karakter jika menggunakan alphabet non-Latin seperti huruf Arab atau China (Team GSM, 2002). 2.9 SMS Gateway Istilah gateway dapat diartikan sebagai pintu gerbang. Namun pada dunia komputer, gateway dapat diartikan sebagai jembatan penghubung antara satu sistem dengan sistem yang lain, sehingga dapat terjadi pertukaran data antar sistem tersebut. Dengan demikian, SMS gateway dapat diartikan sebagai penghubung untuk lalu lintas data-data SMS. Pada awalnya, SMS gateway dibutuhkan untuk menjembatani antar SMSC. Hal ini dikarenakan SMSC yang dibangun oleh perusahaan yang berbeda memiliki protokol komunikasi sendiri, dan protokol tersebut bersifat pribadi. SMS gateway ini kemudian ditempatkan di antara kedua SMSC yang berbeda protokol tersebut, yang akan menerjemahkan data dari protokol SMSC satu ke protokol SMSC lainnya yang dituju. Namun seiring perkembangan teknologi komputer dan perkembangan teknologi komunikasi, masyarakat lebih mengartikan SMS gateway sebagai suatu jembatan komunikasi yang menghubungkan perangkat komunikasi (dalam hal ini ponsel) dengan perangkat komputer. SMS gateway kemudian lebih mengarah kepada sebuah program yang mengkomunikasikan sistem operasi komputer dengan perangkat komunikasi yang terpasang untuk mengirim atau menerima SMS (Team GSM, 2002). 2.10 Gammu Gammu merupakan salah satu pustaka atau library opensource yang dibuat sebagai gateway antara handphone dengan perangkat komputer. Pengembangan Gammu awalnya dari pendahulunya yaitu gnooki yang dari segi konsep masih sangat sederhana dan rumit. Namun pada gammu proses instalasi 50 dan penerapan pembangunan aplikasi sms semakin mudah. Ini merupakan jasa dari beberapa developer yang telah membangun gammu. Gammu dibuat menggunakan gabungan phyton dan C. ada juga versi lain yang telah dikemas menjadi aplikasi jadi bernama wammu yang dibangun menggunakan bahasa C++. Gammu dapat di gunakan di semua Operating System. Baik itu linux, unix, windows. Namun setiap OS memiliki proses instalasi yang berbeda-beda. 2.10.1 Instalasi Gammu Versi 1.29 Langkah – langkah proses instalasi Gammu adalah sebagai berikut (Pratama, 2011): 1. Download File Gammu versi 1.29 2. Install Gammu dan pilih radio button seperti gambar di bawah ini. Gambar 2.28 Tampilan Installasi Gammu 51 Pilih direktori instalasi di drive C , kemudian ganti nama Gammu 1.29.0 menjadi “gammu”. Gambar 2.29 Tampilan Seting Lokasi Installasi Gammu Klik tombol next hingga proses instalasi selesai. 3. Setting konfigurasi Gammu - Masuk ke folder dimana gammu di install - Masuk ke C:\gammu\share\doc\gammu\examples\config (Apabila gammu di install di drive C:) - Copy file smsdrc dan gammurc ke C:\gammu\bin - Lakukan konfigurasi file ‘smsdrc’ seperti contoh berikut : 01 [gammu] 02 #port yang digunakan dapat dilihat di device manager 03 device = com3 04 #Contoh Type kokensi modem / phone menggunakan siemens C55 maka menggunakan at 19200 05 connection = at19200 06 07 [smsd] 08 #karena menggunakan database mysql untuk database penyimpanan pesan maka setting service = MYSQL 09 service = MYSQL 10 #PIN kartu sim 11 PIN = 1234 52 12 logfile = smsdlog 13 debuglevel = 0 14 15 #Tuliskan nama / ID pengenal untuk modem atau phone yang anda gunakan 16 phoneid = SiemensC55 17 commtimeout = 30 18 sendtimeout = 30 19 20 #Masukan user, pass, host, dan nama database yang akan kita gunakan sebagai tempat penyimpanan data pesan sms gateway 21 user = root 22 password = gayuh 23 pc = localhost 24 database = mgardu 25 26 27 # DBI configuration 28 driver = sqlite Configurasi file gammurc 1 [gammu] 2 device = com3 3 connection = at19200 4. Membuat Database MySQL untuk Gammu Langkah ini bertujuan untuk menyiapkan database MySQL untuk menampung data-data SMS yang diperlukan Gammu untuk SMS Gateway. a. Akses ke http://localhost/phpmyadmin/ b. Kemudian buat database baru, yaitu sms 53 Gambar 2.30 Tampilan import database gammu c. Kemudian pilih tab import, lalu C:\gammu\share\doc\gammu\examples\sql\mysql.sql, telusuri lalu klik tombol GO. d. Jika benar maka akan tampil pesan “Import has been successfully finshed, 10 queries executed”. 6. Menjalankan Service Gammu a. Jalankan service gammu melalui command prompt Gambar 2.31 Tampilan instalasi service gammu 54 b. Sebelum menjalankan service gammu, pastikan modem / phone yang akan kita gunakan terhubung dengan gammu dengan menggunakan perintah “gammu -s 0 -c gammurc identify” Gambar 2.32 Tampilan Cek Koneksi Modem c. Install service untuk gammu dengan menggunakan perintah “gammu-smsd -c smsdrc -i“ d. Start service untuk gammu dengan menggunakan perintah “gammu-smsd -c smsdrc -s“ e. Setelah service dijalankan maka gammu siap digunakan 55