BAB 2 LANDAS AN TEORI
2.1
Framework 2.1.1
Pengertian Framework Ralph E. Johnson, ketua UIUC patterns/Software Architectur e Group dan koordinator program proyek senior di Department of Computer Science pada University of Illinois, menyatakan bahwa framework adalah desain yang reuseable dan biasanya dinyatakan sebagai satu set abstraksi class yang mengatur bagaimana class saling terhubung. Perancangan pada framework dibuat sedemikian rupa sehingga sebagian atau seluruh software dapat digunakan kembali. Contohnya : seorang desainer membuat suatu UI (user interface) yang hanya dapat digunakan pada bagian tertentu suatu aplikasi. Desain tersebut tidak dapat digunakan kembali oleh bagian lainnya dari aplikasi tersebut. Hal ini tentunya kurang efektif. Bila menggunakan suatu framework, contohnya M acApp atau Macintosh Application Framework maka dapat menciptakan desain untuk keseluruhan aplikasi sehingga meningkatkan efisiensi kerja. M enurut Pressman (2005, p282), framework adalah kerangka kode yang dapat disempurnakan dengan classes yang spesifik atau dengan fungsi yang telah dirancang untuk mengatasi masalah yang dihadapi. Dapat disimpulkan bahwa framework biasanya bersifat object – oriented dan merupakan suatu desain sistem yang dapat digunakan
7
8
kembali. Tujuannya untuk mengurangi pembuatan kembali kode yang sama sehingga programmer dapat lebih fokus mengerjakan bagian lainnya. Keuntungan menggunakan framework : •
M enggunakan kembali kode yang telah dibuat dan diuji sehingga meningkatkan keandalan dari aplikasi baru dan
mengurangi
programming dan usaha pengujian. •
Framework membantu menciptakan latihan pemrograman yang lebih baik dan penggunaan pola desain yang sesuai serta alat pemrograman yang baru.
Kekurangan framework : •
M embuat sebuah framework tidaklah mudah dan memakan waktu serta biaya
•
Seiring dengan berjalannya waktu, framework yang dibuat dapat menjadi lebih kompleks
2.1.2
Jenis – Jenis Framework Beberapa tipe dari framework : • Framework Teknologi − Dikenal juga sebagai Sistem Infrastruktur atau Middlewar e Frameworks. − M enyediakanstandar atau software yang umum dan tidak perlu terbatas pada pengembangan berbasis komponen.
9
− Contohnya : COM, CORBA, Java • Framework Object Oriented − Terdiri dari satu set class yang bekerja sama untuk memecahkan masalah yang saling berkaitan. − Programmer dapat menggunakan inheritance dan delegation untuk memperluas framework. − Contoh : RogueWaveTools.h++,Model-View-Controller (M VC), Microsoft Foundation Classes • Framework Komponen − M edefenisikan satu set interaksi abstrak yang menjelaskan protokol dimana komponen saling bekerja sama. Setiap komponen memiliki peran di masing-masing interaksi abstrak. − Contoh : Visual Component Framework (VCF), Yii PHP framework • Framework Bisnis − Dikenal juga sebagai Enterprise Framework − M eyediakan domain yang spesifik, solusi bisnis yang dapat diperluas ke dalam organisasi dan tidak perlu dibatasi pada pengembangan berbasis komponen − Contoh : SAP R3, John Doe's Order Processing Framework, Janna Systems' Janna Contact Enterprise, Siebold, Baan Company's BaanSeries
10
2.2
Pemetaan Data 2.2.1
Pengertian Peta M enurut
Burrough
(1987,
p1-14),
peta
digunakan
untuk
mendeskripsikan tempat yang jauh, sebagai alat bantu untuk navigasi dan strategi militer (Hodgkiss 1981). Peta dengan tujuan tertentu (mislanya peta untuk pendistribusian tipe batu, jenis tanah dan lainnya) dikenal dengan nama peta tematik karena mereka mengandung informasi tentang subjek tertentu. Peta merupakan satu set poin, garis dan area yang mendefinisikan keduanya melalui lokasi mereka dalam jarak dengan referensi untuk mengkoordinasikan sistem dan oleh atribut non-spasial. Peta biasanya direpresentasikan dalam dua dimensi tapi tidak ada alasan untuk mengecualikan dimensi yang lebih tinggi kecuali melalui kesulitan penggambaran dala selembar kertas.
2.2.2
Pengertian Pemetaan M enurut Burrough (1987, p1-14), pada zaman Roma, pengukur tanah merupakan bagian penting dari kerajaan dan hasil dari pekerjaan mereka masih dapat dilihat dalam bentuk vistigial dari tanah Eropa sekarang (Dilke 1971). Hanya sampai pada abad ke-18, pemerintahan Eropa
menyadari fungsi dari pemetaan di tanah mereka. Badan
pemerintahan nasional ditugaskan untuk membuat peta topografi keseluruhan negara.
11
Sebagaimana penelitian ilmiah mempelajari tentang bumi secara lebih maju, material baru perlu untuk dipetakan dan sampai kepada saat komputer digunakan untuk pemetaan, semua tipe pemetaan memiliki satu poin yang sama, yaitu database spasial merupakan gambar pada sebuah kertas atau film. Informasi ditulis dalam bentuk poin, garis atau area.
2.2.3
Pengertian Data M enurut Courtney dan Paradise (1988, p4), data secara sederhana didefenisikan sebagai angka – angka, kata – kata, nama atau simbol lainnya yang dapat disimpan ke dalam sistem komputer. Beberapa nilai dari data memungkinkan untuk dimanipulasi atau diproses untuk menghasilkan informasi. M enurut O’Brien (2003, p13), data dapat berupa banyak bentuk, termasuk data alpahnumeric yang tradisional, komposisi angka dan huruf alphabet dan karakter lain yang mendeskripsikan transaksi bisnis atau kegiatan dan entiti lainnya. Data teks, terdiri dari kalimat dan paragraf yang digunakan dalam komunikasi tertulis, data gambar dan data suara adalah bentuk data yang penting. Data adalah bentuk jamak dari datum, walaupun data biasanya direpresentasikan dalam bentuk tunggal maupun jamak. Data merupakan fakta atau observasi yang mentah, biasanya berupa fenomena fisik atau transaksi bisnis. Lebih spesifik lagi, data adalah pengujian objektif dari atribut (karakteristik) yang dimiliki entiti (seperti orang, tempat, bendz dan kegiatan).
12
2.3
Smarty (Hayder, et. al, 2006, p1-229) 2.2.1
Latar Belakang Smarty Saat
ini,
website
semakin
berkembang
seiring
dengan
perkembangan internet. Aplikasi – aplikasi website yang kompleks juga semakin bermunculan. Selama lebih dari 10 tahun terakhir ini, PHP telah menjadi salah satu pilihan web developer untuk pengembangan website karena PHP open source dan menyediakan bahasa pemrograman yang lengkap. Seiring dengan pertumbuhan kompleksitas dari aplikasi yang menggunakan PHP, timbul pertanyaan “Bagaimana memisahkan kode programmer (PHP) dari kode desainer (HTM L) ?” atau “Bagaimana memisahkan konten/isi dari presentasi (tampilan) ? “. Smarty,sebuah sistem template PHP,muncul untuk menjawab pertanyaan ini.
2.2.1.4 Sistem Template Tujuan dasar dari penggunaan sistem template adalah agar dapat mengurangi interaksi antara programmer dengan desainer. Seperti contoh, desain website mungkin terlihat seperti ini :
13 Header
Navigation
Isi Website
Footer
Gambar 2.1 Desain Website Para desainer mengatur bagaimana tampilan website (misalnya dengan memasukkan gambar, pewarnaan, teks, tabel dan sebagainya). Sementara programmer membuat fungsi – fungsi atau konten dari website (misalnya : daftar barang yang akan dijual di dalam website, perhitungan total pembelian dan sebagainya). Hal ini menunjukkan bahwa tugas serta informas i yang diinginkan masing - masing bagian pembuat website berbeda. Desainer tidak
membutuhkan informasi tentang
bagaimana cara menghasilkan suatu nilai sementara programmer tidak membutuhkan informasi tentang tampilan website. Dengan menggunakan sistem template, programmer dan desainer tidak saling mencampuri pekerjaan masing – masing. Programmer membuat koding di dalam halaman PHP (file bertipe “.php”) dan mengoper nilai yang ingin ditampilkan ke dalam suatu variabel. Desainer mengambil variabel yang mengandung nilai dan mencetaknya ke dalam template yang digunakan (file bertipe “.tpl”).
14
2.2.1.5 Alasan Menggunakan Sistem Template Langkah – langkah pembuatan website sama dengan pembuatan software yaitu pengumpulan analisa, membuat desain sistem website, pengkodingan, pengetesan serta maintenance. Dan karena ini adalah website, maka dibutuhkan desain yang baik untuk menarik perhatian pengguna atau pengunjun g website.
Penyelesaian
seluruh
tahapan
pembuatan
akan
membutuhkan waktu yang lama dalam proses pembuatannya (baik dalam desain maupun sistem dan pengkodingannya). Semakin lama pembuatannya, semakin besar pula biayanya. Untuk mengatasi hal ini, maka perusahaan software pembuat website memisahkan programmer serta desainer agar mereka dapat fokus terhadap bagian yang mereka kuasai. Pemisahan
ini
perlu
dilakukan
karena
bila
tidak
dipisahkan: •
Akan menyulitkan desainer karena programmer memiliki ciri khas masing – masing dalam pengkodingan. Bila banyak programmer yang terlibat dalam pembuatan website, maka desainer harus mengerti cara masing - masing programmer menyusun kode, penamaan variabel dan sebagainya.
•
Akan menyulitkan programmer karena harus memahami desain template dan menghasilkan kode yang menghasilkan halaman HTM L dari PHP sesuai dengan keinginan desainer.
15
Dengan sistem template, kesulitan ini akan dapat teratasi karena programmer dan desainer menangani tugasnya masing – masing dan tidak mencampuri tugas yang lainnya (programmer tidak membuat atau pun mengatur bagaimana tampilan website dan desainer tidak menyentuh kode PHP).
2.2.1.6 Kelebihan Smarty Smarty
memungkinkan
berinteraksi dengan
desainer
cara yang lebih
mempengaruhi pekerjaan
satu
dengan
dan
programmer
efektif
dan
lainnya.
tidak
Desainer
membuat template website dan mengambil atau menampilkan variabel yang berisi nilai ke dalam website.
Programmer
mengoper data ke dalam variabel tanpaharus mengubahnya ke dalam kode HTM L. Sebagai contoh dapat dilihat dalam pembuatan situs ecommerce yang menjual laptop. Nama produsen, nomor model, karakteristik dan harga adalah elemen yang akan disimpan di database dan ditampilkan kepada pengunjung. Smarty membuat pekerjaan desainer serta programmer menjadi lebih mudah. Tugas utama yang dilakukan oleh mereka dapat dilihat sebagai berikut. Tugas programmer : • M engubah elemen database menggunakan query sederhana di dalam database
16
• Validasi dan manipulasi data dengan menggunakan logika bisnis • Bila dibutuhkan, mengganti metode pengaksesan data dan logika bisnis tanpa melibatkan pekerjaan desainer. M isalnya saja, mengganti keseluruhan sistem dari M ySQL menjadi PostgreSQL tanpa mengakibatkan desainer mengganti satu hal pun. Tugas desainer : • M embuat desain HTM L tanpa melibatkan atau mengganggu programmer. Desainer hanya perlu mengkhawatirkan tentang desain konten web. • M embuat
perubahan
desain
tanpa
melibatkan
atau
mengganggu programmer. Dari contoh di atas, dapat disimpulkan bahwa tugas yang ditugaskan kepada orang – orang yang terlibat di dalam proyek adalah tugas yang mereka kuasai sehingga akan lebih efiesien dalam membuat suatu website.
2.2.2
Fitur – Fitur Utama Smarty 1. Pengubah Variabel Dengan Smarty, tampilan pada website diatur desainer tanpa melibatkan programmer. Contohnya : desainer ingin menampilkan kategori produk dengan huruf besar dan spasi diantara karakter
17
katanya (misalnya : “M O B I L”). Walaupun di dalam database kolom berisi kata “mobil”, desainer tidak perlu bantuan programmer untuk mengubah data di dalam database karena dengan Smarty, programmer mengoper suatu variabel yang berisi “mobil” dan desainer dapat mengubah nilai dari variabel tersebut sesuai keinginan. 2. Fungsi Template Salah satu keunggulan Smarty yang lain adalah fungsi template. Sebagai contoh, bila ingin mendesain suatu form dengan banyak dropdown HTM L. Cara tradisional untuk melakukan hal ini adalah dengan menulis tag untuk setiap menu dropdown. Dengan Smarty, hanya perlu menulis satu fungsi dropdown dan memanggilnya kapanpun diperlukan sehingga akan lebih cepat dan efisien. 3. Debugging Debugging sangat diperlukan oleh programmer maupun desainer. Berdasarkan pengalaman Hayder,et. al (2006, p13), bagi seorang programmer, tidak memiliki alat debugging lebih buruk dari kesalahan dalam algoritma. Alat debugging berguna untuk memeriksa dan mengoreksi pekerjaan mereka. Bila tidak ada alat debugging maka programmer maupun desainer tidak dapat melihat apakah variabel yang mereka pakai sudah benar, apakah yang dihasilkan sudah sesuai dengan keinginan dan lain sebagainya. Kelebihan lainnya dalam alat debuggingSmarty adalah bahwa selain dapat melakukan debug untuk PHP, Smarty juga menyediakan konsol
18
debugging untuk mengkoreksi kesalahan yang berkaitan dengan Smarty itu sendiri. 4. Plug-Ins Salah satu hal yang sangat penting bagi sebuah perusahaan software adalah kemungkinan untuk penggunaan kembali kode. Hal ini akan menghemat waktu dan biaya bagi perusahaan ketika proyek baru yang dibangun memiliki fungsi yang terkait dengan proyek – proyek lain yang sudah dibuat sebelumnya. Penggunaan kembali kode yang sudah ada dapat dilakukan dengan fungsi copy dan paste ke aplikasi yang baru. Akan tetapi, hal ini berarti di dalam kode tersebut dibutuhkan modifikasi variabel dan nama fungsi, pengujian ulang serta integrasi dengan sistem yang baru. Dengan Smarty, disediakan suatu cara yang lebih baik dalam penggunaan kembali fungsi yang sudah ada yaitu dengan Plug-in. Cara pembuatan plug-in yaitu ketika membangun
sebuah website,
programmer mengidentifikasi fungsi yang dapat digunakan kembali dan membuatnya sebagai plug-in. Dengan cara ini, setelah membangun beberapa website, maka progammer akan memiliki banyak plug-in yang berjalan dengan baik dan dapat dimasukkan tanpa modifikasi ke dalam proyek baru – menghemat banyak waktu dan pekerjaan. 5. Filters Desainer mungkin menulis banyak komentar di dalam template mereka sehingga menghasilkan file yang berukuran besar setelah di-compile.
19
Pembuat Smarty memikirkan hal ini dan memasukkan satu set filter untuk mengatasi masalah ini. Filter yang dibuat terdiri dari : •
Prefilter yang berfungsi untuk modifikasi template sebelum dicompile.
•
Postfilter yang berfungsi untuk memodifikasi template setelah dicompile.
•
Outputfilter yang berfungsi untuk menyaring hasil keluaran dari template yang di-compile.
2.2.3
Beberapa Built-In Method dalam Smarty 1.
assign M ethod assign digunakan untuk passing variabel ke dalam template. Variabel yang dapat dioper antara lain : nama, nilai atau array assosiatif yang mengandung nama dan nilai berpasangan. void assign ( mixed var ) void assign ( string varname, mixed var )
2.
assign_by_ref M ethod assign_by_ref digunakan untuk passing nilai ke dalam template dengan referensi. Dengan mengubah isi dari variabel yang dijadikan sebagai referensi akan mengubah isi dari semua variabel yang direferensikan. Demi objektifitas, lebih baik menggunakan assign_by_ref karena menghindari penyalinan sebuah objek di
20
dalam memory sehingga mengakibatkan program menjadi lebih cepat. void assign_by_ref ( string varname, mixed var) 3.
append M ethod append digunakan untuk menambahkan sebuah elemen ke dalam array. Bila nama variabel bukan array maka akan diubah menjadi array dan elemen akan dimasukkan ke dalamnya. Dapat mengoper pasangan nama, nilai atau asosiasi array yang mengandung pasangan nama atau nilai ke dalam mehod assign. void append ( mixed var) void append ( string varname, mixed var [, bool merge])
4.
display Method ini digunakan untuk menampilkan template. void display ( string template [, string cache_id [, string compile_id]])
5.
fetch Method ini mengembalikan hasil keluaran dari sebuah template atau untuk menampilkan template. string fetch ( string template [, string cache_id [, string compile_id [, bool display ]]])
21
2.4
Google Maps API 2.3.4
Pengertian API M enurut Tulach (2008, p1-14), API atau Application Programming Interface bukan hanya satu set class dan method atau fungsi dan signature yang sederhana. Akan tetapi API, yang bertujuan utama untuk mengatasi “clueless” dalam membangun software yang berukuran besar, berawal dari sesuatu yang sederhana sampai ke yang kompleks dan merupakan perilaku komponen yang sulit dipahami. Secara sederhana dapat dipahami dengan membayangkan kekacauan yang akan timbul bila mengubah database atau skema XML. Perubahan ini dapat dipermudah dengan bantuan API. Sementara, menurut sumber lain (Wikipedia, 2011) API adalah satu setaturandanspesifikasi tertentu yang menyatakan bagaimana program dapat mengakses dan memanfaatkan layanan sumber daya yang disediakan oleh program lainnya yang juga menggunakan API. Atau secara sederhana, API dinyatakan sebagai penghubung antara satu software dengan software lainnya. Dari beberapa sumber yang didapat, dapat disimpulkan bahwa API adalah
sekumpulan
perintah,
fungsi,
class
dan
protokol yang
memungkinkan suatu software berhubungan dengan software lainnya. Tujuan dari API adalah untuk menghilangkan “clueless” dari sistem dengan cara membuat sebuah blok besar yang terdiri dari software di seluruh dunia dan menggunakan kembali perintah, fungsi, class atau protokol yang mereka atau API miliki. Dengan cara ini, programmertidak
22
perlu lagi membuang waktu untuk membuat dan menulis infrastruktur sehingga akan menghemat waktu kerja dan lebih efisien.
2.3.5
Pengertian Google Maps API Seperti yang tercatat oleh Svennerberg (Beginning Google M aps API 3, p1), Google Maps API adalah API yang paling populer di internet. Pencatatan yang dilakukan pada bulan M ei tahun 2010 ini menyatakan bahwa 43% mashup (aplikasi dan situs web yang menggabungkan dua atau lebih sumber data)
menggunakan Google M aps API. Beberapa
tujuan dari penggunaan Google Maps API adalah untuk melihat lokasi, mencari alamat, mendapatkan petunjuk mengemudi dan lain sebaginya. Hampir semua hal yang berhubungan dengan peta dapat memanfaatkan Google Maps. Google Maps (tanpa API) diperkenalkan pada Februari 2005 dan merupakan revolusi bagaimana peta di dalam halaman web, yaitu dengan membiarkan user untuk menarik peta sehingga dapat menavigasinya. Solusi peta ini pada saat itu masih baru dan membutuhkan server khusus. Beberapa saat setelahnya, ada yang berhasil men-hackGoogle Maps untuk digunakan di dalam webnya sendiri. Hal ini membuat Google Maps mengambil kesimpulan bahwa mereka membutuhkan API dan pada Juni 2005, Google Maps API dirilis secara publik.
23
2.3.6
S yntax dan atau yang Sering Digunakan 1. google.maps.LatLng M erupakan sintaks yang digunakan untuk menunjuk pada lokasi di peta. LatLng memiliki banyak kegunaan pada GoogleMaps API. Contohnya : google.maps.Marker menggunakan LatLng dalam constructor dan meletakkan marker penanda pada lokasi geografis di peta. var myLatlng = new google.maps.LatLng(myLatitude, myLongitude) 2. google.maps.Map M erupakan classJavaScript yang merepresentasikan sebuah peta. Object pada class didefinisikan dalam sebuah peta di halaman website. Secara sederhana dapat dikatakan bahwa Map() membuat sebuah objek peta dan memasukkannya ke dalam mapDiv. var map =new google.maps.M ap(document.getElementById("map_canvas "), myOptions);
3. google.maps.M arker M embuat sebuah marker atau penanda pada pilihan tertentu. Bila sebuah peta spesifik, penanda diletakkan pada peta pada saat construction. Perhatikan bahwa penanda harus diatur agar pinpoint dapat ditampilkan. var marker = new google.maps.M arker(opts?:MarkerOptions);
24
4. google.maps.event.addListener Setiap objek Google Maps API membuat sejumlah nama event. Program yang ingin menggunakan event tertentu akan memanggil event listener untuk event tersebut dan menjalankan kode ketika event diterima dengan mendaftarkannya melalui addListener(). Secara sederhana, addListener() memanggil nama – nama suatu objek (misalnya : marker atau map atau sizer) dan menjalankannya ketika suatu kejadian terjadi (misalnya ketika diklik).
var handle = google.maps.event.addListener(Object, UserEvent, function(event) { // Do something }); 5. getZoom() dan setZoom() getZoom() mengembalikan sebuah nilai yang mengidentifikasikan nilai dari zoom level yang sekarang. setZoom(zomLevel:number) mengatur tingkat zoom peta var zoomLevel = map.getZoom(); map.setZoom(12);