BAB II LANDASAN TEORI
Dalam penyusunan laporan tugas akhir ini terdapat beberapa landasan teori atau konsep dasar yang digunakan untuk mendukung pemahaman lebih lanjut mengenai hasil dari penyusunan yang akan dibahas pada bab berikutnya. 2.1
Inventory Aset
2.1.1 Aset Aset adalah segala sesuatu baik berwujud maupun tidak berwujud yang memiliki nilai ekonomis (economic alues) dan masa ekonomis (economic life) untuk mendukung organisasi atau perusahaan dalam memberikan layanan (services) (Quertani, 2008). Suatu organisasi perusahaan swasta maupun pemerintah mungkin tidak mengetahui banyaknya aset yang dimiliki atau tidak mengetahui bentuk dan dimana posisi aset tetap yang dimilikinya. Selain itu sering pula terjadi masalah mengenai pendataan yang dilakukan apabila dalam sebuah monitoring aset tidak dilakukan secara professional. Pernyataan tersebut muncul ketika penulis membaca beberapa artikel terkait banyaknya pengelolaan aset baik di instansi pemerintah maupun swasta. Untuk itu manajemen perlu melakukan manajemen aset yang merupakan salah satu dari fungsi pengelolaan aset. 2.1.2 Inventory Inventory meliputi semua barang yang dimiliki perusahaan, dengan tujuan dikomsumsikan dalam siklus operasi normal perusahaan sebagai barang yang dimiliki. Semua barang yang berwujud dapat disebut sebagai inventory, tergantung dari sifat dan jenis usaha perusahaan. Secara umum pengertian Inventory adalah suatu aset yang ada dalam bentuk barang-barang yang dimiliki perusahaan.( Rohayati,2014)
5
http://digilib.mercubuana.ac.id/
2.1.3 Manajemen Aset Manajemen aset merupakan suatu cara dalam mengelola, mengoptimalkan dan mengendalikan aset agar dapat menunjang kegiatan utama operasional perusahaan. Berikut ini merupakan definisi dari manajemen aset diantaranya: 1. Danylo
(1998)
mendefinisikan
manajemen
aset
sebagai
sebuah
metodologi untuk mengalokasikan resources (sumber daya) secara efisien dan benar untuk mencapai tujuan organisasi. Lebih lanjut ia menjelaskan bahwa manajemen aset adalah cara atau pendekatan melakukan sesuatu untuk
menyelesaikan
masalah
atau
situasi.
Metodologi
dapat
terkomputerisasi atau tanpa bantuan komputer. 2. Wenzler dalam Faiz dan Eran (2009) mendefinisikan manajemen aset sebagai proses identifikasi, desain, penciptaan, operasi, dan pemeliharaan aset fisik. Pendekatan yang berpusat pada aset (aset centric) sangat vital
untuk keberhasilan pengorganisasian aset secara intensif karena
manajemen aset yang efektif merupakan penentu pokok keberhasilan organisasi. Salah satu kunci dalam manajemen informasi aset adalah ketersediaan informasi pada saat yang tepat, dalam format yang tepat, untuk orang yang tepat, dengan query yang tepat dan pada level yang tepat. 3. Menurut Ouertani dkk (2008) manajemen aset merupakan proses pengorganisasian, perencanaan dan pengawasan terhadap pembelian, penggunaan, perawatan, perbaikan, dan penghapusan aset fisik untuk mengoptimalkan potensi service delivery dan meminimalkan resiko atau cost yang berkaitan dengan usia hidup aset dengan menggunakan aset-aset intangible seperti aplikasi pengambilan keputusan berbasis knowledge dan proses bisnis. Dalam manajemen aset, siklus hidup aset dapat dirumuskan kedalam lima fase pokok, yaitu acquire, deploy, operate, maintain, dan retire sebagaimana tampak pada Gambar 2.1.
6
http://digilib.mercubuana.ac.id/
Gambar 2.1 Daur hidup aset (Ouertani dkk, 2008) Berdasarkan definisi tersebut diatas dapat penulis simpulkan bahwa menejemen inventory aset merupakan serangkaian kegiatan yang mencakup proses pendataan, pencatatan serta pengecekan mengenai kualitas dan kuantitas aset secara fisik kemudian dilakukan pengkodean selanjutnya mendokumentasikannya untuk kepentingan pengelolaan aset sehingga terbentuk laporan yang baik. 2.2
Rekayasa Perangkat Lunak
2.1.1 Pengertian Rekayasa Perangkat Lunak Rekayasa perangkat lunak atau yang disebut dengan istilah Software Engineering (SE) yaitu bidang profesi yang mendalami cara-cara pengembangan sebuah perangkat lunak termasuk pembuatan ,pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan sebagainya. Perangkat lunak (software) adalah program komputer yang terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain, dan cara penggunaan (user manual). Sebuah perangkat lunak juga disebut dengan sistem perangkat lunak. Sistem berate kumpulan komponen yang saling terkait dan mempunyai satu tujuan yang ingin dicapai. User atau pengguna perangkat lunak adalah orang yang memiliki kepentingan untuk memakai atau menggunakan perangkat lunak untuk memudahkan pekerjaannya. Karakter perangkat lunek adalah sebagai berikut :
7
http://digilib.mercubuana.ac.id/
1. Perangkat lunak dibangun dengan rekayasa (software engineering) bukan diproduksi secara manufaktur atau pabrikan. 2. Perangkat lunak tidak pernah using (wear out) karena kecacatan dalam perangkat lunak dapat diperbaiki. 3. Barang produksi pabrikan biasanya komponen barunya akan terus diproduksi, sedangkan perangkat lunak biasanya terus diperbaiki seiring bertambahnya kebutuhan. Aplikasi dari perangkat lunak adalah sebagai berikut : 1. Perangkat lunak sistem (system software) Kumpulan program dalam hal ini program yang satu ditulis untuk memenuhi kebutuhan program lainnya. 2. Perangkat lunak waktu nyata (real-time software) Merupakan prangkat lunak yang memonitor, menganalisi, mengontrol seuatu secara waktu nyata (real-time). 3. Perangkat lunak bisnis (business software) merupakan perangkat lunak pengelola informasi bisnis (seperti akuntansi, penjualan, pembayaran, penyimpanan). 2.1.2 Metodologi Rekayasa Perangkat Lunak Rekayasa perangkat lunak pada dasarnya menekankan pada tahapan-tahapan pengembangan suatu perangkat lunak yaitu : Analisis, Desain, Implementasi, Testing dan Maintenance. Pada tahap yang lebih luas Rekayasa Perangkat Lunak Mengacu pada Manajemen Proyek Pengembangan Perangkat Lunak itu sendiri dengan tetap memperhatikan tahapan-tahapan pengembangan sebelumnya. Dalam pengembangannya perangkat lunak mempunyai berbagai model yaitu model waterfall (model konvesional sebagai model terdahulu yang dikembangkan menurut siklus pengembangan sistem). 2.1.3 Model Waterfall Menurut Roger S. Pressman (39) model waterfall adalah model klasik yang bersifat sistematis, berurutan dalam membangun software. Berikut ini ada dua gambaran dari waterfall model Fase-fase dalam model waterfall menurut referensi Pressman:
8
http://digilib.mercubuana.ac.id/
Gambar 2.2 Waterfall Pressman 1
Communication Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap untuk mengadakan pengumpulan data dengan melakukan pertemuan dengan customer,maupun mengumpulkan data-data tambahan baik yang ada di jurnal, artikel, maupun dari internet.
2
Planning Proses planning merupakan lanjutan dari proses communication (analysis requirement). Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan software, termasuk rencana yang akan dilakukan.
3
Modeling Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement.
4
Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software. Artinya, penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki. 9
http://digilib.mercubuana.ac.id/
5
Deployment Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.
Sedangkan fase-fase model waterfall menurut referensi Sommerfille:
Gambar 2.3 Waterfall Smartfile 1
Requirements Analysis and Definition Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh software yang akan dibangun. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
2
System and Software Design Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari dua aktivitas tersebut
(pencarian
kebutuhan
sistem
dan
software)
harus
didokumentasikan dan ditunjukkan kepada user. Proses software design untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap
10
http://digilib.mercubuana.ac.id/
sebelumnya. Seperti dua aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software. 3
Implementation and Unit Testing Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
4
Integration and System Testing Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin,yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
5
Operation and Maintenance Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada error kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya. Kelebihan dari model ini adalah selain karena pengaplikasian menggunakan
model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit dan benar di awal proyek, maka Software Engineering (SE) dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan se-eksplisit yang diinginkan, tetapi paling tidak masalah pada kebutuhan sistem di awal proyek lebih ekonomis
11
http://digilib.mercubuana.ac.id/
dalam hal uang (lebih murah), usaha dan waktu yang terbuang lebih sedikit jika dibandingkan masalah yang muncul pada tahap-tahap selanjutnya. Kekurangan yang utama dari model ini adalah kesulitan dalam mengakomodasi perubahan setelah proses dijalani. Fase sebelumnya harus lengkap dan selesai sebelum mengerjakan fase berikutnya. Masalah dengan waterfall : 1
Perubahan sulit dilakukan karena sifatnya yang kaku.
2
Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen / pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.
3
Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar yaitu dengan proyek yang dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.
2.3
Unified Modelling Language (UML) Unified Modelling Language (UML) adalah bahasa standar yang digunakan
untuk menentukan, menggambarkan, membangun dan mendokumentasikan sistem dari sebuah software.(Sholiq, 2006 : 50) Tabel 2.1 Simbol-simbol UML
12
http://digilib.mercubuana.ac.id/
2.7.1 Use Case Diagram Use case diagram adalah gambar dari beberapa atau seluruh aktor dan use case dengan tujuan mengenali interaksi mereka dalam suatu sistem. Oleh karena itu, use case diagram dapat membantu menganalisa kebutuhan suatu sistem. Dalam use case diagram terdapat istilah seperti aktor, use case dan use case relationship. Berikut adalah penjelasan dari istilah-istilah diatas: 1. Aktor Aktor adalah sesorang atau apa saja yang berhubungan dengan sistem yang sedang dibangun. (Sholiq 2006 : 58) Ada 3 tipe aktor, yaitu sebagai berikut : a. Aktor secara fisik (seorang pengguna) Ini adalah gambaran aktor secara umum, dan selalu ada pada setiap sistem. Aktor disini menggambarkan orang-orang yang menggunakan sistem. b. Aktor sebagai sistem lain Misalkan dalam sistem persoalan apotik mungkin memerlukan antar muka dengan aplikasi eksternal untuk memvalidasi pembelian menggunakan kartu kredit. Maka dalam kontek ini, sistem aplikasi kredit termasuk aktor terhadap sistem penjualan obat di apotik. c. Aktor sebagai waktu Waktu menjadi aktor ketika waktu tertentu memicu beberapa kejadian dalam sistem.
Aktor
Gambar 2.4 Aktor (Sholiq, 2006) 2. Use Case Use case adalah bagian tingkat tinggi dari fungsionalitas yang disediakan oleh sistem. Dengan kata lain, use case menggambarkan bagaimana
13
http://digilib.mercubuana.ac.id/
seseorang menggunakan sistem. Pada Gambar 2.5 adalah penggambaran simbol use case. (Sholiq, 2006 : 60)
UseCase
Gambar 2.5 Use case (Sholiq, 2006) 3. Relasi Relasi secara umum dalam diagram use case terbagi menjadi relasi antara aktor dengan use case yang disebut relasi asosiasi dan realsi antar use case (relasi include, relasi extend, dan relasi generalisasi). (Sholiq, 2006 : 70) a. Relasi assosiasi Relasi Antara aktor dan use case adalah relasi assosiasi. Dalam UML relasi assosiasi digambarkan dengan menggunakan anak panah. (Sholiq, 2006 : 60) b. Relasi antar use case a) Relasi include digunakan dengan 2 syarat,yaitu : Jika dua atau lenih use case mempunyai bagian besar fungsionalitas yang identik, maka fungsionalitas ini dapat dipecah ke dalam use case tersendiri. Masing-masing use case kemudian menggunakan relasi include terhadap use case yang baru dibuat tersebut. Realsi include bermanfaat untuk situasi jika sebuah use case mempunyai fungsionalitas yang terlalu besar, kemudian fungsionalitas yang besar tersebut dipecah menjadi dua buah use case yang lebih kecil, relasi include digunakan menghubungkan dua buah use case hasil pemecahan. c. Relasi Extend memungkinkan bahwa satu use case secara optimal menggunkan fungsionalitas yang disediakan oleh use case lainnya d. Relasi Generalisasi Relasi generalisasi digunakan untuk menunjukkan bahwa beberapa aktor atau use case mempunyai beberapa persamaan.
14
http://digilib.mercubuana.ac.id/
Gambar 2.6 Use case diagram (Sholiq, 2006) 2.7.2 Activity Diagram Activity diagram menggambarkan aliran fungsionalitas sistem. Pada tahap pemodelan bisnis, diagram aktivitas dapat digunakan untuk menunjukan aliran kerja bisnis. Dan dapat juga digunakan untuk menggambarkan aliran kejadian dalam use case. Diagram aktivitas tidak perlu dibuat untuk setiap aliran kerja, tetapi diagram ini akan sangat berguna untuk aliran kerja yang komplek dan melebar. (Sholiq, 2006 : 8)
15
http://digilib.mercubuana.ac.id/
Gambar 2.7 Activity diagram (Sholiq, 2006)
2.7.3 Sequence Diagram Diagram sekunsial atau sequence diagram digunakan untuk menunjukan aliran fungsional dalam use case. Misalkan dalam use case “menarik uang”, mempunyai beberapa kemungkinan, seperti penarikan uang secara normal, percobaan penarikan uang tanpa kecukupan ketersediaan dana, penarikan dengan penggunaan PIN yang salah, dan lainnya. Seperti pada gambar dibawah ini. (Sholiq, 2006 : 9)
16
http://digilib.mercubuana.ac.id/
Gambar 2.8 Sequence diagram ATM (Sholiq, 2006)
2.4
Bahasa Pemrograman
2.5.1 Hyper Text Markup Language (HTML) HyperText Markup Language adalah bahasa yang digunakan pada dokumen web sebagai bahasa untuk pertukaran dokumen web. Struktur dokumen HTML terdiri dari tag pembuka dan tag penutup. HTML versi 1.0 dibangun oleh W3C, dan terus mengalami perkembangan sampai saat ini HTML terakhir adalah versi 5.0. (Alexande F. K. Sibero, 2011 : 19) Tag adalah tanda awal < dan tanda akhir > yang digunakan sebagai pengapit suatu elemen. Tag pada elemen pembuka diawali dengan tanda < dan diakhiri dengan tanda >. Sedangkan untuk elemen penutup diawali dengan tanda < dan diakhiri dengan tanda / kemudia diakhiri dengan tanda >. Untuk penulisan tag elemen tunggal cukup menuliskan tanda < dan sebelum tanda > ditambahkan dengan tanda /. (Alexande F. K. Sibero, 2011 : 19)
17
http://digilib.mercubuana.ac.id/
Penjelasan selanjutnya mengenai HTML setiap versinya akan dijelaskan sebagai berikut: 1. HTML Versi 1.0, merupakan HTML Pionir yang di dalamnya masih terdapat banyak sekali kelemahan sehingga wajar jika tampilan yang dihasilkan sangat sederhana. Kemampuan yang dimiliki versi 1.0 ini antara lain heading, paragraf, hyperText, list serta cetak tebal dan miring pada teks. Versi ini juga mendukung peletakan image pada dokumennya tanpa memperbolehkan meletakkan text di sekelilingnya. (ISO/IEC 15445,2000) 2. HTML Versi 2.0, pada versi ini terdapat penambahan kualitas HTML terletak pada kemampuan untuk menampilkan suatu form pada dokumen. Dengan adanya form ini, maka kita dapat memasukkan nama, alamat, serta saran dan kritikan. HTML Versi 2.0 ini merupakan pionir dari adanya home page interaktif. (D. Connolly,1995) 3. HTML Versi 3.0, pada versi ini terdapat penambahan beberapa fasilitas figure yang merupakan perkembangan dari image untuk
baru seperti
meletakkan gambar dan tabel. selain itu, HTML ini mendukung adanya rumus-rumus matematika dalam dokumennya. (Dave Raggett, 1997) 4. HTML Versi 4.0, pada versi ini memuat banyak sekali perubahan dan revisi dari pendahulunya. Perubahan ini hampir terjadi di segala perintah perintah HTML seperti table, image, link, text, meta, imagemaps, form, dan lain-lain. Selain Itu versi ini menambahkan beberapa perintah seperti abbr, acronym, bdo, button, fieldset, ins, label, legend, object, optgroup, param, tbody, tfoot. 5. HTML Versi 4.01, Spesifikasi ini mendefinisikan Hypertext Markup Language ( HTML ) kedalam bahasa penerbitan World Wide Web. Spesifikasi ini merupakan subversi HTML 4. Selain teks, multimedia, dan fitur hyperlink dari versi sebelumnya HTML ( HTML 3.2 [ HTML32 ] dan HTML 2.0 [ RFC1866 ] ), HTML 4 mendukung lebih multimedia pilihan, bahasa scripting, style sheet, fasilitas pencetakan yang lebih baik dan dokumen yang lebih mudah diakses oleh pengguna yang memiliki keterbatasan.
HTML 4 juga
mengambil langkah besar menuju
internasionalisasi dokumen dengan tujuan membuat web yang benar 18
http://digilib.mercubuana.ac.id/
benar World Wide. HTML 4 adalah aplikasi SGML sesuai dengan Standar Internasional ISO 8879 - Standard Generalized Markup Language [ ISO8879]. 6. HTML Versi 5, ini mendefinisikan revisi besar dari bahasa inti dari World Wide Web : Hypertext Markup Language ( HTML ) . Dalam versi ini, fitur baru yang diperkenalkan untuk membantu penulis aplikasi Web, unsurunsur baru diperkenalkan berdasarkan penelitian ke dalam praktek authoring yang berlaku, dan perhatian khusus telah diberikan dalam mendefinisikan kriteria kesesuaian yang jelas untuk agen pengguna dalam upaya untuk meningkatkan interoperabilitas. Contoh struktur dokumen HTML sebagai berikut:
Form HTML Dokumen HTML 2.5.2 PHP Hypertext Preprocessor (PHP) PHP adalah pemrograman interpreter yaitu proses penerjemahan baris kode sember menjadi kode mesin yang dimengerti komputer secara langsung pada saat baris kode dijalankan. PHP disebut sebagai pemrograman Server Side Programming, hal ini dikarenakan seluruh proses dijalankan pada server. PHP adalah suatu bahasa dengan hak cipta terbuka atau yang juga dikenal dengan istilah Open Source, yaitu pengguna dapat mengembangkan kode-kode fungsi PHP sesuai dengan kebutuhannya. (Alexande F. K. Sibero, 2011 : 49) 2.5.3 Cascading Style Sheet (CSS) Mengacu dari arti bahasa, Cascading Style Sheet memiliki arti gaya menata halaman bertingkat, yang berarti setiap satu elemen yang telah diformat dan memiliki anak dan telah diformat, maka anak dari elemen tersebut otomatis mengikuti format induknya. (Alexande F. K. Sibero, 2011 : 112)
19
http://digilib.mercubuana.ac.id/
2.5.4 Javascript Pada awalnya javascript dikembangkan pada web browser Netscape oleh Brendan Eich dengan nama Mocha, kemudian berubah menjadi live script dan akhirnya sampai sekarang ini menjadi javascript. Javascript adalah bahasa skrip yaitu kumpulan instruksi perintah yang digunakan untuk mengendalikan beberapa bagian dari sistem operasi. Bentuk bahasa skrip dari javascript mengambil model penulisan pemrograman C dan java, yang terdiri dari variable, fungsi, dan lainnya. Sebagai bahasa skrip yang berjalan pada web browser atau sisi klien, javascript tidak memiliki fungsi untuk menjalankan perintah pada server atau sisi server. Dengan keterbatasan itu para pengembang javascript kemudian menambahkan suatu mekanisme agar javascript dapat berinteraksi dengan server. Mekanisme tersebut adalah AJAX (Asynchronous Javascript and XML). (Alexande F. K. Sibero, 2011 : 150) 2.5
My Struktur Query Language (MySQL) My struktur Query Language (MySQL) adalah suatu RDBMS (Relational
Data Base Management System) yaitu aplikasi sistem yang menjalankan fungsi pengolahan data. MySQL pertama dikembangkan oleh MySQL AB yang kemudian diakuisisi Sun Microsystem dan terakhir dikelola oleh Oracle Coorporation. (Alexande F. K. Sibero, 2011 : 97) 2.6.1 Data Definition Language (DDL) Data Definition Language (DDL) adalah suatu tata bahasa definisi data pada MYSQL, DDL digunakan untuk mendefinisikan suatu database, table, table space, logfile group, server index.
DDL umumnya digunakan untuk
mengdefinisikan suatu wadah data atau record. (Alexande F. K. Sibero, 2011 : 98) a. Create Create digunakan untuk mendefinisikan suatu struktur, wadah yang digunakan sebagai media suatu data / record, dan atribut pendukung lainnya. (Alexande F. K. Sibero, 2011 : 98) Syntax : Create database database_name; Create table table_name (field_name date_type); 20
http://digilib.mercubuana.ac.id/
b. Alter Digunakan untuk mengubah definisi suatu struktur, wadah yang digunakan sebagai media suatu data / record dan atribut pendukung lainnya. (Alexande F. K. Sibero, 2011 : 101) Syntax : Alter database database_name; Alter table table_name add field_name type_date; Alter table table_name drop field_name; c. Drop Drop digunakan untuk menghapus suatu struktur, wadah yang digunakan sebagi media suatu data / record dan atribut pendukung lainnya. (Alexande F. K. Sibero, 2011 : 102) Syntax : Drop database database_name; Drop table table_name; Drop index index_name ON table_name; d. Rename Rename digunakan untuk mengganti nama suatu struktur, wadah yang digunakan sebagi media suatu data / record. Pengunaan rename hanya berlaku untuk database dan table. (Alexande F. K. Sibero, 2011 : 103) Syntax : Rename database database_name TO new_database_name; Rename table table _name TO new_ table _name; 2.6.2 Data Manipulation Language (DML) Data Manipulation Language (DML) adalah suatu tata bahasa manipulasi data MySQL, DML digunakan untuk memanipulasi data pada table database. (Alexande F. K. Sibero, 2011 : 104) a. Select Syntax : Select all * form table_name; Select field_name form table_name where condition; b. Insert 21
http://digilib.mercubuana.ac.id/
Syntax : Insert INTO table_nama values (record ); c. Update Syntax : Update table_nama set field_nama = record where condition; d. Delete Syntax : Delete from table_nama; Delete from table_nama where condition; 2.6
Perangkat Lunak Penunjang
2.7.1 Web Server Web server adalah sebuah komputer yang terdiri dari perangkat keras dan perangkat lunak. Secara bentuk fisik dan cara kerjanya, perangkat keras web server dengan komputer dibedakan oleh kapasitas dan kapabilitasnya. Perangkat lunak dalam web server memiliki karakteristik dan teknologi yang digunakan untuk mengatur kerja sistemnya. (Alexander F.K. Sibero 2011 : 11) Contoh-contoh perangkat lunak web server antara lain : Tabel 2.2 Perangkat Lunak Web server Vendor
Produk
Apache Software Foundation Apache Web server Microsoft Corp. Oracle Corp.
Internet Information Services (IIS) iPlanet Web server
Sistem Operasi Cross Platform Windows Only Cross Platform
2.7.2 DBMS DBMS adalah singkatan dari Database Management System adalah sebuah sistem software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengendalikan akses terhadap database. DBMS merupakan 22
http://digilib.mercubuana.ac.id/
perantara bagi user dengan database. Cara berinteraksi antara user dengan database diatur oleh sebuah bahasa yaitu bahasa database. Bahasa database terdiri atas sejumlah perintah yang dapat dituliskan oleh user kemudian diproses oleh DBMS untuk melakukan aksi tertentu. Contoh bahasa database seperti SQL, dBase, Quel dan lain-lain. (Connoly dan Beff 2005 : 16) 2.7.3 PhpMyAdmin PHPMyAdmin merupakan aplikasi web yang digunakan untuk administrasi database MySQL. Sebelum menjalankan phpmyadmin, kita harus menjalankan software pendukungnya, seperti Xampp. (Alexander F.K. Sibero 2011 : 376) Fitur administrasi phpMyAdmin antara lain : 1. Membuat, mengubah dan menghapus database 2. Membuat, mengubah dan menghapus tabel 3. Menampilkan, menambahkan, mengubah dan menghapus data 4. Membuat dan menghapus view 5. Menampilkan dan menghapus indeks kolom 2.7.4 Xampp XAMPP (X (X=Cross Platform), Apache, MySQL, PHP dan Perl). Xampp merupakan salah satu paket web server yang umumnya digunakan oleh web developer. Xampp berisi antara lain server web Apache, interpreter PHP dan database MySQL. Program ini tersedia dalam lisensi GNU (General Public License) dan gratis. 2.7.5 Notpad++ Notepad ++ adalah aplikasi gratis (freeware) source code editor dan pengganti Notepad yang mendukung beberapa bahasa. Berjalan di lingkungan MS Windows, penggunaannya diatur oleh GPL License. Proyek ini dilayani oleh Sourceforge.net dengan telah diunduh lebih dari 27 juta kali dan dua kali memenangkan penghargaan SourceForge Community Choice Award for Best Developer Tool. Bahasa pemrograman yang didukung oleh Notepad++ sangat banyak diantaranya bahasa C++, ASP, Javascript bahkan termasuk PHP dan SQL. ( https://notepad-plus-plus.org/, diakses 27 Juni 2015)
23
http://digilib.mercubuana.ac.id/
2.7.6 HeidiSQL Pada awalnya HeidiSQL dikenal sebagai MySQL-Front adalah aplikasi open source atau tampilan untuk MySQL. HeidiSQL dikembangkan oleh programmer Jerman Ansgar Becker dan beberapa kontributor lainnya di Delphi. Untuk mengelola database dengan HeidiSQL, pengguna harus login ke server MySQL lokalnya terlebih dahulu untuk mendapatkan session. Jadi HeidiSQL adalah aplikasi berbasis Windows yang cukup ringan untuk mengelola database MySQL dan Microsoft SQL database. Aplikasi ini dapat melihat dan mengedit data, membuat dan mengedit tabel, View, prosedur dan trigger. Selain itu, aplikasi ini juga dapat melakukan ekspor struktur dan data baik ke dalam file SQL, clipboard atau ke server lain. (http://www.heidisql.com/, diakses 27 Juni 2015) fitur-fitur yang dimiliki oleh aplikasi HeidiSQL: 1. Open Source sejak 9 tahun pembangunan aktif. 2. Terhubung ke beberapa server dalam satu jendela. 3. Terhubung ke server melalui commandline. 4. Terhubung melalui jalur SSH atau pengaturan SSL. 5. Membuat dan mengedit tabel, pandangan, rutinitas disimpan, pemicu dan acara yang dijadwalkan. 6. Ekspor dari satu server / database secara langsung ke server lain 7. Tabel ekspor baris CSV, HTML, XML, SQL, LaTeX, Wiki Markup dan PHP Array 8. Batch-insert ascii atau file biner ke dalam tabel. 9. Cari teks tertentu pada seluruh tabel dari semua database dari satu server 10. Dan banyak lagi 2.7.7 Macromedia Dreamweaver Macromedia Dreamweaver adalah program untuk mengedit HTML secara visual dan mengelola halaman sebuah situs. Dreamweaver menyertakan banyak perangkat yang berkaitan dengan pengkodean dan fitur seperti HTML, CSS, Javascript, PHP, ASP, Coldfusion dan XML.
24
http://digilib.mercubuana.ac.id/
2.7
Barcode
2.8.1 Sejarah Barcode Barcode pertama kali diperkenalkan oleh dua orang mahasiswa dari Universitas Drexel Institute of Technology yang bernama Bernard Silver dan Norman Joseph Woodland pada tahun 1948 di Philadelphia Amerika Serikat. Mereka mempatenkan inovasi tersebut pada tahun 1949 dan permohonan tersebut dikabulkan pada tahun 1952. Kemudian baru pada tahun 1996, penemuan mereka digunakan dalam dunia komersial. Sejak saat itulah negara ini menjadi terkenal dengan pusat perbelanjaan di seluruh dunia selain Inggris.( Erik Hermawan, 2008 dan http://www.barcode-1.net/ diakses 21 juni 2015) 2.8.2 Definisi Barcode Barcode atau kode baris adalah garis-garis hitam yang dibuat secara unik menurut kode tertentu, umumnya digunakan sebagai identifikasi terhadap suatu objek atau barang. Bila diamati, barcode berbentuk garis-garis hitam sejenis kode batang. Kode batang adalah kumpulan batang yang kebanyakan berwarna hitam dan putih yang bisa diterjemahkan menjadi sebuah angka yang mewakili data atau informasi tertentu. Kode berbentuk batangan balok dan berwarna hitam putih ini mengandung satu kumpulan kombinasi batang yang berlainan ukuran yang disusun sedemikian rupa. Kode ini biasanya dicetak di atas stiker atau di kotak bungkusan barang. ( Erik Hermawan, 2008 dan http://www.barcode-1.net/ diakses 21 juni 2015)
Gambar 2.9 Barcode pada barang (http://www.barcode-1.net)
25
http://digilib.mercubuana.ac.id/
2.8.3 Jenis-jenis Barcode Ada dua jenis barcode yang banyak digunakan, yaitu barcode satu dimensi (Linear Barcode) dan barcode dua dimensi (2D Barcodes). Barcode satu dimensi adalah barcode yang paling banyak digunakan. 1
Barcode satu dimensi Barcode satu dimensi terdiri dari garis-garis yang berwarna hitam dan putih yang mempunyai ketebalan yang berbeda. Warna hitam untuk nilai 1 dan warna putih untuk nilai 0. Ada banyak macam barcode satu dimensi,seperti Code 128, Code 93, Code 39, EAN, UPC, Code 2/5 Interleaved, Codebar dan lain-lain. Berikut contoh barcode satu dimensi: a. Code 2/5 Interleaved (ITF) Adalah sebuah barcode yang berbentuk pengkodean angka dan sering digunakan pada produk-produk yang memiliki kemasan dengan permukaan yang tidak rata. Hal ini dikarenakan struktur dan cara pengkodeannya yang tergolong unik ditentukan oleh posisi bar atau spasi penggunaannya. Barcode ini biasa dipergunakan untuk aplikasi industri, pemakaian barcode pada karton luar (outer box) dan laboratorium. Jenis lainnya seperti barcode Code 2/5 Industrial.( Erik Hermawan, 2008 dan http://www.barcode-1.net/ diakses 21 juni 2015)
Gambar 2.10 Barcode 2/5 interleaved (http://www.barcode-1.net)
b. Code 93 Sistem pengkodean yang digunakan adalah berjenis Code 93 atau Code 9 of 3 adalah sebuah barcode alpha-numerik yang memiliki 26
http://digilib.mercubuana.ac.id/
angka desimal dan huruf besar serta bisa ditambahkan karakter spesial.*$/-%+. Dalam pengkodean ini, ada empat elemen dasar yang membangun terbentuknya sebuah kode batang, yaitu hitam tebal (b), hitam tipis (B), Putih tebal (W), Putih tipis (w). Tabel 2.3 Nilai karakter ASCII code 93
Untuk elemen yang lebar berjarak 3 pixel dan elemen yang tipis berjarak 1 pixel. Setip kode barang mempunyai 9 balok hitam dan putih tebal, juga diikuti dengan 3 balok hitam dan putih tipis. Oleh karena itu metode ini disebut Code 93. Berikut adalah struktur Code 93, seperti yang terlihat di bawah ini:
Gambar 2.11 Struktur code 93 (http://www.barcode-1.net) 27
http://digilib.mercubuana.ac.id/
c. Code 39 Adalah sebuah barcode alpha-numerik yang memiliki angka desimal dan huruf besar serta tambahan karakter spesial .*$/-%+. Satu karakter dalam Code 39 terdiri dari 9 elemen, yaitu 5 bar dan 4 spasi yang disusun bergantian antara bar dengan spasi. Tiga dari sembilan elemen tersebut memiliki ketebalan yang lebih dari yang lainnya. Aplikasi barcode jenis code 39 adalah untuk inventory, aset tracking dan digunakan pada tanda pengenal identitas. Jenis lainnya seperti barcode Code 39 extended.
Gambar 2.12 Barcode jenis code 39 (http://www.barcode-1.net)
d. Code 128 Adalah suatu barcode alpha - numerik yang memiliki kerapatan (density) yang sangat tinggi dengan luas yang paling minim dibandingkan dengan barcode jenis lainnya. Hal ini disebabkan karena Code 128 menggunakan 4 ketebalan elemen (bar atau spasi) yang berbeda dibandingkan dengan jenis lain yang hanya menggunakan 2 ketebalan elemen. Barcode Code 128 ideal untuk aplikasi seperti shipping and warehouse management (pengaturan maskapai pelayaran dan pengelolaan gudang).
Gambar 2.13 Barcode jenis code 128 (http://www.barcode-1.net)
28
http://digilib.mercubuana.ac.id/
e. European Article Numbering (EAN) Adalah barcode yang diimplementasikan oleh International Article Numbering Association di Eropa. Standar ini digunakan karena standar UPC-A tidak didesain untuk penggunaan internasional. Pada EAN, terdapat dua buah metode yang sering digunakan yaitu EAN-13 dan EAN-8. Barcode EAN-13 dibagi menjadi 4 area, yaitu nomor sistem,kode manufaktur, kode produk dan digit cek.
Gambar 2.14 Anatomi barcode EAN-13 (http://www.barcode-1.net)
a) Nomor sistem Nomor sistem terdiri dari 2 digit yang menyatakan otoritas penomoran yang memberikan kode manufaktur. b) Kode manufaktur Kode manufaktur merupakan kode yang unik yang diberikan ke setiap manufaktur dengan otoritas nomor yang diidentifikasi dengan kode nomor sistem. Semua produk yang dihasilkan oleh sebuah perusahaan akan memakai kode manufaktur yang sama. c) Kode produk Kode produk merupakan kode yang diberikan oleh manufaktur pada setiap produk yang dihasilkannya. d) Digit cek Digit cek merupakan digit tambahan yang digunakan untuk memeriksa apakah barcode telah dibaca secara benar.Pengkodean 29
http://digilib.mercubuana.ac.id/
simbol pada EAN adalah sama dengan UPC, angka 1 mewakili baris, sedangkan 0 mewakili spasi. Batas kiri, dikodekan dengan 101. Karakter kedua dari kode nomor sistem dikodekan. Lima karakter dari kode manufaktur dikodekan. Batas tengah, dikodekan dengan 01010. Lima karakter produk, dikodekan sebagai karakter righthand. f.Digit cek, dikodekan sebagai karakter right-hand. Batas kanan, dikodekan dengan 101. Aplikasi barcode jenis EAN terutama EAN-13 banyak digunakan pada bisnis jual-beli khususnya di Indonesia. Jenis lainnya seperti EAN-8. f. Universal Product Code (UPC) Adalah sebuah barcode yang berbentuk alpha-numerik dan memiliki panjang baris yang tetap (fixed). Jenis lainnya seperti UPC-A, UPCE.Untuk kode barcode UPC-A terdiri atas 1 digit sebagai nomor sistem pada awal barcode, 5 digit nomor manufaktur, 5 digit nomor produk dan 1 digit sebagai digit cek. Nomor sistem menunjukkan penggunaan satu diantara sepuluh nomor sistem yang ditetapkan oleh UPC, yaitu: o Angka 0, 6 dan 7 untuk kode UPC reguler. o Angka 2 untuk barang-barang di toko. o Angka 3 untuk kode obat-obatan dan barang kesehatan lainnya. o Angka 4 untuk barang selain makanan. o Angka 5 untuk penggunaan kupon. o Angka 1, 8 dan 9 sampai sekarang belum digunakan. UPC-A mempunyai stuktur sebagai berikut: Pengkodean simbol pada UPC-A adalah angka 1 mewakili baris,sedangkan 0 mewakili spasi. Oleh karena itu, angka 1101 mewakili satu baris lebar (dua buah baris), diikuti dengan spasi pendek dan kemudian baris pendek.
30
http://digilib.mercubuana.ac.id/
Tabel 2.4 Pengkodean pada UPC-A Digit 0 1 2 3 4 5 6 7 8 9
Left Digits Odd Parity SBSB 3211 2221 2122 1411 1132 1231 1114 1312 1213 3112
Right Digit Even Parity BSBS 3211 2221 2122 1411 1132 1231 1114 1312 1213 3112
o Karakter pertama dari kode nomor sistem, dikodekan pada tabel. o Lima karakter dari kode manufaktur dikodekan. o Batas tengah, dikodekan dengan 01010. o Lima kode produk, dikodekan sebagai karakter right-hand. o Digit cek, dikodekan sebagai karakter right-hand. o Batas Batas kanan, dikodekan dengan 101 UPC digunakan untuk pelabelan pada produk-produk kecil atau eceran (retail product labeling). Bilangan-bilangan UPC harus diregistrasikan atau terdaftar di Uniform Code Council. Barcode ini digunakan secara luas pada industri grosir. 2
Barcode dua dimensi Adalah barcode yang tidak berupa garis-garis lagi, tetapi sudah seperti gambar dan informasi yang tersimpan didalamnya lebih besar. Untuk membaca barcode ini diperlukan barcode reader khusus. Barcode dua dimensi banyak macamnya seperti Array Tag, Aztec, Code One dan Code One S, CP Code, Data Matrix, Data Strip, Dot Code A, Maxi Code, QRCode, Mini Code, Smart Code, Snowflake Code, Accu Code (3DI),Vericode, Symbology PDF417. Sebagai contoh barcode dua dimensi adalah Symbology PDF417 yang merupakan barcode yang dapat
31
http://digilib.mercubuana.ac.id/
menyimpan lebih dari 2000 karakter di dalam sebuah ruang (space) yang berukuran 4 inch persegi.
Gambar 2.15 Barcode jenis 2D (http://www.barcode-1.net)
2.8.4 Pembuatan Barcode Dalam pembuatan barcode tentunya tidak hanya mencoret garis-garis vertikal yang memiliki ketebalan tertentu melainkan menggunakan cara-cara yang telah ditetapkan sehingga menghasilkan barcode dengan berbagai encoding. Ada dua cara yang bisa dilakukan. Pertama, barcode yang dibuat bisa menggunakan bantuan aplikasi barcode generator yang bisa di download di internet secara gratis atau membelinya.
Gambar 2.16 Contoh barcode generator pada aplikasi Corel Draw (http://community.coreldraw.com)
Cara menggunakannya yaitu, cukup ketik kalimat atau kata yang hendak diterjemahkan menjadi barcode dan kemudian pilih tipe barcode apa yang akan digenerate. Selanjutnya, tekan tombol copy untuk mengcopy gambar barcode 32
http://digilib.mercubuana.ac.id/
yang tercipta ke dalam ClipBoard dan kemudian mengcopy gambar tersebut ke editor apa saja. Alternatif lain adalah dengan menekan tombol Save As yang akan menyimpan gambar barcode tersebut menjadi bentuk file gambar. Selain itu,aplikasi ini juga menyediakan format ukuran gambar barcode yang dapat diubah-ubah dalam satuan pixel. Kedua, dengan menggunakan keahlian yang dimemiliki yaitu kemampuan menciptakan suatu program generator barcode sendiri yang lebih mudah dan fleksibel sesuai kebutuhan. Selanjutnya tinggal cetak diatas kertas stiker dan serahkan pada teman-teman dipengolahan untuk ditempel pada barang. Software yang bisa dipergunakan seperti MS Access, Corel Draw, Delphi, PHP atau program lain. Di bawah ini adalah contoh label barcode yang kami buat dengan program PHP. Barcode harus dibuat dengan memiliki kontras yang tinggi terhadap bagian celah antara sisi-sisi batang barcode, harus tegas dan lurus, serta tidak ada lubang atau noda titik ditengah permukaannya. Hal ini berguna pada saat pembacaan barcode oleh alat scanner.Hal yang perlu diperhatikan dalam mencetak barcode yaitu, sebaiknya barcode di cetak dengan warna hitam dan warna putih sebagai latar belakangnya,karena hal ini sudah menjadi standarisasi dalam pencetakan barcode.
Gambar 2.17 Pembacaan barcode dengan scanner (http://www.barcode-1.net) Alat yang digunakan untuk mencetak barcode digunakan printer barcode yang khusus untuk mencetak barcode. Untuk instalasi driver printernya sama seperti instalasi driver printer biasa seperti HP, Canon ataupun Epson. Setelah driver aktif baru printer ini bisa dipergunakan.( Erik Hermawan,2008)
33
http://digilib.mercubuana.ac.id/
2.8.5 Cara Kerja Barcode Barcode digambarkan dalam bentuk baris hitam tebal dan tipis dan disusun berderet sejajar horisontal. Pada umumnya pengkodean barcode disusun dengan 1 untuk melambangkan baris hitam dan 0 untuk melambangkan spasi putih. Misalnya, 0011001 dapat dinyatakan sebagai spasi-spasi-baris-baris-spasi-spasibaris. Untuk membantu pembacaan secara manual dicantumkan juga angka-angka atau huruf-huruf di bawah kode baris tersebut.
Gambar 2.18 Baris spasi barcode (http://www.barcode-1.net)
Barcode merupakan instrumen yang bekerja berdasarkan asas kerja digital.Pada konsep digital, hanya ada dua sinyal data yang dikenal dan bersifat boolean,yaitu 0 atau 1. Ada arus listrik atau tidak ada (dengan besaran tegangan tertentu,misalnya 5 volt dan 0 volt). Barcode menerapkannya pada batang-batang baris yang terdiri dari warna hitam dan putih. Warna hitam mewakili bilangan 0 dan warna putih mewakili bilangan 1. Warna hitam akan menyerap cahaya yang dipancarkan oleh alat pembaca barcode, sedangkan warna putih akan memantulkan balik cahaya tersebut. Selanjutnya, masing-masing batang pada barcode memiliki ketebalan yang berbeda. Ketebalan inilah yang akan diterjemahkan pada suatu nilai. Ketebalan batang barcode menentukan waktu lintasan bagi titik sinar pembaca yang dipancarkan oleh alat pembaca. Oleh sebab itu, batang-batang barcode harus dibuat demikian sehingga memiliki kontras yang tinggi terhadap bagian celah antara (yang menentukan cahaya). Sisi-sisi batang barcode harus tegas dan lurus,serta tidak ada lubang atau noda titik ditengah permukaannya. Sementara itu,ukuran titik sinar pembaca juga tidak boleh melebihi celah antara batang barcode.Saat ini, ukuran titik sinar yang umum digunakan adalah 4 kali titik yang dihasilkan
printer
pada
resolusi
300dpi.(
Erik
http://www.barcode-1.net/ diakses 21 juni 2015) 34
http://digilib.mercubuana.ac.id/
Hermawan,
2008
dan
2.8.6 Alat Pembaca Barcode Barcode Reader adalah alat yang digunakan untuk membaca kode barcode. Sistem kerja barcode reader hampir sama dengan inputan pada keyboard tinggal menghubungkan barcode ke PS2 kemudian komputer sudah menganggap barcode reader tersebut adalah keyboard tanpa adanya instalasi driver.Perbedaan barcode reader dengan keyboard adalah barcode reader membaca sebuah kode barcode kemudian memasukan kode tersebut ke dalam komputer dengan menambahkan karakter enter. Cara kerjanya yaitu dengan mengibaskan cahaya infra merah terhadap Barcode yang tertera pada produk tersebut. Sedangkan cara penggunaannya selain dipegang langsung kemudian ditekan tombolnya secara manual, barcode reader juga dapat digunakan secara otomatis(autoscan), yaitu dengan meletakkan barcode reader di atas stand (dudukan barcode reader), kemudian barcode reader disetting ke mode auto scan. Apabila kita mendekatkan barcode pada barcode reader maka barcode reader akan otomatis membacanya. Ada dua sistem koneksi alat pembaca barcode terhadap pengolahan data barcode pada komputer, yaitu sistem keyboard wedge dan sistem output RS232.Kedua sistem ini menterjemahkan hasil pembacaan barcode sebagai masukan (input) dari keyboard. Biasanya menggunakan port serial pada komputer. Sebagai perantara keduanya, diperlukan software perantara, yaitu software wedge yang akan mengalamatkan bacaan barcode ke software pengolah data barcode tersebut. Ada beberapa standar verifikasi untuk barcode reader, antara lain: 1. ANSI X3.182. UPC code yang digunakan di US ANSI/UCC5 merupakan standar Amerika. 2. ISO/IEC 15416 (barcode linear) dan ISO/IEC 15415 (2D barcodes) adalah standar internasional. 3. Standar Eropa EN 1635 yang kemudian digantikan ISO/IEC 15416. 4. ISO 15426-1 (linear barcode verifier compliance standard) atau ISO 15426-2 (2D barcode verifier compliance standard). Saat ini terdapat beberapa jenis instrumen pembaca barcode, seperti pena,laser, serta kamera. Pembaca berbentuk pena memiliki pemancar cahaya dan 35
http://digilib.mercubuana.ac.id/
dioda foto yang diletakkan bersebelahan pada ujung pena. Pena disentuhkan dan digerakkan melintasi deretan batang barcode. Dioda foto akan menerima intensitas cahaya yang dipantulkan dan mengubahnya menjadi sinyal listrik, lalu diterjemahkan dengan sistem yang mirip dengan morse
Gambar 2.19 Cara kerja scanner (http://www.barcode-1.net)
Pembaca dengan pemancar sinar laser tidak perlu digesekkan pada permukaan barcode, tapi dapat dilakukan dari jarak yang relatif lebih jauh. Selain itu,pembaca jenis ini memiliki cermin-cermin pemantul sehingga sudut pembacaan lebih fleksibel.
Gambar 2.20 Scanner dengan instrumen laser (http://www.barcode-1.net) Pembaca barcode dengan sistem kamera menggunakan sensor CCD (charge coupled device) untuk merekam foto barcode, baru kemudian membaca dan menterjemahkannya kedalam sinyal elektronik digital. 36
http://digilib.mercubuana.ac.id/
2.8
Pengujian Perangkat Lunak Pengujian merupakan bagian yang tidak terpisahkan dari perangkat lunak.
Proses pengujian juga memengaruhi masa penggunaan perangkat lunak. Semakin terperinci proses pengujian yang dilakukan, semakin lama rentang waktu yang akan diperlukan pada satu pemeliharaan perangkat lunak dan untuk proses selanjutnya. Pengujian perangkat lunak dilakukan pada setiap tahapan pengembangan hingga pada pemeliharaan perangkat lunak. Cara pandang terhadap perangkat lunak berkembang menjadi lebih konstruktif. Pengujian tidak lagi dipandang sebagai aktivitas yang hanya dilakukan setelah pengodean perangkat lunak selesai dengan batasan sebagai pendeteksi kegagalan perangkat lunak, melainkan sebagai aktivitas yang menuntun keseluruhan proses pengembangan perangkat lunak dan pemeliharaan. Pengujian pun menjadi bagian penting dari suatu konstruksi perangkat lunak. (Janner Simarmata, 2010 : 299) 2.9.1 Dasar-Dasar Pengujian Perangkat Lunak Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan mempresentasikan kajian pokok dari spesifikasi, desain dan pengkodean. Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi dimana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas. Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan biaya yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak dari pada membangun. (Roger S Pressman 2010 : 590) 2.9.2 White Box White box testing atau pengujian glass box adalah sebuah filosofi perancangan test case yang menggunakan struktur control yang dijelaskan sebagai
37
http://digilib.mercubuana.ac.id/
bagian dari perancangan peringkat komponen untuk menghasilkan test case. (Roger S Pressman 2010 : 590) Dengan menggunakan metode white box analisis sistem akan memperoleh test case yang : 1. Menjamin seluruh independent path didalam modul yang dikerjakan sekurang-kurangnya sekali. 2. Mengerjakan seluruh keputusan logical. 3. Mengerjakan seluruh loop yang sesuai dengan batasannya. 4. Mengerjakan seluruh struktur data internal yang menjamin validitas. Test case diatas untuk meramal cara kerja perangkat lunak secara rinci karenanya logic path (jalur logika) perangkat lunak akan ditest dengan menyediakan
test
case
yang
akan
mangerjakan kumpulan kondisi dan
perulangan secara fisik. Dengan menggunakan White Box Testing, software engineer harus dapat mengetahui: 1. Notasi Grafik Alir Untuk menggambarkan penggunaan grafik alir pada beberapa simbol yaitu: a. Node merupakan satu atau lebih pernyataan – pernyataan procedural, urutan kotak – kotak proses dan berlian – berlian keputusan bias dipetakan menjadi satu node. b. Edge atau link merupakan aliran kendali dan analog dengan panah diagram alir. Sebuah edge harus berhenti disebuah node, bahkan jika node tidak mewakili pernyataan – pernyataan prosedural. c. Region merupakan area yang dibatasi oleh edge dan node. d. Predicate node yaitu setiap node yang berisi kondisi. 2. Jalur program Independent Jalur independent adalah setiap jalur yang melalui program yang memperkenalkan setidaknya satu kumpulan pernyataan – pernyataan pemrosesan atau kondisi baru. Kompleksitas siklomatik adalah metrik perangkat lunak yang menyediakan ukuran kuantitatif dari kompleksitas logis suatu program. Kompleksitas siklomatik dilandaskan pada teori graph, dan
38
http://digilib.mercubuana.ac.id/
menyediakan bagi anda metrik perangkat lunak yang sangat berguna. (Roger S Pressman 2010 : 590) Kompleksitas dihitung dalam salah satu dari tiga cara sebagai berikut: a. Jumlah daerah – daerah grafik alir yang berhubungan dengan kompleksitas siklomatik. b. Kompleksitas siklomatik V(G) untuk grafik alir G didefinisikan sebagai : V(G) = E – N + 2 Keterangan : E = jumlah edge pada flowgraph N = jumlah node pada flowgraph c. Kompleksitas
siklomatik V(G) untuk grafik aliran
G juga
didefinisikan sebagai : V(G) = P + 1 Keterangan : P = jumlah predicate node pada flowgrapah 1. Menghasilkan Test case Beberapa langkah berikut dapat di terapkan untuk menurunkan basis set: a. Menggunakan perancangan atau kode sebagai sebuah dasar, contoh gambar grafik alir yang sesuai.
Gambar 2.21 Gambar bagan alir (Roger S. Pressman, Ph.D., 2010)
39
http://digilib.mercubuana.ac.id/
Gambar 2.22 Gambar grafik alir (Roger S. Pressman, Ph.D., 2010)
b. Menentukan kompleksitas siklomatik dari aliran grafik
yang
dihasilkan. c. Menentukan sebuah basis set dari jalur independent linier. 2.9.3 Black box Pengujian black box disebut juga pengujian perilaku, berfokus pada persyaratan fungsional perangkat lunak. Artinya, teknik pengujian kotak hitam memungkinkan anda untuk membuat beberapa kumpulan kondisi masukan yang sepenuhnya akan melakukan kebutuhan fungsional untuk program. Pengujian kotak hitam berupaya untuk menemukan kesalahan dalam kategori sebagai berikut: a. Fungsi yang salah atau hilang b. Kesalahan antar muka c. Kesalahan dalam struktur data atau akses basis data eksternal d. Kesalahan perilaku atau kinerja e. Kesalahan inisialisasi dan penghentian Pengujian perangkat lunak dimulai dengan menciptakan sebuah grafik dari objek objek penting dan hubungan mereka dan kemudian merumuskan serangkaian pengujian yang akan meliputi grafik sehingga setiap objek dan hubungan diuji dan kesalahan – kesalahan pun ditemukan. (Roger S Pressman, 2010 :598) 40
http://digilib.mercubuana.ac.id/
Ciri-Ciri BlackBox Testing 1. Black box testing berfokus pada kebutuhan fungsional pada software, berdasarkan pada spesifikasi kebutuhan dari software. 2. Black box testing bukan teknik alternatif daripada white box testing. Lebih daripada itu, ia merupakan pendekatan pelengkap dalam mencakup error dengan kelas yang berbeda dari metode white box testing. 3. Black box testing melakukan pengujian tanpa pengetahuan detil struktur internal dari sistem atau komponen yang dites. juga disebut sebagai behavioral testing, specification-based testing, input/output testing atau functional testing Pada black box testing terdapat jenis teknik design tes yang dapat dipilih berdasarkan pada tipe testing yang akan digunakan, yang diantaranya : 1. Graph-Based Testing Methods Langkah pertama pada black box testing adalah memahami obyek yang dimodelkan dalam software dan hubungan koneksi antar obyek, kemudian definisikan serangkaian tes yang merupakan verifikasi bahwa semua obyek telah mempunyai hubungan dengan yang lainnya sesuai yang diharapkan. Langkah ini dapat dicapai dengan membuat grafik, dimana berisi kumpulan node yang mewakili obyek, penghubung / link yang mewakili hubungan antar obyek, bobot node yang menjelaskan properti dari suatu obyek, dan bobot penghubung yang menjelaskan beberapa karakteristik dari penghubung / link.
Gambar 2.23 Gambar notasi grafik (Roger S. Pressman, Ph.D., 2010)
41
http://digilib.mercubuana.ac.id/
Representasi secara simbolik dari grafik terlihat seperti pada gambar 3.14A. Nodes direpresentasikan sebagai lingkaran yang hubungan langsung(digambarkan dalam bentuk anak panah) mengindikasikan suatu hubungan yang bergerak hanya dalam satu arah. Hubungan dua arah, juga disebut sebagai hubungan simetris, menggambarkan hubungan yang dapat bergerak dalam dua arah. Hubungan paralel digunakan bila sejumlah hubungan ditetapkan antara dua nodes. 2. Equivalence Partitioning Merupakan metode Black Box testing yang membagi domain masukan dari suatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan [BCS97a]. Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelaskelas,
menurut
spesifikasi
dari
komponen
tersebut,
yang
akan
diperlakukan sama (ekuivalen) oleh komponen tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan menghasilkan respon yang sama pula. Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi dari semua nilai dalam partisi. Analisa partisi pada Equivalence Partitioning Black Box
Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen.
Masukan dan keluaran dibuat dari spesifikasi dari tingkah laku komponen.
Partisi adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai di dalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh komponen (seperti mempunyai proses yang sama).
Partisi untuk nilai valid dan tidak valid harus ditentukan.
Contoh Black Box Testing dengan Equivalence Partitioning : Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikro komputer yang terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-perintah. Data yang diterima adalah :
42
http://digilib.mercubuana.ac.id/
Kode area : kosong atau 3 digit
Prefix
: 3 digit atau tidak diawali 0 atau 1
Suffix
: 4 digit
Password : 6 digit alfanumerik
Perintah
: check, deposit, dll
Selanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat ditentukan sebagai berikut:
Kode area : kondisi input, Boolean –kode area mungkin ada atau tidak kondisi input, range –nilai ditentukan antara 200 dan 999
Prefix
: kondisi input range > 200 atau tidak diawali 0 atau 1
Suffix
: kondisi input nilai 4 digit
Password : kondisi input boolean password mungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string
Perintah
: kondisi input set berisi perintah-perintah yang telah didefinisikan
3. Boundary Value Analysis Untuk suatu alasan yang tidakBy sepenuhnya dijelaskan, sebagian besar jumlah errors cenderung terjadi di sekitar batasan dari domain masukan daripada dipusatnya. Karena alasan inilah boundary value analysis (BVA) dikembangkan sebagai salah satu teknik testing [BCS97A]. Boundary value analysis adalah suatu teknik desain test cases yang berguna untuk melakukan pengujian terhadap nilai sekitar dari pusat domain masukan. Teknik boundary value analysis merupakan komplemen dari teknik equivalence partitioning. Setelah dilakukan pemilihan tiap elemen suatu kelas
ekuivalensi
(menggunakan
equivalence
partitioning),
BVA
melakukan pemilihan nilai batas-batas dari kelas untuk test cases. BVA tidak hanya berfokus pada kondisi masukan, BVA membuat test cases dari domain keluaran juga [MYE79]. Petunjuk pelaksanaan untuk BVA mempunyai kemiripan dengan equivalence partitioning yaitu:
43
http://digilib.mercubuana.ac.id/
Jika masukan merupakan suatu rentang nilai dengan batasan nilai a dan b, test cases didisain terhadap nilai a dan b, di atas nilai dan di bawah nilai a dan b.
Jika masukan merupakan sejumlah nilai tertentu, test cases didisain dengan jumlah minimum & maksimum, serta nilai di atas dan di bawah nilai minimum – maksimum.
Gunakan no 1 & 2 untuk disain test cases terhadap keluaran yang diharapkan dan tak diharapkan.
Jika struktur data program menggunakan batasan array dengan batasan tertentu, pastikan disain test cases memeriksa struktur data terhadap batasan array tersebut.
4. Orthogonal Array Testing Banyak aplikasi yang mempunyai domain masukan relatif terbatas, yaitu jumlah parameter masukan yang kecil dan nilai dari tiap parameter terhubung secara jelas. Bilamana jumlah parameter masukan ini sangat kecil (seperti, tiga masukan parameter yang masing-masing mempunyai tiga nilai diskrit), memungkinkan untuk melakukan testing secara komplit (exhaustive testing) terhadap domain masukan. Namun bila jumlah nilai masukan meningkat dan jumlah nilai diskrit untuk tiap item data juga meningkat, maka testing secara komplit menjadi tidak mungkin dilaksanakan. Exhaustive testing adalah tes yang mencakup Merupakan konsep yang penting pernah dilakukan dalam praktek, karena volume test cases yang sangat besar. Untuk mengilustrasikan perbedaan antara pendekatan orthogonal array testing dengan yang lebih konvensional “satu masukan pada satu waktu”, diasumsikan suatu sistem yang mempunyai tiga masukan yaitu X, Y dan Z. Tiap masukan ini mempunyai tiga nilai diskrit yang diasosiasikan terhadapnya. Jadi akan ada 33 = 27 test cases. Phadke [PHA97] memberikan sudut pandang geometris dari test cases yang mungkin, diasosiasikan dengan X,Y dan Z.seperti pada gambar dibawah ini.
44
http://digilib.mercubuana.ac.id/
Gambar 2.24 Sudut pandang geometris dari test cases (Roger S. Pressman, Ph.D., 2010)
Berdasarkan gambar 3.24, satu masukan pada satu waktu akan bervariasi secara sequensial sepanjang tiap axis masukan. Hasil yang diharapkan akan berada dalam cakupan tertentu secara relatif terhadap domain masukan (direpresentasikan oleh kubus sebelah kiri dalam gambar 3.24). Bilamana dilakukan orthogonal array testing, akan dibuat suatu L9 orthogonal array dari test cases. L9 orthogonal array mempunyai suatu “sifat keseimbangan” [PHA97],yaitu test cases (yang representasikan dalam titik hitam pada gambar) yang didiskritkan secara uniform sepanjang domain tes, yang diilustrasikan pada kubus sebelah kanan dalam gambar 3.24. Cakupan tes terhadap domain masukan akan lebih komplit.
45
http://digilib.mercubuana.ac.id/