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 . 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