BAB 2 TINJAUAN PUSTAKA 2.1. Internet Menurut William dan Sawyer (2010, pp. 18) Internet merupakan ibu dari semua jaringan. Internet merupakan jantung dari Era Informasi. Disebut "ibu dari semua jaringan," internet (net) adalah jaringan komputer di seluruh dunia yang menghubungkan ratusan dari ribuan jaringan yang lebih kecil. Jaringan ini menghubungkan pendidikan, komersial, nirlaba, dan militer entitas, serta individu. Internet adalah jaringan besar yang menghubungkan jutaan komputer melalui protokol, hardware, dan saluran komunikasi. Ini merupakan sebuah infrastruktur yang mendukung tidak hanya web tetapi juga sistem komunikasi lainnya seperti email, instant messaging, dan newsgroup. Bagian dari internet disebut web adalah teknologi berbasis multimedia yang memungkinkan untuk mengakses lebih dari sekedar teks. 2.1.1. WWW World Wide Web (WWW), sering disebut hanya web. Sebuah sistem interkoneksi komputer internet (disebut server) yang mendukung dokumen khusus diformat dalam bentuk multimedia, kata multimedia, dari "multiple media," mengacu pada teknologi yang menyajikan informasi pada lebih dari satu media, seperti teks, gambar diam, gambar bergerak, dan suara. Dengan kata lain, web menyediakan informasi di lebih dari satu cara. (William dan Sawyer, 2010, pp. 18). 2.1.2. Web Browser Web browser berhubungan dengan web server melalui protokol HTTP dalam pengambilan halaman web. Halaman web juga kadang disertai dengan files eksternal seperti gambar (JPEG, PNG, GIF), animasi 1 (flash, java, shockwave) maupun program seperti Java Applet. Adanya fasilitas media streaming juga memungkinkan web browser digunakan untuk memutar video atau file suara. (Ari Prabawanti, 2010, pp. 220). 2.1.3. Website Menurut William dan Sawyer (2010, pp. 65). Sebuah website, atau sekedar site, adalah lokasi pada komputer tertentu di web yang memiliki alamat yang unik atau yang disebut URL. Sebuah website terdiri dari halaman web atau koleksi halaman web terkait. Sebuah halaman web adalah dokumen yang terdapat di World Wide Web(WWW) yang dapat mencakup teks, gambar, suara, dan video. 2.1.4. HTTP HyperText Transfer Protocol (HTTP) merupakan aturan komunikasi yang memungkinkan browser untuk terhubung dengan web server. HTTP juga merupakan sebuah protokol untuk melakukan akses internet antara client dan server. Client dan server masing-masing dapat saling menerima dan menjawab request keduanya. Menurut William dan Sawyer (2010, pp. 66). HTTP merupakan sebuah protokol atau sebuah aturan agar terjadinya komunikasi untuk pertukaran infromasi dan memungkinkan browser untuk terhubung dengan server web. 2.1.5. Web Server Web Server merupakan sebuah perangkat lunak dalam server yang berfungsi menerima permintaan (request) berupa halaman web melalui HTTP atau HTTPS dari klien yang dikenal dengan web browser dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokument HTML. (Solichin, A., 2011, pp. 7). 2 Gambar 2.1 Standard Web Architecture Sumber : (Solichin, A., 2011, pp. 7) Gambar 2.2 Dynamic Web Architecture Sumber : (Solichin, A., 2011, pp. 7) 2.1.6. URL Uniform Resource Locator (URL) merupakan string karakter yang menunjuk ke bagian tertentu informasi di mana saja pada sebuah halaman web. Dengan kata lain, URL adalah website yang memiliki alamat unik. Menurut William dan Sawyer (2010, pp. 65-66). Sebuah URL terdiri dari (1) protokol web, (2) nama domain atau nama web server, (3) direktori (atau folder) pada server itu, dan (4) file dalam yang direktori (mungkin dengan 3 ekstensi seperti html atau htm). Berikut merupakan contoh dari URL untuk situs web dari The National Park Service for Yosemite National Park: Gambar 2.3 Contoh Struktur URL untuk sebuah situs Web Sumber: (William dan Sawyer, 2010, pp. 66) 1. Protocol: http:// merupakan sebuah aturan untuk berkomunikasi dan dalam pertukaran informasi, dan memungkinkan browser untuk melakukan koneksi kepada server web. Kebanyakan browser mengasumsikan bahwa semua alamat web yang dimulai dari http://, sehingga tidak perlu lagi untuk menuliskan bagian ini. Dengan kata lain, dapat langsung mengetikan www. 2. Domain name (web server name): Domain merupakan sebuah lokasi yang terdapat dalam internet, domain dapat memberitahukan lokasi dan tipe dari address. Komponen dari domain name dipisahkan oleh dots. Bagian terakhir dari domain disebut top-level domain yang merupakan tiga huruf ekstensi yang menggambarkan tipe dari domain, misalnya: .gov, .com, .net, .edu, .org. 3. Directory name: Merupakan nama dari server untuk sebuah directory atau folder dimana dibutuhkan browser untuk mengambil file dan informasi. 4. File name dan extension: File merupakan sebuah particular page atau dokumen. Misalnya home.htm yang akan menunjukkan sebuah home page, atau welcome page.htm merupakan sebuah ekstensi untuk sebuah file name, dan ekstensi dapat memberitahukan kepada browser bahwa tipe dari file tersebut merupakan HTML file. 4 2.2. IMK (Interaksi Manusia dan Komputer) Menurut Shneiderman dan Plaisant (2010, pp. 4). Interaksi Manusia dan Komputer merupakan ilmu yang melibatkan perancangan dengan pengumpulan data dan kerangka secara intelektual yang dikembangkan dari ilmu komputer. Shneiderman dan Plaisant (2010, pp. 32) menyatakan bahwa perancangan sebuah sistem dapat dikatakan user-friendly, efisien, dan dapat memenuhi kebutuhan harus memperhatikan lima faktor berikut: 1. Waktu untuk belajar Waktu yang dibutuhkan seorang pengguna untuk mempelajari fungsi-fungsi di dalam sebuah aplikasi untuk menyelesaikan tugasnya. 2. Kecepatan kinerja Waktu yang diperlukan untuk penyelesaian suatu tugas di dalam aplikasi. 3. Tingkat kesalahan yang dilakukan pengguna Jumlah dan jenis kesalahan yang dilakukan oleh pengguna dalam melakukan serangkaian tugas dengan menggunakan aplikasi. 4. Daya Ingat Seberapa baik pengguna mempertahankan ingatan dan pengetahuannya dalam jangka waktu tertentu saat menggunakan aplikasi. 5. Kepuasan subjektif Tingkat ketertarikan pengguna atas berbagai aspek dari suatu sistem. 2.2.1. Eight Golden Rules Untuk meningkatkan kegunaan dari aplikasi, penting untuk memiliki interface yang dirancang dengan baik. Dengan menggunakan "Eight Golden Rules of Interface Design" Menurut Shneiderman dan Plaisant (2010, pp. 88-89) ini merupakan panduan untuk mendesain interface yang baik: 1. Strive for consistency 5 Konsistensi sangat diperlukan dalam perancangan user interface seperti warna yang konsisten, tata letak, kapitalisasi, font, dan sebagainya yang harus diterapkan secara keseluruhan. 2. Cater to universal usability Mengenali kebutuhan pengguna yang beragam dan desain untuk memudahkan dalam melakukan perubahan konten. Perbedaan antara yang pemula dan yang ahli, rentang usia, keterbatasan kemampuan fisik, dan keanekaragaman teknologi yang merupakan panduan dalam merancang interface. Menambahkan fitur untuk pemula, seperti penjelasan, dan memberikan fitur sepertu shortcut untuk yang sudah ahli agar dapat memperkaya desain interface dan meningkatkan kualitas sistem. 3. Offer informative feedback Untuk setiap tindakan dari pengguna, harus ada umpan balik dari sistem. Umpan balik tersebut harus memberikan visualisasi hasil dari aksi yang telah dilakukan oleh pengguna. 4. Design dialogs to yield closure Urutan tindakan harus diatur ke dalam kelompok dengan urutan awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian sekelompok aksi memberikan kepuasan, rasa lega, tanda untuk menghentikan rencana kontingensi dari pikiran mereka, dan indikator untuk mempersiapkan ke kelompok aksi yang selanjutnya. Sebagai contoh, situs web e-commerce memindahkan pengguna dari memilih produk ke kasir, yang berakhir dengan halaman konfirmasi yang jelas yang melengkapi transaksi. 5. Prevent error 6 Sebisa mungkin, merancang sistem sehingga pengguna tidak dapat membuat kesalahan; misalnya, menu yang pewarnaannya tidak tepat dan tidak mengizinkan karakter abjad di entri pada bidang numerik. Jika pengguna membuat kesalahan, antarmuka harus mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif, dan instruksi khusus untuk recovery. 6. Permit easy reversal of actions Sebisa mungkin, tindakan harus reversibel. Fitur ini mengurangi kecemasan, karena pengguna tahu bahwa kesalahan dapat diperbaiki. Sehingga pengguna dapat terus melakukan penjelajahan dan tidak bingung jika mendapatkan pesan kesalahan. 7. Support internal locus of control Pengguna yang sudah berpengalaman sangat menginginkan bahwa mereka bertanggung jawab atas keseluruhan sistem dan interface yang dapat merespon setiap tindakan mereka karena pengguna yang memegang dan mengontrol keseluruhan sistem. 8. Reduce short-term memory load Keterbatasan manusia dalam mengolah informasi dalam memori jangka pendek. Mensyaratkan bahwa desainer harus menghindari interface di mana pengguna harus mengingat informasi dari satu layar dan kemudian menggunakan informasi tersebut pada layar lain. 2.3. E-Business Menurut Abdurrahim, M. (2011, pp. 4-5) Banyak orang mengasumsikan bahwa e-commerce dan e-business adalah sama. Istilah e-commerce dan ebusiness mungkin kedengarannya sama tapi secara teknis sebenarnya keduanya berbeda. Keduanya memang memiliki huruf “e” yang mengindikasikan penggunaan elektronik termasuk internet dan EDI (Electronic Data Interchange) 7 untuk mengembangkan proses bisnis. Secara definisi e-commerce merupakan bagian dari e-business, namun tidak semua e-business berarti e-commerce. Ecommerce lebih sempit jika dibandingkan e-business, di mana e-commerce adalah sub perangkat dari e-business. Di mana e-business sangat luas, menunjuk kepada penggunaan teknologi untuk menjalankan bisnis yang memberikan hasil, memberikan dampak yang besar kepada bisnis secara keseluruhan. Sementara ecommerce mengacu kepada penggunaan internet untuk belanja online, seperti untuk belanja produk dan jasa. Contohnya terjadi ketika konsumen melakukan order tiket, buku atau hadiah, produk berwujud maupun tidak berwujud melalui internet. Sampel lainnya ketika sebuah organisasi atau individu membayarkan sejumlah uang via internet. 2.3.1. E-Commerce Perdagangan elektronik, yang disebut juga e-commerce, adalah pengunaan jaringan komunikasi dan komputer untuk melaksanakan proses bisnis. Pandangan populer dari e-commerce adalah pengunaan internet dan komputer dengan web browser untuk menjual dan membeli produk. (Raymond McLeod, Jr., 2008, pp. 59). Devendra et. al., (2012) mendefinisikan bahwa electronic commerce, pada umumnya dikenal sebagai ecommerce yang merupakan aktivitas jual dan beli dari produk atau jasa melalui sistem elektronik seperti internet dan jaringan komputer. Tujuan dari teknologi untuk ecommerce adalah untuk menawarkan kemudahan dalam mengaksesnya dengan biaya minimum dan dengan transaksi bisnis sehari-hari. Khan dan Mahapatra (2009) mengatakan bahwa teknologi memainkan peran penting dalam meningkatkan kualitas layanan yang diberikan oleh unit bisnis. Salah satu teknologi yang benar-benar membawa revolusi informasi di masyarakat adalah Teknologi Internet dan benar dianggap sebagai gelombang ketiga revolusi setelah revolusi 8 pertanian dan industri. Ujung tombak untuk bisnis saat ini adalah ecommerce. Empat kategori umum e-commerce antara lain (Laudon, Kenneth C. 2008): 1. B2C (Business to Consumer) Dalam ruang lingkup e-commerce, business to consumer merupakan perusahaan yang menjual produknya secara online kepada konsumen dimana konsumen merupakan “end users” dari produk-produk dan services. Biasanya B2C pada e-commerce web shops memiliki hak akses terbuka bagi para pengunjung. 2. B2B (Business to Business) Dalam ruang lingkup e-commerce, business to business merupakan perusahaan yang menjual produknya hanya kepada perusahaan lain tanpa memiliki hubungan dengan konsumen. Biasanya B2B pada ecommerce web shop memiliki harga khusus, dan diskon khusus bagi customer. 3. C2B (Consumer to Business) Dalam ruang lingkup e-commerce, consumer-to-business merupakan konsumen yang biasanya memasukkan produk atau layanan online di mana perusahaan dapat memposting tawaran mereka. Sebagai konsumen meninjau tawaran dan memilih perusahaan yang memenuhi harapan harganya. 4. C2C (Consumer to Consumer) Dalam ruang lingkup e-commerce, consumer-to-consumer merupakan konsumen yang menjual barang online mereka kepada konsumen lainnya. 2.3.1.1. Manfaat E-Commerce Menurut Irmawati (2011, pp. 109-110) terdapat beberapa manfaat dari e-commerce bagi Organisasi, Konsumen, dan Masyarakat luas: 9 1. Bagi Organisasi: · Memperluas pasar hingga mencakup pasar nasional dan pasar global, sehingga perusahaan bisa menjangkau lebih banyak pelanggan, memilih pemasok terbaik, dan menjalin relasi dengan mitra bisnis yang dinilai paling cocok. · Menekan biaya menyusun, memproses, mendistribusikan, menyimpan, dan mengakses informasi berbasis kertas. · Memungkinkan perusahaan mewujudkan bisnis yang sangat terspesialisasi. · Menekan biaya persediaan dan overhead dengan cara memfasilitasi manajemen rantai nilai bertipe “pull” yang prosesnya berawal dari pesanan pelanggan dan menggunakan pemanufakturan just-in-time. · Menekan waktu antara pembayaran dan penerimaan produk/jasa. Meningkatkan produktivitas karyawan melalui rekayasa ulang proses bisnis · Menekan biaya telekomunikasi. 2. Bagi Konsumen: · Memungkinkan konsumen berbelanja atau melakukan transaksi lainnya setiap saat (7 hari 24 jam). · Memberikan pilihan produk dan pemasok yang lebih banyak kepada pelanggan. · Memungkinkan konsumen dalam mendapatkan produk dan jasa yang lebih murah, karena konsumen bisa berbelanja di banyak tempat dan melakukan perbandingan secara cepat. · Produk yang terdigitalisasi, e-business memungkinkan pengiriman produk secara cepat dan real-time. · Memungkinkan pelanggan berinteraksi dengan pelanggan lainnya dalam electronik communities dan saling bertukar gagasan dan pengalaman. · Memungkinkan pelanggan berpartisipasi dalam lelang virtual. 10 3. Bagi Masyarakat luas: · Memungkinkan lebih banyak orang bekerja di rumah. · Memungkinkan beberapa jenis barang dijual dengan harga murah. 2.4. Management Permintaan Manajemen permintaan didefinisikan sebagai suatu fungsi pengelolaan dari semua permintaan produk untuk menjamin bahwa penyusunan jadwal induk (master scheduler) mengetahui dan menyadari akan semua permintaan produk itu (Gaspersz, V., 2008, pp. 71). Terdapat dua jenis permintaan yaitu independent demand dan dependent demand yang dimana keduanya adalah konsep terpenting dalam master planning. Gambar 2.4 Aktivitas Utama dalam Manajemen Permintaan Sumber: (Gaspersz, V., 2008, pp. 72) Dependent demand didefinisikan sebagai permintaan terhadap material, parts, atau produk yang terkait langsung terhadap atau diturunkan dari struktur bill of material (BOM) untuk produk akhir atau untuk item tertentu. Sedangkan independent demand didefinisikan sebagai permintaan terhadap material, parts, atau produk, yang bebas atau tidak terkait langsung dengan struktur bill of material untuk produk akhir atau item tertentu (Gaspersz, 2012, pp. 133). 11 Pada dasarnya suatu permintaan merupakan perangkat analisis untuk melihat besaran jumlah barang atau jasa yang diminta serta perubahan permintaan akan suatu barang atau jasA. Perubahan permintaan akan suatu barang atau jasa tersebut akan dapat dilihat dari perubahan pada kurva permintaan. Maka analisis permintaan akan suatu barang atau jasa erat kaitanya dengan perilaku konsumen. Gambar 2.5 Roda Deming dalam Sistem Industri Modern Sumber: (Gaspersz, V., 2008, pp. 2) Dari roda deming dalam Gambar 2.5 tampak bahwa berdasarkan informasi tentang keinginan konsumen (pasar) yang diperoleh dari riset pasar yang komprehensif, selanjutnya didesain produk sesuai dengan keinginan pasar itu. Desain produk telah menetapkan model dan spesifikasi yang harus diikuti oleh bagian produksi. Bagian produksi harus meningkatkan efisiensi dari proses dan kualitas produk, agar diperoleh produk-produk berkualitas sesuai dengan desain yang telah ditetapkan berdasarkan keinginan pasar itu, dengan biaya yang serendah mungkin. (Gaspersz, V., 2008, pp. 2). 12 2.5. Rekayasa Perangkat Lunak Menurut Pressman, R. S.(2010, pp. 13) rekayasa perangkat lunak merupakan penerapan sistematis, disiplin, pendekatan kuantitatif untuk pengembangan, pengoperasi, dan pemeliharaan perangkat lunak. Proses merupakan sebuah model dan dasar yang menyatukan lapisan teknologi dan memungkinkan pengembangan rasional dan pengaturan jadwal yang tepat untuk rekayasa perangkat lunak dan proses mendefinisikan kerangka kerja yang harus dibentuk untuk penyerahan perangkat lunak secara efektif. Setiap proses model mengatur sebuah aliran proses yang biasa disebut work flow, yaitu cara di mana elemen-elemen dari proses saling terkait satu sama lain. Masing-masing proses model perangkat lunak menerapkan penekanan yang berbeda untuk kegiatan ini dan mendifinisikan process flow yang memanggil setiap kegiatan kerangka (serta perangkat lunak baik langkah maupun tugas) dengan cara yang berbeda. (Pressman, R. S., 2010, pp. 39) 2.5.1 Prototyping model Prototyping model merupakan model proses yang mengidentifikasikan satu set tujuan umum untuk perangkat lunak, akan tetapi tidak mengidentifikasikan persyaratan rinci untuk fungsi dan fitur. Prototyping berupaya untuk mengurangi resiko proyek yang melekat dengan memecahkan proyek ke dalam segmen yang lebih kecil dan menyediakan kemudahan perubahan selama proses pembangunan. Dalam sistem yang dikembangkan terdapat proses yang berulang-ulang dalam beberapa langkah sampai modifikasi prototype memenuhi kebutuhan pengguna. Pada kasus lain, developer mungkin tidak yakin mengenai efisiensi dari sebuah algoritma, kemampuan beradaptasi dari suatu sistem operasi, atau bentuk interaksi manusia dan mesin apa yang harus diambil. Dalam hal ini dan banyak situasi lainnya, paradigma prototyping menawarkan pendekatan yang terbaik. (Pressman, R. S., 2010, pp. 43) Berikut merupakan gambar dari Prototyping model 13 Gambar 2.6 Prototyping model Sumber: (Pressman, R. S., 2010, pp. 43) Menurut Pressman, R. S. (2010, pp. 43-44) pada prototyping model dimulai dari communication. Bertemu dengan stakeholders untuk mendefinisikan kebutuhan untuk mengetahui apa saja yang dibutuhkan dan apa saja yang harus dikembangkan kedepannya, mengidentifikasi seluruh requirements dan membuat garis besar di mana definisi lebih lanjut merupakan hal yang wajib. Prototyping memiliki iterasi untuk merencanakan dengan cepat dan pemodelan dalam bentuk quick design. Quick design berfokus pada representasi dari aspek-aspek perangkat lunak yang dapat dilihat oleh seluruh pengguna misalnya, human interface layout. Desain yang cepat mengarah ke pembangunan prototipe. Prototipe disebarkan dan dievaluasi oleh stakeholders, yang akan memberikan feedback yang digunakan futher refine requirement, sementara pada saat yang sama memungkinkan bagi developer untuk lebih memahami apa yang perlu dilakukan. Meskipun masalah dapat terjadi, prototyping dapat menjadi paradigma yang efektif untuk teknik perangkat lunak. Kuncinya adalah dalam menentukan aturan main pada tahap awal, requirements haruslah 14 jelas dan stakeholders harus setuju bahwa prototype dibangun untuk melayani sebagai mekanisme untuk mendefinisikan requirements. 2.5.2. Black-box Testing Menurut Pressman, R. S. (2010, pp. 495) Pengujian black-box, juga disebut behavioral testing, berfokus pada persyaratan fungsional dari perangkat lunak. Artinya, teknik pengujian black-box memungkinkan untuk memperoleh set kondisi input yang sepenuhnya yang akan melaksanakan semua persyaratan fungsional untuk suatu program. Pengujian black-box berusaha menemukan kesalahan dalam kategori berikut: (1) tidak benar atau fungsi yang hilang, (2) kesalahan antarmuka, (3) kesalahan dalam struktur data atau eksternal akses database, (4) perilaku atau kinerja kesalahan, dan (5) kesalahan inisialisasi dan termination. 2.5.3. Structured Programming Menurut Godse, A.P., & Godse, D.A. (2010, pp. 19) Hampir seluruh bahasa dapat menggunakan teknik structured programming untuk menghindari kesalahan yang umum dari bahasa yang tidak terstruktur. Pada structural programming, program dibagi menjadi independent tasks yang kecil. Tugas-tugas yang kecil cukup untuk dipahami dengan mudah tanpa harus mengetahui atau mengerti program secara keseluruhan. Setiap task dirancang untuk melakukan fungsionalitas tertentu dengan sendirinya. Ketika tugas-tugas dilakukan, maka hasilnya akan digabungkan bersamasama mengatasi masalah tersebut. 2.5.3.1. Procedural Programming Menurut Godse, A.P., & Godse, D.A. (2010, pp. 19) Pemrograman prosedural adalah paradigma pemrograman berbasis pada konsep panggilan prosedur. Prosedur, juga dikenal sebagai rutinitas, subrutin, metode, atau fungsi hanya berisi serangkaian langkah komputasi yang akan dilakukan. Setiap prosedur yang 15 diberikan bisa dipanggil pada setiap saat selama pelaksanaan program. Termasuk dengan prosedur lain atau sendiri. Setelah serangkaian langkah komputasi diproses dalam prosedur, aliran eksekusi program terus dari mana panggilan itu dibuat. Pemrograman prosedural sering merupakan pilihan yang lebih baik daripada pemrograman yang tidak terstruktur. Berikut merupakan manfaat dari procedural programming menurut Godse, A.P., & Godse, D.A. (2010, pp. 20): 1. Kemampuan untuk re-use code pada tempat yang berbeda di dalam program tanpa perlu menyalin code tersebut, karena setiap prosedur dapat dipanggil dimana saja. 2. Merupakan cara yang mudah untuk melakukan track dan pemahaman pada program dengan mengikuti logic dari program tersebut karena merupakan flow secara top-down structure. 3. Kemampuan yang sangat terstruktur, sehingga mendukung mantainability of code. Menurut sebuah artikel dengan procedural languages, code merupakan instruksi khusus untuk komputer untuk menjalankannya dengan gaya “do-this, then-this, then this” style of programming. Procedural programming merupakan satu dari paradigma pemrograman yang bersifat umum untuk digunakan. Point utama yang harus diketahui adalah procdural programming merupakan imperative language. Imperative berarti memberikan perintah atau instruksi sehingga dapat disimpulkan bahwa procedural programming menceritakan kepada komputer apa yang harus dikerjakan, bagaimana langkah demi langkah. Sehingga memiliki instruksi yang bersifat sequential. Source code written in a procedural language: 16 y = 1224; for (x = 0; x < 100; x++) { z = y + x; } Dalam klip ini, y merupakan variabel yang sedang diatur, maka code memasuki loop. Jadi bahasa prosedural justru mendefinisikan apa yang komputer harus lakukan langkah demi langkah. 2.6. Database Menurut Kroenke, D., & Auer, D. (2012, pp. 12) Database merupakan sebuah koleksi “self-describing” dari tabel yang terintegrasi. Tabel yang terintegrasi merupakan tabel yang menyimpan data dan hubungan antar data. Database merupakan self-describing karena mengandung sebuah deskripsi dari data itu sendiri. Dengan demikian database tidak hanya mengandung tabel dari data user melainkan juga mengandung tabel dari data yang mendeskripsikan data user. Seperti data deskriptif disebut "metadata" karena itu adalah data tentang data. Pada gambar 2.7 akan menunjukkan generic metadata tabel yang akan mendeskripsikan tabel dan kolom dari sebuah database. Gambar 2.7 Typical Metadata Tables 17 Sumber: (Kroenke, D., & Auer, D. 2012, pp. 12) Dalam konsep database, urutan atau hierarki database sangatlah penting. Urutan atau hierarki database digambarkan dalam gambar sbb: Gambar 2.8 Hierariki Database Sumber: (Solichin, A. 2011, pp. 84) 2.6.1. Entity Relationship Diagram (ERD) ERD merupakan sebuah diagram dalam perancangan database yang dimulai dari identikasi data dari sebuah entity, attributes, dan relationship antara data yang digambarkan pada sebuah model. 1. Entity Menurut Kroenke, D., & Auer, D. (2012, pp. 156). Sebuah entity merupakan sesuatu yang diinginkan oleh pengguna untuk melacak. Ini merupakan sesuatu yang mudah untuk dilacak oleh pengguna. Entities dari jenis tertentu dikelompokkan menjadi sebuah entity class. Dengan demikian Employee entity class merupakan sebuah koleksi dari seluruh Employee entities. Contoh dari entity data customer dapat dilihat pada gambar 2.9. 18 Gambar 2.9 Contoh Entity Data Customer Sumber: (Kroenke, D., & Auer, D. 2012, pp. 157) 2. Attributes Menurut Kroenke, D., & Auer, D. (2012, pp. 157). Entities memiliki beberapa attributes yang mendeskripsikan karakteristik masing-masing. Contohnya EmployeeName, Phone, dan Email. Attributes ditulis dengan huruf uppercase dan lowercase. Model E-R mengasumsikan bahwa seluruh contoh dari entity class memiliki attributes yang sama. Gambar 2.10 Attributes dalam bentuk eclipse dan rectangle Sumber: (Kroenke, D., & Auer, D. 2012, pp. 157) 19 3. Relationship Menurut Kroenke, D., & Auer, D. (2012, pp. 158) Entity dapat dikaitkan dengan satu sama lain dalam relationships. Model E-R mengandung kedua relationship classes dan relationship instances. Relationship classes merupakan hubungan antara entity classes dan relationship class merupakan hubungan antara entity intances. Berikut merupakan contoh variasi pada level dari Entity Attribute: Gambar 2.11 Contoh Variasi dari level Entity Attribute Sumber: (Kroenke, D., & Auer, D. 2012, pp. 158) 2.6.1.1. Crow’s Foot Notation Simbol multiplicity-nya intuitif dan mudah dimengerti oleh pembaca non-teknis. Notasi crow’s foot sebaiknya digunakan dalam seluruh diagram model data konseptual yang akan ditinjau oleh pengguna bisnis. Notasi ini juga cocok untuk digunakan dalam model desain basis data fisikal (Stewart, 2008). Pada pengerjaan penulisan ini akan digunakan model data Crow’s Foot pada Entity Relationship Diagram yang akan dibuat. Simbol Crow’s Foot Notation digunakan untuk menunjukkan berbagai hubungan dari banyak. Crow’s Foot Model menggunakan notasi yang ditunjukkan pada Gambar 2.12 untuk menunjukkan hubungan cardinality. 20 Gambar 2.12 Crow’s Foot Notation Sumber: (Kroenke, D., & Auer, D. 2012, pp. 163) 2.6.2. E-Commerce Database Application Menurut Kroenke, D., & Auer, D. (2012, pp. 7). E-commerce merupakan aplikasi database yang penting. Database merupakan sebuah kunci komponen dari sebuah e-commerce order entry, billing, shipping, customer support. Namun yang mengejutkan, database terbesar di situs ecommerce bukan data dari order-processing database. Melainkan database terbesar merupakan data yang melakukan proses tracking terhadap customer behavior. 2.7. Unified Modelling Language (UML) Unified Modelling Language (UML) merupakan bahasa yang digunakan untuk menuliskan sebuah rancangan terhadap perangkat lunak yang sudah menjadi standar bahasa dalam industri. UML sangat berguna terutama dalam membangun sebuah sistem. 21 UML menyediakan berbagai macam pilihan diagram untuk menjelaskan sebuah sistem, yaitu: 1. Use Case Diagram Use Case Diagram adalah sebuah diagram yang menggambarkan interaksi antara sistem dan sistem eksternal dan users. Dengan kata lain, Use case diagram menjelaskan dengan gambar, siapa yang akan menggunakan sistem dan dengan cara apa user berinteraksi dengan sistem tersebut. (Whitten and Bentley, 2007, pp. 246). Gambar 2.13 Aktor Sumber: (Whitten and Bentley, 2007, pp. 247) Aktor merupakan segala sesuatu yang akan berhubungan dan berinteraksi terhadap use case. Gambar 2.14 Use Case Sumber: (Whitten and Bentley, 2007, pp. 246) Use Case merupakan deskripsi dari suatu tindakan atau aksi yang akan dilakukan oleh aktor. 22 Gambar 2.15 Contoh Use Case Model Diagram Sumber : (Whitten and Bentley, 2007, pp. 246) Menurut Whitten and Bentley (2007, pp. 246-247) Use case memiliki tujuan untuk menginisialisasi pada tahap requirements dan menyempurnakan life cycle. Pada tahap requirement, use case dapat menjadi sebuah alat untuk memberikan gambaran dasar tentang jalannya bisnis dan model pada suatu sistem. Inheritance digunakan ketika terdapat dua atau lebih actor yang melakukan inisiasi terhadap use case yang sama. Dengan inheritance, diciptakan sebuah abstract actor yang dapat melakukan use case tersebut (bentuk generalisasi dari actor-actor yang ada). 23 Gambar 2.16 Contoh penggunaan Inheritance pada Use Case Sumber : (Whitten and Bentley, 2007, pp. 250) Associations merupakan sebuah hubungan antara actor dengan sebuah use case, dimana use case dapat dideskripsikan sebagai sebuah interaksi antara mereka. Pada gambar 2.17 akan menunjukkan hubungan atau asosiasi yang menggambarkan sebuah panah yang mengarah kepada use case. Gambar 2.17 Contoh hubungan asosiasi Sumber : (Whitten and Bentley, 2007, pp. 248) Menurut Whitten and Bentley (2007, pp. 248) Use case mengandung fungsionalitas yang kompleks yang terdiri dari beberapa langkah yang dapat mempersulit dalam pemahaman. Untuk membuatnya lebih mudah untuk dimengerti maka use case dapat di extract dengan sebuah hubungan yang disebut extension. 24 Gambar 2.18 Contoh dari sebuah hubungan extends Sumber : (Whitten and Bentley, 2007, pp. 248) Menurut Whitten and Bentley (2007, pp. 249) Sebuah abstract use case merepresentasikan sebuah form dari "reuse" dan merupakan alat yang baik untuk mengurangi redundancy pada use case. Beberapa use case modeling menggunakan kata includes. Biasanya abstract use case tidak didefinisikan pada tahap requirements melainkan pada tahap analisis. Gambar 2.19 Contoh dari hubungan uses atau includes Sumber : (Whitten and Bentley, 2007, pp. 249) 25 2. Use Case Narrative Menurut Whitten dan Bentley (2007, pp. 246), Use Case Narrative merupakan deskripsi dalam bentuk teks dari dan bagaimana user akan berinteraksi dengan sistem dalam menyelesaikan sebuah tugas. Ketika sedang mempersiapkan untuk membuat use case agar lebih mudah dalam memahami events dari sistem. Gambar 2.20 Contoh Use Case Narrative Sumber : (Whitten and Bentley, 2007, pp. 249) 26 1. Precondition adalah batasan dari kondisi/status sistem sebelum use case dapat dieksekusi. 2. Trigger adalah event yang menyebabkan eksekusi sebuah use case. 3. Typical course of events adalah urutan biasa dari aktivitas yang dilakukan aktor dan sistem untuk mencapai tujuan dari use case. 4. Alternate courses adalah apabila terdapat pengecualian atau variasi dari typical course yang terjadi. 5. Conclusion adalah spesifikasi saat use case berhasil dieksekusi, saat primary actor menerima suatu nilai yang terukur. 6. Postcondition adalah batasan dari kondisi/status sebuah sistem setelah use case berhasil dieksekusi. 7. Business rules menspesifikasikan aturan dan prosedur bisnis di dalam sistem yang baru. 8. Implementation constraints and specifications menspesifikasikan kebutuhan yang bersifat nonfungsional yang dapat mempengaruhi realisasi use case, dapat berguna dalam perencanaan arsitektur dan pencakupan. 9. Assumptions adalah semua asumsi yang dibuat oleh creator saat mendokumentasikan use case. 10. Open issues adalah pertanyaan atau masalah yang harus diselesaikan atau diteliti sebelum use case disetujui. 2. Activity Diagram Activity Diagram adalah sebuah diagram yang dapat digunakan untuk menggambarkan aliran proses bisnis, langkah-langkah use case. (Whitten and Bentley, 2007, pp. 390). Contoh dari Activity Diagram dapat dilihat pada Gambar 2.21. 27 Gambar 2.21 Activity Diagram dari Enter New Member Order Use Case Sumber : (Whitten and Bentley, 2007, pp. 392) 28 Tabel 2.1 Elemen dari Activity Diagram (Sumber: Whitten and Bentley, 2007, pp. 391) Simbol Nama Deskripsi Initial Lingakaran hitam merepresentasikan sebuah start dari Node sebuah proses Activity Flow Simbol yang merepresentasikan aktivitas yang dikerjakan individu pada activity diagram Simbol yang menunjukkan arus atau aliran dari suatu proses ke proses lain Simbol yang sama digunakan untuk dua hal yang Decision and Merge berbeda, dimana Decision merupakan tanda adanya percabangan mengenai aktivitas yang berbeda. Merge mengindikasikan adanya penggabungan aktivitas untuk kembali pada jalur yang sama setelah sebelumnya dipisahkan oleh decision Fork menggambarkan dua aktivitas yang akan Fork and berjalan secara paralel. Join menggambarkan Join bagaimana berakhirnya proses yang berjalan secara paralel (dua arah) 2.8. Activity Simbol ini menunjukkan akhir dari proses pada Final sebuah activity diagram Hypertext Preprocessor (PHP) PHP singkatan dari Hypertext preprocessor yaitu bahasa pemograman web server-side yang bersifat open source. PHP merupakan script yang terintegrasi dengan HTML dan berada pada server (server side HTML embedded scripting). 29 PHP adalah script yang digunakan untuk membuat halaman website dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman itu diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima client selalu yang terbaru atau up to date. Semua script PHP dieksekusi pada server dimana script tersebut dijalankan. (Anhar. 2010, pp. 3). 2.9. MySQL MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL atau yang dikenal dengan DBMS (Database Management System), database ini multithread, multi-user. MySQL merupakan turunan salah satu konsep utama dalam database, yaitu SQL (Strcutured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. MySQL merupakan DBMS yang bersifat gratis dibawah lisensi GNU General Public Licence (GPL). Pemrograman PHP juga sangat mendukung dengan database MySQL. (Anhar. 2010, pp. 21). Beberapa kelebihan MySQL menurut Solichin, A. (2011, pp. 85) antara lain: 1. Free (bebas diunduh) 2. Stabil dan tangguh 3. Fleksibel dengan berbagai pemrograman 4. Security yang baik 5. Dukungan dari banyak komunitas 6. Kemudahan management database 7. Mendukung transaksi 8. Perkembangan software yang cukup cepat 2.10. XAMPP XAMPP merupakan sebuah alat untuk membangun sebuah distribusi instalasi yang mudah bagi developer untuk masuk ke dunia Apache. Untuk membuatnya developer nyaman, XAMPP dikonfigurasi dengan semua fitur yang 30 aktif. XAMPP juga bersifat open source yaitu gratis dan dapat diakses oleh siapapun. Sampai saat ini sudah distribusikan untuk Windows, Linux, dan OS X. (Apache Friends, 2015) XAMPP merupakan perangkat lunak bebas (open source), yang mendukung banyak sistem operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP dan Perl. 2.11. JavaScript Javascript adalah bahasa yang berbentuk kumpulan skrip yang pada fungsinya berjalan pada suatu dokumen HTML, sepanjang sejarah internet bahasa ini adalah bahasa skrip pertama untuk web. Bahasa ini adalah bahasa pemrograman untuk memberikan kemampuan tambahan terhadap bahasa HTML dengan mengijinkan pengeksekusian perintah perintah di sisi user, yang artinya di sisi browser bukan di sisi server web. (Ahsan, A. 2011, pp. 2). Berikut menunjukkan bahwa skrip tersebut adalah skrip dari JavaScript: <script type="text/javascript"> </script> Javascript bergantung kepada browser atau navigator yang memanggil halaman web yang berisi skrip-skrip dari Javascript dan tentu saja terselip di dalam dokumen HTML. Javascript juga tidak memerlukan kompilator atau penterjemah khusus untuk menjalankannya (pada kenyataannya kompilator Javascript sendiri sudah termasuk di dalam browser tersebut). (Ahsan, A. 2011, pp. 2) 31 2.11.1. jQuery jQuery adalah library atau kumpulan kode javascript. Dengan menyederhanakan kode javascript dengan cara memanggil fungsi-fungsi yang disediakan oleh jQuery. Manfaat dari jQuery antara lain (Sigit, A. 2010, pp. 1): 1. jQuery kompatible dengan banyak browser 2. jQuery mendukung semua versi CSS 3. Ukuran jQuery sangat kecil 4. Dokumentasi jQuery yang lengkap 5. Dukungan komunitas terhadap jQuery. Berikut merupakan contoh penulisan skrip jQuery: <script type="text/javascript"> $(document).ready(function(){ $('#submitSearch').click(function(){ $.post("action/doAddSearch.php",$("#mysearchform").serializ e(), function(response){ }); return true; }); }); </script> 2.12. Bootstrap Bootstrap merupakan sebuah framework CSS, yang menyediakan kumpulan komponen-komponen antarmuka dasar dalam membangun website. Selain komponen antarmuka, Bootstrap juga menyediakan sarana untuk membangun layout halaman dengan menarik dan responsive. Bootstrap merupakan CSS-Driven yang dapat memasukkan sejumlah plugin JavaScript dan icons yang berjalan seiringan dengan forms dan buttons. Dengan demikian membangun sebuah website dapat sesuai kebutuhan dengan memilih CSS dan JavaScript yang tepat. Semua ini dapat membantu frontend-web development untuk terus maju dan berkembang dalam membangun landasan yang stabil mengenai pandangan kedepan tentang desain dan development. (Spurlock, J. 2013, pp. 1). 32 Berikut merupakan struktur file dari Bootstrap: Gambar 2.22 Struktur file Bootstrap Sumber: (Spurlock, J. 2013, pp. 2) 2.12.1. Responsive Web Design Responsive Web Design (RWD) “Write Once, Run Everywhere” merupakan gaya desain website yang menyediakan pengalaman dalam mengakses pada salah satu situs web disemua perangkat, terlepas dari apakah audiens mengunjungi situs web menggunakan mobile, tablet, komputer, ataupun perangkat lainnya. Desain responsive adalah metode untuk mengambil semua konten yang ada di halaman dan mengoptimalkan untuk perangkat yang melihatnya. Misalnya, desktop tidak hanya mendapatkan versi normal dari situs web, tetapi juga mungkin mendapatkan tata letak layar lebar (wide screen). Untuk target yang memiliki perbedaan width, bootstrap memakai CSS media queries untuk mengukur lebar dari browser viewport dan dengan menggunakan beberapa kondisi yang dapat mengubah bagian dari stylesheet. Dengan menggunakan lebar dari browser viewport, Bootstrap dapat melakukan optimisasi dengan konten menggunakan kombinasi ratio dan widths, tetapi sebagian besar bergantung pada min-width dan max-width properties (Spurlock, J. 2013, pp. 7). 33 2.13. Version Control System (VCS) Version control adalah sebuah sistem yang mencatat setiap perubahan terhadap sebuah berkas atau kumpulan berkas sehingga pada suatu saat dapat kembali kepada salah satu versi dari berkas tersebut. Version control system (VCS) memberikan fitur untuk melakukan proses pengembalian pada file dengan state sebelumnya, membandingkan setiap perubahan yang terjadi, melihat siapa yang terakhir melakukan modifikasi pada suatu file yang menjadikan error, siapa yang menemukan issue dan kapan. Menggunakan VCS pada umumnya mengartikan bahwa setiap data yang mengalami perubahan dan kehilangan, dapat dengan mudah untuk diatasi dan dikembalikan. (Chacon, S., 2014, pp. 27). Secara umum VCS terbagi menjadi 3 jenis yaitu: a. Local Version Control Systems Developer melakukan backup file-file kerjanya secara manual ke suatu tempat yang telah disediakan. Developer menentukan sendiri dimana tempat untuk penyimpanan file-file tersebut. Hal ini merupakan penggunaan VCS yang paling primitif dan secara tidak sadar, digunakan oleh developer yang belum mengenal atau menggunakan modern VCS. Ilustrasi mengenai skema local VCS dapat dilihat pada gambar 2.23. Gambar 2.23 Local Version Control Systems 34 Sumber: Chacon, S. (2014, pp. 28) b. Centralized Version Control System Jenis ini lebih modern dari local VCS karena telah berhubungan dengan sistem, tidak ditangani oleh developer. Tugas-tugas seperti aktivitas backup file, melacak versi, dan menentukan skema penyimpanan dilakukan oleh sistem. Jadi developer tidak perlu dipusingkan dengan pekerjaan-pekerjaan yang seharusnya bukan menjadi tugasnya. Sesuai dengan namanya centralized VCS yaitu dengan sitem terpusat. Sistem ini menggunakan tempat penyimpanan utama yang bisa disebut dengan repository, repo ataupun database. Jenis ini juga biasanya disebut dengan client server model. Ilustrasi mengenai skema centralized VCS dapat dilihat pada gambar 2.24. Gambar 2.24 Centralized Version Control Systems Sumber: Chacon, S. (2014, pp. 29) c. Distributed Version Control Systems Jenis ini merupakan modern VCS sama dengan centralized VCS, cara menggunakan komunikasi model yang berbeda. terdistribusi dimana Distributed VCS repository yang digunakan ada pada setiap mesin yang terlibat dalam VCS. 35 Ilustrasi mengenai skema distributed VCS dapat dilihat pada gambar 2.25. Gambar 2.25 Distributed Version Control Systems Sumber: Chacon, S. (2014, pp. 29) Dari ilustrasi mengenai distributed VCS dan centralized VCS, perbedaan utama yang tampak adalah jumlah repository yang digunakan. Perbedaan ini dapat berpengaruh pada cara pengelolaan proyek yang sedang dibangun. Cara pengelolaan meliputi alur kerja (workflow) dan juga model pencabangan (branching model). 2.13.1. Bitbucket Server Bitbucket merupakan sebuah layanan Git yang memungkinkan untuk menggunakan distributed version control system yang memudahkan untuk melakukan kolaborasi dengan tim. Melakukan code review untuk efisiensi dengan fitur pull request. Berdiskusi mengenai source code dengan inline comments yang dapat dilihat pada gambar 2.26. Bitbucket juga menawarkan repository private dan public secara gratis dengan jumlah maksimal adalah 5 repository. (Bitbucket.org, 2015). 36 Gambar 2.26 Fitur dari Bitbucket Sumber: Atlassian Bitbucket, Bitbucket.org, 2015 2.13.2. SourceTree Git & Mercurial client SourceTree merupakan Git dan Mercurial client/ SourceTree memiliki fitur full-powered (distributed version control system) DVCS sehingga akan mempermudah dengan adanya aplikasi desktop yang dapat mengatur seluruh repository, hosted maupun local dengan interface dari SourceTree. SourceTree memungkinkan untuk melakukan create, clone, commit, push, pull, merge, dan masih banyak lagi. (SourceTree, 2015). Berikut merupakan contoh interface dari aplikasi SourceTree yang dapat dilihat pada gambar 2.27. 37 Gambar 2.27 Interface dari SourceTree 2.14. Content Management System (CMS) Sebuah CMS adalah perangkat lunak yang memungkinkan Anda untuk membuat, mengedit, dan mempublikasikan konten. Pada awalnya software CMS digunakan untuk mengelola dokumen dan file komputer lokal, sebagian besar sistem CMS sekarang dirancang khusus untuk mengelola konten di Web. Tujuan dari CMS adalah untuk menyediakan user interface yang intuitif untuk membangun dan memodifikasi konten halaman web. Setiap CMS juga menyediakan web publishing yang memungkinkan satu atau lebih pengguna untuk melakukan pengaturan pada konten. (TechTerms, 2013). 38