BAB 2 TINJAUAN PUSTAKA 2.1 Database Database merupakan kumpulan data beserta deskripsi dari data itu sendiri yang terhubung secara logikal, yang dirancang untuk memenuhi kebutuhan informasi dari sebuah organisasi (Connolly 2010, p65). Pembaharuan dalam pendekatan sebuah sistematika selalu didasari dengan ketidak sempurnaan sistematika sebelumnya. Begitu pula dengan database, hadir karena ketidak sempurnaan sistem pendahulunya. Sebelum database dikenal, sistematika yang digunakan adalah file-based atau penyimpanan berbasis file yang tidak terintegrasi sama sekali dan berbentuk fisikal seperti kertas dan dokumen yang berbeda format. Hal ini menimbulkan beberapa permasalahan yang sangat mendasar dalam pengaplikasian teknologi dan kemudahan dalam bekerja saat itu. Permasalahan yang mendasar adalah: 1. Data yang ada, terpisah satu dengan yang lainnya dan terisolasi Data yang terpisah dikarenakan setiap program kerja memiliki dan mengatur kumpulan data masing-masing, hal ini mengakibatkan penggunaan data dari suatu program kerja yang satu tidak dapat menggunakan data potensial yang terdapat pada program kerja lainnya. 2. Duplikasi data Dari kekurangan diatas, tidak menutup kemungkinan bahwa sebuah data yang sama persis dapat dimiliki dua atau lebih program kerja yang berbeda. 3. Ketergantungan data 9 10 Sebuah perusahaan dengan program kerja yang berbeda-beda memiliki kecenderungan untuk adanya integrasi dan pertukaran data antar program kerja sehingga dapat melakukan proses yang baik dan teratur. Hal ini tidak berjalan dengan baik sebelum adanya database yang terpusat. Hal ini memakan banyak waktu dan terbuang sia-sia, hanya dikarenakan saling menunggu hasil atau data yang diperlukan dari program kerja lain. 4. Ketidaksesuaian format Setiap program kerja memiliki format kerja yang berbeda, hal ini membuat program kerja lain kesusahan saat akan mengambil dan menggunakan data dari program kerja yang menjadi sumber data. 5. Program aplikasi queri dengan pengembangan yang terbatas Database yang tidak terpusat memiliki kecenderungan untuk memiliki aplikasi queri yang berbeda dengan database yang lain. Hal ini dapat dikarenakan banyak faktor seperti perbedaan bahasa pemrograman, perbedaan fungsi aplikasi dan perbedaan ruang lingkup aplikasi tersebut. Hal ini dapat berakibat pada pembuatan atau pembaharuan aplikasi berulang hanya untuk mendapat fungsi database tertentu. Sebuah database dapat berupa satu atau lebih dari tempat penampungan data yang dapat digunakan secara bersamaan dari berbagai departemen atau pengguna. Dibandingkan dengan kumpulan data yang terpisah dan tidak saling terhubung satu dengan yang lainnya sehingga mengakibatkan terjadinya redundansi data. Sebuah database tidak lagi menjadi kepunyaan dari suatu departemen namun merupakan milik dari seisi perusahaan dimana setiap departemen saling terintegrasi satu dengan yang lainya sama halnya juga dengan database di dalamnya. Penggunaan database memberikan banyak keuntungan seperti: 1. Pengawasan terhadap data yang berulang 2. Konsistensi data 3. Dibandingkan dengan penggunaan file based, database dapat menghasilkan informasi lebih banyak dengan jumlah data yang sama. 4. Penggunaan data bersama 11 5. Integritas data 6. Keamanan data 7. Standarisasi data 8. Ekonomis 9. Penyelarasan kebutuhan yang saling bertentangan 10. Memperbaiki kemampuan akses data dan tingkat responsivitas 11. Meningkatkan produktivitas 12. Mengefisiensikan pemeliharaan data melalui kemandirian data 13. Meningkatkan kemampuan konkurensi data 14. Memiliki sistem backup dan recovery data. Dari sekian banyak keuntungan dari database, hal tersebut harus ditebus dengan kekurangan dari database, yaitu: 1. Kerumitan struktur 2. Ukuran yang lebih besar untuk struktur yang lebih baik 3. Pengeluaran untuk DBMS 4. Membutuhkan hardware tambahan 5. Pengeluaran biaya untuk konversi data 6. Performa yang baik memerlukan biaya yang lebih 7. Pengaruh kegagalan dari kesalahan yang tinggi 2.2 Database Management System (DBMS) DBMS merupakan suatu sistem berbentuk piranti lunak yang memungkinkan pengguna untuk mengartikan, membuat, memelihara dan mengatur akses pada sebuah database (Connolly 2010, p66). Penggunaan DBMS tidak dapat terlepas dari fungsi-fungsi utamanya yaitu: 1. DDL (Data Definition Language) fitur ini memungkinkan pengguna untuk menentukan tipe data, struktur data, dan hubungan antar data di dalam sebuah database 2. DML (Data Manipulation Language) fitur ini memungkinkan untuk melakukan insert, update, delete dan mengambil data dari sebuah database 12 DBMS juga menyediakan control terhadap akses kedalam sebuah database. Kontrol akses ini sangat berguna untuk, sistem keamanan, integritas sebuah sistem, kemampuan untuk mengakses data secara bersamaan, recovery sistem dan user-accessible catalog yang dapat menyediakan penjelasan terhadap data pada sebuah database. Gambar 2.1 Arsitektur DBMS Sesuai dengan pengertian DBMS itu sendiri, yang merupakan suatu piranti lunak yang dapat mengijinkan pengguna untuk mengatur sebuah database, maka terdapat beberapa contoh DBMS yang telah dikenal secara umum. 13 Gambar 2.2 Logo MySQL Gambar 2.3 Logo SQL Server Tabel 2.1 Informasi mengenai dua DBMS yang dijadikan contoh MySQL SQL Server Developer Oracle Corporation Microsoft Tahun diluncurkan 1995 1989 Sistem operasi yang didukung Windows, Linux, Solaris, OS X, FreeBSD Microsoft Windows, Windows Server Tipe RDBMS RDBMS Tipe lisensi Free software dan proprietary Komersil dan freeware Versi terakhir MySQL 5.7.5 SQL Server 2014 14 2.3 SQL Server Windows merilis SQL Server peretama kali pada tahun 1989 dengan nama SQL Server 1.0. Perkembangan SQL Server yang menjadi sebuah sistem manajemen database relasional yang dapat dihandalkan dalam segala situasi kerja. Berdasarkan hasil studi pustaka yang kami lakukan, hasil yang didapatkan cukup mengejutkan. Waktu yang dibutuhkan untuk mengeksekusi serangkaian perintah SQL (Structured Query Language) jauh dibawah dari pesaing sistem manajemen database relasional lainnya. Hasil eksekusi data dapat dilihat pada Gambar 2.4 dan Gambar 2.5. Walaupun biaya pengeluaran yang dikeluarkan untuk menginvestasikan sistem manajemen ini tidak sedikit. Namun bila dibandingan dengan performa yang luar biasa yang bisa ditunjukkan pada eksekusi data yang banyak, maka hasil yang diberikan oleh sistem manajemen database ini sangat baik. Youssef (Youssef: 2012, 1) mengatakan dalam jurnal ilmiahnya yang dimuat pada Journal of Computer Science and Research (JCSCR) volume 1, MS SQL Server memiliki kemampuan untuk mengakomodasi transaksi ACID (Atomic, Consistency, Isolated, Durability). Termasuk akomodasi terhadap database mirroring, dan clustering. Youssef juga menunjukkan hasil penelitian yang dijabarkan sebagai berikut: Gambar 2.4 Penelitian Youssef Bassil Query 1, dan hasil 15 Gambar 2.5 Penelitian Youssef Bassil Query 2, dan hasil Gambar 2.6 Penelitian Youssef Bassil Query 3, dan hasil 16 Gambar 2.7 Perbandingan Eksekusi Query DBMS Berdasarkan Waktu dalam ms Gambar 2.8 Perbandingan DBMS Berdasarkan Penggunaan CPU 2.4 Web Application Pengaplikasian web yang ada sekarang, sudah berjalan sejak hampir dua dekade, cara kerja dan tampilan web sudah jauh berubah secara dramatis dari tahun ke tahunnya. Terobosan baru dilahirkan setiap tahun merubah website menjadi lebih bermanfaat dan memberikan lebih banyak keuntungan serta 17 kemudahan bagi penggunanya. Tidak hanya cara kerja dan tampilan website yang berubah, namun cara penggunaan dan pembuatan website telah berevolusi. Saat ini desain website menjadi lebih bebas dan lebih menarik, bahkan proses pembuatan sebuah web dapat begitu dinamis dan artistik dengan bantuan design tool seperti Adobe Dreamweaver atau mungkin dapat dibuat menggunakan salah satu dari banyak platform – platform yang lebih baik lagi. Gambar 2.9 Perbedaan Website Halaman Penggemar pada Tahun 90-an (Kiri) dengan Halaman Penggemar Sekarang (Kanan) Salah satu contoh web design tool yang dikenal dengan segala kemudahan untuk mengembangkan sebuah web dengan skala besar dan logika yang kompleks adalah: 2.6.1. ASP.NET Gambar 2.10 Logo ASP.NET 18 ASP.NET merupakan susunan logika yang kompleks dan berskala besar. ASP.NET adalah salah satu dari teknologi yang dikembangkan oleh Microsoft untuk membangun halaman-halaman web yang dinamis. (ASP merupakan singkatan dari Active Server Pages). Berbeda dengan beberapa web development tools yang lain, ASP.NET memiliki server local yang terintegrasi dengan script page. Hal ini merupakan fitur yang diunggulkan untuk memudahkan developer sebuah website untuk bekerja secara ringkas dan mudah. 2.5 Structured Systems Analysis Design Method (SSADM) SSADM atau yang dikenal dengan Structured Systems Analysis and Design Method, memiliki sudut pandang yang khusus dalam melihat proses pembuatan sebuah perangkat lunak. SSADM, merupakan metode yang terstruktur dalam menganalisis dan merancang sebuah piranti lunak. Struktur yang terdapat dalam SSADM yaitu: 1. Strategic planning 2. Feasibility study 3. Requirements analysis 4. Requirement specification SSADM 5. Logical system specification 6. Physical design 7. Construct and test. (CCTA, 1990, FOVE-6) Setiap bagian dari struktur SSADM harus dilakukan secara berurutan dari strategic planning hingga construct and test. Hal ini diperlukan, karena setiap bagian dari struktur SSADM berikutnya memerlukan hasil proses dari bagian SSADM sebelumnya. Maka dapat disimpulkan bahwa SSADM merupakan metode yang bertumpu pada data setiap prosesnya dan membutuhkan sudut pandang teknikal dan rasional dalam setiap proses yang dilakukan. 19 2.6 Artificial Intelligence Artificial Intelligence atau yang disingkat dengan AI, merupakan cabang ilmu pengetahuan yang mengimplementasikan cabang-cabang ilmu pengetahuan lain yang relevan (S.Russell, 2010, p1). Artificial Intelligence juga berarti kecerdasan buatan/semu, hal ini berarti sesuatu hal (dalam hal ini teknologi) dibuat seakan-akan dapat bertindak, berbicara, dan berpikir seperti halnya manusia yang memiliki akal budi. Banyak cabang dari penerapan bidang AI, namun penelitian ini terfokus pada computer vision. 2.6.1. Computer Vision Computer vision, merupakan salah satu dari sekian banyak bidang penerapan cabang ilmu pengetahuan AI. Computer vision adalah cabang penerapan bidang AI yang bertujuan mengotomatisasi dan mengintegrasikan berbagai proses dalam merepresentasi sesuatu yang digunakan untuk memahami presepsi penglihatan. (Nicu: 2006, 3) Computer vision seringkali digunakan untuk mendapatkan informasi visual yang saling menghubungkan antara mesin penandaan gambar dengan manusia, hal ini merupakan latar belakang pengembangan computer vision system. Forsyth berpendapat (D. Forsyth: 2012, 628) aplikasi yang dapat dikategorikan sebagai aplikasi pengenal gambar adalah aplikasi yang dapat mendeteksi bentuk atau rupa dari sebuah gambar, terlepas dari tingkat ketepatan ataupun kualitas dan hasil data. Penggunaan aplikasi serupa dapat menjadi sesuatu yang sulit untuk dievaluasi dikarenakan setiap pengguna harus mengetahui data-data yang relevan untuk dicari terlebih dahulu. Pendapat dari Forsyth ini didukung oleh Choi dan Rasmussen (Choi and Rasmussen, 2002) dan Boyce (Boyce, 1982). Penghubung antara manusia dan mesin dalam memahami informasi dalam bentuk visual dijembatani oleh computer vision system yang dapat 20 mengenali fitur-fitur visiual seperti warna, tekstur, bentuk, dan lainnya (Nicu: 2006, 1) 2.6.1.1. Image Retrieval and Matching Image retrieval & matching adalah proses pengambilan data yang akan diubah menjadi informasi dari sampel-sampel sebuah gambar yang akan diambil informasinya. Metode ini dinamakan dengan query by example atau disebut dengan content-based image retrieval (CBIR). Gambar 2.11 Proses Pengambilan Sampel-Sampel Gambar Pada saat proses pengambilan sampel dilakukan, terdapat beberapa langkah yang dilakukan untuk mencocokan sampelsampel gambar tersebut. Berikut adalah proses yang dilakukan untuk mendapatkan hasil dari sampel gambar tersebut. 21 Gambar 2.12 Proses Pencocokkan Gambar 2.6.1.1.1. Grey Level Segmentation Based Image Retrieval Grey-level segmentation atau thresholding, merupakan konversi gambar pada kondisi grey-level kedalam kondisi gambar bi-level (monochrome, atau black and white). Walaupun dilakukan thresholding, gambar tetap memiliki informasi-informasi penting terkecuali posisi, nilai warna pada gambar dan bentuk objek pada gambar. Inti dilakukannya thresholding adalah, pixel-pixel pada grey-level yang memiliki tingkatan nilai yang sama pada lokasi yang hampir mirip pada sampel gambar, biasanya merupakan bagian dari objek yang sama pada gambar yang berbeda. Hal ini mengurangi kompleksitas dalam proses pencocokan gambar. 22 Gambar 2.13 Thresholding 2.6.1.1.2. Edge Detection Based Image Retrieval Setiap objek yang terdapat pada sebuah gambar tentu memiliki ujung dan tepi dari objek itu sendiri. Tepi dari sebuah objek tentu membatasi objek yang satu dengan objek yang lain dan membatasi objek dengan latar belakang. Hal tersebut dapat dilihat dari contoh gambar berikut ini. Gambar 2.14 Edge Detection Secara teknis, edge detection merupakan suatu konsep penentu lokasi dari pinggiran/batasan pixel-pixel 23 pada sebuah objek dari gambar, dan konsep ini juga melakukan proses yang dinamakan sebagai proses penjelasan tingkat kejelasan pinggiran/batasan. Proses penjelasan tingkat kejelasan pinggiran/batasan diperlukan untuk memperjelas pinggiran sebuah objek sehingga dapat dilihat/dideteksi dengan lebih baik lagi. Hal lainnya menurut J.R. Parker (Parker: 2010) yang dilakukan untuk mengetahui, dan mengklasifikasikan sebuah objek dilakukan proses edge tracing (penelusuran edge). Proses ini mengikuti pinggiran secara konsisten menelusuri pinggiran baik searah dengan arah jarum jam atau berlawanan. Proses ini menghasilkan gambar non-raster yang menggambarkan objek dari gambar tersebut. 2.6.1.1.3. Shape Detection Based Image Retrieval Konsep shape atau bentuk, merupakan sebuah konsep yang sudah dimengerti oleh khalayak banyak, namun terkadang sulit untuk dapat didefinisikan secara formal. Pada presepsi manusia umumnya, pengertian akan bentuk (shape) konsep tingkat tinggi, dimana tanpa diberitahu, manusia dapat menalarkan dan memahami bentuk suatu benda atau makhluk hidup yang lainnya. Namun tidak begitu dengan teknologi yang memahami bentuk (shape) dalam konteks pemahaman konsep tingkat rendah, bentuk dimengerti melalui definisi angka dan perhitungan matematika. Tentu hal ini memberikan beberapa batasan pengertian bagi teknologi untuk memahami bentuk dalam atribut-atribut yang sangat terbatas. Oleh karena itulah, tidak ada pengertian umum untuk teori bentuk. Walaupun begitu, kami berpendapat bahwa kata bentuk (shape) dapat diartikan lebih spesifik 24 apabila dikaitkan dengan kerangka kerja tertentu. Hal ini didukung oleh Marshal (Marshal: 1989) yang mendefinisikan bentuk (shape) sebagai fungsi yang menentukan posisi dan arah yang secara sederhana menghubungkan beberapa kurva menjadi bidang dua dimensi. Pada penelitian kami, baik Marshal maupun pendapat kelompok kami mengenai pola masih dianggap tidak relevan dengan konteks Image Retrieval dan pengenalan pola. Dalam pengenalan pola, Marshal (Marshal: 1989) mengungkapkan bahwa pengenalan pola cocok dilakukan untuk objek dua dimensi dan memiliki batasan objek yang satu dengan objek yang lain, sehingga pixel-pixel yang berada pada suatu objek dapat dikenali. Hal ini menandakan bahwa pada suatu gambar, mungkin saja memiliki lebih dari satu objek. Supaya dapat menerjemahkan serta mendefinisikan bentuk (shape) diperlukan proses segmentasi. Oleh karena itu, baik secara manual atau otomatis, proses segmentasi diperlukan sebelum melakukan pemetaan bentuk (shape). Dalam pemetaan bentuk, dilakukan beberapa hal yang sulit atau bahkan tidak dapat dilakukan pada proses segementasi seperti pemetaan objek yang rumit, pemetaan objek dengan latar belakang gambar yang rumit, kontras yang buruk, kondisi pencitraan yang jelek, noise, penumpukan objek. Karakteristik dari sebuah objek dapat dianalisa lebih baik dari memahami bentuk (shape) sebuah objek. Dalam melakukan proses query image, anggaplah proses analisa bentuk (shape) dilakukan, maka yang pertama kali dikerjakan adalah : 1. Melakukan pengukuran atau pendeteksian terhadap informasi dari bentuk (shape) dari gambar, 25 2. Setelah itu, dilakukan proses penghitungan terhadap fitur-fitur (bagian dari gambar) yang terdapat pada kedua gambar, baik yang berasal dari query image dan gambar yang sedang dilakukan proses pencocokkan. Beberapa hal yang dijadikan bahan pertimbangan dari pencocokkan gambar berdasarkan konsep ini adalah: 1. Area 2. Posisi 3. Orientasi Ketiga hal tersebut dapat dilakukan, terlepas dari posisi bentuk pada gambar, ukuran bentuk pada gambar, atau orientasi dari gambar itu sendiri, dikarenakan pada konsep ini menggunakan teori vektor dalam pendeteksian objek yang berada pada gambar. 2.6.1.2. Image Matching Algorithm 2.6.1.2.1. SIFT (Scale-Invariant Feature Transform) SIFT (Scale-Invariant Feature Transform) adalah algoritma yang dikemukakan oleh Lowe pada tahun 2004. SIFT merupakan algoritma yang memiliki fitur yang tergolong istimewa dalam pengaplikasiannya mengenali gambar dan menarik informasi dari sebuah gambar yang ada. (PM Panchal: 2013, 1). Pendapat didasarkan oleh Lowe (2004) yang mengatasi rotasi gambar, skala, perubahan sudut pandang , pencahayaan dan noise pada gambar. Teori yang dikumandangkan 26 oleh Lowe berdasar pada pengaplikasian turunan Gaussian yang dapat mendeteksi skala pada key-points yang terdapat pada gambar. Algoritma ini memiliki empat tahap utama yaitu: 1. Scale Space Extrema Detection 2. Key point Localization 3. Orientation Assignment 4. Description Generation 2.6.1.2.2. SURF (Speed Up Robust Feature) Speed Up Robust Feature (SURF) dikembangkan pada tahun 2006. Algoritma SURF dikemukakan oleh Bay dan Tuytelaars (2006) yang merupakan hasil penyempurnaan dari algoritma pendahulunya SIFT. SURF berbeda karena memiliki fitur tambahan yaitu matrix Hessian. Algoritma SURF juga berbasiskan teori multi-scalespace. Penggabungan Hessian dan teori multi-scalespace membuat algoritma ini terkenal dengan tingkat performa dan akurasi yang baik. Berikut adalah alur algoritma dari SURF. 27 Gambar 2.15 Flowchart Algoritma SURF Algoritma SURF 1. Integral image computation 2. Construction of the scale space 3. Feature detection 4. Orientation assignment 5. Calculating feature description 2.7 Software Process Model Software Process Model atau yang biasa disebut dengan SDLC (Software Development Life Cycle) merupakan alur hidup dari sebuah sistem yang menggambarkan bagaimana sebuah sistem dibangun dari proses awal hingga sistem tersebut siap serta dapat digunakan oleh pengguna, namun alur hidup dari sebuah sistem informasi tidak berakhir pada tahap ini. Sebuah sistem informasi akan terus menjalani alur hidup sebuah sistem sampai pada tahap pembaharuan terhadap sistem itu sendiri. Sama halnya dengan setiap sistem pada umumnya, sebuah sistem yang dibangun harus memiliki tujuan dan fungsi yang jelas. Tidak ada sebuah sistem yang dibangun tanpa ada tujuan dan kegunaan khusus yang dapat dilakukan oleh sistem tersebut. Berdasarkan pemahaman tersebut maka sebuah sistem harus memiliki tujuan awal mengapa sistem tersebut dibangun. 28 Pada masa sekarang ini terdapat banyak pendekatan untuk membangun sebuah sistem melalui beragam SDLC yang tersedia. Pada umumnya SDLC dapat dikategorikan kedalam dua kelompok besar yang berbeda berdasarkan kepastian dari tujuan dan kegunaan sistem informasi yang akan dibangun. 1. Predictive approach Predictive approach merupakan kategori dari SDLC yang mengasumsikan bahwa pengembangan sebuah proyek sistem informasi dapat direncakan dan diatur sedemikian rupa, dan proses implementasi bisa berjalan dengan teratur seperti yang telah direncanakan. 2. Adaptive approach Adaptive approach adalah nama yang tepat untuk kategori SDLC yang dapat beradaptasi dengan situasi dikemudian hari. Sesuai dengan namanya, SDLC tipe ini dapat dengan mudah beradaptasi atau mengadaptasikan pembangunan sebuah sistem informasi sesuai dengan perubahan yang mungkin terjadi tanpa rencana dan perkiraan dari pengguna dan pengembang sistem informasi. SDLC kategori ini mengasumsikan bahwa proyek tidak dapat direncanakan seluruhnya di awal, namun dapat berubah-ubah pada saat proses pengembangan berlangsung. 2.9.1. SDLC Traditional SDLC Traditional atau biasa lebih dikenal dengan “prescriptive process development” dibuat awalnya dengan tujuan untuk membawa keteraturan dalam kekacauan yang terjadi dalam proses pengembangan piranti lunak. Dikatakan “prescriptive” karena SDLC ini menganut sistem perencanaan dan pengarahan yang ketat dan seluruh prosedur pengembangan piranti lunak harus dijalankan sebagaimana telah direncanakan dan mentup segala macam intervensi proses dari luar tim pengembang itu sendiri. Hal ini dilakukan untuk menghindari terjadinya perubahan mendadak dan ketidakbebasan tim dalam mengembangkan piranti lunak tersebut. Sebenarnya setiap SDLC yang ada dapat menerima perubahan dan pergantian “requirement” secara mendadak. Hanya saja apabila hal ini terjadi, maka setiap perubahan yang dilakukan akan 29 memperluas cakupan aktifitas dan mendefinisikan alur proses yang mengakibatkan setiap alur proses merubah setiap kerangka kerja kedalam definisi yang baru tersebut. Satzinger (Satzinger, 2010, p206) memetakan kebutuhan diagram berdasarkan pendekatan yang digunakan serta model pemrograman yang dibutuhkan sebagai berikut. Gambar 2.16 Requirement models for the traditional and OO approaches 30 2.9.1.1. Waterfall Gambar 2.17 Waterfall Development Waterfall Model, merupakan model pengembangan piranti lunak pertama yang diperkenalkan melalui pendekatan pengembangan proses pengembangan teknik secara umum (Royce, 1970). Waterfall Model dikatakan demikian, merupakan terjemahan secara harfiah berdasarkan bagan model yang bertingkat dan memiliki alur proses dari atas ke bawah, yang persis seperti “air terjun”. Model pengembangan piranti lunak ini merupakan contoh dari pengembangan yang digerakkan oleh prinsip perencanaan yang mantap sebelum mengerjakan proses pengembangan tersebut (Sommerville, p30, 2011). Terdapat lima tahap dari Waterfall Model: 1. Pengumpulan analisis dan gambaran dari sistem yang akan dikembangkan Pada tahap ini, desainer sebuah sistem harus dapat menetapkan kegunaan, fitur dan esensi dari sistem, lalu hubungan antar sistem juga merupakan salah satu dari banyak hal di atas yang harus didiskusikan antara desainer sistem dan user. Setelah 31 seluruh fungsi dan tujuan dari sistem telah diputuskan, maka dapat dibuat spesifikasi dari sistem itu sendiri. 2. Desain sistem dan piranti lunak Desain Sistem: Proses ini mengalokasikan piranti lunak dengan sistem piranti keras, dengan membuat arsitektur sistem secara keseluruhan Desain piranti lunak: Tahap ini melibatkan proses identifikasi dan penjelasan atau penjabaran yang mendasar terhadap abstraksi sistem piranti lunak dan hubungannya. 3. Implementasi dan pengujian unit Implementasi dilakukan tentunya setelah desain sistem dan desain piranti lunak telah selesai dilakukan, tahap ini melakukan proses realisasi dan implementasi desain piranti lunak, menjadi suatu rangkaian program atau kesatuan sebuah program. Sedangkan pengujian unit (unit testing) melibatkan proses verifikasi terhadap setiap unit apakah telah memenihu spesifikasi dan tujuan dari unit tersebut. 4. Integrasi dan pengujian sistem Integrasi dan pengujian sistem merupakan proses dimana suatu atau satu program yang telah saling terhubung diuji sebagai suatu kesatuan sistem untuk memastikan bahwa tujuan dari piranti lunak telah tercapai. Setelah proses ini selesai maka piranti lunak sudah siap diantarkan kepada pengguna. 5. Pengoperasian dan proses pemeliharaan sistem Walau tahap ini tidak diperlukan, namun tahap inilah yang menjadi fase terpanjang dalam tahap alur hidup sebuah piranti lunak. Sistem yang sudah terpasang dan telah digunakan dalam proses kerja dan dalam proses operasional. Proses perawatan melibatkan pembenaran error yang belum ditemukan pada tahap-tahap sebelumnya. 32 2.8 Database Life Cycle (DBLC) Gambar 2.18 Database Life Cycle Pengembangan database memiliki beberapa tahapan pengembangan. Seperti yang ada digambar 2.18, database memiliki alur hidup yang dimulai dari database planning hingga operational maintenance. Berikut ialah tahapan alur hidup database beserta penjelasan aktivitas yang dilakukan pada tahapan tersebut secara singkat. 33 Tabel 2.2 Tahapan dan Aktivitas Utama pada Database Life Cycle Tahapan Aktivitas Utama Database planning Merencanakan tahapan-tahapan alur hidup database secara efisien dan efektif System definition Menetapkan tujuan dan ruang lingkup dari sistem database, termasuk user views, target pengguna database, dan ruang lingkup aplikasi Requirements collection and analysis Mengumpulkan dan menganalisis permintaan serta persyaratan dari sistem database yang baru Database design Terdiri dari tiga bagian rancangan database utama, yaitu: 1) Konseptual 2) Logikal 3) Fisikal DBMS selection (optional) Memilih DBMS yang sesuai dengan pengembangan sistem database yang akan dikembangkan, biasanya hal ini dilakukan apabila ada permintaan dari user perihal penggunaan DBMS tertentu. Application design Mendesain user interface dan program aplikasi yang akan menggunakan dan memproses database yang dikembangkan Prototyping (optional) Membangun kerangka kerja dari sistem database, pada tahap ini baik desainer sistem dan calon pengguna diajak untuk membayangkan dan mengevaluasi sistem di tahap akhir akan terlihat seperti apa dan berfungsi seperti yang diharapkan, 34 berdasarkan kondisi sistem sampai pada tahap ini. Implementation Membuat database dan program aplikasi secara fisikal Data conversion and loading Memuat data dari sistem yang lama ke sistem yang baru, apabila dibutuhkan dan memungkinkan, mengonversi atau memodifikasi aplikasi yang sudah ada agar dapat berjalan menggunakan database yang baru Testing Sistem database diuji untuk menemukan error dan dicocokkan kembali terhadap permintaan serta persyaratan dari pengguna. Operational maintenance Pada tahap ini, sistem database telah diimplementasikan secara lengkap. Sistem akan terus diawasi dan dirawat. Apabila diperlukan kedepannya, maka database akan melalui tahap awal untuk pengembangan selanjutnya. 2.8.1. Conceptual, Logical, Physical Database Design Connolly (2010: 467) secara jelas mengatakan, “Conceptual database design, merupakan proses pembentukan sebuah model data yang digunakan pada perusahaan, model data yang dibentuk merupakan model data yang mewakili data fisikal (data nyata yang digunakan sehari-hari) pada perusahaan.” Pada tahap ini, dilakukan beberapa proses untuk membuat desain database yang baik. 1. Conceptual Database Design Tahap 1 : Identifikasi jenis-jenis entitas 35 Tahap 2 : Identifikasi jenis-jenis relasi Tahap 3 : Identifikasi dan menghubungkan atribut-atribut yang ada dengan tipe entitas atau jenis relasi yang sesuai. Tahap 4 : Menetapkan atribut domain Tahap 5 : Menetapkan candidate, primary dan alternate key Tahap 6 : Mempertimbangkan untuk menggunakan konsep modeling lain dalam tahap ini untuk penyempurnaan (opsional). Tahap 7 : Memeriksa kemungkinan terjadinya redudansi pada tahap ini. Tahap 8 : Validasi (simulasikan) model data konseptual terhadap proses transaksi pengguna. Tahap 9 : Review model data konseptual dengan pengguna. 2. Logical Database Design Logical database design, merupakan proses pembuatan model data yang terdapat pada perusahaan yang menggunakan model data tertentu, namun tidak bergantung terhadap DBMS tipe tertentu (Connolly, 2010: 467). Langkah-langkah yang dilakukan didalam tahap desain logikal database meliputi: Tahap 1 : Mengubah relasi-relasi yang ada, menjadi model data logikal. Tahap 2 : Validasi relasi-relasi yang ada menggunakan normalisasi. Tahap 3 : Validasi relasi-relasi yang ada terhadap proses transaksi pengguna. Tahap 4 : Periksa integrity constraints Tahap 5 : Diskusikan model data logikal bersama pengguna Tahap 6 : Menggabungkan model data logikal kedalam model data global (opsional) Tahap 7 : Periksa kemungkinan pengembangan pada masa yang akan datang. 3. Physical Database Design 36 Desain database fisikal, merupakan tahap pengimplementasian dari rencana yang telah dibuat sebelumnya. Tahap ini meliputi relasirelasi dasar, organisasi file, dan proses pengurutan file. Seluruh proses tersebut dilakukan untuk mengefisiensikan akses terhadap data, dan setiap integrity constraints serta aspek keamanan. Desain database fisikal juga, memberikan kesempatan pada desainer database untuk memutuskan bagaimana database akan diimplementasikan, atau akan menggunakan DBMS tertentu yang memenuhi kriteria penggunaan database seperti yang telah dirancangkan pada tahap-tahap sebelumnya. Tahapan yang terdapat pada proses ini meliputi: Tahap 1 : Mendesain relasi-relasi dasar. Tahap 2 : Mendesain perwakilan dari data turunan. Tahap 3 : Mendesain general constraints. 2.8.2. Entity Relationship Diagram (ERD) Sudut pandang perancang, pembuat dan pengguna database terhadap sebuah data terkadang tidak dapat disamakan (Connolly, 150). Sudut pandang terhadap sebuah data dapat diartikan berbeda-beda oleh setiap subjek yang menggunakan dan menganalisanya. Untuk menghilangkan presepsi dan ambiguitas ini pada sebuah database, maka diperlukan sebuah Entity-Relationship (ER). ER diperlukan untuk memastikan tidak terjadinya kesalahan dalam pemahaman terhadap sebuah data dari beberapa subjek yang terlibat. ER model merupakan konsep pendekatan yang menspesifikasikan data dimulai dari data-data yang dianggap penting. Entitas dan relasi sebuah data harus diidentifikasi dan dipetakan dengan baik sehingga tidak lagi terjadi kesalahpahaman dalam proses selanjutnya. Sebuah ER yang baik, harus dilengkapi dengan informasiinformasi yang dapat memudahkan pengguna dalam memahami dah menggunakan rancangan desain ini. Informasi-informasi yang menjelaskan dan memudahkan pengguna untuk memahami maksud dan 37 tujuan data yang didesain disebut dengan atribut dan konstrain. Desain sebuah ER yang dilengkapi dengan atribut serta konstrain disebut dengan ER diagram. 1. Entitas Tipe entitas (data) dikelompokan kedalam beberapa kelompok (tabel), sesuai dengan kemiripan atas kegunaan data tersebut. 2. Relasi Relasi yang terdapat pada sebuah ER diagram dikelompokkan berdasarkan kelompok-kelompok entitas yang saling berhubungan. Relasi dapat terjadi antar tipe entitas, apabila terdapat dua atau lebih entitas yang saling bergantung dam memerlukan data yang dimiliki oleh entitas yang satu dengan entitas yang lainnya. 3. Atribut Atribut merupakan properti (bagian) dari sebuah tipe relasi atau entitas (tabel) yang ada. 1) Simple and Composite Attributes Simple Attribute: merupakan atribut yang dibuat pada sebuah bagian yang berdiri secara independen. Composite Attribute: merupakan atribut yang dapat dipecah menjadi beberapa atribut baru yang dapat berdiri secara independen. 2) Single and Multi Valued Attributes Single Valued Attribute: merupakan atribut yang menyimpan satu macam data (informasi) untuk masing-masing atribut, dan untuk masing-masing entitas (tabel). Multi Valued Attribute: atribut yang menampung beberapa data yang berbeda (tidak berbeda format) untuk masing-masing entitas (tabel). 3) Derived Attributes Atribut turunan adalah, atribut yang menyimpan hasil operasi atau data yang diproduksi oleh beberapa atribut yang saling berhubungan. Atribut-atribut yang menghasilkan atribut turunan, 38 tidak harus berasal dari sebuah entitas yang sama (tabel yang sama). 4. Keys Key merupakan sebuah atribut yang berada pada sebuah entitas (tabel) yang menyimpan sebuah nilai yang unik dan mewakili entitas tersebut. 1) Candidate key Candidate key merupakan beberapa kumpulan atribut yang secara unik dapat mewakili fungsi dan isi dari sebuah entitas. 2) Primary key Primary key adalah, salah satu dari candidate key yang dipilih untuk menjadi atribut yang mewakili fungsi dan isi dari sebuah entitas. 3) Foreign key Foreign key ialah, atribut-atribut yang menguhubungkan dua entitas yang memiliki satu atau beberapa entitas yang sama untuk setiap kemungkinan terjadinya satu hubungan. 4) Alternate key Alternate key merupakan candidate key yang tidak terpilih menjadi primary key 5) Composite key Composite key merupakan candidate key yang terdiri dari dua atau lebih atribut. 39 Gambar 2.19 Attributes and Key Diagram 5. Strong and Weak Entity Type Tipe entitas dapat dibedakan menjadi dua, strong entity type dan weak entity type. Strong entity type: Sebuah entitas yang tidak bergantung kepada entitas lain untuk menampung data. Weak entity type: Sebuah entitas yang bergantung kepada entitas lain untuk menampung data. Gambar 2.20 Strong and Weak Entity 6. Attributes on Relationships 40 Gambar 2.21 Attributes on Relationships Untuk setiap hubungan antar entitas yang ada, harus diberikan penjelasan aktivitas yang menghubungkan entitas-entitas tersebut. Untuk entitas yang memiliki ambiguitas dalam penjelasan aktivitas yang dimilikinya dengan entitas yang lain. Tanpa adanya sebuah atribut baru yang mendefinisikan aktivitas yang dimilikinya, maka mustahil sebuah hubungan antar entitas ini akan terjadi. Kita juga tidak dapat membuat sebuah atribut baru begitu saja untuk menjelaskan aktifitas pada relation line yang saling menghubungkan kedua entitas ini. Maka perlu dibuat sebuah entitas baru yang berisikan atribut penghubung yang menjembatani penjelasan aktivitas yang dimiliki oleh kedua entitas ini. 7. Structural Constraints Constraint digunakan untuk menjelaskan entitas yang saling berhubungan. Constraint menjelaskan batasan antar entitas yang saling terhubung tidak hanya diatas diagram, namun untuk hubungan yang terjadi pada kenyataannya. Tipe utama constraint yang terdapat pada entitas yang saling terhubung disebut dengan Multiplicity. Multiplicity adalah angka atau dapat berupa range kemungkinan untuk sebuah tipe entitas yang satu untuk berhubungan dengan entitas yang lain yang saling terhubung. 41 Terdapat beberapa tingkatan untuk sebuah hubungan binary yang sering digunakan dalam menggambarkan sebuah model entitas, yaitu: 1) One-to-one (1:1) Multiplicity one-to-one menggambarkan untuk setiap hubungan yang menghubungkan dua entitas yang berbeda. Hubungan aktivitas yang terjadi antar entitas tersebut lebih jelasnya digambarkan pada Gambar 2.22 berikut. Gambar 2.22 Semantic Net, One-to-One Relation Pada Gambar 2.22, dijelaskan bahwa satu staff mengatur (manages) satu cabang (branch). Jadi dapat disimpulkan bahwa one-to-one hanya mengijinkan satu atribut dari satu entitas asal untuk berhubungan dengan satu atribut pada entitas tujuan. Hal ini dinotasikan sebagai berikut: 42 Gambar 2.23 Penulisan Notasi One-to-One Relationship 2) One-to-many (1:*) Multiplicity one-to-many menggambarkan bahwa satu atribut pada entitas domain dapat memiliki lebih dari satu hubungan aktivitas untuk atribut yang dimiliki oleh entitas tujuan. Lebih jelasnya, Gambar 2.24 menjelaskan jenis multiplicity ini bekerja. Gambar 2.24 Semantic Net, One-to-Many Relation Gambar 2.24 menjelaskan bahwa satu atribut staffNo dari entitas Staff dapat mengawasi (Oversees) lebih dari satu attribute propertyNo pada entitas propertyForRent. Hal ini dinotasikan sebagai berikut. 43 Gambar 2.25 Penulisan Notasi One-to-Many 3) Many-to-many (*:*) Multiplicity many-to-many menggambarkan satu atribut pada domain asal dapat memiliki hubungan lebih dari satu hubungan aktivitas dengan atribut pada domain tujuan, dan atribut pada entity tujuan dapat diakses lebih dari satu atribut dari entity domain. Gambar 2.26 menjelaskan lebih rinci mengenai manyto-many relationship. Gambar 2.26 Semantic Net, Many-to-Many Relationship Gambar 2.26 menggambarkan, satu atribut pada entitas Newspaper dapat mengiklankan (advertises) lebih dari satu atribut pada entitas 44 PropertyForRent, dan satu atribut pada entitas PropertyForRent dapat diiklankan oleh lebih dari satu atribut pada entitas Newspaper. Many-to-many relationship dapat dinotasikan sebagai berikut. Gambar 2.27 Penulisan Notasi Many-to-Many 4) Multiplicity for Complex Relationships Connolly mengatakan multiplicity for complex relationship, merupakan angka atau range kemungkinan terjadinya hubungan suatu entitas pada sebuah relationship n-ary pada saat entitas lainnya bernilai (n-1) memiliki nilai yang tetap. (Connolly, p385) Gambar 2.28 Semantic Net Complex Relationship 45 Gambar 2.29 Penulisan Notasi Complex Relationship Berdasarkan penjelasan dan gambar-gambar diatas maka dapat diartikan, bahwa relasi dengan tipe ini, menggabungkan beberapa entitas (n-1) yang memiliki path (lajur relationship) yang sama. Pada gambar dijelaskan entitas staff dan branch yang diwakili oleh staffNo dan branchNo masing-masing memiliki client yang diwakili oleh clientNo. Pada gambar juga dijelaskan, penggabungan ini boleh dilakukan apabila atribut yang dimiliki oleh entitas pada contoh, adalah satu atribut untuk entitas staff memiliki hubungan untuk satu atribut pada entitas branch. 2.8.3. Normalisasi Penggunaan data dengan kuantitas data yang besar serta diiringi dengan transaksi yang padat membuat sebuah database menjadi sesak dan terkesan tidak teratur pada saat proses pembuatan laporan. Sebuah database yang baik tentu harus membuat penggunanya tidak merasakan kesesakan dalam database tersebut. Dengan kata lain, database tersebut harus dapat membuat sebuah laporan data yang dapat mudah dimengerti dan digunakan kapanpun diperlukan. Sesaknya alur transaksi sebuah proses tidak menutup kemungkinan bahwa sebuah database dapat menampung data transaksi yang berulang untuk satu orang user. Apabila hal ini tidak dapat diatasi sedari dini, maka database yang digunakan akan terkesan padat dan menampung terlalu banyak data. 46 Oleh karena itu, proses normalisasi diperlukan untuk memberikan kemudahan, kecepatan, sehingga memberikan kesan nyaman bagi pengguna yang menggunakan database tersebut. Normalisasi adalah pendekatan sistematis untuk memecah sebuah tabel yang menampung banyak data dengan karakteristik redudansi, serta anomali penginputan data, anomali pembaharuan data, dan anomali penghapusan data. Normalisasi terdiri dari beberapa langkah utama yang dimulai dari tahap UNF, 1NF, 2NF, 3NF, dan dilanjutkan dengan BCNF atau tingkatan normalisasi data yang lebih tinggi. Dapat disimpulkan bahwa tujuan utama dari normalisasi adalah: 1. Menghilangkan tingkat redundansi data. 2. Memastikan tingkat ketergantungan data yang wajar dalam sebuah tabel yang efisien. Penggunaan normalisasi harus dilakukan secara beberapa tahap, dimulai dari UNF, 1NF, 2NF, 3NF, lalu apabila diperlukan maka dapat dilanjutkan kepada tingkatan normal yang lebih tinggi. Seluruh langkah dianggap perlu dilakukan dan disarankan untuk tidak melewati salah satu langkah tersebut, dengan tujuan untuk memperkecil margin kesalahan yang mungkin saja terjadi dikarenakan terdapat kolom data yang tidak diperlakukan sebagaimana seharusnya. Berikut adalah langkah yang berurut dan disertai dengan hal yang harus dilakukan pada setiap langkahnya: 1. UNF Mendata seluruh data yang digunakan pada sebuah tabel, atau formulir. Pada bagian ini mungkin terjadi redudansi data dan ketergantungan antar data yang besar. 2. 1NF Setelah semua data yang dirasa perlu telah terkumpul, maka yang dilakukan adalah menentukan setiap kemungkinan data yang dapat menjadi primary key. Seluruh data yang memungkinkan untuk menjadi primary key disebut dengan candidate key. Setelah menentukan primary key, selanjutnya yang dilakukan adalah 47 menghilangkan redundansi data serta data yang dihasilkan dari pengoperasian antar data dari dalam tabel atau formulir yang sedang dilakukan proses normalisasi. 3. 2NF Untuk mengoptimalkan sebuah tabel yang digunakan, maka data yang terdapat pada sebuah tabel harus digunakan secara efektif dan efisien. Oleh karena itu semua data yang masih bergantung dengan data yang merupakan primary key, akan dinormalisasikan dengan cara membuat tabel baru atau digabungkan dengan tabel yang telah ada sebelumnya jika memukinkan. Hal ini disebut dengan proses penghilangan ketergantungan data parsial. 4. 3NF Menghilangkan ketergantungan parsial dirasa belum mencukupi untuk menciptakan sebuah database yang dapat dioperasikan secara optimal. Proses berikutnya adalah eliminasi data yang bukan foreign key atau primary key akan digantikan dengan primary key dari tabel lain (foreign key). Proses ini disebut dengan proses eliminasi ketergantungan transitif. 5. Tingkatan normal yang lebih tinggi Untuk tingkatan normal yang lebih tinggi, metode penyederhanaan yang dilakukan sebagian besar sama dengan yang dilakukan seperti tahap-tahap sebelumnya, yaitu mengefisiensikan tabel yang ada dengan cara menghilangkan ketergantungan secara transitif yang mungkin terlewat pada tahap sebelumnya. Namun, hal ini harus dilakukan dengan pertimbangan secara penuh. Karena semakin tinggi tingkatan normal suatu database, maka semakin banyak tabel yang dihasilkan. Pengeksekusian tabel yang banyak tentu akan memerlukan perintah query yang semakin banyak, memberatkan waktu pengeksekusian tabel pada suatu database. dan 48 2.9 Three Pillar Successful User Interface Development Gambar 2.30 Three Pillars of Successful – User Interface Development Three pillar of successful – user interface development, atau dapat diartikan sebagai tiga pilar keberhasilan dalam pengembangan desain antarmuka pengguna. Tidak seperti namanya, desain antarmuka pengguna tidak dijamin dapat berhasil hingga sempurna (Shneiderman, 2005). Namun, pengalaman dalam penerapan teori ini telah memberikan hasil yang tidak dapat dianggap sepele. Penerapan teori ini dapat mempercepat dan memfasilitasi pengembangan sistem yang tidak ambigu. Dengan kata lain penggunaan tiga pilar keberhasilan dalam pengembangan desain antarmuka pengguna, dapat memberikan hasil yang baik dalam pengembangan sistem yang mendekati sempurna. Teori ini dibagi kedalam tiga bagian khusus yang masing-masing bagian memiliki tugasnya masing-masing sebagai berikut ini: 1. Guidelines Documents and Process Shneiderman berpendapat bahwa, setiap projek memiiki kebutuhan dan kepentigan yang berbeda, namun garis besar dalam desain setiap proyek harus mempertimbangkan beberapa poin seperti penggunaan kata, ikon dan grafik, tampilan layar, peralatan input dan output, urutan langkah tindakan, dan pelatihan penggunaan sistem. 2. User-interface Software Tools 49 Pada tahap awal pengembangan sistem, baik pengguna sistem dan orang yang mendesain sistem, tidak mengetahui secara pasti bagaiama sistem yang sedang dibangun akan tampak seperti apa. Hal ini memang menjadi pemikiran yang umum dibahas oleh kedua belah pihak. Menggunakan user interface software tools, kedua belah pihak dapat menyamakan visi dan misi dalam mendesain sebuah desain tampilan yang dapat disepakati. 3. Expert Reviews and Usability Testing Pengembangan desain sistem, tidak berhenti pada saat sistem tersebut telah jadi dibangun. Sistem yang telah dibangun harus diuji coba dulu berkali-kali untuk mencari letak kesalahan yang mungkin tersembunyi dan tidak diketahui pada tahap pengembangan sedang berlangsung. Sistem yang telah dibangun harus dikaji oleh para penguji sistem atau pakar sistem untuk memastikan sistem tersebut telah memenuhi ekspektasi pengguna dan dapat berjalan secara fungsional. 2.9.1. Perancangan Tampilan Penggunaan Human Computer Interaction dengan konsep Eight Golden Rules, memberikan dampak baik terhadap hubungan antar manusia dengan komputer. Hal ini memberikan angin baru yang dapat merubah paradigma yang selama ini mengkonotasikan bahwa penggunaan aplikasi komputer merupakan hal yang sulit dan tidak ramah terhadap penggunanya. Setiap pengguna aplikasi, baik aplikasi yang berbasis desktop, mobile maupun aplikasi berbasis web memerlukan tampilan yang menarik dan tidak menjenuhkan mata saat aplikasi digunakan. Untuk merancang tampilan yang memenuhi kriteria dan tuntutan pengguna diatas maka, rancangan harus memiliki beberapa pedoman dasar yang harus dipenuhi untuk dapat memberikan hasil yang maksimal, Shneiderman menyatakan delapan hal yang harus dipertimbangkan dalam mendesain sebuah user interface (Shneiderman, 2011: 74) : 1. Strive for Consistency 50 Aturan ini merupakan hal yang paling sering dilanggar dalam proses pengembangan sebuah desain tampilan. Hal ini disebabkan karena banyak hal yang harus dikategorikan dengan konsistensi dalam desain, seperti tampilan font, ukuran font dan rangkaian proses yang harus memiliki standar yang baku dan tidak berubah dari tampilan pada satu form ke form yang lain untuk sebuah situasi yang sama. Untuk desain yang tidak memenuhi konsistensi harus dibatasi penggunaannya sehingga tidak memberikan dampak universal ambiguity 2. Cater to universal usability Untuk membuat sebuah sistem yang dapat digunakan secara luas, sistem tersebut tentunya harus dapat digunakan oleh setiap pengguna. Keberagaman dari latar belakang pendidikan, kebudayaan, tingkat sosial dan tingkat ekonomi turut memberikan dampat yang signifikan dalam sebuah penggunaan sistem. Latar belakang kesehatan, juga menyumbang konstribusi dalam pengembangan desain antarmuka. Pengguna dengan latar belakang sebagai kaum diffable tentu memerlukan bantuan khusus dalam penggunaan sistem. Memberikan penjelasan singkat dalam sebuah sistem juga dapat menolong pengguna yang belum berpengalaman untuk mengoperasikan sebuah sistem, serta memberikan fitur yang dikhususkan untuk memberikan kemudahan dan kenyamanan untuk pengguna yang telah berpengalaman sehingga terjadi efisiensi dalam penggunaan sistem tersebut. Semua hal diatas turut merubah paradigm dan memberikan sudut pandang yang baru dalam proses mendesain sebuah sistem antarmuka dan memperkaya cakupan serta batasan dalam sistem antarmuka yang memberikan esensi dari sebuah kualitas sebuah sistem. 3. Offer informative feedback Untuk setiap aksi yang dilakukan oleh pengguna pada sistem, harus memiliki umpan balik yang diberikan, dengan kata lain umpan balik 51 merupakan hal mendasar yang harus dimiliki setiap sistem untuk setiap aksi atas setiap perubahan, aksi baik yang sering dilakukan, maupun aksi yang tidak terlalu sering dilakukan. Hal ini harus dilakukan untuk memberikan konfirmasi atas aksi yang dilakukan atas sistem tersebut. Umpan balik tidak selalu hadir dalam bentuk teks konfirmasi atas setiap setiap aksi maupun perubahan atas sistem, namun dapat berupa dalam bentuk instruksi singkat dan sederhana untuk memudahkan pengguna yang belum berpengalaman dalam menggunakan sistem tersebut. Bentuk lain dari umpan balik yang memudahkan pengguna untuk memahami dan menggunakan sebuah fungsi dari sebuah sistem adalah umpan balik yang berupa representasi data berupa visual. Representasi visual memberikan kenyamanan pada pengguna sebuah sistem dengan memberikan informasi secara jelas dan mudah dipahami. 4. Design dialogs to yield closure Dalam menjalankan sebuah sistem, tentu terdapat serangkaian hal yang harus dilakukan untuk mencapai tujuan tertentu. Setiap urutan aksi yang dilakukan dalam setiap sistem yang berjalan, tentu urutan dalam mengeksekusi tugas terbagi menjadi beberapa fase dimulai dari bagian awal, pertengahan dan akhir dari sebuah proses. Umpan balik yang bersifat informatif pada setiap akhir dari sebuah fase diberikan kepada pengguna sistem. Hal ini diperlukan untuk memberikan rasa kepuasan, lega atas menyelesaikan satu tahap dari urutan pengeksekusian sebuah sistem. Sedangkan dilain pihak hal ini memberikan dampak baik untuk melegakan pikiran yang jenuh atas sebuah tahap dalam sebuah sistem serta memberikan pemberitahuan secara tidak langsung untuk mempersiapkan pengguna ke tahap selanjutnya. 5. Prevent errors Untuk mendesain sebuah tampilan antarmuka sebuah sistem, yang dapat mencegah kesalahan yang mungkin saja dapat terjadi, berarti 52 dengan kata lain sebisa mungkin desain dari tampilan antarmuka sebuah sistem menghilangkan celah sekecil apapun yang dapat menimbulkan kesalahan dalam penggunaan sebuah sistem. Contohnya seperti: 1) Tidak memberikan pilihan untuk memasukkan data berupa numerik pada kolom input untuk data alfabet. Apabila, setelah segala cara untuk, memperkecil margin kesalahan yang mungkin saja terjadi dalam penggunaan sebuah sistem dikarenakan desain antarmuka yang tidak jelas, maka tentu desain antarmuka harus turut mengambil bagian dalam mengisolasi kesalahan yang terjadi tersebut sehingga tidak menyebar ke bagian lain dari proses sebuah sistem. 2) Apabila pada kolom input nama, data yang dimasukkan oleh pengguna tidak valid dikarenakan kesalahan format. Maka sebuah desain antarmuka yang baik harus memberikan penanda terjadi kesalahan pada bagian kolom input nama dan memberikan label jenis kesalahan yang terjadi. Kesalahan penggunaan dalam sebuah sistem memang tidak dapat dihindari, namun angka dari kesalahan yang mungkin saja terjadi dapat diminimalisir. Kesalahan dalam penggunaan sebuah sistem juga sebaiknya tidak merubah kondisi dari sistem, atau desain antarmuka memberikan rangkaian instruksi untuk dapat mengembalikan kondisi sistem tersebut menjadi kondisi sistem sebelum terjadi kesalahan. 6. Permit easy reversal of actions Pengguna dari sebuah sistem terkadang tidak tahu apa yang sedang dilakukannya. Oleh karena itu sedapat mungkin setiap langkah yang dilakukan oleh setiap pengguna memiliki potensi yang dapat berakibat fatal terhadap kondisi dari sebuah sistem. Kejadian ini mungkin saja dapat merusak dan mengacaukan seluruh sistem, terlebih lagi sistem kerja. Tentu bukan rancangan desain antarmuka yang baik namanya apabila tidak dapat mengatasi hal ini. Pokok permasalahan ini tentu dapat diatasi dengan membuat sebuah sistem 53 antarmuka yang dapat mengembalikan kondisi sistem yang rusak menjadi kondisi sistem sebelum langkah yang dianggap merugikan sistem tersebut terjadi. Disisi lain hal ini mendongkrak antusiasme pengguna dalam mengeksplorasi kegunaan dari sistem itu sendiri. Pengguna sistem terkadang merasa tidak nyaman apabila mengetahui bahwa setiap langkah yang diambil dalam menjalankan sebuah sistem bersifat permanen dan tidak dapat diubah. Oleh karena itu apabila pengguna sistem mengetahui bahwa kesalahan dapat diperbaiki dengan mudah, maka pengguna akan lebih leluasa dalam mencoba menggunakan pilihan-pilihan yang belum biasa digunakan oleh si pengguna. 7. Support internal locus of control Pengguna sistem dengan tingkat yang sudah mahir dalam menggunakan sebuah sistem biasanya memiliki keinginan yang kuat untuk dapat mengatur dan merasa dapat menggunakan sistem dengan benar. Oleh sebab itu diperlukan sebuah desain sistem antarmuka yang dapat memberikan kesan bahwa yang pengguna sistem dapat mengontrol dan menguasai sistem tersebut dan bukan sebaliknya. 8. Reduce short-term memory load Kesalahan manusia dalam penggunaan sebuah sistem memiliki banyak faktor, diantaranya adalah keterbatasan daya ingat jangka pendek yang dimiliki oleh manusia. Keterbatasan ini tentu dapat diatasi dengan menggunakan sistem yang memiliki desain antarmuka yang menarik serta bersifat menolong dalam mengurangi beban ingatan jangka pendek pengguna. Contoh dari mengurangi beban daya ingat jangka pendek. 2.10 Data Flow Diagram (DFD) 2.10.1. Pengertian DFD Whitten mengatakan, “Data flow diagram merupakan sebuah perangkat kerja yang menggambarkan aliran data, proses kerja yang 54 berjalan pada sebuah sistem” (Whitten : 2005). Pengertian dari data flow diagram, dapat disimpulkan menjadi gambaran besar dari sebuah proses dan alur kerja, dan data yang terdapat pada sebuah sistem. Pada pengaplikasiannya, DFD dibuat untuk menjelaskan dan menggambarkan dudukan dari sebuah sistem secara umum. Gambaran umum ini menjelaskan aliran data dari alur proses kerja sistem yang melibatkan user maupun dari segi internal sebuah proses. 2.10.2. Simbol-Simbol DFD Untuk dapat menjelaskan gambaran secara umum, Whitten membagi beberapa simbol menurut klasifikasi penggunaanya. Berikut merupakan pembagian simbol menurut klasifikasi penggunaanya, yaitu: 2.12.2.1. External Agent External agent, melambangkan subjek dari seorang pengguna sistem yang meliputi orang yang tidak memiliki kepentingan didalam sistem tersebut, unit dari sebuah organisasi, sistem itu sendiri atau juga dapat menjadi bagian dari sistem, atau organisasi yang berinteraksi dengan sistem (Whitten: 2005). External agent sebuah kotak. Gambar 2.31 External Agent dilambangkan dalam 55 2.12.2.2. Data Store Data store, atau penyimpanan data digunakan untuk melambangkan data yang disimpan untuk penggunaan dimasa yang akan datang (Whitten: 2005). Data store, secara ideal melambangkan tempat penyimpanan data. Gambar 2.32 Data Store 2.12.2.3. Process Process, atau proses merupakan gambaran mengenai tanggapan yang dilakukan oleh sistem terhadap sebuah aksi atau kondisi tertentu. Pada proses, dikenal dengan decomposition, atau dekomposisi. Yaitu, membagi proses kedalam beberapa proses yang lebih spesifik dan lebih kecil. Gambar 2.33 Process Proses juga dapat menjelaskan sebuah sistem. Hal ini didasari dengan penjelasan diagram berikut ini. 56 Gambar 2.34 Proses Sebagai Sebuah Sistem Gambar tersebut dapat diterima, karena setiap sebuah proses selalu memberikan hasil (output) dari sebuah input (masukan). 2.12.2.4. Data Flow Data flow, atau yang diartikan sebagai aliran data merupakan data yang bergerak. Data yang sedang bergerak ini melambangkan data yang sedang diproses dalam sebuah sistem. Data tersebut dapat melambangkan input data, ataupun output data. Data flow juga melambangkan proses pembuatan data atau informasi, penghapusan, pembaharuan data di dalam sebuah penyimpanan data. Gambar 2.35 Data Flow atau 57 2.10.3. Contoh DFD Gambar 2.36 Contoh DFD Dari Gambar 2.36 secara jelas digambarkan contoh dari sebuah data flow diagram beserta bagaimana komponen-komponen dari sebuah DFD diimplementasikan secara tepat (Whitten: 2005). Berikut merupakan batasan dan penjabaran DFD dalam sebuah boundary. 58 Gambar 2.37 Boundary DFD 2.11 Flowchart Penggunaan flowchart atau disebut juga diagram alur dalam pengembangan suatu sistem bukan merupakan barang baru lagi di dalam penggambaran suatu proses kerja sistem logic (Lasely, 2006, p264). Flowchart menjadi populer karena berbentuk grafik dan setiap bentuk grafik memiliki tugas dan fungsi serta pengertiannya masing-masing. Berikut adalah enam jenis diagram alur pokok: Tabel 2.3 Diagram Alur No Bentuk Diagram Alur Penggunaan Terminal Symbol 1 Simbol terminal menandakan awal dan akhir dari sebuah logik, sebuah diagram alur harus diawali dan diakhiri dengan sebuah symbol terminal. Input/Output Symbol 2 Simbol input atau output, penggunaan symbol ini kadang dapat memberikan makna berbeda, namun untuk 59 memudahkan simbol ini merupakan symbol yang melambangkan data yang akan diproses atau data hasil proses. Process Symbol 3 Simbol ini mewakili proses yang terjadi di dalam sebuah diagram alur. Predefined Process Symbol 4 Bentuk grafik yang satu ini berguna untuk membatasi sebuah diagram alur yang berada di dalam suatu diagram alur . Decision Symbol 5 Penggunaan symbol ini melambangkan proses alur pengambilan keputusan diantara dua pilihan logic yang masing-masing memiliki kondisi yang harus dipenuhi. Flowlines Flowlines menghubungkan beberapa symbol yang ada di 6 dalam sebuah diagram alur. Penggunaan flowlines yang menggunakan kepala panah hanya untuk menggambarkan alur proses yang bukan dari arah atas ke bawah, atau dari arah kiri ke kanan. Penggunaan flow chart selain dapat memudahkan pengguna untuk memahami alur kerja atau proses kerja, flow chart juga digunakan untuk memberikan keseragaman dalam pemahaman sehingga mengurangi tingkat kesalahan yang tidak seharusnya terjadi. Selain menjadi bahasa universal yang dapat dimengerti oleh semua orang, flow chart juga berguna untuk menjelaskan alur logic, alur proses hingga alur perjalanan jika dibutuhkan. Sebagai bahasa yang dapat dimengerti oleh banyak orang, maka sudah menjadi hal wajib untuk 60 menggunakan flow chart dalam pengembangan sistem yang notabane memiliki jumlah pengembang sistem yang berasal dari bermacam latar belakang.