BAB 2 TINJAUAN PUSTAKA 2.1. Teori yang Berkaitan dengan Software Engineering Berikut ini berisikan teori-teori umum yang digunakan sebagai landasan teori berpikir dalam penulisan skripsi ini: 2.1.1. Program Aplikasi 2.1.1.1. Definisi Program Program merupakan komponen penting dalam penelitian ini. Menurut Budi Sutedjo & Michael AN (2004:3), program adalah “ekspresi, pernyataan, atau kombinasi yang disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah untuk menyelesaikan masalah
yang
diimplementasikan
dengan
menggunakan
bahasa
pemrograman, sehingga dapat dieksekusi oleh komputer”. Sedangkan Yulikuspartono (2009:29) mengemukakan bahwa, “program merupakan sederetan instruksi atau statement dalam bahasa yang dimengerti oleh komputer yang bersangkutan”. Dari kedua definisi tersebut, dapat disimpulkan bahwa program adalah sekumpulan instruksi yang ditulis oleh programmer untuk dieksekusi oleh komputer. 2.1.1.2. Definisi Aplikasi Jogiyanto H.M (2005) lebih spesifik menyatakan bahwa aplikasi merupakan “penerapan, menyimpan sesuatu hal, data permasalahan, dan pekerjaan ke dalam suatu media atau sarana yang digunakan untuk menerapkan atau mengimplementasikan hal atau permasalahan tersebut sehingga berubah menjadi bentuk yang baru tanpa menghilangkan nilainilai dasar hal, data, permasalahan atau pekerjaan”. Jadi, dalam hal ini hanya bentuk dari tampilan data yang berubah, sedangkan isi yang termuat dalam data tersebut tidak mengalami perubahan. Dengan demikian, program aplikasi adalah sederetan kode yang digunakan untuk mengatur komputer supaya dapat melakukan pekerjaan sesuai dengan keinginan programmer atau user.
7
8 2.1.2. Waterfall Model Process Menurut Roger S. Pressman (2010:39), waterfall model disebut juga sebagai classic life cycle. Metode pengembangan waterfall menunjukkan pengembangan yang sistematis untuk pengembangan perangkat lunak. Metode ini dilakukan secara berurutan atau linier.
Gambar 2.1. Metode Pengembangan Waterfall 2.1.2.1. Communication Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. a. Analisa kebutuhan melalui kuisioner b. Berapa jumlah dan fungsionalitas yang dapat dibuat c. Bentuk tampilan akhir yang dihendaki d. Biaya rilis modul (tidak hanya termasuk biaya pengembangan program, tetapi juga termasuk biaya training dan marketing). 2.1.2.2. Planning Pada tahap ini dilakukan aktifitas seperti perencanaan jadwal pengembangan, keeping tracks dari proses dan estimasi kapan proyek akan dapat diselesaikan. Planning juga bahkan digunakan untuk menentukan resiko apa saja yang mungkin muncul selama pengembangan proyek. Planning mendeskripsikan bagaimana tugas-tugas teknikal akan dikerjakan dan sumber daya apa saja yang akan diperlukan dan cara penggunaannya. 2.1.2.3. Modelling Modeling adalah fase penting karena arsitektur dari sistem dirancang pada tahap ini. Analisis dilaksanakan dan berdasarkan analisis itulah perangkat lunak akan dibuat. Model dalam pengembangan perangkat lunak
9 akan dibuat tergantung pada requirements yang dikumpulkan pada saat awal, dan planning yang dikerjakan pada tahap kedua. 2.1.2.4. Construction Perancangan kode program akan dilaksanakan pada tahap ini. Coding diselesaikan berdasarkan model yang didesain pada fase modeling. Jadi, pada tahapan ini perangkat lunak akan dikembangkan dan akan dilakukan testing. 2.1.2.5. Deployment Merupakan tahapan akhir dari produk yang sudah diterima dan diinstalasi di komputer client. Feedback akan diambil dari client untuk memastikan kualitas dari produk. 2.1.3. Object Oriented Programming Menurut Bennett, McRobb, dan Farmer (2006), terdapat beberapa konsep dalam Object Oriented Programming, diantaranya: a. Objek Objek terdiri dari state dan behavior. Sebuah objek menyimpan state pada variabel dan menujukkan behavior melalui fungsi. b. Class Class adalah sekumpulan objek yang memiliki state dan behavior yang sama. c. Instance Instance adalah objek tunggal yang memiliki nilai state yang secara keseluruhan berbeda dengan objek lain. d. Generalisasi Generalisasi adalah konsep yang mengelompokkan state dan behavior yang sama dari beberapa class menjadi class tersendiri. Berikut merupakan ciri-ciri dari generalisasi: 1) Inheritance Mekanisme untuk mengimplementasikan generalisasi dalam bahasa pemrograman berorientasi objek. Class yang memiliki state dan behavior dari hasil pengelompokkan disebut superclass sedangkan class yang memiliki state dan behavior yang unik karena pengelompokkan disebut subclass.
10 2) Operasi transitif Operasi yang menurunkan state dan behavior dari superclass ke subclass. 3) Disjoint nature Aspek dimana class harus memiliki state dan behavior yang unik dari class lain yang satu level. 4) Message Passing Message passing adalah komunikasi yang dilakukan objek untuk meminta informasi tertentu dari objek lain dengan menggunakan fungsi dari objek lain. 2.1.4. Eight Golden Rules Eight Golden Rules (Shneiderman, 2010:88-89) merupakan prinsip dalam pembuatan user interface yang diterapkan dalam berbagai sistem interaksi. Berikut merupakan isi dari Eight Golden Rules tersebut: 1.
Konsistensi Urutan action yang konsisten harus dilakukan dalam berbagai situasi; terminology yang serupa harus digunakan daman prompts, menu, dan help screens; serta warna, tampilan, capitalization, jenis huruf harus konsisten.
2.
Memungkinkan penggunaan secara universal Menyadari beragamnya pengguna web application saat ini, desain program
dilakukan
secara
universal,
sehingga
perbedaan
kemampuan, rentang usia, keterbatasan dan keragaman teknologi yang ada tidak menjadi penghalang dalam memperkaya antarmuka dan kualitas sistem. 3.
Memberikan umpan balik yang informatif Untuk setiap tindakan pengguna, disertakan suatu sistem umpan balik. Seperti munculnya pesan kesalahan jika pengguna melakukan kesalahan tertentu.
11 4.
Merancang dialog untuk menghasilkan suatu penutupan Urutan tindakan diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya.
5.
Memberikan penanganan kesalahan yang sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sedehana dan mudah dipahami untuk penanganan kesalahan.
6.
Mudah kembali ke tindakan sebelumnya Hal ini dapat mengurangi kekhawatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan; sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.
7.
Mendukung tempat pengendali internal (internal locus of control) Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden.
8.
Mengurangi beban ingatan jangka pendek Keterbatasan
ingatan
manusia
membutuhkan
tampilan
yang
sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.
12
2.2. Teori yang Terkait Tema Penelitian (Tematik) 2.2.1. Definisi Pengelolaan Berdasarkan Kamus Besar Bahasa Indonesia (KBBI), pengelolaan merupakan proses, cara, perbuatan mengelola. Nanang Fatah (2004:1) berpendapat bahwa dalam proses pengelolaan terlibat fungsi-fungsi pokok yang ditampilkan oleh seorang manajer atau pimpinan, yaitu perencanaan (planning), pengorganisasian
(organizing),
pemimpin
(leading),
dan
pengawasan
(controlling). Pengelolaan adalah proses yang memberikan pengawasan pada semua hal yang terlibat di pelaksanaan kebijaksanaan dan pencapaian tujuan. 2.2.2. Definisi Permintaan dan Penawaran Menurut Pracoyo (2006), permintaan diartikan sebagai jumlah barang dan jasa yang diminta oleh seseorang atau konsumen atau pembeli pada waktu tertentu pada berbagai tingkat harga. Permintaan adalah berbagai jumlah barang yang diminta oleh konsumen pada berbagai tingkat harga pada periode tertentu. Penawaran diartikan sebagai kesediaan penjual untuk menjual berbagai jumlah produk atau jasa pada berbagai tingkat harga dalam waktu tertentu. Penawaran juga dapat diartikan sebagai jumlah komoditas atau output, baik berupa barang atau jasa yang akan dijual kepada konsumen. 2.2.3. Definisi Home Care Services Home care adalah istilah yang mengacu kepada perawatan, pemeliharaan, dan perlindungan terhadap rumah tangga, beserta segala aktifitas, anggota keluarga dan pengurusan keseharian yang ada di dalamnya. Services adalah suatu kegiatan atau urutan kegiatan yang terjadi dalam interaksi langsung antara seseorang dengan orang lain, untuk menyediakan kepuasan (Kamus Besar Bahasa Indonesia). Home care services adalah pelayanan yang disediakan untuk memenuhi kebutuhan pemeliharaan akan rumah tangga secara menyeluruh, guna memudahkan pekerjaan dari penggunanya. Kegiatan ini dilakukan oleh seseorang atau organisasi yang menyediakan jasa, baik perorangan (sendiri), maupun berada di bawah naungan organisasi lain.
13 2.2.4. Definisi Web Web adalah sebuah sistem dengan informasi yang disajikan dalam bentuk teks, gambar, suara dan lain-lain yang tersimpan dalam sebuah server (Simarmata, 2010: 47). Web merupakan kumpulan informasi pada server komputer yang terhubung satu sama lain dalam jaringan internet maupun intranet. Sedangkan aplikasi berbasis web (web based) secara prinsip menyerupai aplikasi dalam komputer biasa. Yang membedakan adalah aplikasi web based menggunakan tag-tag HTML sebagai dasar tampilan, sedangkan aplikasi program komputer menggunakan berbagai platform bahasa pemrograman. Aplikasi web terdiri dari beberapa golongan, yang digunakan adalah proses inisialisasi data master, dimana proses yang dilakukan adalah pengisian satu atau beberapa tabel yang akan digunakan sebagai referensi program aplikasi. Pengisian data master secara umum terdiri dari input data, verifikasi data, proses insert data jika data belum terdaftar sebelumnya, atau update data jika data telah ada sebelumnya, serta delete data jika data hendak dihapus dari tabel master. 2.2.5. Definisi Internet Internet merupakan kependekan dari Interconnection Networking. Menurut Turban, et al. (2006), pada dasarnya internet merupakan suatu jaringan komputer yang sangat besar, yang terbentuk dari jaringan-jaringan kecil yang ada diseluruh dunia, yang selalu terhubung satu sama lain. 2.2.6. Sejarah Internet Jaringan internet sukses dikembangkan dan diuji coba pertama kali pada tahun 1969 oleh US Department of Defense dalam proyek ARPAnet (Advanced Research Project Network), guna mengatasi masalah komunikasi pada lembaga penelitian. Semenjak itu, perkembangan internet berlangsung amat pesat. Salah satu faktor yang berpengaruh terhadap banyaknya pemakaian internet diseluruh bagian dunia adalah dengan berkembangnya WWW (World Wide Web), yang dirancang oleh Tim Benners-Lee dan staf ahli di laboratorium CERN (Conseil European pour La Recherche Nucleaire) di Jenewa, Swiss pada tahun 1991 yang mengakibatkan terjadinya revolusi dalam penggunaan internet. Internet tidak lagi hanya digunakan untuk keperluan pemerintah tetapi juga digunakan dalam berbagai segi kehidupan di masyarakat.
14 Berbagi segi tersebut misalnya, dari segi komunikasi secara elektronik, baik dengan IRC (Internet Relay Chatting) maupun pengiriman surat melalui email, hingga segi bisnis yang mulai bayak menggunakan internet sebagai sarana promosi produk perusahaan yang dapat pula dikembangkan media komunikasi perusahaan itu sendiri yaitu sebagai media pemesanan yang akan meningkatkan hubungannya dengan masyarakat baik melalui umpan balik yang diberikan pelanggan maupun sebagai public relation perusahaan. 2.2.7. Kegunaan Internet Banyak kegunaan yang menguntungkan yang didapatkan dari penggunaan internet dalam semu bidang (bisnis, akademis, pemerintahan, organisasi, dan sebagainya), antara lain: a. Informasi yang didapatkan lebih cepat dan murah. b. Mengurangi biaya kertas dan biaya distribusi, contohnya koran, brosur dan majalah c. Sebagai media promosi online, contoh: 1) Image Company 2) Pengenalan dan pemesanan produk d. Komunikasi interaktif 1) Email 2) Dukungan pelanggan dengan feedback e. Sebagai alat research dan pengembangan (development) f. Sebagai media untuk melakukan pertukaran data 2.2.8. PHP: Hypertext Preprocessor (PHP) PHP adalah kombinasi antara bahasa pemrograman dan aplikasi server (Abdul Kadir (2008:1)). PHP merupakan server-side scripting yang digunakan untuk membuat dan menjalankan aplikasi web server yang dinamis, interaktif dan mempunyai performansi tinggi. Aplikasi server adalah program yang terdiri atas teknik-teknik dalam satu paket yang meliputi: a. Ketangguhan bahasa pemrograman b. Pengaksesan basis data ke media penyimpanan yang permanen. c. Mendukung protokol internet, khususnya HTTP dan e-mail. PHP mampu berhubungan dengan basis data dan dapat diintegrasikan dengan HTML. PHP dapat berjalan dalam web server yang berbeda dalam
15 sistem operasi yang berbeda pula. PHP ditulis dalam bahasa C, sehingga sebagian besar sintak PHP mirip dengan C dan Perl. Beberapa keuntungan menggunakan PHP adalah sebagai berikut: a. Open source, semua source code PHP tesedia. b. PHP
diterbitkan
secara
gratis,
tidak
ada
biaya
dalam
mengimplementasikan. c. Cross-platform, PHP dapat berjalan dalam sistem operasi Windows 98, Windows NT dan Macintosh. d. PHP juga dapat berjalan pada server Microsoft Peronal Web Server, IIS dan Apache. e. Embedded-html, karena itu PHP mudah dipelajari. 2.2.9. MySQL MySql
adalah
perangkat
lunak
server
basis
data
yang dapat
melayani banyak pengguna, dan dapat melakukan proses dalam waktu yang bersamaan (multi threaded) (Luke Welling, Laura Thompson (2008:1)). MySql juga sangat cepat dan fleksibel dan dapat menyimpan data yang berkapasitas besar. Dalam perancangannya, MySql mengutamakan kecepatan proses, ketangguhan dan kemudahan bagi penggunanya. Pada saat ini MySql adalah server basis data yang paling banyak diminati banyak perusahaan di dunia. MySql menyediakan lingkungan yang mudah dan efisien untuk menyimpan data dan mengakses basis data berkapasitas besar lebih cepat dari pada server basis data lainya. Keuntungan lainya adalah bahwa MySql tidak membutuhkan spesifikasi hardware yang mahal. MySql memungkinkan membuat aplikasi client untuk mengakses dan memanipulasi data di server basis data melalui basis data provider. Keuntungan utama menggunakan MySql adalah mudah digunakan, berkecepatan tinggi dan membutuhkan sedikit memori. 2.2.10. Adobe Dreamweaver Adobe Dreamweaver yang dulu bernama Macromedia Dreamweaver adalah program editor HTML professional untuk mendesain, mengkode dan mengembangkan situs, halaman web, serta aplikasi web. Tampilan fitur editing dalam Adobe Dreamweaver akan membantu dalam membuat sebuah halaman web tanpa harus menuliskan kode javascript maupun HTML. Dreamweaver
16 menawarkan environment yang intuitif untuk dengan cepat mengaplikasikan CSS properties, seperti gradients dan box shadows. Desainer dan developer pada tingkat mana saja bisa menggunakan advanced code hinting dan one-to-one broser rendering menggunakan WebKit engine untuk mengikuti standard web dan pengaplikasian terbaik selama membuat website dinamis pada beberapa devices. Dreamweaver juga memungkinkan untuk penggunaan ASP, PHP, ColdFusion, dan JavaScript. Desainer dapat melihat teks dan grafik muncul secara langsung dengan What You See Is What You Get (WYSIWYG). (James J. Manifold (2010:1)). 2.2.11. Web Browser Web browser adalah aplikasi yang berjalan pada komputer personal user atau di client side untuk menampilkan beragam grafik tampilan interaktif untuk mencari, menemukan, dan melihat dokumen, suara, animasi, dan sumber multimedia
lain
di
Web
(Tay
Vaughan,
2006:294).
Web
browser
menginterpretasikan kode HTML, termasuk teks, gambar, hypertext links, Javascript, dan Java Applets. Setelah melakukan rendering terhadap code HTML, browser akan menampilkan halaman yang sudah diformat. Beberapa web browser yang terkenal saat ini adalah Google Chrome, Opera, Microsoft Internet Explorer, dan lainnya. 2.2.12. XAMPP XAMPP adalah integrated server package yang terdiri atas web server Apache, database server MySQL, file server FileZilla, dan Mail Transport System Mercury. Melalui situs resmi XAMPP, www.apache.org, XAMPP adalah kompilasi dari software gratis, bebas biaya dan gratis untuk di-copy. 2.2.13. Zend Framework Dikutip dari website resmi Zend Framework, www.zend.com, Zend Framework adalah kerangka kerja open source yang digunakan utnuk mengembangkan aplikasi berbasis web dan services menggunakan bahasa pemrograman PHP. Zend Framework menggunakan 100% object oriented code, dan menggunakan sebagian besar fitur baru PHP 5.3, yaitu namespaces, late static binding, lambda functions, dan closures. Beberapa fitur dari Zend Framework diantaranya meliputi:
17 a. Semua komponen seluruhnya menggunakan 100% object-oriented code. b. Kopling yang lebih longgar serta minimalnya ketergantungan antar objek, sehingga memungkinkan komponen Zend Framework digunakan dalam pengembangan dengan framework lainnya. c. Implementasi Model View Controller (MVC) Extensible yang mendukung perluasan fitur dan lebih modular. d. Mendukung berbagai sistem basis data dan vendors, termasuk MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, dan Informix Dynamic Server. e. Mencakup 80% dari pustaka yang digunakan dalam pengembangan aplikasi web, sehingga meningkatkan kecepatan pengembangan dan fleksibilitas aplikasi f. Search engine friendly, dengan URL yang baik dan sistem routing yang bersahabat. g. Dibangun oleh Zend, yang didirikan oleh dua pengembang inti PHP, yaitu Andi Gutmans dan Zeev Suraski, dan didukung penuh untuk setiap peningkatan pada PHP. h. Aman, karena semua peralatan pemrograman dan kriptografi tersedia. i. Basis pengguna dan kontributor yang giat dan aktif, untuk mendapatkan bantuan dan umpan balik. j. Framework yang siap digunakan untuk kebutuhan perusahaan, berdasarkan sejarah sukses dari aplikasi bisnis yang penting dan tinggi penggunaannya, yang masih berjalan hingga saat ini. 2.2.14. Zend Studio Zend Studio adalah Integrated Development Environment (IDE) terintegrasi yang digunakan untuk mengembangkan, debugging, deploying dan melakukan manage terhadap aplikasi berbasis PHP. Zend Studio terintegrasi erat dengan Zend Server. Zend Studio secara otomatis akan mendeteksi adanya Zend Server, dan memungkinkan untuk dengan mudah menjalankan, debug dan profile aplikasi di Zend Server. Dengan Zend Studio kita bisa membuat dan melakukan test deployment packages dari
18 PHP code
ke Zend Server dengan deployment yang mudah dan konsisten.
Setelah deployment, kita bisa menggunakan Zend Server untuk mendeteksi performa dan fungsional serta dengan mudah menghasilkan kembali di Zend Studio untuk mengakselarasikan akar dari proses analisis. Code Traces dihasilkan oleh kemampuan monitoring Zend Server, yang bisa di export dari Zend Server dan kemudian di import langsung ke Zend Studio untuk analisa masalah yang mudah. 2.3. Hasil Penelitian atau Produk Sebelumnya 2.3.1. Trend Aplikasi Berbasis Web Menurut Stevic (2010: 67) dalam Overview of Current Trends and Chalenges In The Modern World of Internet, Web Applications and Services Journal, internet adalah kunci keberhasilan dari hidup dan zaman yang modern. Internet adalah media yang membuat hampir semua aspek dari komunikasi masa kini dan bisnis menjadi mungkin dilakukan. Internet menyisipkan seluruh industri telekomunikasi dan media dan juga seluruh field yang bisa dibayangkan dalam bidang bisnis dan industri. Efeknya sangat hebat yang sering disebut sebagai industry-changing. Internet menyebabkan perubahan signifikan dari peran-peran utama dalam beberapa industri saat ini. Internet merepresentasikan jaringan yang menggunakan protokol dan standar yang sama dalam menyampaikan informasi ke device apa saja selama ia tersedia dan menyediakan informasi untuk di routed dan untuk mencari jalan menuju tujuan akhirnya. Web adalah layanan paling populer dan sering digunakan oleh 90% pengguna. Hal ini berkisar pada software bernama web browser yang memungkinkan kita untuk mengakses berbagai konten dan data secara interaktif. Web adalah set of services yang diakses melalui web browser menggunakan mekanisme transportasi seperti HTTP. Aplikasi berbasis web adalah representasi dan penggunaan teknologi yang sama sebagai internet websites, tapi biasanya lebih advanced daripada presentasi website biasa, serta dikembangkan untuk meningkatkan business logic. Saat ini internet digunakan secara luas dalam social media, dimana ada penggabungan sites dari ribuan sampai jutaan orang-orang dan memungkinkan mereka untuk berkomunikasi, bersosialisasi dan bertukar ide serta pikiran. Social networks saat
19 ini sudah disadari oleh pebisnis professional sebagai media yang powerful dan sebagai pasar untuk promosi, menyediakan layanan dan produk dan komunikasi antar konsumen, pebisnis, serta potential partners yang memudahkan penyebaran bisnis dengan efektif secara global. Web memungkinkan untuk staying in sync, di mana data file kita dapat disimpan di berbagai devices, atau satu / lebih server di jaringan tertentu. Sekuritas menjadi bagian yang penting dalam hal ini, dimana segala sesuatu disimpan di web dan dapat diakses dari mana saja. Dengan cepatnya perkembangan teknologi informasi, teknologi World Wide Web telah digunakan secara luas pada berbagai aplikasi, seperti mesin pencari, sistem pembelajaran online, serta perdagangan elektronik. Aplikasiaplikasi tersebut digunakan oleh pengguna dengan latar belakang yang berbeda dalam hal pengetahuan mereka, keterampilan, serta kebutuhan (Chen, & Macredie, 2010: 1).
20