21 BAB II TINJAUAN PUSTAKA Definisi Perangkat Lunak Perangkat lunak komputer merupakan produk yang dibuat oleh para professional perangkat lunak yang kemudian mendukungnya dalam jangka waktu panjang. Perangkat lunak yang dimaksud mencakup didalamnya program-program komputer yang berjalan di dalam suatu komputer dari berbagai ukuran dan berbagai arsitektur, terdapat pula isi yang akan diperlihatkan ketika programprogram komputer berjalan, dan selain itu terdapat informasi-informasi yang bersifat deskriptif (menjelaskan) dalam bentuk salinan tercetak dan dalam bentuk berkas-berkas salinan secara maya yang meliputi di dalamnya segala bentuk media elektronik (Pressman, 2012). Definisi lain dijelaskan bahwa perangkat lunak (software) adalah program komputer yang terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain dan cara penggunaan (user manual) (Rosa dan Shalahuddin, 2016). Perangkat lunak atau program terdiri dari rangkaian instruksi elektronik yang menyeluruh untuk mengerjakan sesuatu. Berbagai instruksi ini dibuat oleh pengembang perangkat lunak dan tersedia dalam berbagai bentuk misalnya compact disk (Yakub, 2012). Definisi lainnya juga dijelaskan Sulianta (2016) perangkat lunak merupakan mediator dan pemberi instruksi terhadap sumber daya tegar/hardware. Penulis lain juga mendefinisikan bahwa perangkat lunak merupakan program komputer dan dokumentasi yang terhubung. Produk perangkat lunak dapat dikembangkan untuk pelanggan tertentu atau dapat dikembangkan untuk general market. Pengembang perangkat sangat memperhatikan dalam mengembangkan sebuah perangkat lunak (contohnya perangkat lunak yang dijual kepada pelanggan) (Sommerville, 2011). Terdapat dua jenis produk dari perangkat lunak sebagai berikut. http://digilib.mercubuana.ac.id/ 22 1) Generic Products yaitu sistem stand-alone yang diproduksi oleh organisasi pengembang perangkat lunak dan menjualnya ke pasar terbuka kepada pelanggan manapun yang mampu membelinya. 2) Customized Products, yaitu sistem yang ditugaskan/diberikan oleh pelanggan tertentu. Pengembang perangkat lunak mengembangkan produk tersebut secara khusus untuk pelanggan tersebut. Karakteristik Perangkat Lunak Untuk memenuhi pemahaman definisi perangkat lunak, penting untuk me- meriksa karakteristik perangkat lunak yang membedakannya dari benda-benda lain yang dibuat oleh manusia. Perangkat lunak lebih merupakan elemen logika alih-alih sistem secara fisik. Oleh karena itu, perangkat lunak memiliki karakteristik yang berbeda dari karakteristik-karakteristik yang dimiliki perangkat keras (Pressman, 2012). 1) Perangkat lunak dikembangkan atau direkayasa, bukan diproduksi dalam konteks manufaktur 2) Perangkat lunak tidak mengalami kelelahan 3) Meskipun industri terus beralih ke konstruksi berbasis komponen, sebagian besar perangkat lunak masih tetap dibuat berdasarkan spesifikasi yang diminta pengguna. Ranah Aplikasi Perangkat Lunak Berdasarkan ranah aplikasinya, perangkat lunak terbagi atas 7 kategori (Pressman, 2012). 1) Perangkat lunak sistem Sekumpulan program yang ditulis untuk melayani program-program lain (contoh : perangkat lunak untuk melakukan kompilasi [compiler], editor dan utilitas-utilitas pengaturan berkas) yang melakukan pemrosesan struktur-struktur informasi yang kompleks namun umumnya bersifat terbatas. Aplikasi sistem lainnya (contoh: komponen-komponen sistem operasi, driver, perangkat lunak jaringan, prosesor telekomunikasi) memproses data yang ragam serta jumlahnya sangat tidak terbatas. Dalam salah satu kasus, suatu perangkat lunak sistem bersifat mem- http://digilib.mercubuana.ac.id/ 23 iliki interaksi dengan berbagai perangkat keras komputer; memiliki karakterisitk penggunaan yang sangat tinggi oleh banyak pengguna; memiliki operasi-operasi yang terjadi secara bersamaan yang pada gilirannya menuntut penjadwalanpenjadwalan, berbagi sumber daya yang sama dan melakukan pengaturan pemroses yang rumit, menangani struktur-struktur data yang kompleks; dan antarmuka eksternal yang jumlahnya sangat banyak. 2) Perangkat lunak aplikasi Program-program mandiri yang menjawab kebutuhan bisnis yang terinci. Aplikasi-aplikasi dalam bidang ini melakukan pemrosesan data bisnis atau data teknis yang mendukung berjalannya operasi-operasi bisnis atau pengaturan/pengambilan keputusan teknis. Selain ada aplikasi pemrosesan data konvensional, perangkat lunak aplikasi juga digunakan untuk mengendalikan fungsi-fungsi bisnis secara aktual (contoh: pemrosesan transaksi pada titik penjualan, kendali pemrosesan produksi pada pabrik secara aktual). 3) Perangkat lunak rekayasa/ilmiah Telah lama memiliki algoritma yang penuh dengan kalkulasi data numerik. Aplikasi dalam kategori ini beragam mulai dari aplikasi-aplikasi yang dikembangkan untuk kebutuhan astronomi hingga vulkanologi (ilmu tentang gunung api), dari analisis tekanan pada otomotif hingga dinamika orbit pada pesawat ulang alik dan dari biologi molekul hingga produksi terotomatisasi. Namun, aplikasi-aplikasi modern dalam bidang rekayasa/ilmiah saat ini semakin bergeser menjauh dari algoritma numerik konvensional. Proses-proses perancangan yang dibantu oleh komputer, simulasi sistem dan aplikasi-aplikasi interaktif lainnya telah mulai memiliki karakter perangkat lunak ‘waktu-nyata’ (real-time) dan bahkan beberapa diantaranya mulai memiliki karakter perangkat lunak sistem. 4) Perangkat lunak yang tertanam Berada dalam suatu produk atau sistem dan digunakan untuk menjalankan dan mengendalikan fitur-fitur dan fungsi-fungsi bagi pengguna akhir dan bagi sistem itu sendiri. Perangkat lunak yang tertanam itu dapat menjalankan fungsifungsi terbatas dan seringkali hanya dipahami kalangan-kalangan tertentu (contoh: kontrol tombol-tombol pada pemanggang gelombang mikro) atau menyediakan http://digilib.mercubuana.ac.id/ 24 fungsi signifikan dan kemampuan kendali (contoh: fungsi-fungsi digital dalam mobil seperti kendali bahan bakar, tampilan indikator dan sistem pengereman). 5) Perangkat lunak lini produk Dirancang untuk menyediakan kemampuan khusus untuk digunakan oleh pelanggan yang berbeda-beda. Perangkat lunak lini produk dapat berkonstrasi pada pasar tertentu dan sifatnya terbatas (contoh: produk-produk kendali inventarisasi) atau merujuk pada pasar pengguna (contoh: pengolah kata, lembar kerja [spreadsheet], grafik-grafik komputer, multimedia, hiburan, pengaturan basis data dan aplikasi-aplikasi personal dan keuangan bisnis). 6) Aplikasi web Disebut “WebApps”, kategori perangkat lunak yang berpusat pada jaringan komputer ini menyajikan sederetan luas aplikasi-aplikasi. Sederhananya, aplikasiaplikasi Web sedikit lebih dari sekedar sekumpulan file hypertext yang saling terhubung untuk menunjukkan informasi-informasi tertentu dengan mengunakan grafis-grafis yang sifatnya terbatas dan menampilkan informasi-informasi tertentu dengan menggunakan teks-teks. Namun, seiring munculnya Web 2.0, aplikasiaplikasi Web saat ini sedang berevolusi menjadi lingkungan komputasi yang canggih yang tidak hanya menyajikan fitur-fitur mandiri, fungsi-fungsi komputasi 24a nisi untuk pengguna akhir, namun juga terintegrasi dengan sistem basis data yang dimiliki oleh perusahaan dan juga terintegrasi dengan aplikasi-aplikasi bisnis lainnya. 7) Perangkat lunak kecerdasan buatan Menggunakan algoritma non-numerik untuk memecahkan permasalahan- permasalahan rumit yang tidak bisa diselesaikan dengan komputasi atau analisis permasalahan secara langsung. Aplikasi-aplikasi yang berada didalam kategori ini menyertakan didalamnya robotika, sistem pakar, pengenalan pola (gambar dan suara), jaringan saraf buatan/tiruan, pembuktian teorema-teorema dan permainanpermainan (game) komputer. Rekayasa Perangkat Lunak IEEE [IEE93a] telah mengembangkan suatu definisi yang lebih komprehensif. Rekayasa perangkat lunak pada dasarnya merupakan: (1) aplikasi dari suatu http://digilib.mercubuana.ac.id/ 25 pendekatan yang sistematik, disiplin, dan dapat diukur pada pengembangan, operasi dan perawatan perangkat lunak. (2) Studi pendekatan-pemdekatan seperti pada (1) (Pressman, 2012). Rekayasa perangkat lunak (software engineering) merupakan pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin. Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan karena masalah non-teknis seperti keenggan pemakai perangkat (user) untuk mengubah cara kerja dari manual ke otomatis, atau ketidakmampuan user menggunakan komputer. Oleh karena itu, rekayasa perangkat lunak dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak terpakai (Rosa dan Shalahuddin, 2016). Rekayasa perangkat lunak atau software engineering merupakan disiplin ilmu teknik yang berkaitan dengan semua aspek dalam pembuatan perangkat lunak mulai dari tahap awal menspesifikasikan sistem sampai pemeliharaan sistem setelah digunakan (Sommerville, 2011). Dalam definisi tersebut terdapat dua kata kunci. 1) Engineering discipline atau disiplin ilmu teknik Engineers membuat sesuatu dapat bekerja dengan baik. Mereka menerapkan teori-teori, metode-metode dan peralatan-peralatan dengan tepat. Namun mereka menggunakannya dengan sangat selektif dan selalu mencoba menemukan solusi dari masalah sekalipun tidak ada teori-teori maupun metode-metode yang mendukung. 2) All aspect of software atau semua aspek dalam perangkat lunak Rekayasa perangkat lunak tidak hanya fokus pada proses teknis pengem- bangan perangkat lunak. Tetapi termasuk aktivitas pengembangannya seperti manajemen proyek perangkat lunak, pengembangan peralatan-peralatan, metodemetode dan teori-teori yang mendukung pembuatan perangkat lunak. Rekayasa perangkat lunak dituntut memiliki atribut-atribut penting dari perangkat lunak yang baik, yaitu sebagai berikut. 1) Maintainability http://digilib.mercubuana.ac.id/ 26 Perangkat lunak sebaiknya didokumentasikan tertulis sedemikian rupa sehingga dapat berkembang dalam memenuhi kebutuhan pelanggan yang berubahubah. Ini merupakan atribut penting karena perubahan perangkat lunak tak dapat terhindarkan dari perubahan lingkungan bisnis. 2) Dependability and security Perangkat lunak yang dapat diandalkan memiliki karakter bekerja dengan baik, terlindungi dan aman. Perangkat lunak yang baik tentunya tidak menyebabkan kerusakan secara fisik maupun ekonomi ketika terjadi kegagalan sistem. Pengguna yang jahat tidak dapat mengakses atau merusak sistem. 3) Efficiency Sebuah perangkat lunak seharusnya tidak membuat pemborosan sumber daya sistem seperti memory dan processor. Efisiensi yang dimaksud juga termasuk daya tanggap, waktu proses, penggunaan memory dan lain sebagainya. 4) Acceptability Sebuah perangkat lunak yang telah dirancang harus dapat diterima oleh semua jenis pengguna. Artinya perangkat lunak yang dibuat harus dapat dimengerti, bisa digunakan dan sesuai dengan sistem yang digunakan pengguna. Software Development Life Cycle (SDLC) Software Development Life Cycle merupakan proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik) (Rosa dan Shalahuddin, 2016). Tahapan-tahapan yang ada pada SDLC secara global adalah sebagai berikut. 1) Inisiasi (initiation), Tahap ini biasanya ditandai dengan pembuatan proposal proyek perangkat lunak. 2) Pengembangan konsep sistem (system concept development), mendefinisikan lingkup konsep termasuk dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana dan pembelajaran kemudahan sistem http://digilib.mercubuana.ac.id/ 27 3) Perencanaan (planning), mengembangkan rencana manajemen proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi. 4) Analisis kebutuhan (requirement analysis), menganalisis kebutuhan pemakai sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional. 5) Desain (design), mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain, sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan. 6) Pengembangan (development), mengonversi desain ke sistem informasi yang lengkap termasuk bagaimana memperoleh dan melakukan instalasi lingkungan sistem yang dibutuhkan; membuat basis data dan mempersiapkan prosedur kasus pengujian; mempersiapkan berkas atau file pengujian, pengodean, pengompilasian, memperbaiki dan membersihkan program; peninjauan pengujian. 7) Integrasi dan pengujian (integration and test), mendemonstrasikan sistem perangkat lunak bahwa telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan fungsional. Dengan diarahkan staf penjamin kualitas (quality assurance) dan user. Menghasilkan laporan analisis pengujian. 8) Implementasi (implementation), termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkungan produksi (lingkungan pada user) dan menjalankan resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian. 9) Operasi dan pemeliharaan (operation and maintenance), mendeskripsikan pekerjaan untuk mengoperasikan dan memelihara sistem informasi pada lingkungan produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan. 10) Disposisi (disposition), mendeskripsikan aktivitas akhir dari pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktivitas user. Salah satu model SDLC adalah Extreme Programming (XP) dalam metode pengembangan sistem. Model XP menggunakan pendekatan berorientasi objek http://digilib.mercubuana.ac.id/ 28 sebagai paradigma pengembangan yang diinginkan dan mencakup di dalamnya. Seperangkat aturan dan praktik-praktik yang terjadi dalam konteks empat kegiatan kerangka kerja: planning, design, coding dan test. Berikut tahap-tahap pengembangan menggunakan model XP (Pressman, 2010). Gambar 2.1 Ilustrasi Proses XP [Pressman, 2010] 1) Planning Kegiatan perencanaan (disebut juga planning game) dimulai dengan mendengarkan informasi. Suatu kegiatan yang bertujuan untuk mengumpulkan kebutuhan-kebutuhan yang memungkinkan pengembang XP memahami konteks bisnis untuk aplikasi yang akan dikembangkan dan memahami perlunya keluaran-keluaran (output), fitur-fitur utama dan fungsionalitas. Aktivitas mendengarkan akan merujuk pada pembuatan susunan cerita (disebut juga user stories) yang menjelaskan keluaran yang diperlukan, fitur utama dan fungsionalitasnya. Setiap cerita (mirip dengan use case) umumnya ditulis oleh pelanggan dan diletakkan pada kartu indeks. Pelanggan memberikan suatu nilai (contohnya sebuah prioritas) pada cerita berdasarkan nilai bisnis seluruh fitur atau fungsi. Pengembang XP kemudian menilai setiap cerita dan menetapkan biaya. 2) Design Perancangan XP dengan ketat mengikuti prinsip “tetap sederhana”. Sebuah hasil perancangan yang sederhana selalu lebih disukai daripada gambarangambaran yang lebih kompleks. Selain itu, perancangan XP akan memberikan panduan implementasi untuk suatu cerita ketika cerita itu ditulis, tidak kurang, http://digilib.mercubuana.ac.id/ 29 tidak lebih. Rancangan-rancangan dan fungsionalitas-fungsionalitas tambahan (karena pengembang menggangap nantinya akan diperlukan) tidak terlalu disarankan. XP mendorong penggunaan kartu CRC sebagai mekanisme yang efektif untuk berfikir tentang perangkat lunak dalam konteks berorientasi objek. Kartu CRC (class-responsibility-collaborator) digunakan untuk mengidentifikasi dan mengatur kelas-kelas dalam konteks pemrograman berorientasi objek yang relevan dengan peningkatan perangkat lunak saat ini. Jika masalah perancangan yang sulit ditemui sebagai bagian dari perancangan suatu cerita, metode pengembangan cepat XP menyarankan pembuatan langsung suatu dari prototipe operasional dari bagian perancangan tersebut. Disebut sebagai solusi spike, prototipe perancangan diimplementasikan dan selanjutnya dievaluasi. Tujuannya adalah mengurangi resiko-resiko yang akan timbul ketika pelaksanaan yang sesungguhnya dimulai dan untuk memvalidasi keaslian perkiraan untuk cerita yang berisi masalah-masalah perancangan. 3) Coding Setelah cerita dikembangakan dan karya rancangan awal dilakukan, pengembang perangkat lunak XP tidak langsung beralih ke kode-kode program, tetapi lebih dahulu akan mengembangkan serangkaian unit pengujian yang akan menjalankan setiap cerita yang akan disertakan pada rilis yang ada (peningkatan perangkat lunak). Setelah unit pengujian dibuat, pengembang perangkat lunak akan lebih mampu berkonsentrasi pada apa yang harus diimplementasikan supaya lulus dari unit pengujian tersebut. 4) Test Test atau pengujian sebelumnya telah dicatatkan bahwa pembuatan unit pengujian sebelum coding dimulai merupakan elemen kunci dari pendekatan pengembangan perangkat lunak cepat XP. Unit pengujian yang harus dibuat dan kemudian dijalankan menggunakan kerangka kerja yang memungkinkan mereka untuk diotomatisasi (sehingga mereka dapat dijalankan dengan mudah dan dapat dijalankan berulang kali). Hal ini mendorong strategi pengujian regresi terhadap kode-kode program setiap kali kode-kode tersebut diubah. Uji kelayakan pada XP sering disebut uji pelanggan, dirinci oleh para pelanggan dan pada dasarnya berfokus pada fitur-fitur dan fungsionalitas- http://digilib.mercubuana.ac.id/ 30 fungsionalitas sistem/perangkat lunak secara keseluruhan yang dapat terlihat dan ditinjau kembali oleh para pelanggan. Uji kelayakan berasal dari cerita pengguna yang telah diimplementasikan sebagai bagian dari suatu rilis perangkat lunak. Internet Internet adalah suatu jaringan global yang menghubungkan berjuta-juta komputer. Ada ratusan negara-negara dihubungkan ke dalam pertukaran dari data, berita dan pendapat. Tidak sama dengan jasa online pada umumnya, yang mana diatur secara terpusat, internet di-desentralisasi berdasarkan desainnya (Sugeng dan Putri, 2015). Komputer dan perangkat terhubung dengan internet menggunakan komunikasi ethernet protocol atau wireless (Wi-Fi). Data publik, disimpan di server sebagai halaman web yang dapat diakses oleh perangkat klien menggunakan internet. Selain itu juga klien dapat mengakses dan memanfaatkan sebuah sistem yang tertanam dan merespon untuk mengontrol perintah yang dikirm oleh server (Toulson dan Wilmshurst, 2017). Database Basis data (database) merupakan kumpulan data yang saling berhubungan (punya relasi). Relasinya biasanya ditunjukkan dengan kunci (key) dari tiap file yang ada (Yakub, 2012). Database didefinisikan sebagai kumpulan data yang terintegrasi dan diatur sedemikian rupa sehingga data tersebut dapat dimanipulasi, diambil dan dicari secara cepat (Raharjo, 2015). Definisi lainnya juga menjelaskan bahwa database adalah seperangkat koordinasi beberapa file data terpusat yang saling berhubungan yang disimpan dengan sedikit mungkin kelebihan data (Romney & Steinbart, 2016). 2.7.1 Database Management System (DBMS) Sistem manajemen database (database management system-DBMS) adalah suatu program yang mengelola dan mengendalikan data serta menghubungkan data dan program-program aplikasi yang menggunakan data yang disimpan dalam http://digilib.mercubuana.ac.id/ 31 database. Database, DBMS dan program-program aplikasi yang mengakses database melalui DBMS disebut sebagai sistem database (database system). Administrator database (database administrator-DBA) bertanggung jawab untuk mengoordinasikan, mengendalikan dan mengelola database (Romney & Steinbart, 2016). DBMS (Database Management System) atau dalam bahasa Indonesia sering disebut Sistem Manajemen Basis Data adalah suatu sistem aplikasi yang digunakan untuk menyimpan, mengelola dan menampilkan data (Rosa dan Shalahuddin, 2016). Suatu sistem aplikasi disebut DBMS jika memenuhi persyaratan minimal sebagai berikut. 1) Menyediakan fasilitas untuk mengelola akses data 2) Mampu menangani integritas data 3) Mampu menangani akses data 4) Mampu menangani backup data Menurut Yakub (2012) database management system (DBMS) adalah meru- pakan kumpulan program aplikasi yang digunakan untuk membuat dan mengelola basis data. DBMS berisi suatu koleksi data dan satu set program untuk mengakses data. DBMS merupakan perangkat lunak (software) yang menentukan bagaimana data tersebut diorganisasi, disimpan, diubah dan diambil kembali. Perangkat lunak ini juga menerapkan mekanisme pengamanan data, pemakaian data bersama dan konsistensi data. Perangkat lunak yang termasuk DBMS adalah sebagai berikut. Tabel 2.1 Daftar DBMS [Yakub, 2012] Nama DBMS Perusahaan Access Microsoft Corporation DB2 IBM Informix IBM Ingres Computer Associate MySQL The MySQL AB Company Oracle Oracle Corporation PostgreSQL www.postgresql.com Sybase Sybase Inc http://digilib.mercubuana.ac.id/ 32 Raharjo (2015) menjelaskan database berbeda dengan database management system (DBMS). DBMS adalah kumpulan program yang digunakan untuk mendefinisikan, mengatur dan memproses database; sedangkan database itu sendiri esensinya adalah sebuah struktur yang dibangun untuk keperluan penyimpanan data. DBMS merupakan alat atau tool yang berperan untuk membangun struktur tersebut. Gambar 2.2 Ilustrasi Database dan DBMS [Raharjo,2015] 2.7.2 Structure Query Language (SQL) Rosa dan Shalahuddin (2016) mendefinisikan SQL sebagai bahasa yang digunakan untuk mengelola data pada Relational DBMS atau RDBMS. Sedangkan Yakub (2012) menjelaskan structure query language (SQL) adalah sekumpulan sintaks-sintaks atau statement untuk mengakses data dalam database. Terdiri dari Data Definition Language (DDL), Data Manipulation Language (DML) dan Data Control Language (DCL). 1) Data Definition Language (DDL) DDL berfungsi lebih ke dalam manipulasi struktur dari database. DDL digunakan untuk membuat tabel, memuat key atau indeks, membuat relasi antartabel. Beberapa statement atau sintaks yang sering dijumpai adalah sebagai berikut. • CREATE TABLE, bertugas membuat tabel • CREATE INDEX, bertugas membuat suatu indeks dalam tabel • DROP TABLE, bertugas untuk menghapus suatu tabel • ALTER TABLE, bertugas untuk mengubah struktur suatu table DDL merupakan suatu perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut serta hubungan antartabel. 2) Data Manipulation Language (DML) http://digilib.mercubuana.ac.id/ 33 SQL juga memiliki sintaks-sintaks yang digunakan dalam proses Insert, Update atau Delete ke dalam suatu database. Sintaks-sintaks tersebut disebut dengan Data Manipulation Language yang merupakan bagian dari SQL. • INSERT, bertugas untuk menambahkan data ke dalam suatu tabel dalam database • UPDATE, bertugas untuk mengupdate (mengubah) data dalam suatu tabel pada database • SELECT, bertugas untuk mengakses data dari suatu tabel dalam database • DELETE, bertugas untuk menghapus data dari suatu tabel dalam database 3) Data Control Language (DCL) Data control language (DCL) merupakan kelompok perintah yang berisi un- tuk mengendalikan pengaksesan data DCL digunakan untuk menangani masalah keamanan database server. Pengelompokkan dalam perintah DCL ini adalah Grant dan Revoke. • GRANT, pernyataan Grant ini digunakan untuk memberikan atau mengizinkan seorang user untuk mengakses tabel dalam database tertentu. • REVOKE, pernyataan Revoke ini digunakan untuk mencabut suatu hak akses dalam database tertentu. 2.7.3 MySQL Raharjo (2015) mendefinisikan MySQL merupakan software RDBMS (atau server database) yang dapat mengelola database dengan sangat cepat, dapat menampung data dalam jumlah sangat besar, dapat diakses banyak user (multi-user) dan dapat melakukan suatu proses secara sinkron atau berbarengan (multithreaded). Lisensi MySQL terbagi menjadi dua, yakni produk open source di bawah GNU General Public License (gratis) atau versi komersial (berbayar). Dalam situs resminya, MySQL (http://www.mysql.com/about/) merupakan open source database yang paling popular di dunia. Dengan kinerja yang telah terbukti, keandalan dan kemudahan untuk penggunanya, MySQL telah menjadi pilihan basis data yang terkemuka untuk aplikasi berbasis web, dan digunakan oleh perusahaan web terkemuka seperti Facebook, Twitter, Youtube, Yahoo dan masih banyak lagi. http://digilib.mercubuana.ac.id/ 34 2.7.4 phpMyAdmin dalam situs resminya phpMyAdmin (https://www.phpmyadmin.net/) adalah perangkat lunak gratis yang ditulis dalam PHP, yang dimaksudkan untuk mengerjakan MySQL melalui web. phpMyAdmin mendukung berbagai operasi pada MySQL dan MariaDB. Operasi yang biasa dilakukan (mengelola database, tabel, kolom, relasi, indeks, user, perizinan akses database, dll.) dapat dijalankan melalui user interface. XAMPP XAMPP (https://www.apachefriends.org/about.html) adalah kompilasi dari perangkat lunak gratis (sama dengan distribusi Linux), bebas biaya dan bebas diperbanyak di bawah ketentuan GNU General Public License. Tetapi hanya kompilasi tersebut saja yang diterbitkan dibawah GPL. Abdulloh (2014) menjelaskan XAMPP adalah salah satu paket installer yang berisi Apache yang merupakan web server tempat menyimpan file-file yang diperlukan website dan phpMyAdmin sebagai aplikasi yang digunakan untuk perancangan database MySQL. Dalam menginstall paket XAMPP, pengguna akan mendapatkan paket program PHP, MySQL dan Apache. Dimana PHP adalah bahasa pemrogramannya, MySQL untuk penyimpanan data atau database dan Apache untuk web server atau mesin yang berfungsi menjalankan skrip PHP di sisi server lokal (Nugroho, 2013). 2.8.1 PHP Menurut PHP (http://php.net/) merupakan scripting language multi-guna yang banyak digunakan khususnya pada pengembangan aplikasi berbasis web. Menurut Amanatidis dan Chatzigeorgiou (2016) bahasa scripting sangat mudah untuk digunakan, khususnya ditafsirkan bahasa pemrograman yang mendukung penulisan data bebas tetapi dengan sangat cepat berkembang menjadi kuat, umum dan bahasa pengembangan web tingkat tinggi. Popularitas bahasa scripting saat ini sangat terlihat jelas pada open source penyedia repository hosting seperti SourceForge dan GitHub diantaranya PHP, Javascript, Phyton, Perl dan http://digilib.mercubuana.ac.id/ 35 Ruby yang digunakan untuk mengembangkan client and server side programming. Pengembangan aplikasi web menggunakan scripting language PHP karena merupakan pada umumnya PHP adalah konteks dari web dan secara luas digunakan oleh LAMP platform (Linux-Apache-MySQL-PHP). 2.8.2 Apache Apache (https://httpd.apache.org/ABOUT_APACHE.html) dalam situs resminya menjelaskan bahwa Apache HTTP Server Project merupakan usaha pengembangan perangkat lunak kolaboratif yang bertujuan menciptakan pengimplementasian source code HTTP (web) server yang kuat, komersil, memiliki ciri dan bebas tersedia. Unified Modeling Language (UML) Zhang et al (2016) menjelaskan Unified Modeling Language merupakan standar dari notasi diagram (dikelola oleh Object Management Group) yang menyediakan seperangkat aturan untuk menggambarkan objek beserta hubungan/relasinya di dalam suatu sistem. UML dapat dikatakan sebagai alat awal untuk menentukan spesifikasi teknis aplikasi komputer berorientasi objek sebelum kemudian diterjemahkan ke dalam bahasa pemrograman tingkat tinggi. Denis et al (2012) menjelaskan Unified Modeling Language adalah standar seperangkat teknik diagram yang menyediakan representasi grafis dalam pemodelan proyek pengembangan sistem mulai dari tahap analisis sampai pada tahap implementasi. Saat ini sebagian besar sistem berorientasi objek dan pendekatan desain menggunakan UML untuk menggambarkan perkembangan sistem. UML menggunakan seperangkat set diagram yang berbeda-beda dalam mendeskripsikan dari sudut pandang yang berbeda-beda pada perkembangan sistem. Diagram tersebut dibagi menjadi dua klasifikasi, structure dan behavior. Diagram structure diantaranya Class, Object, Package, Deployment, Component dan Composite Structure Diagram. Sedangkan diagram behavior diantaranya Activity, Sequence, Communication, Interaction Overview, Timing, Behavior State Machine, Protocol State Machine dan Use Case Diagram. http://digilib.mercubuana.ac.id/ 36 2.9.1 Use Case Diagram Menurut Denis et al (2012) use case adalah penggambaran umum yang mewakili alur bisnis dari sistem yang berinteraksi dengan sekitarnya. Use case menggambarkan aktivitas yang dilakukan oleh pengguna sistem. Pemodelan usecase juga sering dikatakan sebagai tampilan fungsional dari proses bisnis agar pengguna dapat melihat alur prosesnya. Terdapat unsur-unsur pada use case untuk menggambarkannya secara visual. Unsur-unsur dari use case diagram adalah Actor, Use case, Subject Boundary dan Set of Relationship. Berikut unsur-unsur beserta contoh use case diagram. 1) Actor, orang atau sistem yang berperan dalam sebuah sistem. 2) Use case, menggambarkan bagian penting dari fungsi suatu sistem. 3) Subject boundary, ruang lingkup dari suatu subjek, misalnya sebuah sistem atau proses bisnis individu. 4) Association, merupakan konektor atau penghubung antara actor dan use case. Association juga dapat dikatakan sebagai komunikasi antara actor dan use case. http://digilib.mercubuana.ac.id/ 37 Tabel 2.2 Sintaks untuk Use Case Diagram [Denis et al, 2012] http://digilib.mercubuana.ac.id/ 38 Gambar 2.3 Contoh Use Case Diagram [Denis et al, 2012] 2.9.2 Activity Diagram Activity diagram memberikan representasi tindakan-tindakan dan keputusan-keputusan yang terjadi saat beberapa fungsi dilakukan (Pressman, 2012). Denis et al (2012) menjelaskan Activity diagram juga memiliki unsur-unsur untuk menggambarkan aktivitas primer dan hubungan antar activity dalam suatu proses. Unsur tersebut adalah Action and Activities, Object Nodes dan Control Flows and Object Flows. Berikut unsur beserta contoh activity diagram. 1) Action and Activities, action digunakan untuk mewakili suatu proses atau tindakan. Sedangkan activities merupakan sekumpulan dari action. Biasanya, hanya activities yang digunakan untuk menampilkan proses bisnis atau pemodelan alur kerja. Pada kebanyakan kasus, setiap activities terhubung dengan use case. 2) Object Nodes, action and activities biasanya dimodifikasi atau mentransformasikan suatu objek. Object nodes inilah yang mewakili hal tersebut. Object nodes digambarkan sebagai persegi panjang. http://digilib.mercubuana.ac.id/ 39 3) Control Flows and Object Flows, control flows merupakan jalur eksekusi dari alur proses bisnis. Control flows digambarkan dengan tanda panah sebagai arah dari alur proses tersebut. Control flows hanya bisa digunakan untuk sebuah action atau activities. Sedangkan object flows merupakan alur objek dari suatu proses bisnis yang menunjukkan alur dari sebuah action atau activities ke action atau activities lainnya. Tabel 2.3 Sintaks Activity Diagram [Denis et al, 2012] http://digilib.mercubuana.ac.id/ 40 Gambar 2.4 Contoh Activity Diagram [Denis et al, 2012] 2.9.3 Class Diagram Class diagram adalah model statis yang menggambarkan sebuah kelas dan hubungan antarkelas tersebut yang tetap konstan di dalam sistem dari waktu ke waktu. Class diagram menggambarkan sebuah kelas dimana terdapat behavior dan states dan dengan hubungan antarkelas tersebut. 1) Class, merepresentasikan orang, tempat atau sesuatu yang sistem butuhkan untuk menangkap dan menyimpan informasi. Setiap kelas memiliki attribute dan operation. 2) Association, menggambarkan hubungan antara actions atau fungsi class. http://digilib.mercubuana.ac.id/ 41 Tabel 2.4 Sintaks Class Diagram [Denis et al, 2012] http://digilib.mercubuana.ac.id/ 42 Gambar 2.5 Contoh Class Diagram [Denis et al, 2012] 2.9.4 Sequence Diagram Sequence diagram mengilustrasikan objek pada use case dan pesan yang muncul diantaranya dari waktu ke waktu untuk satu use case. Pada dasarnya objek-objek tersebut berinteraksi secara terurut atau sekuensial. Hal ini sangat membantu untuk memahami use case yang rumit. http://digilib.mercubuana.ac.id/ 43 Tabel 2.5 Sintaks Sequence Diagram [Denis et al, 2012] http://digilib.mercubuana.ac.id/ 44 Gambar 2.6 Contoh Sequence Diagram [Denis et al, 2012] Javascript Menurut w3school (http://www.w3schools.com/js/) Javascript merupakan bahasa pemrograman HTML dan web. Javascript adalah [………..] David (2010) menjelaskan terdapat dua acara memasukkan Javascript ke dalam halaman web. 1) Memasukkan Javascript langsung ke halaman web diantara elemen SCRIPT. <html> <body> <script type=“text/javascript”> document.write(“Welcome to JavaScript”); </script> </body> </html> 2) Memasukkan Javascript melalui teks file dan mengkoneksikan halaman web ke teks file tersebut. <script type=“text/javascript” src=“popup.js”> </script> http://digilib.mercubuana.ac.id/ 45 Cascading Style Sheet (CSS) Definisi menurut w3school (http://www.w3schools.com/css/) Cascading Style Sheet (CSS) adalah bahasa yang digunakan untuk mendeskripsikan style pada suatu dokumen HTML. Situs lainnya World Wide Web Consortium atau W3C (https://www.w3.org/Style/CSS/#specs) mendefinisikan CSS adalah mekanisme sederhana untuk menambahkan style atau gaya (misalnya font, warna, ukuran) ke dokumen web. Sedangkan menurut Mozilla (https://developer.mozilla.org/en-US/docs/Web/CSS) Developer CSS adalah Network bahasa stylesheet yang digunakan untuk mengambarkan tampilan dari sebuah dokumen yang tertulis pada HTML atau XML. CSS juga menggambarkan bagaimana elemen-elemen pada dokumen tersebut seharusnya terlihat di layar, kertas, penulisan atau media lainnya. CSS merupakan salah satu bahasa inti dari open web dan memiliki standarisasi spesifikasi dari W3C. Menurut Abdulloh (2016) Cascading Style Sheet (CSS) adalah skrip yang digunakan untuk mengatur desain web. Walaupun HTML mempunyai kemampuan untuk mengatur tampilan website, namun kemampuannya masih terbatas. Fungsi CSS ini memberikan pengaturan lebih lengkap agar struktur website yang dibuat dengan HTML terlihat lebih rapih dan elegan. jQuery Menurut Lindley (2012) Istilah fungsi jQuery mengacu pada fungsi konstruktor jQuery (jQuery() atau alias $()) yang digunakan untuk membuat instance dari suatu objek jQuery. Chaffer dan Swedberg (2013) menjelaskan peranan dari jQuery sebagai berikut. 1) Mengakses elemen pada dokumen web dengan mudah. 2) Memodifikasi tampilan halaman web 3) Mengubah isi dari dokumen 4) Menanggapi interaksi dari user 5) Perubahan dengan tampilan animasi dapat dibuat pada dokumen 6) Dapat menerima informasi dari server tanpa me-refresh halaman http://digilib.mercubuana.ac.id/ 46 Bootstraps Dalam situs resminya Bootstrap (http://getbootstrap.com/) merupakan framework HTML, CSS dan Javascript yang sangat popular saat ini oleh para pengembang web. Dengan adanya Bootstrap, pembuatan front-end web menjadi lebih mudah dan cepat. Ini dibuat untuk semua kalangan pengguna dengan berbagai tingkat keahlian, mendukung semua perangkat dan proyek apapun. Aplikasi Pendukung Dalam proses pembuatan aplikasi ini, terdapat beberapa macam software yang digunakan, diantaranya Text Editor dan Aplikasi Pengolah Grafis. 1) Text Editor Digunakan untuk menuliskan skrip HTML, CSS, PHP dan Javascript. Ada banyak text editor yang dapat digunakan diantaranya Notepad++, Adobe Dreamweaver dan sebagainya (Abdullah, 2014). 2) Aplikasi Pengolah Gambar Menurut Binanto (2010) gambar dibuat dengan dua acara yaitu bitmap dan vektor. Perangkat lunak untuk mengolah bitmap antara lain adalah GIMP dan Adobe Photoshop. Sedangkan perangkat lunak untuk mengolah vektor diantaranya adalah InkScape dan CorelDraw. Transaksi Elektronik Dalam UU RI Nomor 11 Tahun 2008 tentang informasi dan transaksi elektronik pasal 1 ayat 1 menjelaskan informasi elektronik adalah satu atau sekumpulan data elektronik, termasuk tetapi tidak terbatas pada tulisan, suara, gambar, peta, rancangan, foto, electronic data interchange (EDI), surat elektronik (electronic mail), telegram, teleks, telecopy atau sejenisnya, huruf, tanda, angka, kode akses, symbol, atau perforasi yang telah diolah dan memiliki arti atau dipahami oleh orang yang mampu memahaminya. Kemudian pada pasal 1 nomor 2 dilanjutkan dengan transaksi elektronik adalah perbuatan hukum yang dilakukan dengan menggunakan komputer, jaringan komputer dan/atau media elektronik lainnya. Selanjutnya, pasal 17 menjelaskan sebagai berikut. http://digilib.mercubuana.ac.id/ 47 1) Penyelenggaraan transaksi elektronik dapat dilakukan dalam ruang lingkup publik atau privat 2) Para pihak yang melakukan transaksi elektronik sebagaimana yang dimaksud ayat (1) wajib beritikad baik dalam melakukan interaksi dan/atau pertukaran informasi elektronik dan/atau dokumen elektronik selama transaksi berlangsung 3) Ketentuan lebih lanjut mengenai penyelenggaraan transaksi elektronik sebagaimana dimaksud pada ayat (1) diatur dalam peraturan pemerintah Raditio (2014) menjelaskan bahwa dalam kehidupan sehari-hari bentuk transaksi menggunakan teknologi dapat kita lihat dalam wujud electronic transaction (e-banking) melalui ATM, phone banking, internet banking dan lain sebagainya sebagai bentuk baru delivery channel memodernisasi setiap transaksi. Secara umum saat ini terdapat tiga basis instrument pembayaran, yakni: 1) Paper-based: cek, bilyet giro dan nota debet 2) Card-based: kartu kredit, kartu debet dan kartu ATM 3) Electronic-based: e-money, internet banking, mobile banking, electronic mall e-Business Menurut Yakub (2012) e-business secara umum adalah berbagai aktivitas di dalam perusahaan, baik yang berkaitan secara langsung maupun tidak langsung dengan berbagai proses pertukaran barang atau jasa dengan memanfaatkan teknologi digital (komputer, telekomunikasi, teknologi informasi dan sebagainya). Seluruh rangkaian proses yang sering dijumpai dalam aktivitas bisnis masuk ke dalam domain definisi e-business, seperti; Supply Chain Management (SCM), Demand Chain Management (DCM) dan Enterprise Resource Planning (ERP). Nilai (value) yang ditawarkan oleh e-business paling tidak ada lima keuntungan yang ditawarkan. 1) Efficiency Manfaat yang paling cepat diperoleh perusahaan yang terjun ke dunia e- business adalah perbaikan tingkat efisiensi. Pemanfaatan teknologi informasi di berbagai rangkaian bisnis akan terlihat bagaimana perusahaan dapat mengurangi http://digilib.mercubuana.ac.id/ 48 biaya operasional yang biasa dikeluarkan. E-Mail dapat mengurangi biaya komunikasi dan pengiriman dokumen, call center dapat mengurangi biaya pelayanan pelanggan, website dapat mengurangi biaya pemasaran dan voip dapat mengurangi biaya telekomunikasi. 2) Effectiveness Manfaat ini dirasakan ketika terjadi perubahan-perubahan yang cukup signifikan dalam melakukan aktivitas operasional. E-technology, perusahaan dapat berhubungan dengan pelanggan secara non stop. E-supply chain, manajemen dapat meningkatkan pelayanan kepada pelanggannya. 3) Reach Manfaat yang diperoleh dari perusahan adalah kemampuan e-technology di dalam memperluas jangkauan dan ruang gerak perusahaan. Melalui internet, secara tidak langsung telah menghubungkan perusahaan dengan ratusan juta calon pelanggan. Kemampuan ekspansi yang sedemikian mudah untuk menembus batas ruang dan waktu tanpa memerlukan biaya yang mahal. 4) Structure Manfaat penerapan e-business adalah terciptanya berbagai jenis produk maupun jasa baru akibat berkonvergensi berbagai sektor industri yang selama ini secara struktur terlihat berdiri sendiri. Sebuah toko dapat menjual dengan cara lelang, paket liburan yang mengemas berbagai produk seperti; transportasi, hotel dan lokasi wisata, dan toko buku yang berfungsi sebagai perpustakaan. Konsep brick-and-mortar telah menjadi click-and-mortar, benar-benar mengubah perilaku perusahaan dalam melakukan pendekatan bisnis. 5) Opportunity Manfaat terakhir adalah terbukanya peluang yang lebar bagi pelaku bisnis untuk berinovasi menciptakan produk atau jasa baru akibat selalu ditemukan etechnology baru dari masa ke masa. Model bisnis (business model) baru selalu ditawarkan oleh beraneka ragam situs yang berkembang pesat di internet. Bidang pendidikan tercatat semakin maraknya situs-situs penyelenggara pendidikan (eschool), maupun pelatihan (e-training). Bidang keuangan telah berdiri lembagalembaga keuangan virtual semacam e-banking, e-insurance dan e-stock. Bidang produksi (manufacturing) berkembang perusahan-perusahaan http://digilib.mercubuana.ac.id/ yang siap 49 memberikan bisnis outsourcing pada bidang e-procurement, e-logistics, einventory dan e-distribution. Aplikasi e-business dianggap sebagai mekanisme yang memungkinkan peningkatan kompetensi organisasi, menyediakan peluang baru bagi organisasi dalam menyediakan barang dan jasa dan sabagai nilai tambah dengan cara meningkatkan efisiensi dan efektivitas siklus suplai (Ciarniene and Stankeviciute, 2015). Gambar 2.7 Ilustrasi e-Business (Sumber: http://www.iticale.com/e-business) Electronic Data Interchange Menurut EDI Basics (http://www.edibasics.com/what-is-edi/) Electronic Data Interchange (EDI) adalah pertukaran dokumen bisnis komputer ke komputer lainnya antar sesama rekan bisnis dengan standar format elektronik. http://digilib.mercubuana.ac.id/ 50 Gambar 2.8 Ilustrasi proses EDI (Sumber: http://www.edibasics.com/what-is-edi/) Sedangkan Electronic Data Intechange Indonesia atau EDII (http://www.ediindonesia.co.id/index.php?act=edi) menjelaskan Pertukaran Data Elektronik (Electronic Data Interchange / EDI) adalah transmisi data terstruktur antar organisasi secara elektronis. Proses ini dapat digunakan untuk mengirimkan dokumen elektronis ataupun data perusahaan dari satu komputer ke komputer lainnya atau antara satu trading partner ke trading partner lainnya tanpa campur tangan manusia. Standar EDI didesain secara independen dari sisi metode komunikasi maupun teknologi perangkat lunaknya. EDI dapat ditransmisikan menggunakan berbagai metodologi yang disepakati antara pengirim dan penerima. Termasuk dalam metodologi ini adalah berbagai variasi teknologi seperti modem (asynchronous dan synchronous), FTP, e-mail, HTTP, AS1, AS2 dan lain-lain. Namun perlu dibedakan antara dokumen EDI dan metode untuk mengirimkan dokumen tersebut. http://digilib.mercubuana.ac.id/ 51 Exforsys Inc (http://www.exforsys.com/tutorials/edi/electronic-data- interchange.html) menjelaskan pada dasarnya EDI terbuat dari empat elemen. 1) Pada dasarnya EDI menggunakan media transmisi elektronik seperti VAN (Value Added Network), namun seiring berkembangnya teknologi, saat ini sudah ada internet 2) EDI menggunakan format pesan terstruktur berdasarkan standar yang telah disepakati 3) Menyediakan pengirimin dokumen yang relatif cepat dari pengirim ke penerima 4) EDI menyediakan komunikasi langsung antar aplikasi, bukan antar komputer http://digilib.mercubuana.ac.id/