5 1 BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Penelitian mengenai proses ETL (extraction, tranformation, loading) telah beberapa kali dilakukan sebelumnya. Armadiyah (2010) melakukan penelitian mengenai analisis faktor-faktor yang mempengaruhi proses ETL pada data warehouse. Menurut Armadiyah, ETL (Extract Transform Loading) pada proses develop data warehouse merupakan suatu proses yang memakan waktu paling lama. Kesuksesan proses ETL sangat dipengaruhi oleh kualitas data yang ada pada database OLTP. Penelitian ini bertujuan untuk mencari noise yang mungkin timbul pada proses ETL pada pengembangan data warehouse. Dari analisa yang dilakukan ditemukan bahwa noise banyak disebabkan karena adanya data yang bernilai null Sehingga sebelum proses ETL dilakukan perlu adanya proses menghilangkan noise yang ada pada database sumber atau database OLTP. Pada penelitian lainnya dilakukan oleh Mahendra (2011), yang berpendapat bahwa ETL merupakan pondasi utama dari data warehouse, maka dalam penelitian ini akan diteliti mengenai perancangan dan implementasi aplikasi ETL. Aplikasi ETL dibuat mampu melakukan proses cleaning data yang berfungsi untuk menjamin kualitas data yang akan ditransfer ke dalam data warehouse. Untuk mengantisipasi terjadinya kesalahan pada saat proses ETL berlangsung maka diperlukan pembentukan data log dan metadata untuk membantu dalam pemetaan dari sistem sumber menuju sistem tujuan. Untuk menjaga kualitas data agar memperoleh data yang valid maka diperlukan fitur data cleaning. Konfigurasi yang dilakukan pada proses ETL sangat menentukan proses ETL yang akan terjadi dalam sistem. Pengembangan aplikasi ETL tidak hanya sebatas aplikasi desktop namun dapat berbasis web untuk mempermudah pendistribusian. Penelitian lainnya juga dilakukan oleh Febriani (2014), Aplikasi OLAP yang dibangun dalam penelitiannya diharapkan dapat membantu mengatasi penumpukan data tanaman hortikultura agar dapat diolah dan dianalisis sehingga membantu pengguna dalam memperoleh 5 informasi ringkasan tanaman 6 hortikultura dengan lebih cepat, yang sangat ditekankan adalah dalam proses pembuatan fungsi ETL (Extract Transform Load) untuk mengolah data dan membedakan hasil untuk data yang bernilai 0 dan data yang tidak tersedia. Berdasarkan tinjauan mutakhir tersebut dapat dijelaskan pada Tabel 2.1 terkait perbandingan ketiga aplikasi dari tinjauan mutakhir terhadap aplikasi yang dikembangkan penulis. Tabel 2.1 Perbandingan Aplikasi Keterangan Tinjauan Tinjauan Tinjauan Aplikasi Mutakhir 1 Mutakhir 2 Mutakhir 3 Penulis Basis Desktop Desktop Desktop Web DBMS 1 jenis 3 jenis 1 jenis 3 jenis (Oracle) (MySQL, (Oracle) (MySQL, Mapping PostgreSQL, Oracle, PLSQL) SQLServer) Statis (proses Dinamis Statis (proses Dinamis mapping (proses mapping tidak (proses tidak bisa mapping bisa bisa diatur mapping diatur user) diatur user) oleh user) bisa diatur user) Keterangan tabel: Tinjauan mutakhir 1 ditulis oleh Armadiyah (2010) Tinjauan mutakhir 2 ditulis oleh Mahendra (2011) Tinjauan mutakhir 3 ditulis oleh Febriyani (2014) Pada penelitian ini penulis akan membangun suatu aplikasi ETL (Extract Transform Load) untuk data warehouse berbasis web. Database operasional (ODS) yang akan diakomodir meliputi MySQL, Oracle, SQLServer .Untuk itu rancang bangun aplikasi ETL (Extract Transform Load) untuk data warehouse berbasis web ini diharapkan menjadi aplikasi yang tepat guna melayani dan membantu pengguna. 7 2.2 Tinjauan Pustaka 2.2.1 Konsep Data Warehouse Menurut Inmon (2005), terdapat dua konsep besar dalam Data Warehouse. Kedua konsep ini dikemukakan oleh dua ahli yaitu William H. Inmon dan Ralph Kimball. Menurut William H. Inmon, Data Warehouse adalah koleksi data yang mempunyai sifat berorientasi subjek, terintegrasi, time-variant, dan bersifat tetap dari koleksi data dalam mendukung proses pengambilan keputusan manajemen. Inmon menegaskan bahwa Data Warehouse sebaiknya dibangun jika desain arsitektur Data Warehouse sudah dibuat (top-down approach), seperti pada Gambar 2.1 . Data Warehouse merupakan bagian dari business intelegent sehingga segala informasi berasal dari satu Data Warehouse. Data Mart Data Warehouse Data Mart Data Mart Gambar 2.1 Top-down Approach Menurut Ralph Kimball (2004), Data Warehouse merupakan suatu sistem yang mengekstrak, membersihkan, menyesuaikan diri, dan mengirim sumber data ke dalam suatu data penyimpanan dimensional dan kemudian mendukung implementasi query dan analisisa untuk tujuan pengambilan keputusan. Data Warehouse berawal dari kumpulan data mart (bottom-up approach) yang berada dalam sebuah lingkungan enterprise,seperti Gambar 2.2 . Informasi dalam Data Warehouse selalu disajikan dalam bentuk dimensional dan fact. Data Mart Data Mart Data Mart Gambar 2.2 Bottom-up Approach 8 2.2.2 Karakteristik Data Warehouse Menurut Turban (2005) karakteristik data warehouse dapat dibagi menjadi empat jenis yaitu berorientasi subyek, terintegrasi, rentang waktu dan non volatile. 1. Berorientasi Subyek Data Warehouse berorientasi subyek artinya Data Warehouse didesain untuk menganalisa data berdasarkan subyek-subyek tertentu dalam organisasi, bukan pada proses atau fungsi aplikasi tertentu. Data Warehouse diorganisasikan disekitar subjek-subjek utama dari perusahaan (konsumen, produk dan penjualan) dan tidak diorganisasikan pada area-area aplikasi utama (pelayanan konsumen, pengontrolan stok dan penjualan produk). Hal ini dikarenakan kebutuhan dari Data Warehouse untuk menyimpan data-data yang bersifat sebagai penunjang suatu keputusan, daripada aplikasi yang berorientasi data. Perbedaan antara data operasional dan data warehousing secara garis besar dapat dilihat pada Tabel 2.2. Tabel 2.2 Perbedaan Data Operasional dan Data Warehouse Data Operasional Data Warehouse Dirancang beroriantasi hanya pada Dirancang berdasarkan subjek-subjek aplikasi dan fungsi tertentu tertentu Fokus pada desain basis data dan Fokusnya pada pemodelan data dan proses desain data Berisi rincian atau detail data Berisi data history yang dipakai proses analisis 2. Terintegrasi Data warehouse dapat menyimpan data-data yang berasal dari sumber- sumber yang terpisah kedalam suatu format yang konsisten dan saling terintegrasi satu dengan lainnya. Data tidak bisa dipecah-pecah karena data yang ada merupakan suatu kesatuan yang menunjang keseluruhan konsep data warehouse itu sendiri. Syarat integrasi sumber data dapat dipenuhi dengan berbagai cara seperti konsisten dalam penamaan variabel, ukuran variabel, struktur pengkodean dan atribut fisik dari data. Sebagai contoh pada lingkungan operasional terdapat 9 berbagai macam aplikasi yang mungkin pula dibuat oleh developer yang berbeda. Mungkin dalam aplikasi-aplikasi tersebut ada variabel yang memiliki maksud yang sama tetapi nama dan format yang berbeda. Variabel tersebut harus dikonversi menjadi nama yang sama dan format yang disepakati bersama dengan demikian tidak ada lagi kerancuan karena perbedaan nama, format dan lain sebagainya barulah data tersebut bisa dikategorikan sebagai data yang terintegrasi karena kekonsistenannya. 3. Rentang Waktu Seluruh data pada data warehouse dapat dikatakan akurat atau valid pada rentang waktu tertentu. Melihat interval waktu yang digunakan dalam mengukur keakuratan suatu data warehouse, dapat digunakan berbagai cara antara lain : a. Menyajikan data warehouse pada rentang waktu tertentu, misalnya pada tahun-tahun tertentu untuk mengetahui suatu tren dari subjek tertentu atau untuk perbandingan. b. Menggunakan variasi/perbedaan waktu yang disajikan dalam data warehouse baik implisit maupun eksplisit. Secara eksplisit dengan unsur waktu dalam hari, minggu, bulan dan lain sebagainya. Secara implisit misalnya pada saat data tersebut diduplikasi pada setiap akhir bulan atau per tiga bulan. Unsur waktu tetap ada secara implisit didalam data tersebut. c. Variasi waktu yang disajikan data warehouse melalui serangkaian snapshot yang panjang. Snapshot merupakan tampilan dari sebagian data tertentu sesuai keinginan pemakai dari keseluruhan data yang ada bersifat read-only. 4. Non-Volatile Karakteristik keempat dari data warehouse adalah non-volatile, maksudnya data pada data warehouse tidak di-update secara real time tetapi di refresh dari sistem operasional secara reguler. Data yang baru selalu ditambahkan sebagai suplemen bagi basis data itu sendiri daripada sebagai sebuah perubahan. Basis data tersebut secara kontinyu menyerap data baru ini, kemudian secara incremental disatukan dengan data sebelumnya. Berbeda dengan basis data operasional yang dapat melakukan update, insert dan delete terhadap data yang mengubah isi dari basis data sedangkan pada data warehouse hanya ada dua 10 kegiatan memanipulasi data yaitu loading data (mengambil data) dan akses data (melakukan query atau menampilan laporan yang dibutuhkan, tidak ada kegiatan updating data). 2.2.3 Arsitektur Data Warehouse Menurut Kimball (2004), Arsitektur data warehouse secara umum terdiri dari beberapa komponen penting diantaranya adalah Operational Source, Staging Area, Data Warehouse, Data Mart dan Metadata dapat digambarkan seperti pada gambar 2.3. Gambar 2.3 Arsitektur data warehouse (Sumber : Kimball, 2004) 1. Operational Sources Komponen operational sources merupakan komponen yang berfungsi sebagai sumber dari data yang diolah sehingga data tersebut bisa di-loading ke dalam data warehouse. Komponen ini bisa juga terdiri dari berbagai macam mesin DBMS seperti Microsoft SQL Server, MySQL, Oracle ataupun flat file (.txt/.csv). Komponen ini tidak lain adalah database dari sistem informasi operasional yang dibuatkan data warehouse. 2. Staging Area Komponen staging area merupakan komponen yang digunakan sebagai tempat atau stage untuk melakukan proses ETL. Proses yang pertama dilakukan oleh komponen ini adalah extraction data dari operational sources. Setelah proses tersebut berhasil dilanjutkan dengan proses transformation. Proses ini bertujuan untuk melakukan transformasi dari data yang telah diekstrak sebelumnya. Tranformasi ini termasuk perubahan struktur Tabel ataupun penggabungan/pemisahan Tabel untuk mendapatkan summary dari data detail 11 yang ada. Disamping itu pada proses ini juga dilakukan cleaning dan conforming data yang di-loading dalam data warehouse. Proses tersebut jika telah berhasil, maka dilanjutkan dengan proses loading data. Proses ini sangat penting karena bertugas untuk menjamin ketersediaan data pada data warehouse itu sendiri. Walaupun terlihat sederhana, namun proses loading data menjadi rumit jika loading data berjalan secara otomatis sesuai jadwal pengiriman datanya. 3. Data Warehouse Komponen ini merupakan suatu database dengan menggunakan suatu DBMS tertentu dimana dalam data warehouse ini terdapat informasi yang berupa summary ataupun data yang ingin dimasukkan ke dalam data warehouse. 4. Data Marts Komponen data marts ini merupakan sebuah laporan yang dihasilkan dari proses query yang dilakukan pada data warehouse. Data marts yang dihasilkan mempunyai bermacam-macam jenis mulai dari tabular hingga berbagai jenis grafik. Ini tergantung dari kebutuhan penggunanya. Tapi yang tidak boleh dilupakan data marts yang dihasilkan harus berdasarkan time-variant. 5. Metadata Komponen ini merupakan kumpulan data yang menjelaskan arti dari data yang ada pada setiap komponen mulai dari Operational Data Source hingga pada komponen Data Mart. 2.2.4 ETL dalam Data Warehouse Menurut Kimball (2004), ETL (extraction, transformation, loading) merupakan aplikasi yang terpisah dari data warehouse dan berfungsi sebagai pondasi dari data warehouse itu sendiri. ETL terdiri dari tiga proses utama. Ketiga proses ini dilakukan secara berurutan. Keberhasilan suatu proses dalam ETL ini tergantung dari proses ETL sebelumnya. Gambar 2.4 menunjukkan arsitektur dari suatu ETL pada data warehouse. 12 Gambar 2.4 Arsitektur ETL (Sumber : Kimball, 2004) 1. Extraction Data mentah yang berasal dari sistem informasi operasional/sistem sumber biasanya ditulis atau di-copy langsung ke dalam media penyimpanan/staging area dengan restrukturisasi seminimal mungkin. Hal ini dilakukan untuk menjaga keaslian data yang didapat dari sistem sumber. Adakalanya sistem sumber yang berbasis struktur seperti pada mesin-mesin DBMS ditulis dalam bentuk flat file atau dalam Tabel relasional pada staging area-nya. Hal ini memungkinkan hasil ekstraksi menjadi sesederhana dan secepat mungkin untuk diolah disamping itu dimungkinkan juga untuk fleksibilitas yang bagus untu melakukan restart jika terjadi gangguan pada saat ekstraksi berlangsung. Data yang telah diambil dalam proses ekstraksi ini dapat dibaca beberapa kali sesuai dengan keperluannya. Data hasil ekstraksi ini dalam beberapa kasus bisa dihapus setelah dilakukannya proses transformation karena dianggap sudah tidak berguna lagi. Data ekstraksi ini pada kasus lain bisa disimpan sebagai arsip cadangan jangka panjang namun memerlukan space yang besar. 2. Transformation Perubahan sekecil apapun yang dilakukan pada data mentah hasil ekstraksi adalah transformasi. Misalnya melakukan proses seleksi dari data yang mengandung nilai null. Data jika ditemukan null maka data dihapus. Proses menterjemahkan kode seperti pada data mentah ditulis jenis kelamin laki-laki adalah 1 dan perempuan adalah 2 maka semua nilai jenis kelamin 1 diubah menjadi laki-laki dan 2 diubah menjadi perempuan. Contoh diatas merupakan contoh kecil dari sebuah proses transformasi yang dilakukan oleh ETL. Beberapa 13 hal penting yang sering dilakukan dalam tranformasi ini dan menjamin data yang diolah sudah bersih dari data yang dianggap sampah atau tidak perlu adalah cleaning dan conforming. Kedua proses ini merupakan proses penting yang wajib dilakukan jika data mentah dianggap belum bersih. a. Cleaning Dalam kebanyakan kasus, tingkat kualitas data pada sistem-sistem sumber berbeda-beda. Kualitas data sistem sumber ini juga berbeda dengan kualitas data yang dibutuhkan pada data warehouse itu sendiri. Bertolak dari hal tersebut maka pengolahan data dapat melibatkan banyak proses-proses terpisah antara lain memeriksa nilai-nilai yang valid, memastikan konsistensi dari nilai- nilai tersebut, membuang duplikasi atau redudansi dari data. Proses pembersihan data ini karena begitu kompleks, dimungkinkan melibatkan manusia dalam penilaian apakah data yang diolah sudah bersih atau belum. Perlu diingat bahwa hasil dari cleaning ini tidak bisa dikembalikan ke sistem sumber tempat data itu berasal. Hal ini dikarenakan baik itu struktur atau isi data sudah tidak seperti data pada sistem sumber. Data jika dikembalikan, maka dimungkinkan terjadi kegagalan pada sistem exsisting tersebut. b. Conforming Data yang telah bersih kemudian dicek lagi sebelum dilakukan proses berikutnya. Proses ini adalah memisahkan data sumber yang identik atau jika menggunakan hitungan numeric data yang tidak termasuk dalam range tertentu. Conforming ini membutuhkan suatu kesepakan dari pengguna data untuk menentukan data mana saja yang digunakan dalam data warehouse 3. Loading Proses loading atau dikenal juga dengan proses delivering adalah suatu proses dimana data hasil transformasi siap untuk dimasukkan ke dalam datawarehouse itu sendiri. Pembentukan struktur Tabel dari data yang di-loading merupakan tugas dari designer dari data warehouse itu sendiri. Loading ini merupakan langkah akhir dan penting dalam menjamin ketersediaan data dalam data warehouse. Data hasil proses loading ini siap di-query. Mengenai kecepatan query yang dihasilkan tergantung dari desain atau skema yang digunakan dalam data 14 warehouse. Diharapkan skema yang digunakan bisa secara signifikan mengurangiwaktu query dan dapat menyederhanakan dalam pembangunan aplikasi. 2.2.5 Oracle Menurut Masya (2009), Oracle Coorporation merupakan perusahaan yang bergerak di bidang penyediaan tool pembangun aplikasi, produk-produk siap pakai dan pelayanan untuk mendukung keperluan penanganan masalah-masalah yang berkaitan dengan teknologi informasi. Aplikasi-aplikasi Oracle dapat dijalankan pada berbagai platform dan sistem operasi, dari komputer personal sampai komputer dengan multi processor. Oracle menyediakan aplikasi Relational Database Management System (RDBMS) yang disebut dengan Oracle Server. Fasilitas-fasilitas yang ada didalamnya memungkinkan pengguna untuk menyimpan dan mengatur informasidengan segala keuntungan dari struktur relasional, ditambah dengan PL/SQL,suatu mesin yang mendukung pengguna dengan kemampuan untuk menyimpandan mengeksekusi objek-objek basis data, seperti procedure dan trigger. Oracle Server juga menyediakan fasilitas untuk keamanan data yang dapat mengontrol bagaimana suatu basis data diakses. Aplikasi-aplikasi Oracle dapat dijalankan pada satu komputer sebagai Oracle Server. Sebagai alternatif, pengguna dapat menjalankan aplikasi-aplikasi Oracle tersebut pada computer lokal untuk pengguna dan komputer lainnya untuk Oracle Server (clientserverarchitecture). Lingkungan pada client-server ini, jangkauan luas dari sumber daya komputer dapat digunakan. Contoh, aplikasi berbasis form pada sistem pelayanan penerbangan dapat dijalankan pada komputer personal, pada saat yang bersamaan data penerbangan yang diperlukan oleh aplikasi tersebut ditangani oleh Oracle Server pada komputer pusat. Oracle mempunyai beberapa jenis tipe data yaitu tipe data numeric, tipe data string dan tipe data waktu. Ketiga jenis tipe data ini biasanya sering digunakan dalam implementasi pembuatan suatu database. Adapun tipe data yang tersedia pada oracle seperti pada Tabel 2.3. 15 Tabel 2.3 Tipe Data Oracle Tipe Data Deskripsi Minimal Maksimal 1 bytes 4000 bytes 1 bytes 2000 bytes Presisi adalah p dan skala P=1 P = 38 adalah s S = -84 S = 127 Karakter dengan panjang VARCHAR2(x) sesuai variable dan kebutuhan memori x bytes. Karakter dengan panjang CHAR(x) fix dan kebutuhan memori x bytes. NUMBER(p,s) Tanggal DATE yang valid dan kebutuhan memori 4712 SM 7 bytes String ROWID Hexadesimal 1 Januari 31 Desember 9999 yang merepresentasi alamat unik dari sebuah row 8 bytes 10 bytes pada Tabel CLOB Character Large Object 1 bytes BLOB Binary Large Object 1 bytes BFILE Pointer to binary file on disk 1 2.2.6 bytes 4 Giga Bytes 4 Giga Bytes 6 GigaBytes MySQL MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). 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 basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama 16 untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Basis data, MySQL mendukung operasi basis data transaksional maupun operasi basisdata nontransaksional. Modus operasi non- transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional 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 basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus nontransaksional. MySQL termasuk jenis RDBMS (Relational Database Management System). Database relasional menyimpan data dalam Tabel-Tabel terpisah daripada menempatkan semua data dalam satu ruang penyimpanan yang besar. Hal ini menambah kecepatan dan fleksibilitas. Itu sebabnya istilah seperti Tabel, baris dan kolom digunakan pada MySQL. Informasi tambahan pada MySQL, sebuah database mengandung satu atau beberapa kolom. MySQL mendukung tipe data yaitu tipe data numerik,tipe data string dan tipe data waktu, secara berturutturut seperti pada Tabel 2.4, 2.5, dan 2.6. Tabel 2.4 Tipe Data Numerik MySQL Tipe Data Jangkauan Signed Jangkauan Memory Unsigned TINYINT -128-127 0-255 1 byte SMALLINT -32768 – 32767 0-65535 2 byte MEDIUM INT -8388608-8388607 0-16777215 3 byte INT -2147483648- 0-4294967295 4 byte 2147483647 17 BIG INT 9223372036854775808- 09223372036854775807 8 byte 1844674407370955 1615 FLOAT(M,D) Tergantung nilainya - 4 byte DOUBLE(M,D) Tergantung nilainya - 8 byte DECIMAL(M,D) Tergantung nilainya - M+2 byte Tabel 2.5 Tipe Data String MySQL Tipe Data Max Memory Tipe Data Max Size Memor Size CHAR(X) y 255Byte X Byte BLOB 65535 Byte VARCHAR(X) 255 Byte X+1 Byte MEDIUMTEX 1,6 MB T TINYTEXT 255 Byte X +1 Byte 255 Byte X+2 Byte e X+3 Byte MEDIUMBLO 1,6 MB B TINYBLOB X+2Byt X+3 Byte LONGTEXT 4,2 GB X+4 Byte 65535 TEXT Byte X+2 Byte LONGBLOB 4,2 GB Tabel 2.6 Tipe Data Waktu MySQL Tipe Data Format Standar Zero Values YYYY-MM-DD 0000-00-00 HH:MM:SS 00:00:00 DATE YYYY-MM-DD 0000-00-00 TIME HH:MM:SS 00:00:00 YEAR YYYY 0000 TIMESTAMP YYYYMMDDHHMMSS 00000000000000 DATETIME X+4 Byte 18 2.2.7 SQL Server Microsoft SQL Server merupakan produk RDBMS (Relational Database Management System) yang dibuat oleh Microsoft. Orang sering menyebutnya dengan SQL Server saja. Microsoft SQL Server mendukung SQL sebagai bahasa untuk memproses query ke dalam database dan SQL ini sudah digunakan secara umum pada semua produk database server yang ada di pasaran saat ini. Microsoft SQL Server banyak digunakan pada dunia bisnis, pendidikan atau juga pemerintahan sebagai solusi database atau penyimpanan data. Berbagai macam skala bisnis mulai yang kecil sampai skala enterprise bisa menggunakan Microsoft SQL Server sebagai database server. 2.2.8 PHP (Hypertext Preprocessor) PHP merupakan singkatan dari Hypertext Preprocessor adalah sebuah bahasa scripting yang terpasang pada HTML. Sebagian besar sintaks mirip dengan bahasa C, Java dan Perl, ditambah beberapa fungsi PHP yang spesifik. Tujuan utama bahasa ini adalah untuk memungkinkan perancang web menulis halaman web dinamik dengan cepat. 1. Pengertian PHP Halaman web biasanya disusun dari kode-kode html yang disimpan dalam sebuah file berekstensi .html. File html ini dikirimkan oleh server (atau file) ke browser, kemudian browser menerjemahkan kode-kode tersebut sehingga menghasilkan suatu tampilan yang indah. Lain halnya dengan program php, program ini harus diterjemahkan oleh webserver sehingga menghasilkan kode html yang dikirim ke browser agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun disisipkan di antara kode-kode html sehingga dapat langsung ditampilkan bersama dengan kode-kode html tersebut. Program php dapat ditambahkan dengan mengapit program tersebut di antara tanda <? dan ?>. Tanda-tanda tersebut biasanya disebut tanda untuk escaping (kabur) dari kode html. File html yang telah dibubuhi program php harus diganti ekstensi-nya menjadi .php atau .php3. PHP merupakan bahasa pemograman web yang bersifat server-side HTML=embedded scripting, di mana script-nya menyatu dengan HTML dan 19 berada di server. Artinya adalah sintaks dan perintah-perintah yang kita berikan sepenuhnya dijalankan di server tetapi disertakan HTML biasa. PHP dikenal sebagai bahasa scripting yang menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk membuat halaman web yang dinamis seperti ASP (active Server Pages) dan JSP (Java Server Pages). PHP pertama kali dibuat oleh Rasmus Lerdroft, seorang programmer C. Semula PHP digunakannya untuk menghitung jumlah pengunjung di dalam web. Kemudian ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis. Versi ini pertama kali keluar pada tahun 1995. Isinya adalah sekumpulan script PERL yang dibuatnya untuk membuat halaman web menjadi dinamis. Kemudian pada tahun1996 ia mengeluarkan PHP versi 2.0 yang kemampuannya telah mampu mengakses basis data dan dapat terintegrasi dengan HTML. Tahun 1998 tepatnya pada tanggal 6 Juni 1998 keluarlah PHP versi 3.0 yang dikeluarkan oleh Rasmus sendiri bersama kelompok pengembang software. Versi terbaru yaitu PHP 4.0 keluar pada tanggal 22 Mei 2000 merupakan versi yang lebih lengkap lagi dibandingkan dengan versi sebelumnya. Perubahan yang paling mendasar pada PHP 4.0 adalah terintegrasinya Zend Engine yang dibuat oleh Zend Suraski dan Andi Gutmans yang merupakan penyempurnaan dari PHP3 scripting engine sedangkan yang lainnya adalah build in HTTP session, tidak lagi menggunakan library tambahan seperti pada PHP3. Tujuan dari bahasa scripting ini adalah untuk membuat aplikasi-aplikasi yang dijalankan di atas teknologi web. Aplikasi dalam hal ini pada umumnya memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan web server. 2. Kelebihan PHP E-commerce ketika semakin berkembang, situs-situs yang statis pun semakin ditinggalkan karena dianggap sudah tidak memenuhi keinginan pasar karena situs tersebut harus tetap dinamis setiap hari. Bahasa PERL dan CGI saat ini sudah jauh ketinggalan jaman sehingga sebagian besar desainer web banyak beralih ke bahasa server-side scripting yang lebih dinamis seperti PHP. Seluruh aplikasi berbasis web dapat dibuat dengan PHP namun kekuatan yang paling utama PHP adalah pada konektivitasnya dengan sistem basis data di dalam web. 20 Sistem basis data yang dapat didukung oleh PHP adalah : Oracle, MySQL, Sybase, PostgreSQL, dan lainnya. PHP dapat berjalan di berbagai sistem operasi seperti windows 98/NT, UNIX/LINUX, solaris maupun macintosh. PHP merupakan perangkat lunak yang open source yang dapat anda download secara gratis dari situs resminya yaitu http://www.php.net, ataupun dari situs-situs yang menyediakan perangkat lunak tersebut seperti di ftp://gerbang.che.itb.ac.id. Perangkat lunak ini juga dapat berjalan pada web server seperti PWS (Personal Web Server), Apache, IIS, AOLServer, fhttpd, phttpd dan sebagainya. PHP juga merupakan bahasa pemograman yang dapat kita kembangkan sendiri seperti menambah fungsi-fungsi baru. Keunggulan lainnya dari PHP adalah PHP juga mendukung komunikasi dengan layanan seperti protocol IMAP, SNMP, NNTP, POP3 bahkan HTTP. PHP dapat dipasang sebagai bagian atau modul dari apache web server atau sebagai CGI script yang mandiri. Banyak keuntungan yang dapat diperoleh jika menggunakan PHP sebagai modul dari apache di antaranya adalah: 1. Tingkat keamanan yang cukup tinggi 2. Waktu eksekusi yang cepat. 3. Akses ke sistem basis data yang fleksibel. seperti MySQL, Interbase, PosgreSQL dan lainnya. 3. Konsep Kerja PHP Model kerja HTML 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. Proses selanjutnya, webserver mencarikan berkas yang diminta dan memberikan isinya ke browser. Browser yang mendapatkan isinya segera melakukan proses penerjemahan kode HTML dan menampilkannya ke layar pemakai yang dilustrasikan seperti pada Gambar 2.5. 21 Gambar 2.5 Skema HTML Prinsipnya serupa dengan kode HTML. Hanya saja, ketika berkas PHP yang diminta didapatkan oleh webserver, isinya dikirimkan ke mesin PHP dan mesin inilah yang memproses dan memberikan hasilnya (berupa kode-kode HTML) ke webserver, untuk selanjutnya webserver menyampaikan ke klien seperti pada gambar 2.6. Gambar 2.6 Skema PHP 22 2.2.9 Pengujian Perangkat Lunak Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan pengkodean. Pengujian menyajikan anomali yang menarik bagi perekayasa perangkat lunak. Perekayasa pertama-tama berusaha membangun perangkat lunak dari konsep abstrak ke implementasi yang dapat dilihat, baru dilakukan pengujian. Perekayasa menciptakan sederetan test case yang dimaksudkan untuk “membongkar” perangkat lunak yang sudah dibangun. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap (paling tidak secara psikologis) sebagai hal yang destruktif daripada konstruktif. Beberapa metode yang mungkin digunakan dalam sebuah pengujian perangkat lunak, yaitu : 1. Pengujian Black Box merupakan Teknik pengujian tanpa memiliki pengetahuan tentang cara kerja dalam aplikasi. Tester mempunyai arsitektur sistem dan tidak memiliki akses ke kode sumber. Saat melakukan pengujian black box, tester akan berinteraksi dengan user interface sistem dengan memberikan masukan dan memeriksa keluaran tanpa mengetahui bagaimana dan dimana masukan bekerja. 2. Pengujian White Box adalah penyelidikan rinci dari logika internal dan struktur kode. Pengujian white box disebut juga pengujian kaca atau pengujian kotak terbuka. 3. Pengujian Grey Box merupakan teknik untuk menguji aplikasi dengan pengetahuan yang terbatas tentang cara kerja aplikasi internal. Adapun perbedaan antara ketiga metode pengujian tersebut dapat dilihat pada Tabel 2.7. 23 Tabel 2.7 Tabel Perbandingan Metode Pengujijan Black Box Grey Box White Box Cara kerja internal Pengetahuan tentang Tester memiliki aplikasi tidak perlu cara kerja internal pengetahuan tentang cara diketahui dikenal kerja internal dari aplikasi Juga dikenal sebagai Istilah lain untuk Juga dikenal sebagai pengujian kotak pengujian grey box pengujian kotak yang tertutup, didorong oleh adalah pengujian jelas, pengujian struktural data pengujian dan tembus yang memiliki atau terstruktur pengujian fungsional pengetahuan terbatas dalam bagian aplikasi Dilakukan oleh Dilakukan oleh Biasanya dilakukan oleh pengguna akhir dan juga pengguna akhir dan juga penguji dan pengembang oleh penguji serta oleh penguji serta pengembang pengembang Pengujian didasarkan Pengujian dilakukan Kerja internal sepenuhnya pada eksternal, internal atas dasar data diagram diketahui dan tester dapat aplikasi tidak diketahui basis tingkat tinggi dan merancang data pengujian data diagram alur dengan benar Cara kerjanya memakan Sebagian memakan Sangat menyeluruh dan dan waktu dan waktu dan menyeluruh membutuhkan waktu pada menyeluruh jenis pengujian ini Tidak cocok untuk Tidak cocok untuk Cocok untuk pengujian pengujian algoritma pengujian algoritma algoritma Hanya dapat dilakukan Domain data dan batas- Domain data dan batas- dengan metode trial dan batas internal dapat batas internal dapat diuji error diuji, jika diketahui lebih baik lagi