1 BAB II KAJIAN PUSTAKA DAN LANDASAN TEORI Adapun tinjauan pustaka yang menjadi penunjang dalam penelitian ini adalah tentang sistem informasi geograf...
Adapun tinjauan pustaka yang menjadi penunjang dalam penelitian ini adalah tentang sistem informasi geografis, indikator kualitas pendidikan, JSON, PHP, Javascript, Google Maps, dan MySQL.
2.1
State of the Art Penelitian mengenai sistem informasi geografis sudah banyak yang
mengangkat tentang penelitian tersebut. Yaqin dan Musthafa (2013) dalam penelitiannya yang berjudul Rancang Bangun Sistem Informasi Geografis (SIG) Berbasis Web Untuk Memantau Kualitas SLTP di Kabupaten Gresik. Perancangan sistem yang dibangun berupa data spasial dan non spasial. Menampilkan peta persebaran kualitas SLTP yang ada di Kabupaten Gresik. Marker digunakan untuk memetakan lokasi SLTP yang ada beserta informasi dan polygon dibuat untuk mengetahui nilai rata-rata SSN (Sekolah Standar Nasional) setiap kecamatan. Pengujian sistem menggunakan quisioner. Berdasarkan hasil quisioner dari 10 orang, 60% menyatakan fitur yang ada di sistem ini cukup lengkap, 90% menyatakan data yang telah disediakan oleh sistem cukup lengkap, 60% menyatakan bahwa penggunaan sistem ini cukup mudah, 50% menyatakan bahwa desain aplikasi ini cukup menarik dan 70% menyatakan bahwa aplikasi ini cukup bermanfaat bagi masyarakat. Hidayah dan Fatah Sofyan (2013) dalam penelitiannya yang berjudul Sistem Informasi Geografis Pendidikan Sekolah Menengah Kejuruan di Kabupaten Ponorogo. Menerapkan pemanfaatan Google Maps API dalam memetakan SMK di Kabupaten Ponorogo dan menampilkan informasi dari SMK tersebut serta terdapat petunjuk arah ke lokasi SMK yang dipilih dari lokasi pengguna. Ahyani, Suprayogi, dan Awaluddin (2013) dalam penelitiannya yang berjudul Aplikasi Sistem Informasi Geografis (SIG) untuk Inventaris Sarana dan
6
7
Prasarana Pendidikan Menggunakan Google Maps API (Studi Kasus: Kec. Kaliwungu Kab. Kendal). Memetakan seluruh SMP yang ada di Kecamatan Kaliwungu dan menampilkan informasi inventaris sarana dan prasarana yang dimiliki. Fitur lain yang diberikan pada aplikasi ini yaitu penentuan rute lokasi yang dituju dari lokasi pengguna. Data yang ditangani adalah data spasial dan non spasial. Beberapa kajian pustaka yang telah dilakukan belum ada penelitian pemanfaatan fitur yang ada pada Google Maps API terhadap pemetaan wilayah berdasarkan kualitas pendidikan di Provinsi Bali. Membandingkan kualitas pendidikan yang rendah atau tinggi menggunakan perbedaan warna terhadap polygon yang telah dibuat, serta menggunakan metode trend semi average dalam melakukan peramalan data.
2.2
Indikator Kualitas Pendidikan Indikator yang menunjukkan kualitas pendidikan di suatu daerah menurut
data statistik yang dihimpun dari Badan Pusat Statistik adalah sebagai berikut: 1.
Angka Partisipasi Sekolah Indikator angka partisipasi sekolah dibagi ke dalam 3 indikator yang dapat
menggambarkan kualitas pendidikan, yaitu: a.
Angka Partisipasi Sekolah (APS) Angka Partisipasi Sekolah (APS) merupakan proporsi dari semua anak
yang masih sekolah pada satu kelompok umur tertentu terhadap penduduk dengan kelompok umur yang sesuai. Penghitungan APS biasanya dikelompokkan
untuk
kelompok
umur
sekolah
menurut
jenjang
pendidikan SD (7-12 tahun), SLTP (13-15 tahun) dan SLTA (16-18 tahun). APS dapat dihitung dengan formula berikut:
……………(2.1)
………(2.2)
8
………...(2.3)
b. Angka Partisipasi Kasar (APK) Angka Partisipasi Kasar (APK) merupakan proporsi anak sekolah pada suatu jenjang dengan tidak memandang umur terhadap jumlah penduduk kelompok umur tertentu. Indikator APK digunakan untuk menunjukkan tingkat partisipasi penduduk secara umum pada suatu tingkat pendidikan. Daya serap penduduk terhadap umur sekolah di masing-masing jenjang pendidikan dapat diukur menggunakan indikator APK. Nilai APK yang menunjukkan angka mendekati atau lebih dari 100 persen berarti ada penduduk yang sekolah belum mencukupi umur atau melebihi umur yang seharusnya. Berdasarkan kondisi yang disebutkan menggambarkan wilayah tersebut mampu menampung penduduk usia sekolah lebih dari pada target yang sesungguhnya. Analisis APK juga perlu dilakukan pada tiga jenjang pendidikan yaitu SD, SLTP, danSLTA. APK pada msing-masing jenjang pendidikan dapat diformulakan sebagai berikut: ………….(2.4)
……...(2.5)
……...(2.6)
c.
Angka Partisipasi Murni (APM) Angka Partisipasi Murni (APM) merupakan proporsi anak sekolah
pada satu kelompok usia tertentu yang bersekolah pada jenjang yang sesuai dengan kelompok usianya terhadap seluruh anak pada kelompok
9
usia tersebut. APM dapat digunakan untuk melakukan kajian di ketiga jenjang pendidikan yaitu pada jenjang SD, SLTP dan SLTA. APM di masing-masing jenjang dapat dilihat pada formula berikut.
……………………(2.7)
………………..(2.8)
…………………..(2.9)
2.
Angka Melek Huruf (AMH) Angka Melek Huruf merupakan indikator penting untuk melihat sejauh
mana penduduk suatu daerah terbuka terhadap pengetahuan. Tingkat melek huruf yang tinggi (atau tingkat buta huruf rendah) menunjukkan adanya sistem pendidikan dasar yang efektif dan atau program keaksaraan yang memungkinkan penduduknya untuk memperoleh kemampuan menggunakan kata-kata tertulis dalam kehidupan sehari-hari dan melanjutkan pembelajaran. Angka melek huruf berbanding terbalik dengan angka buta huruf,yaitu persentase penduduk 15 tahun ke atas yang tidak bisa membaca dan menulis baik huruf latin dan atau huruf lainnya. Semakin tinggi angka melek huruf suatu wilayah berarti angka buta hurufnya akan semakin rendah. Formula AMH adalah sebagai berikut. ……….(2.10)
3.
Angka Putus Sekolah (APtS) Angka putus sekolah merupakan proporsi anak menurut kelompok usia
sekolah yang sudah tidak bersekolah lagi atau yang tidak menamatkan suatu jenjang pendidikan tertentu. Adapun kelompok umur yang dimaksud adalah kelompok umur 7-12 tahun, 13-15 tahun dan 16-18 tahun. Angka putus sekolah merupakan salah satu indikator pendidikan.
10
………...(2.11)
……...(2.12)
……...(2.13)
2.3
Pengertian SIG Sistem Informasi Geografis (SIG) adalah sistem komputer yang memiliki
kemampuan pemasukan, pengambilan, analisis data, dan tampilan data geografis yang sangat berguna bagi pengambilan keputusan. Sistem Informasi Geografis atau disingkat SIG merupakan suatu sistem berbasis komputer yang digunakan untuk mengumpulkan, menyimpan, mengatur, mentransformasi, memanipulasi, dan menganalisis data-data geografis (Yousman, 2004). Data geografis yang dimaksud disini adalah data spasial yang ciri-cirinya adalah: 1.
Memiliki geometric properties seperti koordinat dan lokasi.
2.
Terkait dengan aspek ruang seperti persil, kota, kawasan pembangunan.
3.
Berhubungan dengan semua fenomena yang terdapat di bumi, misalnya data, kejadian, gejala atau objek.
4.
Dipakai untuk maksud-maksud tertentu, misalnya analisis, pemantauan ataupun pengelolaan.
Sistem informasi geografis dirancang untuk secara efisien memasukkan informasi, menyimpan informasi, memperbaharui informasi, memanipulasi informasi, menganalisa informasi, dan menyajikan semua jenis informasi yang berorientasi geografis.
11
2.4
Google Maps API Goolge Maps API adalah layanan aplikasi dan teknologi pemetaan
berbasis web yang disediakan oleh Google. Web ini dapat digunakan secara gratis untuk pemakaian non-komersil. Google Maps API merupakan perkembangan dari Google Maps. Manfaat menggunakan Google Maps API ini, dimungkinkan untuk dapat menggunakan Google Maps di dalam website. Maps API diperluas untuk menyertakan sebuah API untuk aplikasi Adobe Flash yang sebelumnya hanya berupa JavaScript API. Keberhasilan Google Maps API telah melahirkan sejumlah pesaing antara lain Yahoo! Maps API, Bing Maps Platform, MapQuest Development Platform dan OpenLayers. Google Maps API terdapat 4 jenis pilihan model peta yang disediakan oleh Google, diantaranya adalah: 1.
Roadmap, untuk menampilkan peta berukuran 2 dimensi.
2.
Satellite, untuk menampilkan foto satelit.
3.
Terrain, untuk menunjukkan relief fisik permukaan bumi dan menunjukan seberapa tingginya suatu lokasi, contoh: gunung dan sungai.
4.
Hybrid, akan menunjukkan foto satellit yang diatasnya terdapat pula apa yang tampil pada roadmap.
2.5
MySQL Pada subbab ini menjelaskan tentang pengertian, RDBMS, dan
keistimewaan yang dimiliki oleh MySQL. 2.5.1
Pengertian MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
atau DBMS yang multithread, dan multi-user. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. Proyek seperti Apache berbeda dengan MySQL, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode bersumber dari penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah
12
perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
2.5.2
Sistem Manajemen Basis Data Relasional MySQL adalah sebuah implementasi dari sistem manajemen basis data
relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basis data yang telah ada sebelumnya, SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basis data (DBMS) dapat diketahui dari cara kerja pengoptimalannya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program aplikasi yang memanfaatkannya sebagai peladen basis data, MySQL mendukung operasi basis data transaksional maupun operasi basis data non-transaksional. Modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basis data kompetitor lainnya. Modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus nontransaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (Wordpress), CMS, dan sejenisnya. Kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basis data transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional. (Wahono, 2009)
13
2.5.3
Keistimewaan MySQL MySQL memiliki beberapa keistimewaan yang diberikan bagi pengguna,
antara lain: 1.
Portabilitas Stabilitas MySQL yang baik pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2.
Perangkat lunak bersifat open source MySQL didistribusikan sebagai perangkat lunak bersifat open source, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
3.
Multi-user MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
4.
Performance Tuning MySQL memiliki kecepatan yang cepat dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
5.
Ragam tipe data MySQL memiliki ragam tipe data yang sangat kaya, seperti signed or unsigned
integer,
float,
double,
char,
text,
date,
timestamp, dan lain-lain.
6.
Perintah dan Fungsi MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah select dan where dalam perintah (query).
7.
Keamanan MySQL memiliki beberapa lapisan keamanan seperti level subnet mask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
8.
Skalabilitas dan Pembatasan MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris.
14
Batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 9.
Konektivitas MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX).
10.
Lokalisasi MySQL dapat
mendeteksi
pesan
kesalahan
pada
klien
dengan
menggunakan lebih dari dua puluh bahasa. Meskipun demikian, Bahasa Indonesia belum termasuk di dalamnya. 11.
Antar Muka MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
12.
Klien dan Peralatan MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
13.
Struktur tabel MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani alter tabel, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
2.6
JSON Sub bab ini menjelaskan tentang pengertian JSON dan struktur JSON yang
digunakan sebagai format pertukaran data dalam aplikasi ini. 2.6.1
Pengertian JSON JSON (JavaScript Object Notation) adalah format pertukaran data yang
ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. JSON merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java,
15
JavaScript, Perl, Python dan lain-lain. Sifat-sifat tersebut menjadikan JSON ideal sebagai bahasa pertukaran data (Mednieks, 2011). 2.6.1.1 Struktur JSON JSON terdiri dari dua struktur, struktur yang dimaksud adalah sebagai berikut (Introducing JSON, http://www.json.org): 1.
Kumpulan pasangan nama atau nilai. Kumpulan tersebut dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array.
2.
Daftar nilai yang terurut (an ordered list of values). Daftar tersebut dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur data ini disebut sebagai struktur data universal. Pada dasarnya,
semua bahasa pemrograman modern mendukung struktur data ini dalam bentuk yang sama maupun berlainan karena format data seperti ini mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini. Objek adalah sepasang nama atau nilai yang tidak terurutkan ditunjukkan pada Gambar 2.1. Objek dimulai dengan “{“(kurung kurawal buka) dan diakhiri dengan “}” (kurung kurawal tutup). Nama diikuti dengan “:” (titik dua) dan setiap pasangan nama atau nilai dipisahkan oleh “,” (koma).
Gambar 2.1 Objek Pada JSON (sumber: http://www.json.org/index.html)
16
Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan tanda “[“ (kurung siku buka) dan diakhiri dengan tanda “]” (kurung siku tutup). Setiap nilai dipisahkan oleh tanda “,” (koma) dan ditunjukkan pada Gambar 2.2.
Gambar 2.2 Array Pada JSON
(sumber: http://www.json.org/index.html) Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat dan ditunjukkan pada Gambar 2.3.
Gambar 2.3 Nilai Pada JSON (sumber: http://www.json.org/index.html)
String adalah kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda. String dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan string C atau Java dan ditunjukkan pada Gambar 2.4.
17
Gambar 2.4 String Pada JSON
(sumber: http://www.json.org/index.html) Angka pada JSON sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal tidak digunakan dan ditunjukkan pada Gambar 2.5.
Gambar 2.5 Angka Pada JSON
(sumber: http://www.json.org/index.html) Spasi kosong (whitespace) dapat disisipkan di antara pasangan tanda-tanda tersebut, kecuali beberapa detil encoding yang secara lengkap dipaparkan oleh bahasa pemrograman yang bersangkutan.
2.7
PHP Sub bab ini mejelaskan tentang definisi, syntax, variable, dan kelebihan
dari bahasa pemrograman PHP. 2.7.1
Pengertian PHP PHP (Hypertext Preprocessor) yang merupakan bahasa pemrograman
berbasis web yang memiliki kemampuan untuk memproses data dinamis. PHP
18
dikatakan sebagai sebuah server-side embedded script language artinya sintakssintaks dan perintah yang diberikan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server (Anhar, 2010). Mekanisme kerja webserver yang menggunakan bahasa PHP sebagai fungsi utama dimana client melakukan permintaan pada webserver dan webserver memberikan hasil terjemahan bahasa PHP ke dalam bahasa HTML yang nantinya browser
client
akan
mengolah
ulang
informasi
HTML tersebut
dan
menampilkannya dengan interface yang berbentuk halaman web ditunjukkan pada Gambar 2.6.
Gambar 2.6 Mekanisme Kerja PHP
Prinsipnya, server bekerja apabila ada permintaan dari client yang menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Berikut merupakan hal-hal yang dilakukan server ketika PHP digunakan sebagai serverside embedded script language (Anhar, 2010): 1.
Membaca permintaan dari client/browser
2.
Mencari halaman/page di server
19
3.
Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page.
4.
Mengirim kembali halaman tersebut kepada client melalui internet atau intranet.
2.7.2
Sintaks PHP Kode PHP disimpan sebagai plain text dalam format ASCII, sehingga kode
PHP dapat ditulis hampir disemua editor text seperti Windows Notepad, Windows Wordpad, dan lain-lain. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan kode tersebut dijalankan oleh server sebelum dikirim ke browser ditunjukkan pada Kode Program 2.1. Kode Program 2.1 Contoh File PHP (contoh.php)
HTTP server hanya melewatkan content dari file menuju ke browser pada file.html. Server tidak mencoba untuk mengerti atau memproses file, karena itu adalah tugas sebuah browser. Webserver memulai bekerja apabila berada diluar lingkungan kode HTML, oleh karena itu server melewati semua content yang berisi kode HTML, CSS, JavaScript, simple text di browser tanpa diinterpretasikan di server. Block scripting PHP selalu diawali dengan ““. Block scripting PHP dapat ditempatkan dimana saja di dalam dokumen. Server yang mendukung block scripting PHP dapat diawali dengan tanda “” dan diakhiri dengan tanda “?>”, namun, untuk kompatibilitas maksimum, sebaiknya menggunakan bentuk yang standar (). Baris kode PHP harus diakhiri dengan semikolon (;). Semikolon ini merupakan separator yang digunakan untuk membedakan satu instruksi dengan
20
instruksi lainnya. Tanda “//” digunakan PHP untuk membuat komentar baris tunggal atau” /*” dan “*/” untuk membuat suatu block komentar.
2.7.3
Variabel PHP Variabel digunakan untuk menyimpan suatu nilai, seperti teks, angka atau
array. Ketika sebuah variabel dibuat, variabel tersebut dapat dipakai berulangulang. Variable dapat dipakai berulang-ulang saat sebuah variabel dibuat. Variabel harus dimulai dengan karakter “$”. Variabel PHP tidak perlu dideklarasikan dan ditetapkan jenis datanya sebelum menggunakan variabel tersebut. Tipe data dari variabel dapat berubah sesuai dengan perubahan konteks yang dilakukan oleh user. Secara tipikal, variabel PHP cukup diinisialisasikan dengan memberikan nilai kepada variabel tersebut. Kode Program 2.2 adalah contoh pencetakan PHP. $text = "PHP"; print "$text"; Kode Program 2.2 Contoh Pencetakan PHP
Identifier dalam PHP adalah case-sensitive, sehingga $text dengan $Text merupakan variabel yang berbeda. Built-in function dan structure tidak casesensitive, sehingga echo dengan ECHO mengerjakan perintah yang sama. Identifier dapat berupa sejumlah huruf, digit atau angka, underscore, atau tanda dollar tetapi identifier tidak dapat dimulai dengan digit atau angka. Berikut ini adalah aturan-aturan yang ada dalam penamaan variable pada bahasa pemrograman PHP: 1.
Nama variabel harus diawali dengan sebuah huruf atau garis bawah (underscore) “_”.
2.
Nama variabel hanya boleh mengandung karakter alpha-numeric dan underscore (a-Z, 0-9, dan _).
3.
Nama variabel tidak boleh mengandung spasi.
21
2.7.4
Kelebihan PHP PHP memiliki beberapa kelebihan. Kelebihan yang dimaksud adalah
sebagai berikut (Anhar, 2010): 1.
Bahasa Pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaanya.
2.
Webserver yang mendukung PHP dapat ditemukan dimana-mana dari mulai Apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah.
3.
Sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan.
4.
Sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak.
5.
PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah sistem.
2.8
JavaScript JavaScript adalah bahasa script yang populer di internet dan dapat bekerja
disebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman website dengan penggunaan tag SCRIPT. 2.8.1
Sejarah JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape
dibawah nama Mocha, yang selanjutnya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript. Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para programmer yang non-Java. Dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript, walaupun tidak ada hubungan bahasa antara Java dengan JavaScript (Sierra, 2005).
22
JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.
2.8.2
Sintaks JavaScript Kode JavaScript biasanya dituliskan dalam bentuk fungsi yang ditaruh di
tag yang dibuka dengan tag <script type="teks/JavaScript">. Kode JavaScript juga bisa diletakkan di file tersendiri yang berekstensi .js (singkatan dari JavaScript). Memanggil kode JavaScript yang terdapat di file sendiri dapat dilakukan dengan cara, di bagian awal harus ditentukan dahulu nama file.js yang dimaksud menggunakan contoh kode seperti berikut: 1.
Script pada bagian Head Script ini dieksekusi ketika dipanggil (biasanya berbentuk function) atau
dipanggil berdasarkan trigger pada event tertentu. <script type="teks/JavaScript"> ... Kode Program 2.3 Contoh Script HTML untuk Head
Penerapan script HTML untuk Head ditunjukkan pada Kode Program 2.3. Peletakkan script di head menjamin script di-load terlebih dahulu sebelum digunakan (dipanggil). 2.
Script pada bagian Body Script ini dieksekusi ketika halaman di-load sampai di bagian .
Ketika menempatkan script pada bagian berarti antara isi dan JavaScript dijadikan satu bagian. Penerapan script-nya ditunjukkan pada Kode Program 2.4.
23
<script type="teks/JavaScript"> .... Kode Program 2.4 Contoh Script HTML untuk Body
Script pada bagian bisa diletakkan pada awal bagian atau di akhir bagian . Hal ini berpengaruh pada cara eksekusi proses load elemen dan script yang ada pada halaman. 3.
External JavaScript Menjalankan JavaScript yang sama dalam beberapa kali pada halaman
yang berbeda, tetapi tidak mau disibukkan jika harus menulis ulang script yang diinginkan di setiap halaman, maka JavaScript dapat ditulis di file secara eksternal. Jadi, antara dokumen HTML dan JavaScript dipisahkan, kemudian berkas tersebut dipanggil dari dokumen HTML. Berkas JavaScript tersebut disimpan dengan ekstensi .js. <script src="xxx.js">
Script di atas berada di berkas "xx.js" (eksternal)
Kode Program 2.5 Contoh Script HTML untuk External JavaScript
Penggunaan eksternal JavaScript (.js) dipakai atribut "src" pada tag <script> pada halaman HTML-nya ditunjukkan pada Kode Program 2.5.
2.9
Pengertian JQuery JQuery adalah JavaScript library, dengan semboyannya “write less, do
more”. JQuery dirancang untuk memperingkas kode-kode JavaScript. JQuery adalah JavaScript Library yang cepat dan ringan untuk menangani dokumen
24
HTML, menangani event, membuat animasi dan interakasi AJAX. JQuery dirancang untuk mengubah cara menulis JavaScript. 2.9.1
Kelebihan JQuery Library JQuery mempunyai kemampuan, kemampuan tersebut adalah
sebagai berikut: 1.
Kemudahan mengakses elemen-elemen HTML
2.
Elemen HTML yang dapat dimanipulasi
3.
CSS dapat dimanipulasi layaknya elemen HTML
4.
Kemudahan dalam penanganan Event HTML
5.
Efek-efek JavaScript dan animasi
6.
Modifikasi HTML DOM
7.
AJAX
8.
Kode javascript lebih sederhana
2.9.2
Sintaks JQuery Sintaks JQuery biasanya dibuat untuk memilih elemen-elemen HTML dan
melakukan aksi terhadap elemen yang dipilih. Kode Program 2.6 menunjukkan contoh sintaks penulisan kode JQuery. <script type="text/JavaScript" src="jquery.js"><script type="text/JavaScript"> $(document).ready(function(){ $(".button1").click(function(){$("p").hide(1000);}); $(".button2").click(function(){$("p").show(1000);}); });
Halo dunia!
Kode Program 2.6 Contoh Sintaks Penulisan Kode jQuery
25
Segala sesuatu bila menggunakan JQuery dalam hal memanipulasi Document Object Model (DOM), perlu dipastikan untuk menambahkan event ready yang menandakan DOM siap.
2.9.3
JQuery Selector Manipulasi elemen HTML dapat dilakukan menggunakan JQuery Selector.
Penjelasan sebelumnya telah diperlihatkan cara seperti Kode Program 2.6 dalam memilih elemen HTML menggunakan JQuery. Daftar selector JQuery ditunjukkan pada Tabel 2.1. Tabel 2.1 Daftar Selector jQuery
Selector
Contoh
* #id
$(“*”) $(“#lastname”)
.class
$(“.intro”)
element :not(selector)
$(“p”) $(“input:not(:empty) ”)
:contains(text)
$(“:contains(‘click here’)”)
:empty
$(“:empty”)
:hidden
$(“p:hidden”)
:visible s1, s2, s3
$(“tabel:visible”) $(“th, td, .intro”)
[atribut]
$(“[href]”)
[atribut=value]
$(“[href=’#’]”)
[atribut!=value]
$(“[href!=’#’]”)
[atribut$=value]
$(“[href$=’.jpg’]”)
Yang dipilih Semua elemen Elemen yang mempunyai id=”lastname”
Semua elemen yang mempunyai class=”intro” Semua elemen
Semua input elemen yang tidak kosong Semua elemen yang mengandung ‘click here’ Semua elemen yang tidak mempunyai elemen anakan Semua elemen
yang tersembunyi Semua tabel yang visible Semua elemen yang cocok dengan th, td, .intro Semua elemen yang mempunyai atribut href Semua elemen yang mempunyai atribut bernilai href=”#”
Semua elemen yang mempunyai atribut href yang tidak bernilai “#” Semua elemen yang mempunyai atribut href yang nilainya mengandung “.jpg”
26
:input :text
$(“:input”) $(“:text”)
:password
$(“:password”)
:radio
$(“:radio”)
:button
$(“:button”)
:selected
$(“:selected”)
:checked
$(“:checked”)
Semua elemen Semua elemen dengan type=”text” Semua elemen dengan type=”password” Semua elemen dengan type=”radio” Semua elemen dengan type=”button” Semua elemen yang terseleksi Semua elemen yang tercheck
(sumber : Sibero. 2013)
JQuery element selector dan attribute selector memungkinkan untuk memilih elemen HTML (atau kelompok elemen) dengan nama tag, nama atribut atau konten.
2.9.4
JQuery Events Menangani event adalah kemampuan jQuery, biasanya kode-kode
pemograman diletakkan di dalam penanganan event yang terjadi pada suatu atau kelompok elemen yang dipilih. Daftar event-event yang dapat terjadi dari elemen HTML ditunjukkan pada Tabel 2.2. Tabel 2.2 Daftar Event yang Ada di JQuery
Function Menjalankan sesuatu ketika seluruh elemen selesai ditampilkan. Menjalankan event ketika ada perubahan nilai untuk elemen tersebut. Menjalankan event ketika elemen tersebut terkena klik. Menjalankan event ketika elemen tersebut terkena klik dua kali. Menjalankan event ketika terjadi error pada elemen. Menjalankan event ketika elemen
27
tersebut mendapatkan fokus. Menjalankan event ketika elemen tersebut berhasil ditampilkan. $(selector).mousedown(function) Menjalankan event ketika elemen tersebut mendapatkan klik dari mouse. $(selector).mouseenter(function) Menjalankan event ketika elemen tersebut mendapatkanhover dari pointer. $(selector).mouseleave(function) Menjalankan event ketika elemen tersebut kehilangan hover dari pointer. $(selector).mousemove(function) Menjalankan event ketika elemen tersebut kehilangan hover dari pointer. $(selector).mouseout(function) Menjalankan event ketika elemen tersebut kehilangan hover dari pointer. $(selector).mouseover(function) Menjalankan event ketika elemen tersebut mendapatkan hover dari pointer. $(selector).mouseup(function) Menjalankan event ketika elemen tersebut mendapatkan hover dari pointer. $(selector).resize(function) Menjalankan event ketika ada perubahan tinggi atau lebar yang terjadi pada elemen. $(selector).select(function) Menjalankan event ketika elemen yang bersangkutan terpilih. $(selector).submit(function) Menjalankan event ketika sebuah elemen form di-submit. $(selector).unload(function) Menjalankan event ketika sebuah elemen hilang dari layar. $(selector).load(function)
(sumber : Sibero. 2013)
Beberapa event yang dilakukan dalam setiap elemen dapat di-handle dengan menggunakan jQuery event.
2.10
Trend Semi Average Method Metode trend semi average tergolong metode trend linier. Trend linier
berupa garis lurus jika digambar ke dalam grafik. Metode ini akan membentuk
28
garis lurus sebagai pengganti garis patah-patah terbentuk dari data historis yang diperoleh dengan perhitungan-perhitungan statistik dan matematika tertentu. Metode trend semi average dapat digunakan untuk keperluan peramalan dengan membentuk suatu persamaan seperti analisis regresi. Metode ini dapat digunakan dengan jumlah data genap ataupun ganjil. Algoritma dalam mengaplikasikan metode trend semi average dalam melakukan peramalan adalah sebagai berikut: 1.
Mengelompokkan data menjadi dua kelompok. a. Bila jumlah data genap maka langsung dibagi dua. b. Bila jumlah ganjil maka disesuaikan dengan salah satu dari cara berikut: 1) Mengeliminasi data tahun paling awal atau 2) Menambah data tahun tengah
2.
Menentukan periode dasar, dapat dilakukan dengan dua cara, yaitu: a. Tahun tengah data kelompok I b. Tahun tengah data kelompok II
3.
Menentukan angka tahun berdasarkan periode dasar.
4.
Menentukan nilai semi total atau total dari masing-masing kelompok.
5.
Menentukan semi average tiap kelompok data dengan cara nilai semi total dibagi jumlah data dalam kelompok.
6.
Menentukan nilai a dengan cara. a. Bila tahun dasar menggunakan tahun tengah kelompok I maka nilai a adalah nilai Semi Average kelompok I. b. Bila tahun dasar menggunakan tahun tengah kelompok II maka nilai a adalah nilai Semi Average kelompok II.
7.
Menentukan nilai b dengan cara. a. Bila jumlah data kelompok adalah ganjil, maka nilai b ditentukan dengan cara membagi selisih antara nilai semi average kelompok II dan I dengan jarak tahun antara tahun tengah kelompok I dan II. b. Bila jumlah data kelompok adalah genap maka nilai b ditentukan dengan cara.
29
1) Menghitung nilai antara dengan membagi selisih antara nilai semi average kelompok II dan I dengan jumlah data dalam kelompok 2) Nilai b ditentukan dengan membagi nilai antara dengan nilai tahunnya (selisih antar angka tahun) 8.
Membuat fungsi trend. Untuk menentukan nilai trend linier untuk tahuntahun tertentu dapat dirumuskan sebagai berikut: Y’ = a0 + bX ……………………………..(2.14) Keterangan : Y’ : data berkala (time series) atau taksiran nilai trend a0 : nilai trend pada tahun dasar
9.
b
: rata-rata pertumbuhan nilai trend tiap tahun
X
: variabel waktu (tahun)
n
: jumlah data tiap kelompok
Meramalkan data tahun tertentu dimana nilai X ditentukan berdasarkan angka tahun untuk tahun yang hendak diramalkan.