BAB II LANDASAN TEORI 2.1 Film Film dapat diartikan sebagai cerita atau gambar hidup. Pengertian lebih lengkap dan mendalam tercantum dalam pasal 1 ayat (1) UU Nomor 8 Tahun 1992 tentang Perfilman disebutkan bahwa yang dimaksud dengan film adalah karya cipta seni dan budaya yang merupakan media komunikasi massa pandangdengar yang dibuat berdasarkan asas sinematografi dengan direkam pada pita seluloid, pita video, piringan video dan/atau bahan hasil penemuan teknologi lainnya dalam segala bentuk, jenis dan ukuran melalui proses kimiawi, proses elektronika, atau proses lainnya, dengan atau tanpa suara, yang dapat dipertunjukkan dan/atau ditayangkan dengan sistem mekanik, elektronik dan/atau lainnya. Pengertian di atas jelas mengungkapkan bahwa film adalah sebuah proses sejarah atau proses budaya suatu masyarakat yang disajikan dalam bentuk gambar hidup. Sebagai sebuah proses, banyak aspek yang tercakup dalam sebuah film. Mulai dari pemain atau artisnya, produksi, bioskop, penonton, dan sebagainya. Film juga identik sebagai hasil karya seni kolektif yang melibatkan sejumlah orang, modal, dan manajemen. Dalam proses pembuatannya, pada dasarnya film merupakan komoditi jasa kreatif untuk dinikmati masyarakat luas. Dinilai dari sudut mana pun, film adalah acuan otentik tentang berbagai hal, termasuk perkembangan sejarah suatu bangsa. Film merupakan karya cipta manusia yang berkaitan erat dengan berbagai aspek kehidupan. 2.1.1 Klasifikasi Film Dalam buku ”100 tahun bioskop di Indonesia”, Johan Tjasmadi mengelompokkan film berdasarkan beberepa kategori, di antaranya adalah berdasarkan fungsi, berdasarkan maksud pembuatan dan sasaran yang dituju, dan berdasarkan usia penonton. 5 6 2.1.1.1 Klasifikasi Film Berdasarkan Fungsinya Pada dasarnya, fungsi film berkaitan erat dengan manfaat, apa gunanya seseorang membuat film. Ada beberapa alasan yang sangat mendasar: 1. Film sebagai media seni. Dalam hal ini, suatu film dianggap memiliki nilai seni karena di dalamnya mengandung unsur-unsur artistik seperti sinematografi, seni peran, seni suara, dan berbagai hasil citra, rasa, dan karsa para pembuatnya. 2. Film sebagai media hiburan. Dalam hal ini film memiliki fungsi sebagai tontonan yang bersifat dengar-pandang (audio visual). 3. Film sebagai media informasi. Dalam hal ini film berfungsi untuk menyampaikan pesan yang ada di dalamnya kepada penonton. 2.1.1.2 Klasifikasi Film Berdasarkan Maksud Pembuatan Pada awal penemuannya film memang dimaksudkan untuk dijadikan komoditi jasa kreatif. Artinya barang / jasa dagangan yang bernilai seni. Pada perkembangan berikutnya film memiliki ciri atau rumpun dan kategori yang berbeda sesuai dengan tujuan pembuatannya. Berikut ini adalah tabel yang membedakan film berdasarkan maksud pembuatannya : Tabel 2.1 Film Berdasarkan Maksud Pembuatananya No. Rumpun Kategori Asal anggaran produksi Hiburan main-stream Modal usaha (profit oriented) Keuntungan bagi pemodal (material gain) Tujuan utama film 1 Komersial 2 Dokumentasi Arsip Belanja rutin Data terhimpun dengan rapi 3 Informasi Penyuluhan Belanja proyek Pesan mencapai sasaran 4 Publikasi Promosi Biaya perusahaan (pemasaran) Menarik perhatian publik / membentuk opini 5 Artistik Seni Sponsor/lembaga keuangan non profit Apresiasi seni / penghargaan side-stream Sumber : 100 Tahun Bioskop di Indonesia, Djohan Tjasmadi (2008, P.45) 7 2.1.1.3 Klasifikasi Film Berdasakan Usia Penonton Film pada perkembangannya juga dipilah-pilah sesuai usia penontonnya. Hal ini bertujuan agar pesan yang disampaikan oleh pembuat film dapat sesuai sasaran. Klasifikasi film berdasarkan usia penonton ini sering juga disebut rating film. Di Indonesia sendiri film berdasarkan usia penonton dibagi menjadi: film anak-anak (children films), film semua umur (all ages), dengan bimbingan orang tua (parental guidance), film remaja (teenages), film dewasa (adults). 2.1.2 Rating Film Rating film atau nilai mutu yang didapat dari hasil penilaian yaitu suatu proses pekerjaan yang dilakukan seorang penilai dalam memberikan suatu estimasi dan pendapat (opini) tentang nilai ekonomis suatu properti, baik berwujud maupun tidak berwujud berdasarkan analisis terhadap fakta-fakta yang objektif dan relevan dengan menggunakan metode tertentu, serta mengacu pada prinsip-prinsip penilaian yang berlaku (Prawoto, Agus. 2003). Ada beberapa kondisi tentang penilaian: 1. Penilaian merupakan sebuah opini 2. Penilaian merupakan suatu estimasi nilai 3. Merupakan hasil analisis atas data pasar yang relevan 2.2 Bioskop Pengertian bioskop menurut Kamus Besar Bahasa Indonesia, bioskop atau yang sering kita sebut theater memliki arti : Gedung pertunjukan film cerita (KBBI, 2008); Pertunjukan yang diperlihatkan dengan gambar (film) yang disorot sehingga dapat bergerak dan berbicara (KBBI, 2008). Biro Pusat Statistik (1989) konsep dan definisi bioskop adalah : Bioskop adalah suatu perusahaan/usaha yang bergerak di dalam bidang pemutaran film untuk umum atau semua golongan masyarakat dengan pembayaran dilakukan pada tempat/bangunan tertentu. Menurut banyaknya ruang yang digunakan untuk pertunjukan film, bioskop dibedakan menjadi 2 (dua) jenis yaitu : 1. Bioskop dengan ruang pertunjukan tunggal, yaitu suatu bioskop yang memiliki hanya 1 (satu) ruang yang dipergunakan oleh para penonton untuk melihat pertunjukan film pada layar yang tersedia. 8 2. Bioskop dengan ruang pertunjukan lebih dari satu, yaitu bioskop yang memiliki lebih dari satu ruang yang digunakan untuk melihat pertunjukan film. Adapun film yang diputar pada setiap ruang masing-masing berbedabeda. Bioskop dengan ruang lebih dari satu disebut juga sinepleks. 2.2.1 Golongan Bioskop Menurut Johan Tjasmadi (2008), pada dasarnya ada tiga golongan bioskop, yaitu kelas A, B, dan C. Golongan A dapat disamakan dengan bioskop kelas premiun dengan beberapa kelas dalam auditoriumnya. Bioskop golongan ini mendapatkan hak eksklusif untuk memutar film kelas A pada putaran pertama. Beberapa bioskop di Jakarta seperti Cinema XXI, The Premiere, Blitzmegaplex, MPX dan Surya M2 termasuk dalam kategori ini. Golongan B dapat disamakan dengan bioskop kelas menengah dan dapat menerapkan sistem kelas untuk tempat duduknya. Bioskop golongan ini biasanya mendapatkan giliran kedua untuk pemutaran film-film A pada waktu weekend. Cinema 21 termasuk dalam golongan bioskop ini. Golongan C dapat disamakan dengan bioskop kelas bawah dan biasanya tidak ada sistem kelas dalam tempat duduknya. Harga tiket yang ditetapkan biasanya tidak lebih dari Rp.10.000,- dan harus menunggu giliran terakhir dalam pemutaran film kelas A. Bioskop ini biasanya masih terdapat di beberapa daerah dan dikelola oleh pengusaha setempat. 2.2.2 Golongan Penonton Bioskop Menurut Dewan Film Nasional dalam ”Layar Perak : 90 tahun Bioskop Indonesia” penonton bioskop dapat digolongkan ke dalam beberapa klasifikasi. Dalam hal film, konsumen biasa disebut pelanggan bioskop atau penggemar film. Dalam pengertian yang awam tidak ada beda pelanggan bioskop dan penggemar film. Tapi pada pembicaraan yang lebih serius, mungkin akan terasa perbedaan mencolok. a. Pelanggan Bioskop Pelanggan bioskop terdiri dari mereka yang secara finansial dikelompok- kelompokkan pada kelas bioskop, yaitu : 9 1. Kelas satu, yang di kota besar, biasanya disebut Golongan A, yaitu penonton yang ingin mendapat kesempatan pertama. Jumlah cukup banyak dan frekuensi menontonnya tinggi. 2. Kelas Dua, yang di kota besar, biasanya disebut Golongan B. Tidak keberatan beroleh kesempatan menonton agak lambat, asalkan harga karcis bioskop tidak terlalu mahal. Tapi menurut kondisi film yang dipertunjukan baik dan layak tonton. Jumlahnya tidak terlalu banyak, frekuensi menontonnya sedangsedang saja. 3. Kelas tiga, yang tinggal di kota besar, biasanya disebut Golongan C. Tidak keberatan menonton film apa saja, asal menghibur. Jumlahnya amat banyak, frekuensi menontonnya cukup tinggi, kemampuan finansialnya amat terbatas. b. Penggemar Film Penggemar film adalah mereka yang berkelompok karena persamaan latar belakang pendidikan, pengetahuan dan penguasaan bahasa asing. 1. Kelompok pertama cenderung memilih mutu film berdasarkan judul film yang digarap oleh produser, sutradara, dan karyawan film, serta bintang yang berbobot. Mereka sangat teliti sekali dalam menjatuhkan pilihan. Sebab, menonton film bukan sekedar mencari hiburan, tapi menikmati karya seni film dalam arti yang lebih luas. 2. Kelompok kedua cenderung mengikuti arus. Pertimbangan mutu film tetap merupakan referensi bagi mereka. 3. Kelompok ini tidak terlalu memilih, sekedar mencari hiburan saja. Pada tingkat pertumbuhan tertentu, investor cenderung mendahulukan pembangunan bioskop tingkat satu, kemudian berdasarkan kebutuhan yang mendesak, dibangun bioskop kelas dua, dan urutan terakhir kelas tiga. Dalam satu negara di mana telah tercipta kondisi penonton yang cukup stabil, maka terdapat jumlah bioskop yang terdiri dari berbagai tingkat kelas – yang tentu saja tercipta – berdasarkan kebutuhan ril. Dalam keadaan semacam itu, produsen, dalam hal ini produser film, seyogyanya menentukan terlebih dahulu sasaran kelas penonton yang dituju agar hasil produksinya dapat diedarkan berdasar pasar yang tersedia. Ini pun 10 memerlukan penyesuaian mutu, menurut tingkat kebutuhan masyarakat penonton atau pelanggan bioskop, menurut kelas dan zamannya. 2.3 API (Application Programming Interface) 2.3.1 Pengertian API API atau Application Programming Interface adalah kumpulan fungsifungsi dan protokol yang membantu programmer untuk membangun sebuah software. Di masa lalu, API pada umumnya dihubungkan dengan fungsi-fungsi pada sistem operasi. 2 atau 3 tahun ini, Web API menjadi populer sehingga mulai menggeserkan makna API yang pada mulanya khusus membicarakan fungsifungsi yang berhubungan dengan sistem operasi dan komputer desktop, menjadi kata pengganti untuk Web Service (yang dulunya cukup populer). Keberadaan Web API (atau Web Service) memungkinkan developer (baik web, desktop maupun aplikasi mobile) untuk membangun aplikasi dengan menggunakan data dari berbagai sumber data online. Belakangan, cara ini disebut mashup. Perusahaan-perusahaan ternama mulai banyak yang menyediakan APInya dalam berbagai kategori seperti social networks, mapping, jual beli hingga musik. 2.3.2 Protokol Saat ini, protokol yang paling banyak digunakan oleh Web API adalah REST (Representational State Transfer). Contoh perusahaan yang menggunakan REST adalah Twitter, Facebook dan Google. REST mungkin dipilih karena mudah dipakai oleh developer. Di masa lalu, SOAP adalah protokol yang paling populer, tetapi belakangan turun popularitasnya terutama karena sulitnya implementasi. 2.3.2.1 REST (Representational State Transfer) REST adalah salah satu jenis web service yang menerapkan konsep perpindahan antar state. State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka server akan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link-link yang disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja, 11 dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu, seakan-akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing di sisi client. Dalam pengaplikasiannya, REST lebih banyak digunakan untuk web service yang berorientasi pada resource. Maksud orientasi pada resource adalah orientasi yang menyediakan resource-resource sebagai layanannya dan bukan kumpulan-kumpulan dari aktifitas yang mengolah resource itu, dimana standar yang baik akan sangat berguna karena berbicara dalam satu bahasa yang sama. Beberapa contoh web service yang menggunakan REST adalah: Flickr API (Application Program Interface), YouTube API, Amazon API. 2.3.2.2 SOAP (Simple Object Access Protocol) SOAP adalah protokol untuk saling bertukar pesan dalam format XML antar komputer di dalam jaringan, biasanya menggunakan HTTP/HTTPS. Dalam menjalankan tugasnya, SOAP menggunakan struktur XML tertentu dalam pengirimkan request kepada web service. Penerimaan respon dari web service pun memiliki strukturnya sendiri. Struktur SOAP dibagi dalam dua bagian, Envelope dan Body. Envelope berisi keterangan-keterangan tentang namespace yang digunakan dalam dokumen XML ini, dan juga dapat berisi atribut dan header. Sedangkan Body berisi pesan yang akan dikirimkan ke web service. Struktur SOAP response juga sama dengan struktur SOAP request yang diterangkan sebelumnya, isi dari body memiliki tag result yang berisi balasan atau output dari operasi web service yang dipanggil pada pesan SOAP request. Beda halnya dengan REST, SOAP web service lebih menekankan pada web service yang berorientasi service. Ketimbang mengambil resource-resource seperti dalam REST, SOAP lebih ke arah pemanggilan metode-metode yang memanipulasi resource-resource yang ada, dalam arti lain, melayani kebutuhan pengguna yang 12 lebih beragam. Beberapa contoh SOAP web service adalah Google API, Yahoo! API, dan aplikasi scheduling event calendar berbasis web. 2.3.3 Format Data 2.3.3.1 XML (Extensible Markup Language) XML, singkatan dari Extensible Markup Language, adalah bahasa markup yang dirancang untuk penyampaian informasi melalui website dan juga dapat digunakan untuk pertukaran informasi antar sistem database. Bahasa markup (markup language) merupakan bahasa pemrograman untuk menandai suatu data. Keuntungan menggunakan XML dapat menyederhanaan aplikasi, dimana database yang ditulis dalam XML dapat diakses di mana saja dan memudahkan aplikasi dalam mengolah data karena dapat menghemat memori. Kemampuan dalam mendefinisikan tag-tag di dalam dokumen XML dapat secara leluasa menerangkan isi data. Berbeda dengan HTML yang digunakan untuk menampilkan data, XML tidak didesain untuk menampilkan data, XML didesain untuk menyimpan dan pertukaran data antar format dari system yang tidak kompatibel. Konversi data ke XML dapat mereduksi kompleksitas dan membuat data dapat dibaca oleh aplikasi yang bebeda-beda. XML dapat digunakan untuk menyimpan data dalam suatu file atau database. Aplikasi dapat dibuat untuk menyimpan dan memanggil informasi dari file penyimpan untuk menampilkan data tersebut. XML bersifat independen terhadap hardware, software dan aplikasi, menyebabkan aplikasi dapat mengakses file XML sebagai sumber data, seperti mengakses database. Dokumen XML berupa file plaintext secara umum dibagi menjadi dua bagian yaitu prolog dan elemen dokumen. Prolog berisikan tentang pendekalarasian XML dan komentar. Elemen dokumen XML terdiri dari tag pembuka dan tag penutup yang memenuhi standar well formed diantaranya adalah: 1. Setiap tag pembuka harus ditutup dengan tag penutup 2. Tidak boleh ada elemen yang overlapping 3. Setidaknya ada satu elemen utama dan Penulisan atribut harus di antara tanda petik ganda (”). 13 2.3.3.2 JSON (JavaScript Object Notation) JSON (JavaScript Object Notation) merupakan format yang ringan untuk memasukan data ke dalam sebuah variabel. Sangat mudah dimengerti dan diimplementasikan oleh manusia, dan mudah juga untuk komputer dalam melakukan parsingnya. JSON merupakan bagian dari bahasa pemrograman JavaScript (Standard ECMA-262 3rd Edition – December 1999). JSON merupakan format teks yang sepenuhnya independen tetapi menggunakan konvensi yang familiar dengan bahasa pemrograman dari keluarga-C, termasuk C, C++, C#, Java, JavaScript, Perl, Python, dan sebagainya. Kelebihan inilah yang membuat JSON menjadi sebuah bahasa data-interchange yang ideal. JSON dibangun dalam dua struktur: 1. Beberapa pasangan dari nama/nilai. Dalam beberapa bahasa perograman biasa disebut dengan istilah object, record, struct, tabel hash, key list atau associative array. 2. Nilai-nilai yang terusun secara ordered list. Biasa disebut dengan array, vector, list atau daftar dalam bahasa pemrograman. JSON adalah struktur data yang universal, dalam artian bisa digunakan dalam berbagai bahasa pemrograman. Hampir semua bahasa pemrograman mendukung penuh JSON dalam berbagai format. Hal ini memungkinkan format data yang dapat dipertukarkan menggunakan bahasa pemrograman juga menggunakan dasar dari struktur JSON. Format data JSON mempunyai aturan sebagai berikut: a. Object adalah satu set nama/nilai yang tidak terurut. Penulisan object dimulai dengan tanda { (kurung kurawal buka) dan diakhiri dengan tanda } (kurung kurawal tutup). Setiap nama diikuti oleh tanda : (titik dua) dan pasangan nama/nilai dipisahkan dengan tanda , (koma). Gambar 2.1 Object dalam JSON (www.json.org) 14 b. Array adalah sekumpulan nilai yang teratur. Penulisan sebuah array dimulai dengan tanda [ (kurung siku buka) dan diakhiri dengan tanda ] (kurung siku tutup). Nilai dipisahkan menggunakan tanda , (koma). Gambar 2.2 Array dalam JSON (www.json.org) c. Nilai bisa berupa string dalam tanda kutip, atau number (angka), TRUE atau FALSE atau NULL, sebuah object atau sebuah array. Struktur ini dapat ditulis menggunakan metode bersarang. Gambar 2.3 Value atau nilai dalam format JSON (www.json.org) d. String adalah rangkaian atau urutan karakter unicode yang berada daslam tanda kutip, bisa juga hanya berisi karakter kosong, menggunakan tanda \ (backslash) untuk escape. Karakter di representasikan sebagai string tunggal. Tipe data string pada JSON sangat mirip dengan definisi pada bahasa C atau Java. Gambar 2.4 Tipe Data String Pada Format JSON (www.json.org) 15 e. Number sangat mirip dengan definisi pada bahasa C atau Java, hanya saja tipe bilangan oktal dan heksadesimal tidak digunakan. Gambar 2.5 Number Pada Format JSON (www.json.org) Ruang kosong (Whitespace) dapat diselipkan diantara pasangan atau token apa saja. Kecuali detail encoding, yang secara jelas akan berfungsi untuk menjelaskan bahasa yang digunakan. JSON sangat berguna saat kita sering melakukan pertukaran data pada sebuah aplikasi. Contoh nyata adalah penggunaan tabulasi menggunakan JqGrid, yang merupakan salah satu plugin jQuery untuk menampilkan data dalam bentuk spreadsheet. Plugin ini juga mendukung format JSON, selain format XML. Sejauh ini format data yang paling populer memang XML, namun demikian JSON jelas sekali tumbuh popularitas dan penggunaannya. Banyak developer lebih suka menggunakan JSON, karena berbagai alasan, diantaranya: 1. Data bisa diakses tanpa parsing yang rumit 2. JSON parser tersedia hampir di semua bahasa pemrograman 3. JSON parser cepat, kecil, ringan dan tidak rumit penggunaannya 4. Output JSON lebih kecil karena tidak perlu mencantumkan attribute dan namespace, selain itu tag yang digunakan hanya berupa kurung kurawal. 2.3.4 Keuntungan Membangun Web API Berikut beberapa keuntungan yang bisa didapatkan dengan membangun Web API : 1. Membantu membangun loyalitas terhadap brand. 2. Meningkatkan ketertarikan kepada produk atau layanan perusahaan pemilik API. 16 3. Memberikan alat yang berguna bagi konsumer, terutama pengguna API (web, desktop atau mobile developer). Selain itu pengembangan aplikasi API dapat menarik pengembang aplikasi lain untuk membuat aplikasi dengan menggunakan fasilitas dari API yang bahkan tidak terpikirkan untuk menggunakannya fasilitas semacam itu. 4. Bisa digunakan sebagai alat komunikasi bisnis antar perusahaan. Contoh penggunaannya misalnya Amazon dan PayPal. 2.4 Database Database adalah kumpulan data yang saling berhubungan dan didesain sedemikian rupa untuk memenuhi kebutuhan informasi dari suatu organisasi. Database adalah sebuah tempat penyimpanan dari data yang digunakan secara bersamaan oleh banyak departemen dan pengguna. Database tidak lagi dimiliki oleh satu departemen tetapi menjadi sumber daya bersama dalam perusahaan. Database tidak hanya memegang data operasional tetapi juga deskripsi dari data tersebut. Untuk alasan ini, database juga diartikan sebagai sekumpulan data terintegrasi yang mejelaskan dirinya sendiri. (Connolly dan Begg, 2009). 2.4.1 Relational Database Relational database adalah sebuah kumpulan dari relasi yang telah dinormalisasi dengan nama relasi yang jelas (Connolly dan Beg, 2009). Relational database merupakan suatu tipe database yang berdasarkan model relational, dimana semua data dapat dilihat oleh pengguna, disusun dalam bentuk tabel-tabel dan semua operasi pada database bekerja pada tabel-tabel tersebut. Relasi antar tabel pada relational database sudah melalui tahap normalisasi dengan nama relasi yang berbeda-beda. Terdapat 3 jenis relasi antar-record dalam tabel (Connolly dan Beg, 2009), yaitu: 1. Relasi one-to-one adalah relasi antara satu record dengan satu record dalam tabel lain yang saling berhubungan. 2. Relasi one-to-many adalah relasi antar satu record dengan lebih dari satu record dalam tabel lain sehingga saling berhubungan. 17 3. Relasi many-to-many adalah relasi antar banyak record dengan lebih dari satu record dalam tabel lain yang saling berhubungan. 2.4.2 Database Management System (DBMS) DBMS (Database Management System) adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, memuat, memelihara, dan mengatur akses ke dalam database (Connolly dan Beg, 2009). DBMS merupakan sebuah software yang berinteraksi dengan pengguna program aplikasi dan database. Sebuah DBMS menyediakan beberapa fasilitas sebagai berikut : 1. Data Definition Language (DDL) DDL adalah sebuah bahasa yang mengijinkan Database Administrator atau pengguna untuk menggambarkan dan memberi nama dari entitas, attribute, dan relationship yang dibutuhkan untuk aplikasi bersama dengan semua kepercayaan yang berhubungan dengan batasan keamanan (Connolly dan Begg, 2009). Contoh dari operasi DDL adalah create, drop, dan alter tabel. 2. Data Manipulation Language (DML) DML adalah sebuah bahasa yang menyediakan sekumpulan operasi yang mendukung operasi manipulasi data di dalam database. (Connolly dan Begg, 2009). Contoh dari operasi DML adalah insert dan update. 3. Menyediakan kontrol akses ke database, sebagai contoh : a. Security system, dimana mencegah pengguna yang tidak mempunyai hak untuk mengakses database. b. Integrity system, dimana menjaga konsistensi dari data. c. Concurrency control system, dimana mengijinkan akses yang terbagi dalam database. d. Recovery control system, dimana mengembalikan kondisi database sebelum kegagalan hardware atau software. e. User-accessible catalog, dimana berisi deskripsi dari data dalam database. 18 2.5 PHP (Hypertext Preprocessor) 2.5.1 Definisi PHP PHP merupakan bahasa pemrograman berbasis web yang memiliki kemampuan untuk memproses data dinamis, Artinya, ia dapat membentuk suatu tampilan berdasarkan permintaan teknik. Misalnya, bisa menampilkan isi database kehalaman web. pada prinsip nya PHP mempunyai fungsi yang sama dengan skrip-skrip seperti ASP (Active server page). Cold fusion, ataupun perl, namun, perlu diketahui bahwa PHP sebenar nya bisa dipakai secara command line, Artinya, skrip PHP dapat dijalankan tanpa melibatkan web server maupun browser. Kode PHP juga bisa berkomunikasi dengan database dan melakukan penghitungan-penghitungan yang kompleks sambil jalan. PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah yang berikan akan sepenuhnya dijalankan oleh server tetapi disertakan pada halaman HTML biasa (Sudarmanto, 2008). Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser tetapi pada prosesnya secara keseluruhan dijalankan di server. Pada prinsipnya server akan bekerja apabila ada permintaan dari client. dalam hal ini client menggunakan kode-kode PHP untuk mengirimkan permintaan ke server. Ketika menggunakan PHP sebagai server-side embedded script language maka server akan melakukan hal-hal sebagai berikut : a. Membaca permintaan dari client / browser. b. Mencari halaman di server. c. Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman. d. Mengirim kembali pada halaman tersebut kepada client melalui internet atau interanet. 2.5.2 Koneksi ke MYSQL Untuk mengkoneksikan PHP dengan MYSQL diperlukan inisialisasi awal nama host, nama user, dan user password, Contoh syntax PHP untuk koneksi dengan MYSQL : <?php //setup 19 $server =“localhost”: //nama server //membuat koneksi $conn = mysql _connect ($server, “” , “”) or die (“Anda gagal.”); ?> /* Die digunakan untuk menghentikan program apabila request yang diminta gagal*/ Setelah inisialisasi dijalankan maka fungsi-fungsi koneksi PHP dengan MySQL dapat dijalankan. Fungsi-fungsi yang sering digunakan antara lain dapat dilihat pada Tabel 2.2: Tabel 2.2 Fungsi-fungsiKOneksi PHP dengan MySQL Fungsi Keterangan Mysql_connect Membuka / membuat koneksi ke suatu server MySQL secara persisten. Mysql_close Menutup koneksi ke server MySQL Mysql_fetch_row Mengambil record dari database dan memasukannya ke dalam array numerik, kebalikan dari fungsi mysql_fetch_assoc yang hanya menghasilkan array assosiatif. Mysql_fetch_field Memperoleh informasi suatu kolom. Mysql_num_rows Memperoleh informasi jumlah record / baris data dari suatu query. Mysql_num_fields Memperoleh informasi jumlah kolom dari suatu query. Mysql_list_dbs Memperoleh daftar database. Mysql_list_tables Memperoleh daftar nama tabel dari suatu database MySQL. Mysql_list_fields Memperoleh informasi nama field dari suatu tabel pada suatu database MySQL 20 2.6 MySQL 2.6.1 Pengertian MySQL MySQL adalah sebuah aplikasi Relational Database Management Server (RDBMS) yang sangat cepat dan kokoh serta bersifat open source (mysql, 2003). MySQL merupakan sebuah server basis data yang banyak digunakan di internet karena keandalannya dan juga karena sifatnya yang freeware. Bahasa yang diginakan dalam MySQL sama dengan bahasa yang dipakai oleh server basis data lainnya, yaitu bahasa SQL, Structured Query Language (SQL) adalah bahasa standar yang digunakan untuk mengaskses server basis data (Russell, 1995). Dalam konteks bahasa SQL, pada umunya informasi tersimpan dalam tabel-tabel yang secara logik merupakan struktur dua dimensi yang terdiri atas baris-baris data (row atau record) yang berada dalam satu atau lebih kolom (columm). Baris pada tabel sering di sebut sebagai attributes atau field. Keseluruhan tabel itu dihimpun dalam satu kesatuan yang disebut database. Pada semua distribusi MySQL sudah terdapat beberapa tools (perlengkapan), antara lain: 1. SQL server, yaitu program utama (engine) dari MySQL yang menyediakan akses ke basis data. 2. Client program, yaitu program interaktif klien yang digunakan untuk melakukan berbagai perintah pada basis data MySQL. 3. Program untuk melakukan queries secara langsung pada basis data dan menampilkan hasilnya secara langsung. 4. Program administrasi dan beberapa program kecil tambahan yang dapat digunakan untuk menjalankan situs. 5. Program untuk mengatur akses ke basis data. 6. Program untuk melakukan impor dan ekspor basis data. 7. Clinet library yang disediakan untuk mempermudah pemrograman. Sebagai pertimbangan, MySQL mempunyai banyak keistimewaan yang ditawarkan, antara lain: 1. Open source, yaitu MySQL didistribusikan secara gratis. 21 2. Query language support (mendukung bahasa query), dalam arti MySQL (Structural Query Language) yang umum digunakan pada hampir semua basis data modern. 3. Capability (kemampuan), yaitu banyak client dapat melakukan koneksi ke server pada saat bersamaan. Client dapat menggunakan beberapa basis data secara bergantian. Kompabilitas dengan programming interface yang tersedia antara lain C, Perl, Java, PHP dan Phyton. 4. Connectivity and Security (konektivitas dan keamanan), yaitu dapat diakses dari manapun melalui internet dan memiliki kontrol akses (previlege) sehingga siapa saja yang tidak dibolehkan melihat data, tidak dapat melihat data. 5. Portability (dapat dipindahkan), yaitu MySQL dapat berjalan dibanyak varian dari UNIX dan dapat berjalan pada sistem selain UNIX. Seperti Windows dan OS/2. MySQL dapat berjalan dengan PC rumah (home PC) sampai PC server dengan teknologi tinggi. 6. Open Distribution (distribusi yang terbuka), yaitu MySQL mudah untuk didapatkan, hanya dengan menggunakan web browser sudah bisa mendapatkan source dari MySQL. 2.7 Teori Bahasa dan Automata Teori bahasa membicarakan bahasa formal (formal language), terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor). Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama. Sebuah bahasa formal bisa dibangkitkan olehdua atau lebih tata bahasaberbeda. Dikatakan bahasa formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya. Bahasa manusia bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang hidup di masyarakat. Dalam pembicaraan selanjutnya ’bahasa formal’ akan disebut ’bahasa’ saja. Automata adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu. 22 2.7.1 Mesin Turing Mesin turing adalah model yang sangat sederhana dari komputer. Secara esensial, mesin Turing adalah sebuah finite automaton yang miliki sebuah tape tunggal dengan panjang tak terhingga yang dapat membaca dan menulis data. Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk menyatakan konfigurasi dari komputasinya. Stack pada PDA memiliki keterbatasan akses. Elemen yang dapat diakses hanya elemen yang ada pada top stack. Pada Mesin Turing, memori akan berupa suatu tape yang pada dasarnya merupakan array dari sel-sel penyimpanan. Visualisasi dari sebuah mesin Turing diberikan oleh gambar berikut: Gambar 2.6 Visualisasi Mesin Turing (Hopcroft. John E, 2008) Mesin terdiri dari sebuah finite control, yang dapat berada dalam sebuah himpunan berhingga dari state. Terdapat sebuah tape yang dibagi ke dalam kotakkotak atau sel-sel. Setiap sel dapat menampung sebuah dari sejumlah berhingga dari simbol. Pada awalnya, input yang merupakan string dari simbol dengan panjang berhingga dipilih dari input alphabet, ditempatkan pada tape. Sel-sel tape yang lain, perluasan secara infinite ke kiri dan ke kanan, pada awalnya menampung simbol khusus yang dinamakan blank. Blank bukan sebuah input symbol dan mungkin terdapat simbol tape yang lain disamping input symbol dan blank. Terdapat sebuah tape head yang selalu ditempatkan pada salah satu dari sel-sel tape. Mesin turing dikatakan men-scan sel tersebut. Pada awalnya, tape head berada pada sel paling kiri yang menampung input. Sebuah pergerakan mesin Turing adalah sebuah fungsi dari state dari finite control dan tape symbol yang di-scan. Dalam satu pergerakan, mesin Turing akan: a. Merubah state. Next state dapat sama dengan current state. b. Menulis sebuah tape symbol dalam sel yang di-scan. Tape symbol ini mengganti symbol apapun yang ada dalam sel tersebut. Secara opsional, 23 simbol yang dituliskan dapat sama dengan simbol yang sekarang ada dalam tape. c. Memindahkan tape head ke kiri atau ke kanan. Diagram transisi untuk mesin Turing terdiri dari sebuah himpunan dari node-node yang menyatakan state-state dari Mesin Turing. sebuah arc dari state q ke state p diberi label oleh satu atau lebih item dengan bentuk X/Y D, dimana X dan Y adalah tape symbol, dan D adalah arah, kiri (L) atau kanan (R). start q0 q1 q2 q4 q3 Gambar 2.7 Contoh Diagram Transisi untuk Mesin Turing (Hopcroft. John E, 2008) 2.8 Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak menurut Roger S. Pressman (2005) adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Adapun tujuan dari Rekayasa Perangkat Lunak yaitu : 1. Meningkatkan keakuratan, performance & efficiency produk secara keseluruhan dalam pengembangan. 2. Menerapkan metodologi yang terdefinisi dengan baik perangkat lunak. untuk resolusi 24 3. Rekayasa Perangkat Lunak berhubungan dengan masalah-masalah praktis untuk menghasilkan suatu perangkat lunak. Pendekatan dilakukan dengan model bisnis dan strategi bisnis suatu perangkat lunak. Dalam perancangan perangkat lunak dikenal istilah SDLC (System Development Life Cycle) yaitu tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi. Pada pengembangan aplikasi pengambilan data dan pembuatan API ini penulis rasakan cocok menggunakan sistem rekayasa perangkat lunak model Iteratif jenis Incremental. Model ini berbasiskan pada kebutuhan terhadap aplikasi secara keberlanjutan untuk menyaring kebutuhan-kebutuhan tersebut dan estimasi proyek secara keseluruhan. Model ini merupakan model pengembangan sistem yang bersifat dinamis dalam artian setiap tahapan proses pengembangan sistem dapat diulang jika terdapat kekurangan atau kesalahan. Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar, bukan prototype. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan. Gambar 2.8 Tahapan Pada Model Proses Iterative Jenis Incremental (Sommerville. Ian, 2007) 25 Pengembangan perangkat lunak dengan model incremental iteretif memiliki kelemahan yang memungkinkan terjadinya kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment. Oleh karenanya model ini hanya sesuai untuk proyek kecil (tidak lebih dari 200.000 baris coding). Model ini mengkombinasikan element-element dari waterfall dengan sifat iterasi/perulangan. Element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan spesifikasi tertentu, kemudian pada iterasi selanjutnya proses dimulai dari fase pertama hingga akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan oleh pengguna. 26