BAB II LANDASAN TEORI 1.1.
Teori Dasar Umum Berikut merupakan teori-teori dasar umum yang digunakan di dalam penulisan skripsi ini:
1.1.1. Keuangan Menurut Safir Senduk (2010 : 28) terdapat 3 pemikiran yang harus dimiliki sebagai seorang karyawan antara lain : a) Berapa pun gaji yang diberikan perusahaan kepada Anda, tidak sekali lagi tidak menjamin apakah Anda bisa menumpuk kekayaan. Berapa pun gaji yang Anda dapat, tidak menjamin apakah Anda bisa menumpuk kekayaan, yang menjamin adalah bagaimana cara Anda mengelola gaji tersebut, termasuk kalau gaji itu benar memang ngepas dengan kondisi Anda sekarang. b) Jangan selalu menjadikan kondisi Anda di rumah entah Anda banyak tanggungan, banyak utang, atau boros sebagai alasan untuk selalu minta naik gaji. Perusahaan hanya akan memberi Anda gaji sesuai dengan job description Anda, bukan disesuaikan dengan situasi dan kondisi di rumah Anda. Artinya, kalau anda merasa bahwa gaji Anda koq sepertinya nggak cukup untuk membiayai keluarga Anda yang anaknya banyak, yah, itu bukan salah perusahaan Anda. Toh ketika anda menambah anak, Anda nggak minta izin dulu „kan ke perusahaan ? c) Menjadi kaya bergantung 100% pada apa yang Anda lakukan terhadap keuangan Anda, tidak selalu pada apa yang diberikan perusahaan kepada Anda. Kalau Anda mau kaya, itu semua bergantung pada apa yang Anda lakukan terhadap penghasilan dan fasilitas yang Anda dapatkan.
1.1.2. Manajemen Keuangan Manajemen keuangan merupakan fungsi manajemen yang penting bagi semua orang. Karena pentingnya manajemen keuangan, maka banyak para ahli yang mempelajarinya. Berikut beberapa pengertian mengenai manajemen keuangan menurut para ahli. Manajemen keuangan (financial management) menurut Riyanto (2011) adalah sebagai berikut : 6
http://digilib.mercubuana.ac.id/
“Manajemen Keuangan adalah keseluruhan aktivitas yang bersangkutan dengan usaha untuk mendapatkan dana dan menggunakan dana atau mengalokasikan dana tersebut”. Adapun menurut Martono dan Agus (2010:4) manajemen keuangan adalah “Manajemen Keuangan menyangkut kegiatan perencanaan, analisis keuangan dan pengendalian keuangan dalam suatu organisasi”. Selanjutnya menurut Horne dan Wachowicz (2012:2) yang diterjemahkan oleh Mubarakah manajemen keuangan adalah “Manajemen Keuangan berkaitan dengan perolehan aset, pendanaan dan manajemen aset yang didasari beberapa tujuan umum”. Sedangkan menurut Gitman (2009:4) mengatakan bahwa “Managerial finance is concerned with the duties of financial manager in the business firm. Financial managers is actively manage the financial affairs of any type of business-financial and nonfinancial, private and public, large and small, profit-seeking and not-for-profit. They perform such vared financial tasks as planning credit to customers, evaluating proposed large expenditures, and raising money to fund the firm’s operation.” Berdasarkan beberapa pengertian di atas dapat disimpulkan bahwa manajemen keuangan merupakan segala kegiatan yang berhubungan dengan bagaimana memperoleh, menggunakan dan mengelola aset sesuai dengan tujuan.
1.1.2.1.
Fungsi Manajemen Keuangan Manajemen
Keuangan
merupakan
manajemen
(pengelolaan)
mengenai
bagaimana memperoleh, menggunakan dan mengelola aset sesuai dengan tujuan perusahaan. Dari pengertian tersebut menurut Horne dan Wachowicz (2012:2) terdapat 3 (tiga) fungsi manajemen keuangan, yaitu : 1. Keputusan Investasi Keputusan Investasi adalah fungsi manajemen keuangan yang penting dalam penunjang pengambilan keputusan untuk berinvestasi karena menyangkut tentang memperoleh dana investasi yang efisien, komposisi aset yang harus di pertahankan atau dikurangi. 2. Keputusan Pendanaan Kebijakan dividen perusahaan juga harus dipandang sebagai integral dari keputusan pendanaan perusahaan. Pada prinsipnya keputusan pendanaan menyangkut dengan keputusan apakah laba yang diperoleh oleh perusahaan harus 7
http://digilib.mercubuana.ac.id/
dibagikan kepada para pemegang saham atau ditahan guna pembiayaan investasi dimasa yang akan datang. 3. Keputusan Manajemen Aset Keputusan manajemen aset merupakan fungsi yang menyangkut tentang keputusan alokasi dana atau aset, komposisi sumber dana yang harus dipertahankan dan penggunaan modal baik yang berasal dari dalam perusahaan maupun luar perusahaan yang baik bagi perusahaan.
1.1.3. Perencanaan Keuangan Pribadi Personal finance merupakan segala aktivitas dan keputusan keuangan perorangan yang meliputi penganggaran, asuransi, tabungan, investasi, servis mengenai utang, hipotek dan masih banyak lagi. Keuangan pribadi ini harus dimulai dengan perencanaan keuangan (financial planning) yang tepat. Menurut Keown (2010) menyatakan ada 5 tahapan dasar untuk perencanaan keuangan pribadi yang harus dipertimbangkan yaitu: 1. Evaluasi kesehatan keuangan pribadi. Keown (2010) menyatakan bahwa pada tahap ini, perencanaan dimulai dengan mengetahui bagaimana keadaan finansial pribadi di masa sekarang. Keadaan keuangan itu dapat mencakup berapa uang yang dihabiskan, untuk apa itu dibelanjakan, dan berapa penghasilan dalam satu periode. 2. Tetapkan tujuan keuangan pribadi. Mengetahui tujuan keuangan pribadi dan menuliskannya secara formal merupakan hal yang perlu dilakukan berikutnya. Hal ini agar setiap individu dapat melihat secara nyata apa yang diinginkannya. Keown (2010) menyatakan bahwa pertama yang harus dilakukan adalah menuliskan tujuan-tujuan yang ingin dicapai, menuliskan biayabiaya yang diperlukan, dan menentukan berapa lama waktu yang dibutuhkan agar tujuan terebut tercapai. 3. Kembangkan rencana yang berisi tindakan-tindakan nyata. Tindakan-tindakan nyata diperlukan dalam mencapai tujuan tersebut. Tindakan nyata harus diikuti dengan penganggaran yang terkontrol, dan tentukan strategi investasi yang sesuai (Keown, 2010). 4. Implementasikan rencana keuangan pribadi tersebut. Setelah semua perencanaan dibuat secara matang, rencana tersebut kemudian harus diimplementasikan secara konsisten dan berkelanjutan agar tujuan-tujuan yang telah direncanakan dapat tercapai. 8
http://digilib.mercubuana.ac.id/
5. Tinjau kemajuan rencana, evaluasi dan revisi rencana pribadi yang telah dibuat. Rencana yang dibuat harus ditinjau, dievaluasi dan diperbaiki seiring dengan berjalannya waktu karena biasa ada beberapa hal yang telah berubah misalnya perubahan status atau sudah mempunyai anak sehingga dibutuhkan rencana yang sesuai dengan situasi yang terbaru yang sedang terjadi (Keown, 2010). Ada beberapa topik utama yang membutuhkan perhatian lebih dalam proses perencanaan keuangan pribadi menurut Winger dan Frasca (1986), yaitu: 1. Perencanaan karir: merupakan perencanaan penting dimasa muda, khususnya ketika menjadi mahasiswa dan manfaatnya akan dirasakan dalam jangka panjang (Winger dan Frasca, 1986). 2. Perencanaan konsumsi dan tabungan: merupakan prencanaan yang berkaitan dengan penganggaran baik untuk pengeluaran komsumsi maupun untuk simpanan (saving) (Winger dan Frasca, 1986). 3. Perencanaan utang: merupakan perencanaan yang berkaitan dengan penggunaan utang dalam kehidupan sehari-hari. Disatu sisi, utang dapat berfungsi sebagai leverage, dan disisi lain utang yang terlalu banyak akan memberatkan karena adanya bunga. 4. Perencanaan asuransi: merupakan perencanaan berkaitan dengan pencegahan terhadap segala ketidakpastian (uncertainty). 5. Perencanaan investasi: merupakan perencanaan bagaimana tabungan dapat diinvestasikan kembali ditengah banyaknya pilihan investasi. 6. Perencanaan pensiun: merupakan perencanaan berkaitan dengan estimasi dari komsumsi dimasa mendatang dan kebutuhan lain dan menentukan bagaimana mencapai kebutuhan tersebut ketika sudah tidak bekerja (Winger dan Frasca, 1986). 7. Perencanaan harta milik (estate planning): merupakan perencanaan berkaitan dengan bagaimana mengatur harta milik atau kekayaan. 8. Perencanaan pajak penghasilan (income tax planning): merupakan perencanaan bagaimana cara meminimalisir pajak karena hampir semua aspek dari kehidupan keuangan berkaitan dengan pajak. Perencanaan yang berkaitan dengan keuangan pribadi ini membutuhkan strategistrategi tersendiri agar dapat berhasil diimplementasikan. Keown (2010) menyatakan ada 10 prinsip dasar dalam merencanakan keuangan pribadi yaitu: 9
http://digilib.mercubuana.ac.id/
1. Perlindungan terbaik adalah pengetahuan: pengetahuan yang tepat dan berguna berkaitan dengan masalah yang dihadapi dapat membuat individu mampu menghindari masalah keuangan dan dapat membedakan informasi yang baik dan buruk. 2. Tidak ada yang akan terjadi tanpa rencana: Keown 2010 menyatakan bahwa perencanaan keuangan merupakan hal yang dihindari karena dibutuhkan disiplin dan perilaku yang konsisten berkaitan dengan rencana tersebut, namun apabila telah dilakukan maka akan semakin cepat bagi individu untuk mencapai tujuannnya. 3. Nilai waktu uang: merupakan masalah yang harus dipahami karena membantu untuk memahami bagaimana investasi tumbuh seiring berjalannya waktu dan membantu membandingkan nilai uang dalam beberapa periode. 4. Pajak mempengaruhi keputusan keuangan pribadi: hampir semua investasi dikenakan pajak sehingga penting untuk memperhitungkan pajak ketika mengambil keputusan investasi pribadi. 5. Pentingnya likuiditas: banyak hal yang tidak terduga bisa terjadi sehingga dibutuhkan uang yang likuid agar dapat mengatasi hal tidak terduga tersebut. 6. Waste not, want not-smart spending matters: penting untuk menjadi pebelanja yang pintar agar uang yang digunakan sesuai dengan yang dibutuhkan dan menjadi prioritas utama. 7. Lindungi diri dari bencana besar: bencana-bencana seperti banjir, gempa, badai, dan kebakaran merupakan hal yang tidak bisa dicegah, sehingga penting adanya asuransi yang menjamin masing-masing individu ketika bencana tersebut datang (Keown, 2010). 8. Risk and return go hand in hand: setiap investasi pasti mengandung resiko. Kembalian yang tinggi juga diikuti oleh resiko yang tinggi pula sehingga dibutuhkan pemahaman mengenai bagaimana resiko dari sebuah investasi dan bagaimana cara meminimalisir. 9. Mind games and your money: Keown (2010) menyatakan bahwa semua orang ingin menghindari kesalahan dalam keuangan, namun banyak kesalahan malah datang dari pikiran/perilaku manusia itu sendiri. Memahami perilaku yang berdampak buruk ini dapat mencegah terjadi kesalahan dalam masalah keuangan. 10. Just do it!: memulai untuk pertama kalinya dalam tindakan nyata rencana yang telah dibuat merupakan yang terberat dari keseluruhan proses perencanaan keuangan ini. Mengubah rencana-rencana menjadi tindakan nyata secepatnya merupakan hal yang harus dilakukan. 10
http://digilib.mercubuana.ac.id/
Di negara-negara maju seperti Amerika Serikat, pemerintah sudah sadar betul akan pentingnya pendidikan keuangan pribadi sejak dini. Hal ini terbukti dari sudah diterapkannya pendidikan keuangan di sekolah menengah atas. sampai tahun 2011, sudah ada 14 negara bagian di Amerika Serikat yang mengharuskan sekolah menengah atas menawarkan mata pelajaran keuangan pribadi, dan baru 13 negara bagian yang mewajibkan murid untuk mengambil mata pelajaran tersebut. Di Inggris kesadaran akan pentingnya pendidikan keuangan juga telah mulai terlihat. Hal ini terbukti dari adanya publikasi dari Draft National Curriculum for England yang dikutip dari Matt Harley (2013), menyatakan bahwa kurikulum baru akan memasukkan pendidikan keuangan kedalam mata pelajaran matematika dan kewarganegaraan yang membuat pendidikan keuangan masuk kedalam kurikulum untuk pertama kalinya di negara tersebut. Pendidikan keuangan pribadi dalam penelitian ini diukur dengan berdasarkan penelitian Barbara et al. (2000) yang telah dimodifikasi oleh Shih, et al. (2008) mencakup enam dimensi yaitu: a. savings (tabungan): dimensi yang berkaitan dengan bagaimana individu mengelola tabungan. b. value appreciation (penghargaan terhadap nilai): dimensi yang berkaitan dengan pemahaman setiap individu dalam mengelola nilai (value) yang ada didalam uang. c. avoidance of traps (pencegahan terhadap jebakan-jebakan): dimensi yang berkaitan dengan bagimana cara individu menghindari jebakan-jebakan yang ada dalam setiap keputusan finansial. d. risk conscious (kesadaran akan resiko): dimensi yang mengukur bagaimana pengetahuan individu terhadap resiko-resiko yang akan terjadi. e. life improvement (perkembangan hidup): dimensi yang mengukur tingkat kesadaran individu untuk meningkatkan kualitas hidupnya. f.
life planning (perencanaan hidup): dimensi yang berhubungan dengan bagaimana perencanaan keuangan pribadi masing-masing individu.
g. financial educational needs (kebutuhan akan pendidikan keuangan): dimensi yang berkaitan dengan bagaimana tingkat kebutuhan akan pendidikan keuangan pribadi.
1.1.4. Mahasiswa Mahasiswa adalah sebutan bagi orang yang sedang menempuh pendidikan tinggi di sebuah perguruan tinggi yang terdiri atas sekolah tinggi, akademi, dan yang paling umum adalah universitas (id.wikipedia.org).
11
http://digilib.mercubuana.ac.id/
1.1.4.1. Kelas Karyawan Kelas karyawan adalah program kuliah efektif yang memungkinkan mahasiswa tetap dapat menjalankan aktivitas seperti biasanya khususnya dalam hal pekerjaan. Jadi sembari kuliah, mahasiswa tetap dapat bekerja seperti biasa tanpa perlu takut terganggu kegiatan kampus. Program efektif ini memiliki tujuan untuk melaksanakan komitmen sosial berupa pemberian kesempatan bagi seluruh lapisan masyarakat. Tidak terkecuali bagi yang memiliki waktu terbatas karena harus bekerja sebagai karyawan.
1.1.5. Kost Kost atau indekost adalah sebuah jasa yang menawarkan sebuah kamar atau tempat untuk ditinggali dengan sejumlah pembayaran tertentu untuk setiap periode tertentu (umumnya pembayaran per bulan). Kata “kost” sebenarnya adalah turunan dari frasa bahasa Belanda “In de kost”. Definisi “In de kost” sebenarnya adalah “makan di dalam” namun bila frasa tersebut dijabarkan lebih lanjut dapat pula berarti “tinggal dan ikut makan” di dalam rumah tempat menumpang tinggal (id.wikipedia.org).
1.2.
Teori Pendukung
1.2.1. Pengertian Data Data adalah komponen yang paling penting dalam Database Management System, berasal dari sudut pandang end-user. Data bertindak sebagai jembatan yang menghubungkan antara mesin dengan pengguna (Connolly & Begg, 2010).
1.2.2. Pengertian Basis Data dan DBMS Basis data adalah suatu kumpulan logikal data yang berhubungan dan dekripsi dari data tersebut yang dirancang untuk kebutuhan informasi suatu organisasi (Connolly & Begg, 2010). Basis data adalah kumpulan file yang saling terkait. Basis data tidak hanya merupakan kumpulan file. Record pada setiap file harus memperbolehkan hubunganhubungan untuk menyimpan file lain (Bentley, Lonnie D dan Whitten, Jeffrey L, 2007). Keuntungan basis data (Bentley, Lonnie D dan Whitten, Jeffrey L , 2007) yaitu : 1. Kemampuannya untuk menggunakan data yang sama di banyak aplikasi dan sistem. 12
http://digilib.mercubuana.ac.id/
2. Penyimpanan data dalam format yang fleksibel. Hal ini didefinisikan secara terpisah dari sistem informasi dan program-program aplikasi yang akan menggunakan basis data. 3. Teknologi basis data menyediakan skalabilitas superior, dalam arti basis data dan sistem yang menggunakannya dapat ditingkatkan atau dikembangkan untuk memenuhi kebutuhan-kebutuhan perubahan pada sebuah organisasi. 4. Kemajuan independensi data yang sangat mengurangi redudansi data, telah meningkatkan fleksibilitas. Berdasarkan pengertian di atas, dapat disimpulkan basis data adalah sekumpulan data yang terintegrasi dan di rancang untuk memelihara informasi dan membuat informasi tersebut tersedia untuk memenuhi suatu kebutuhan organisasi. Database Management System (DBMS) adalah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengawasi akses ke database (Connolly & Begg, 2010). Ada beberapa keuntungan dari Database Management System (DBMS) diantaranya (Connolly & Begg, 2010) : 1. Mengendalikan pengulangan data 2. Menjaga konsistensi data 3. Mendapatkan banyak informasi dari sejumlah data yang sama 4. Dapat saling berbagi data 5. Meningkatkan integritas data 6. Meningkatkan keamanan data 7. Menerapkan standarisasi 8. Dapat mengurangi biaya 9. Menyeimbangkan konflik kebutuhan 10. Meningkatkan kemampuan pengaksesan dan respon pada data 11. Meningkatkan produktivitas 12. Meningkatkan pemeliharaan melalui kemandirian data 13. Meningkatkan konkurensi 14. Meningkatkan pelayanan backup dan services
1.2.3. Pengertian Software Aplikasi Menurut (Pressman, 2010) software aplikasi adalah aplikasi yang berdiri sendiri untuk memecahkan masalah bisnis yang spesifik. Dalam hal aplikasi pemrosesan bisnis konvensional, software aplikasi digunakan untuk mengontrol fungsi bisnis dalam waktu nyata. 13
http://digilib.mercubuana.ac.id/
1.3.
Prinsip Rancangan Interface Aplikasi Mobile Seringkali smartphone dan desktop computer disamakan sebagai computing devices, tetapi faktanya keduanya sangat berbeda baik dari segi layar masing – masing perangkat, menggunakan baterai atau menggunakan kabel untuk sumber listrik, hingga tinggi atau rendahnya bandwidth. Oleh karena itu perbedaan antara smartphone dan desktop computer membuat perancangan interface keduanya tidak dapat disamakan. Sepuluh prinsip perancangan interface untuk aplikasi mobile yang dikemukakan oleh Jonathan Stark pada setiap workshop-nya (netmagazine.com, 2012) sebagai berikut : 1. Mobile Mindset Dengan perbedaan – perbedaan antara smartphone dan desktop computer, ada baiknya untuk mengubah pola pikir menjadi pola pikir mobile sebelum memulai merancang. a. Be focused Banyak tidak selalu lebih baik. Ada baiknya mengurangi fitur-fitur yang tidak diperlukan atau tidak berhubungan dengan tujuan aplikasi. b. Be unique Akan terdapat banyak sekali aplikasi sejenis yang telah ada ataupun yang akan muncul maka harus terdapat keunikan pada aplikasi sehingga user memiliki alasan untuk memilih aplikasi tersebut. c. Be charming Mobile devices pada dasarnya bersifat pribadi. Untuk itu membuat aplikasi yang mudah untuk digunakan, Memberikan kesan yang menyenangkan dan nyaman ketika menggunakan aplikasi tesebut sangatlah penting. d. Be considerate Para developer aplikasi jarang sekali memikirkan mengenai apa yang akan menyenangkan untuk dikembangkan sehingga pemikiran yang tercipta ketika mengembangkan aplikasi hanya tentang tujuan bisnis pribadi. Tempatkan diri pada posisi user sehingga menciptakan pengalaman yang menarik pada aplikasi. 2. Mobile Context Sebelum memposisikan diri sebagai user, penting untuk mengetahui tiga konteks utama tujuan user menggunakan aplikasi. Tiga konteks tersebut, yaitu : a. Bored Banyak orang menggunakan smartphone untuk menghabiskan waktu luangnya untuk itu dalam konteks ini dibutuhkan aplikasi yang dapat mengisi waktu luang tersebut. Contohnya: games dan social networking. 14
http://digilib.mercubuana.ac.id/
b. Busy Kemampuan untuk menjalankan tugas – tugas sederhana dengan cepat dan memungkinkan digunakan dengan satu tangan akan membuat user dalam konteks ini memilih menggunakan aplikasi tersebut karena bisa digunakan di tengah kesibukannya. Contohnya: kalender, kalkulator, banking. c. Lost User yang berada pada konteks ini merupakan user yang sering bepergian ke tempat menarik yang belum pernah didatangi sebelumnya. Untuk itu konektivitas dan daya tahan baterai menjadi hal yang sangat diperhatikan. Contohnya: Maps dan Foursquare. 3. Global Guidelines Terdapat perbedaan pada pendekatan, desain dan teknik dari masing - masing aplikasi. Untuk itu terdapat ketentuan umum yang harus diperhatikan ketika merancang aplikasi : a. Responsiveness Kecepatan aplikasi dengan tingkat respons aplikasi itu berbeda, contoh dari aplikasi yang responsif ketika user berinteraksi pada aplikasi, aplikasi dapat segera memberi feedback kepada user tersebut. Jika terdapat operasi yang memakan waktu, hal tersebut tidak menjadi masalah dengan memberitahu user apa yang sedang dilakukan. b. Polish Polesan yang diberikan pada aplikasi sangatlah berharga. Memperhatikan hingga detail – detail yang kecil akan disadari dan sangat dihargai oleh user. c. Thumbs Dalam merancang aplikasi harus diperhatikan juga kenyamanan user berinteraksi menggunakan jempolnya, bahkan ketika memakai kedua tangan kebanyakan orang lebih suka menggunakan jempolnya untuk melakukan interaksi pada aplikasi. d. Targets Desain tombol perlu diperhatikan seperti besar jempol dengan User Interface Elements, yang umumnya berukuran 44 pixels. Dan penting untuk memperhatikan penempatan fungsi–fungsi pada aplikasi, misalnya meletakkan tombol backspace bersebelahan dengan tombol send pada aplikasi Short Message Service (SMS). e. Content Meminimalisir penggunaan elemen interface seperti buttons, tab, bars, checkboxes, sliders dan masih banyak lagi. Dengan meminimalisir penggunaan elemen tersebut memungkinkan user lebih fokus konten aplikasi. 15
http://digilib.mercubuana.ac.id/
f.
Controls Saat aplikasi membutuhkan kontrol letakkan di bawah dari konten utama, sehingga user tidak terganggu ketika sedang memperhatikan konten. Contoh yang paling sering ditemui adalah komputer yang letak kontrolnya di bawah dari letak display.
g. Scrolling Hindari scrolling. Karena dengan tidak memakai scrolling pada layar aplikasi akan terlihat lebih solid dan tingkat penelusuran user terhadap keseluruhan screen akan lebih tinggi sehingga user mendapatkan informasi secara menyeluruh. Sehingga, mencegah user kehilangan informasi pada screen yang memakai scrolling. 4. Navigation Models Terdapat beberapa model navigasi untuk aplikasi mobile, yaitu : a. None Merupakan aplikasi single-screen seperti aplikasi cuaca pada Android. b. Tab bar Memiliki tiga sampai enam bar pada bagian atas aplikasi. Contohnya seperti aplikasi mobile : Twitter. c. Drill down Aplikasi terbentuk menyerupai sebuah daftar. Contohnya settings pada Android. 5. User Input Buatlah user lebih mudah dan nyaman dalam melakukan input. Ada banyak variasi keyboard yang terkenal pada smartphone, pilihlah jenis keyboard yang nantinya akan berguna pada saat user melakukan input. Hindari penggunaan auto-correct dan autocapitalisation karena terkadang hal tersebut membuat user merasa terganggu. Jika pada aplikasi meminta user banyak melakukan pengetikan, pastikan aplikasi tersebut mendukung landscape sehingga memudahkan dalam mengetik input yang diminta. 6. Gestures Salah satu yang terpenting dalam perancangan interface layar sentuh adalah gestures. Beberapa gesture yang umumnya digunakan, yaitu : a. Invisible Ada banyak gesture yang dapat dilakukan, seperti flick dan swipe. Untuk mengeksekusi gesture perlu adanya informasi terhadap user, sehingga user tidak mengalami kebingungan saat menjalankan aplikasi. b. Twohands Smartphone sekarang ini memungkinkan user melakukan multi-touch. Gesture ini seringkali digunakan untuk aplikasi yang membutuhkan zoom in/out, seperti pada aplikasi image viewer. 16
http://digilib.mercubuana.ac.id/
7. Orientation Layar yang berorientasi portrait sejauh ini merupakan orientasi terpopuler, Tetapi jika terdapat banyak pengetikan pada aplikasi sudah seharusnya aplikasi dapat memberi support orientasi layar landscape. Ketika orientasi layar berubah secara tidak diduga itu hal yang wajar, Tetapi ketika aplikasi tersebut digunakan dalam waktu yang lama seperti e-book reader tambahkan pengunci orientasi layar agar tidak berubah-ubah ketika sedang digunakan. 8. Communications Komunikasi antara aplikasi dan user sangat diperlukan ketika membuat sebuah aplikasi. Untuk itu ada beberapa jenis komunikasi yang dapat diterapkan pada aplikasi : a. Provide feedback Memberikan feedback instan ketika user melakukan interaksi pada aplikasi. Jika aplikasi tidak memberikan feedback, user dapat mengira bahwa aplikasi tidak berjalan dengan baik. Feedback tersebut bisa saja berupa respon terhadap indera peraba user seperti getaran ketika memilih sebuah icon atau dalam bentuk visual seperti icon berubah warna (hover) ketika user memilih icon tersebut. Jika aksi user memiliki waktu yang panjang untuk dikerjakan oleh aplikasi, beritahu bahwa aplikasi sedang mengerjakannya contohnya dengan member spinner atau loading pada aplikasi. b. Modal alerts Pada dasarnya modal alerts akan sangat mengganggu user ketika sedang menggunakan aplikasi, untuk itu gunakan modal alerts hanya pada saat terjadi sesuatu yang penting seperti terdapat error atau crash pada aplikasi. Ingat untuk tidak menggunakan modal alerts hanya untuk memberi informasi – informasi sederhana. c. Confirmations Ketika user akan melakukan aksi yang penting dalam aplikasi, sebaiknya berikan konfirmasi kepada user apakah akan melanjutkan aksi tersebut atau tidak. Contohnya ketika user akan melakukan aksi delete pada aplikasi sebaiknya ditanyakan apakah user yakin untuk melakukan aksi tersebut atau tidak, sehingga mencegah user melakukan kesalahan. 9. Launching Ketika user kembali ke aplikasi setelah digunakan sebelumnya, sebaiknya user dapat melanjutkan operasi seperti saat sebelum user meninggalkannya. Sehingga akan memberikan kesan lebih cepat dan responsif. Jika memungkinkan, ketika aplikasi dibuka tampilan awal usahakan bukan tampilan yang berisi konten – konten utama dari aplikasi bisa berupa gambar saja. Jika tidak, akan memberi kesan bahwa interface dapat 17
http://digilib.mercubuana.ac.id/
berinteraksi tetapi tidak dapat memberi reaksi yang sebenarnya dikarenakan aplikasi sedang dalam tahap loading. 10. First Impression Kesan pertama yang diberikan oleh aplikasi juga salah satu hal penting yang perlu diperhatikan. Hal yang paling pertama sekali dilihat oleh user adalah icon dari aplikasi itu sendiri. Dengan menggunakan teks sedikit mungkin dan menggunakan penggambaran yang sesuai dengan aplikasi sehingga dengan icon yang menarik membuat user berpikir bahwa aplikasi tersebut juga menarik. Selain itu juga user interface yang mudah untuk dimengerti dan ditelusuri oleh user juga penting, karena ketika pertama kali user memakai aplikasi ternyata membingungkan dan membuat frustasi maka user tidak akan berpikir untuk memakainya kembali.
1.3.1. Teknologi Mobile Berikut ini adalah penjelasan mengenai beberapa teknologi mobile yang sudah berkembang didunia:
1.3.1.1.
Mobile Phone Pada awalnya mobile phone memiliki bentuk yang sangat besar beratnya mencapai 36 kilogram dan terpasang pada mobil, teknologi yang mendukung pada saat itu hanya pengiriman pesan menggunakan suara. Mobile phone berkembang dengan cepatnya hingga saat ini. Yang pada awalnya hanya digunakan untuk menelepon berkembang hingga bisa mengirim pesan, gambar dan menggunakan internet (Agar, 2004:3-5). Dengan semakin berkembangnya teknologi mobile phone dan semakin banyaknya fitur-fitur yang ditambahkan pada mobile phone maka muncul istilah smartphone.
1.3.1.2.
Smartphone Kata smartphone dibuat untuk mendeskripsikan sebuah mobile phone yang dikembangkan dengan sistem informasi mobile dengan kemampuan komputasi yang melebihi mobile phone pada umumnya (Schmidt, Peters, Lamour, 2008:1).
1.3.1.3.
Aplikasi Mobile Aplikasi mobile adalah software yang dirancang agar bisa berfungsi pada mobile device seperti smartphone (Fling, 2009:22). Fitur yang ditawarkan juga beragam seperti, fitur dasar dalam berkomunikasi, mengirim pesan, hingga mengirimkan 18
http://digilib.mercubuana.ac.id/
video. Sebagian besar mobile devices sudah memiliki aplikasi dasarnya terlebih dahulu, seperti SMS/MMS, video player, dan browser yang sudah terpasang pada perangkat. Beberapa aplikasi yang tidak tersedia dapat diunduh melalui portal online yang sudah disediakan masing-masing vendor. Menurut Brian Fling (2009:70-80), terdapat beberapa macam tipe aplikasi mobile, yaitu: 1. SMS Short Message Service (SMS) merupakan aplikasi paling sederhana yang berguna untuk saling mengirim pesan. Aplikasi ini sangat berguna karena terintegrasi pada berbagai macam tipe devices. 2. Mobile Websites Mobile website merupakan website yang dirancang khusus untuk mobile devices. Mobile website biasanya memiliki design yang sederhana dengan elemen interaktif yang sedikit dibandingkan dengan desktop website. 3. Mobile Web Widgets Merupakan aplikasi web sederhana (pelengkap) yang tidak dapat dijalankan sendirian. 4. Mobile Web Applications Mobile web application merupakan aplikasi mobile yang tidak membutuhkan instalasi ataupun melakukan compile pada perangkat yang diinginkan. Dengan tetap bergantung pada internet seperti pada mobile website, pada mobile web application memberikan pengalaman seperti menggunakan sebuah aplikasi native. 5. Native Applications Native Application memerlukan instalasi sebelum digunakan. Native application biasanya disebut juga platform application karena biasanya dikembangkan dan melakukan compile pada masing-masing mobile platform. 6. Games Tipe aplikasi ini merupakan aplikasi yang ditujukan untuk menghibur penggunanya. Dapat berupa native application ataupun web application.
1.4.
Android Android adalah sebuah sistem operasi berbasis Linux yang telah digunakan oleh lebih dari 190 negara di seluruh dunia. Android memberikan platform bagi developer untuk mengembangkan aplikasi dan games untuk pengguna Android dengan menyediakan Android Software Development Kit (SDK) yang dapat diunduh oleh siapa saja. 19
http://digilib.mercubuana.ac.id/
Selain itu, terdapat fasilitas market place bernama Google Play dimana Android developer dapat mengunggah aplikasinya, mempromosikan, menjual dan memberikan review terhadap aplikasi Android. Seluruh pengguna Android phone dapat mengunduh aplikasi yang ada di Google Play, baik secara gratis maupun berbayar.
1.4.1. Android Application Components Terdapat 4 (empat) komponen aplikasi Android : 1. Activities Activities adalah bentuk tampilan yang merepresentasikan sebuah layar dengan user interface yang dapat digunakan oleh user. 2. Services Services adalah komponen yang menjalankan proses di belakang layar. Misalnya seperti musik yang berjalan saat user sedang mengakses activities lainnya dan notifikasi yang muncul dari sebuah aplikasi pada saat user tidak secara langsung mengakses aplikasi tersebut. 3. Content Providers Content providers mengelola data-data yang dimiliki oleh aplikasi. Data-data di dalam sebuah Android phone dapat diakses oleh sebuah aplikasi apabila mendapatkan akses dari content provider. Content provider dapat digunakan untuk membaca dan menuliskan data yang bersifat private terhadap sebuah aplikasi. 4. Broadcast Receivers Broadcast Receivers adalah komponen dari Android yang bekerja untuk menerima respon dan memberikan pesan terhadap system-wide broadcast announcement, sehingga user dapat mendapatkan informasi yang berkaitan dengan keadaan system Android phone yang sedang digunakan. Misalnya, notifikasi saat sebuah aplikasi sudah selesai diunduh.
1.4.2. Android Architecture Pada arsitektur Android, tersusun oleh layer yang mempunyai kegunaan masingmasing menurut Brahler (2010:3-5), diantaranya adalah :
1.4.2.1.
Applications Merupakan application layer yang langsung berinteraksi dengan user. Biasanya terdapat aplikasi dasar seperti SMS, kalender, peta, browser dan sebagainya. Aplikasi dirancang dengan bahasa pemrograman Java dan bisa berjalan secara bersamaan. 20
http://digilib.mercubuana.ac.id/
1.4.2.2.
Application Framework Merupakan struktur dasar aplikasi yang digunakan untuk mengimplementasikan sejumlah fitur sehingga dapat dijalankan oleh sistem. Aplikasi yang bekerja dalam application framework terdiri dari : 1. Activity Manager Berfungsi untuk mengatur siklus kerja dan navigasi backstack dalam aplikasi. 2. Resource Manager Berfungsi untuk menyediakan resource data yang dibutuhkan oleh aplikasi baik dari luar maupun dalam. 3. Location Manager Berfungsi untuk mengatur lokasi aplikasi sesuai dengan perangkat. 4. Notification Manager Berfungsi untuk mengatur notifikasi atau pesan-pesan yang masuk dan ditampilkan di status bar. 5. Content Providers Berfungsi untuk menyediakan konten untuk digunakan aplikasi maupun konten yang akan diakses oleh aplikasi luar.
1.4.2.3.
Libraries Dapat diakses melalui Java Interface dan ditulis dalam bahasa pemrograman C atau C++. Libraries yang tersedia pada Android adalah: 1. Webkit sebagai engine web browser. 2. Media codecs untuk MPEG-4 dan MP3. 3. Surface manager 2D dan 3D. 4. SQLite untuk dukungan dalam penggunaan database.
1.4.2.4.
Android Runtime Berfungsi untuk menjalan berbagai aplikasi yang di dalamnya terdapat core libraries untuk menyediakan fungsionalitas yang bisa dipakai dalam bahasa pemrograman Java dan Dalvik VirtualMachines (DVM) untuk mengoptimalkan kinerja memori.
1.4.3. Fitur – Fitur Android Android juga memiliki beberapa fitur sebagai berikut : 21
http://digilib.mercubuana.ac.id/
a. Application framework memungkinkan penggunaan kembali dan penggantian komponen b. Dalvik virtual machine optimalisasi untuk perangkat bergerak c.
Integrated browser berdasarkan open source WebKit mesin
d. Optimized graphics didukung library grafis 2D; grafis 3D berbasis OpenGL ES 1.0 e. SQLite untuk penyimpanan data terstruktur f.
Media support untuk audio, video, dan gambar masih dalam format (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
g.
GSM Telephony
h. Bluetooth, EDGE, 3G, and WiFi i.
Camera, GPS, compass, and accelerometer
j.
Rich development environment termasuk device emulator, alat untuk debugging, memory dan performance profiling, dan plugin untuk Eclipse IDE
1.4.4. Arsitektur Model View Controller (MVC) Awalnya arsitektur Model View Controller (MVC) dibuat untuk pengembangan aplikasi Smalltalk dan bisa diterapkan pada aplikasi interaktif lainnya. Model berisi spesifik konten dari aplikasi dan processing logic, mencakup data informasi eksternal untuk suatu aplikasi. View berisi informasi tampilan antar muka yang akan direpresentasikan untuk end user. Controller berfungsi untuk mengatur akses data ke model, menampilkan view, mengatur processing logic dan aliran data dalam aplikasi (Pressman, 2010: 386-387).
1.4.5. Android Activity Lifecycle Android Activity Lifecycle dibagi menjadi beberapa bagian antara lain sebagai berikut :
1.4.5.1.
Activity States Di dalam pengembangan aplikasi Android, terdiri dari tiga keadaan activity yang harus dipahami agar aplikasi yang dibuat menjadi lebih fleksibel, diantaranya adalah : 1. Resumed State Suatu keadaan dimana activity sedang berjalan di depan layar atau sering disebut dengan running state. User bisa melakukan interaksi langsung dengan aplikasi. 2. Paused State Suatu keadaan yang berjalan di depan layar juga tetapi hanya terfokus sebagian oleh user. Misalnya ketika menggunakan sebuah aplikasi Android, jika ada 22
http://digilib.mercubuana.ac.id/
notifikasi ataupun kotak dialog yang masuk maka aplikasi akan memasuki keadaan paused. Namun activity masih tetap berjalan. Jika kondisi memori sedang tidak mencukupi, maka bisa saja akan diberhentikan langsung oleh sistem. 3. Stopped State Suatu keadaan dimana aplikasi tidak terlihat oleh user tetapi masih berjalan di belakang layar. Namun, bisa saja diberhentikan langsung oleh sistem jika saat memori untuk activity lain sedang dibutuhkan.
1.4.5.2.
Activity Lifecycle Ketika suatu activity melakukan transisi dari satu state ke state lainnya, maka ada metode-metode untuk melakukan pemanggilan kembali (callback) aplikasi serta menginisialisasi apa yang harus dilakukan saat perubahan state tersebut. Metodemetode activity lifecycle yang ada diantaranya adalah : 1. onCreate() Metode ini yang akan dipanggil pertama kali saat aplikasi sedang berjalan, diantaranya menginisialisasi tampilan, melakukan binding data. onCreate() selalu diikuti oleh onStart(). 2. onRestart() Dipanggil saat keadaan activity sedang berhenti (stopped) dan ingin dijalankan kembali. onRestart() selalu diikuti oleh onStart(). 3. onStart() Dipanggil sebelum user bisa melihat activity tersebut. metode selanjutnya bisa memanggil onResume() jika activity masih terlihat di depan layar dan bisa memanggil onStop() jika tidak terlihat oleh user. 4. onResume() Dipanggil sebelum activity mulai berinteraksi lagi dengan user. onResume() selalu diikuti oleh onPause(). 5. onPause() Dipanggil ketika sistem akan melanjutkan sebuah activity yang lain. Metode ini biasanya digunakan untuk menyimpan data yang belum tersimpan. Metode selanjutnya bisa memanggil onResume() jika akan kembali ke layar aktif aplikasi dan bisa memanggil onStop() jika tidak terlihat oleh user. 6. onStop() Dipanggil saat activity tidak terlihat lagi oleh user, biasanya dikarenakan adanya proses onResume() dari activity lain atau activity sedang dihilangkan oleh sistem. 23
http://digilib.mercubuana.ac.id/
onStop() bisa diikuti oleh onRestart() jika ingin kembali berinteraksi dengan user dan bisa diikuti oleh onDestroy() jika activity akan dihilangkan dari sistem. 7. onDestroy() Metode terakhir ini dipanggil sebelum activity dihilangkan dari sistem. Biasanya dipanggil jika activity sudah selesai digunakan dan tidak dijalankan lagi.
1.4.6. Time Value of Money Nilai waktu dari uang adalah salah satu dari konsep – konsep yang penting dalam personal financial management yang berarti nilai uang sekarang tidak akan sama dengan nilai uang paling tidak 1 (satu) tahun di masa mendatang. Dan berguna ketika melakukan perencanaan seperti menabung. Nilai masa depan dari tabungan dipengaruhi oleh 3 (tiga) faktor. Yang pertama adalah jumlah dari uang yang telah disimpan selanjutnya, jangka waktu menyimpan uang tersebut dan yang terakhir tingkat suku bunga yang ditetapkan. Tingkat inflasi dan deflasi juga dapat mempengaruhi nilai dari uang tersebut (Lawrence J., 2012: 161).
1.4.7. SQLite SQLite adalah paket aplikasi yang menyediakan sistem database relational (RDBMS), sebagaimana vendor RDBMS lainnya seperti Oracle, MySQL, PostgreSQL dll. Kata “Lite” bukan berarti aplikasi RDBMS ini memiliki kemampuan yang sedikit / minim, tetapi mengacu pada keringanan/kemudahan dalam setup (instalasi), administrasi dan penggunaan. Berikut fitur yang harus anda pahami dari SQLite : a) Serverless, SQLite tidak memerlukan proses pada server atau sistem untuk menjalankannya, melainkan hanya sebuah file yang diakses oleh library SQLite. b) Zero Configuration, Tidak ada server berarti tidak perlu setup, membuat sebuah database instan adalah semudah anda membuat file biasa. c) Cross Platform, semua instan database berada dalam sebuah file yang crossplatform, tidak memerlukan administrasi d) Self-Contained, sebuah library mengandung keseluruhan dari sistem database, yang langsung terintegrasi pada sebuah aplikasi program e) Small
Runtime
Footprint,
untuk
membangun
database
SQLite
hanya
membutuhkan kurang dari satu megabyte library (kode program) dan hanya membutuhkan beberapa megabyte memori, bahkan dengan beberapa adjustment baik ukuran library maupun memori dapat diperkecil. 24
http://digilib.mercubuana.ac.id/
f) Transactional, SQLite transaction memperbolehkan aksi penyimpanan melalui beberapa proses thread g) Full Featured, SQLite mensupport hampir sebagai besar standar SQL92 ( SQL2 ) h) Highly Reliable, Tim pengembang SQLite mengembangkan melalui kode program yang sangat serius serta telah melewati proses testing
1.4.7.1.
Kelas Penyimpanan dan Jenis Data Setiap nilai yang disimpan dalam database SQLite (atau dimanipulasi oleh mesin database) memiliki salah satu kelas penyimpanan sebagai berikut : Tabel 2.1 Tipe Data SQLite Tipe Data NULL
Value NULL Signed integer, disimpan dalam 1,2,3,4,6, atau 8 byte tergantung
INTEGER
pada besarnya nilai Nilai adalah nilai floating point, disimpan sebagai 8 byte IEEE
REAL
nomor floating point Nilai adalah string teks, disimpan menggunakan database encoding
TEXT
(UTF-8, UTF-16BE atau UTF-16LE)
BLOB
Nilai adalah blog data, disimpan persis seperti masukan
1.4.7.2. Tipe Data Affinity Dalam rangka untuk memaksimalkan kompatibilitas antara SQLite dan mesin database lain, SQLite mendukung konsep "jenis afinitas" pada kolom. Jenis afinitas kolom adalah jenis yang direkomendasikan untuk data yang disimpan dalam kolom tersebut. Ide penting di sini adalah bahwa jenis dianjurkan, tidak diperlukan. Setiap kolom masih bisa menyimpan semua jenis data. Hanya saja beberapa kolom, diberi pilihan, akan lebih memilih untuk menggunakan satu kelas penyimpanan atas yang lain. Kelas penyimpanan yang lebih disukai untuk kolom disebut "Affinity". Tabel 2.2 Tipe Data Affinity SQLite Contoh Typenames dari CREATE TABLE
Hasil
Pernyataan/CAST Expression
Affinity
INT, INTEGER, TINYINT SMALLINT,
INTEGER
25
http://digilib.mercubuana.ac.id/
Rule Untuk Affinity 1
Digunakan Menentukan
MEDIUMINT BIGINT, UNSIGNED BIG INT INT2, INT8 CHARACTER(20), VARCHAR(255) VARYING CHARACTER(255) NCHAR(55), NATIVE CHARACTER(70)
TEXT
2
NONE
3
REAL
4
NUMERIC
5
NVARCHAR(100), TEXT, CLOB BLOB (no datatype specified) REAL, DOUBLE DOUBLE PRECISION, FLOAT NUMERIC, DECIMAL(10,5) BOOLEAN, DATE, DATETIME
Afinitas kolom ditentukan oleh jenis dinyatakan kolom, menurut aturan berikut dalam urutan yang ditunjukkan: 1. Jika jenis dinyatakan mengandung string "INT" maka diberikan INTEGER afinitas. 2. Jika jenis dideklarasikan dari kolom yang berisi salah satu string "CHAR", "CLOB", atau "TEXT" maka kolom yang memiliki afinitas TEXT. Perhatikan bahwa tipe VARCHAR berisi string "CHAR" dan dengan demikian ditugaskan TEXT afinitas. 3. Jika tipe dideklarasikan untuk kolom berisi string "blob" atau jika tidak ada jenis yang ditentukan maka kolom memiliki NONE afinitas. 4. Jika tipe dideklarasikan untuk kolom mengandung salah satu dari string "REAL", "FLOA", atau "doub" maka kolom memiliki afinitas nyata. 5. Jika tidak, afinitas adalah NUMERIC. 6. Perhatikan bahwa urutan aturan untuk menentukan kolom afinitas adalah penting. Sebuah kolom yang menyatakan tipe adalah "CHARINT" akan cocok dengan kedua aturan 1 dan 2 tapi aturan pertama diutamakan sehingga kolom afinitas akan INTEGER.
1.5.
Java Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan 26
http://digilib.mercubuana.ac.id/
sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan
dalam
pengembangan
berbagai
jenis
perangkat
lunak
aplikasi
(id.wikipedia.org).
1.6.
Rekayasa Perangkat Lunak Rekayasa perangkat lunak merupakan disiplin ilmu dibidang rekayasa yang membahas semua aspek dari seluruh proses pembuatan perangkat lunak dari tahap awal kebutuhan sistem sampai perawatan (maintenance) sistem, setelah itu bisa digunakan. Dalam definisi ini ada dua kata kunci, yaitu : 1. Disiplin ilmu rekayasa Seorang perekayasa (engineer) membuat suatu hal untuk bisa digunakan. Mereka mengaplikasikan teori, metode, dan alat pendukung yang tepat. 2. Semua aspek proses pembuatan aplikasi Rekayasa perangkat lunak tidak hanya membahas proses teknikal dari sebuah proses pengembangan perangkat lunak. Tetapi juga di dalamnya termasuk kegiatan seperti manajemen proyek perangkat lunak dan alat bantu pengembangan, metode, dan teori untuk mendukung proses produksi perangkat lunak. Dalam proses pembuatan perangkat lunak, terdapat beberapa aktivitas untuk memenuhi proses produksi perangkat lunak. Ada banyak jenis proses perangkat lunak, tetapi di dalamnya pasti terdapat empat aktivitas pokok dalam rekayasa perangkat lunak : 1. Software specification 2. Software design dan implementasi 3. Software validation 4. Software evolution
1.6.1. Analisis Kebutuhan (Requirement Analysis) Kebutuhan dari sebuah sistem merupakan deskripsi tentang apa yang harus sistem lakukan atau layani yang menyediakan batasan di operasinya. Kebutuhan ini 27
http://digilib.mercubuana.ac.id/
merefleksikan apa yang dibutuhkan pengguna untuk sebuah sistem yang menyediakan suatu tujuan pasti seperti mengontrol device, menempatkan pesanan, atau untuk mencari informasi. Proses pencarian, analisis, dokumentasi dan pengecekan layanan dan keterbatasan disebut requirement engineering. Kebutuhan sistem perangkat lunak sering diklasifikasikan sebagai kebutuhan fungsional dan kebutuhan non-fungsional : 1. Kebutuhan fungsional Hal ini merupakan penjelasan mengenai layanan yang harus disediakan oleh sistem. Bagaimana sistem merespon input-input tertentu, dan bagaimana merespon dalam kondisi atau situasi tertentu. Dalam beberapa kasus, kebutuhan fungsional juga menyebutkan tentang apa yang harus tidak dilakukan oleh sistem. 2. Kebutuhan non-fungsional Kebutuhan non-fungsional merupakan batasan dalam layanan atau fungsi yang di tawarkan oleh sistem. Hal tersebut diantaranya batasan waktu, batasan proses pengembangan, dan batasan standar kemampuan. Kebutuhan non-fungsional sering diaplikasikan untuk sistem secara keseluruhan, bukan untuk fitur tertentu dari sebuah sistem.
1.6.2. Perancangan (Design) Desain perangkat lunak merupakan proses aktivitas kreatif dimana kita harus mengidentifikasi komponen perangkat lunak dan setiap relasi yang terkait di dalamnya berdasarkan kebutuhan pengguna. Ketika mengembangkan sebuah aplikasi, proses desain menjadi diperhatikan tentang bagaimana menggunakan konfigurasi fitur dari sebuah sistem untuk menyalurkan kebutuhan dari sistem. Sistem berorientasi objek dibuat berdasarkan interaksi antar objek yang menjaga suatu kondisi dan menyediakan suatu operasi untuk suatu kondisi. Proses desain yan berorientasi objek meliputi proses desain class objek dan hubungan antar class. Pada tahap perancangan di skripsi ini, digunakan pemodelan dengan menggunakan satu macam diagram, yaitu activity diagram. Activity diagram menggambarkan tingkah laku sistem yang dinamis atau bagian dari sistem yang melewati aliran kontrol antara aksi yang dilakukan oleh sistem. Activity diagram hampir sama seperti flowchart tetapi activity diagram dapat memperlihatkan suatu aliran proses dalam waktu yang sama (Pressman, 2010).
28
http://digilib.mercubuana.ac.id/
1.6.3. Implementasi Rekayasa perangkat lunak meliputi semua aktivitas dalam proses pengembangan perangkat lunak dari proses awal analisa kebutuhan sampai proses perawatan dan manajemen dari sistem yang dikembangkan. Tahap kritis dari proses ini tentunya proses implementasi sistem, dimana terdapat proses pembuatan versi perangkat lunak yang bisa dijalankan. Implementasi bisa jadi meliputi proses pengembangan program menggunakan bahasa high-level atau low-level untuk memenuhi kebutuhan khusus dari perangkat lunak. Terdapat beberapa aspek pada proses implementasi yang merupakan bagian utama dari disiplin ilmu rekayasa perangkat lunak, yaitu : 1. Reuse Kebanyakan perangkat lunak modern sekarang ini dibuat dengan menggunakan komponen-komponen yang sudah ada. 2. Manajemen konfigurasi Selama proses pengembangan, bisa jadi terdapat banyak jenis atau versi dari sebuah komponen perangkat lunak yang dibuat. Jika terjadi kesalahan jenis atau versi yang digunakan pada proses manajemen konfigurasi sistem, maka akan banyak menimbulkan permasalah dalam proses implementasi. 3. Host-target development Proses pembuatan perangkat lunak tidak selalu melakukan uji menjalankan program pada komputer yang sama sebagai lingkungan perangkat lunak. Kadang kala proses pengembangan dilakukan di satu komputer (host system) dan menjalankannya di beberapa komputer lain (target system).
1.7.
Alat Bantu Perancangan
1.7.1. UML (Unified Modelling Language) Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. (Bernd Bruegge & Allen H. Dutoit, 2010). Tujuan dari Unified Modeling Language adalah untuk menyediakan istilah dalam hal teknik berbasis objek dan teknik menskemakan diagram yang cukup banyak untuk menggambarkan bermacam proyek pengembangan sistem mulai dari analisa sampai desain “The objective of the Unified Modeling Language is to provide a common vocabulary of object-based terms and diagramming techniques that is rich enough to 29
http://digilib.mercubuana.ac.id/
model any systems development project from analysis to design.” (Alan Dennis, Barbara Haley Wixom dan Roberta M. Roth, 012:513).
1.7.1.1.
Use Case Diagram Use Case Diagrams pada umumnya digunakan untuk menggambarkan bagaimana perilaku sistem dari sudut pandang actor, dimana actor adalah entiti di luar sistem yang berinteraksi dengan sistem. Jika kita dapat megindentifikasikan actor dan use case, kita dapat menetukan boundary dari sistem. Boundary dari sistem, bertujuan untuk memisahkan tugas-tugas yang di kerjakan oleh sistem dan tugastugas yang diselesaikan di luar sistem. Actors berada di luar dari boundary sistem, sementara use cases berada dalam boundary sistem. Actors direpresentasikan dengan simbol manusia, use cases direpresentasikan dengan oval, dan boundary sistem direpresentasikan dengan sebuah kotak yang melingkupi seluruh use cases.
Gambar 2.1 Contoh Use Case Diagram (Bernd Bruegge & Allen H. Dutoit, 2010) Dibawah ini adalah contoh dari elemen – elemen dalam diagram use case :
30
http://digilib.mercubuana.ac.id/
Tabel 2.3 Elemen - Elemen Use Case Diagram No.
Nama Elemen
1
Aktor
Simbol
Definisi a. Aktor adalah orang atau sistem yang memperoleh manfaat dari dan /atau di luar sistem. b. Aktor harus diberikan label sesuai dengan peranannya c. Aktor dapat dikaitkan dengan aktor-aktor lain oleh spesialisasi atau asosiasi superclass yang dilambangkan
dengan
anak
panah dengan panah berongga d. Aktor ditempatkan di luar batas system 2
a) Use case merupakan bagian
Use Case
utama
dari
fungsionalitas
sistem b) Use case dapat memperpanjang use case lain (extend) c) Use case depat menggunakan use case lain d) Use case ditempatkan di dalam batas sistem e) Use case diberi label dengan penjelasan kata kerja atau kata benda 3
a) Batasan
Batasan Sistem
sistem
terdiri
dari
nama sistem yang terdapat di dalam atau di atas simbol b) Batasan
sistem
merupakan
ruang lingkup system
31
http://digilib.mercubuana.ac.id/
No.
Nama Elemen
4
Relasi Asosiasi
Simbol
Definisi a) Relasi asosiasi menghubungkan aktor dengan use case yang berinteraksi
1.7.1.2.
Class Diagram Class Diagram digunakan untuk mendeskripsikan struktur dari sistem, dalam lingkup kelas dan objek. Class adalah sebuah abstraksi yang terdiri dari attribute dan method dari satu set object. Object adalah sebuah entiti yang mengenkapsulasi attribute dan method.
Gambar 2.2 Contoh Class Diagram (Bernd Bruegge & Allen H. Dutoit, 2010) Class Diagram memiliki beberapa elemen yaitu: 1. Attribute, adalah properti dari object. Sebuah attribute pada umumnya terdiri dari: Name : yang megidentifikasikan attributedi dalam object. Type : untuk mendeskripsikan nilai yang dapat ditampung oleh attribut tersebut. 2. Method, merupakan behavior dari object. 3. Visibility, merupakan mekanisme untuk menentukan apakah sebuah attribute atau method dari sebuah class dapat digunakan oleh class lain atau tidak. Dalam UML terdapat 3 jenis visibility: 1. Private Sebuah attribute maupun method yang memiliki visibility private yang mana hanya dapat di akses oleh class yang mendefinisikannya.
32
http://digilib.mercubuana.ac.id/
2. Protected Sebuah attribute maupun method yang memiliki visibility protected yang mana hanya dapat di akses oleh class yang mendefinisikannya dan oleh class yang merupakan turunan dari class yang mendefinisikannya. 3. Public Sebuah attribute maupun method yang memiliki visibility public yang dapat di akses oleh semua class. Dalam UML, visibility dinotasikan dengan tanda „-„ untuk private, „#‟ untuk protected dan „+‟ untuk public.
Gambar 2.3 Contoh visibility Class Diagram (Bernd Bruegge & Allen H. Dutoit, 2010) a) Association Association menunjukan hubungan atau relasi antara dua class atau lebih. Association memiliki beberapa properti yaitu: 1. Name untuk mendeskripsikan hubungan antara dua class. 2. Multiplicity untuk mengidentifikasikan jumlah instance yang dapat terhubung. Tanda * menandakan bahwa association memiliki multiplicity "many". Multiplicity "many" juga dapat ditandai dengan 0..n .
Gambar 2.4 Contoh Association (Bernd Bruegge & Allen H. Dutoit, 2010) Pada gambar 2.4 diatas, peran pada masing-masing class mengidentifikasi fungsi pada class tersebut berdasarkan pada association (misalnya, author adalah peran yang dimainkan oleh FieldOfficer untuk dapat melakukan writes pada association diatas).
33
http://digilib.mercubuana.ac.id/
Sedangkan
tanda angka
dan
* pada masing-masing class
diatas
menigdentifikasi kemunkinan jumlah kasus (multiplicy) yang dapat dilakukan dalam suatu association (misalnya, tanda * menandakan Field Officer dapat melakukan writes 0 atau lebih pada EmergencyReport, dimana angka menandakan
1
bahwa setiap EmergencyReport hanya memiliki 1 FieldOfficer
sebagai author). Dalam associations, terdapat beberapa jenis: 1. One-to-one association, memiliki multiplicity 1 di kedua ujung. Contohnya, satu
PoliceOfficer hanya
dapat
memililki 1 BadgeNumber dan
satu
BadgeNumber hanya dapat dimiliki 1 PoliceOfficer.
Gambar 2.5 Contoh Association one-to-one (Bernd Bruegge & Allen H. Dutoit, 2010) 2. One-to-many association, memiliki multiplicity 1 di salah satu ujung dan 0..n (bisa juga tanda *) di ujung yang satunya lagi. Contohnya, satu FireUnit dapat memiliki 1 atau lebih FireTrucks, satu FireTrucks hanya dapat dimiliki oleh satu FireUnit.
Gambar 2.6 Contoh Association one-to-many (Bernd Bruegge & Allen H. Dutoit, 2010) 3. Many-to-many association, memiliki multiplicity 0..n atau 1..n di kedua ujung. Sebagai contoh, satu FieldOfficer dapat melakukan write kepada banyak IncidentRepoprts, dan juga satu IncidentReport dapat ditulis oleh banyak FieldOfficers.
Gambar 2.7 Contoh Association many-to-many (Bernd Bruegge & Allen H. Dutoit, 2010) b) Aggregation Aggregation adalah association khusus yang menunjukan hubungan seluruhbagian.
Sebagai contoh, pada gambar 2.8 sebuah FireStation terdiri dari
sejumlah FireFighters, FireEngines, Ambulances, dan sebuah LeadCar. 34
http://digilib.mercubuana.ac.id/
Gambar 2.8 Contoh Shared Aggregation (Bernd Bruegge & Allen H. Dutoit, 2010) Ada dua jenis aggregation: 1. Composition aggregation, menandakan bahwa keberadaan class yang menjadi bagian bergantung kepada class yang menjadi keseluruhan. Composition aggregation ditandai dengan diamond berwarna hitam (Gambar 2.9).
Gambar 2.9 Contoh Composition Aggregation (Bernd Bruegge & Allen H. Dutoit, 2010) 2. Shared aggregation, menandakan bahwa class yang menjadi bagian, maupun class yang menjadi keseluruhan dapat berdiri sendiri. Shared aggregation ditandai dengan diamond berwarna putih (Gambar 2.8). c) Inheritance Inheritance adalah hubungan antara satu class dengan satu atau lebih class lain
yang
lebih
khusus.
Inheritance memungkinkan kita untuk
mendeskripsikan semua attribute dan method yang umum dari suatu set class. Contohnya pada gambar 2.9, FieldOfficers dan Dispatchers merupakan PoliceOfficers.
Untuk memodelkannya maka dibuat satu class baru yaitu
PoliceOfficer yang akan menurunkan class FieldOfficers dan Dispatcher.
35
http://digilib.mercubuana.ac.id/
Gambar 2.10 Contoh Inheritance (Bernd Bruegge & Allen H. Dutoit, 2010) Di bawah ini adalah elemen–elemen yang terdapat dalam Class Diagram : Tabel 2.4 Elemen - Elemen Class Diagram No.
Nama
Simbol
Definisi
Elemen 1
a. Class dapat berupa jenis orang,
Class class +Attribute1 +Operation1()
tempat atau mengenai suatu hal yang harus didapatkan sistem dan disimpan informasinya. b. Class mempunyai nama class yang ditulis dengan huruf tebal dan berada di atas bagiannya (kompartemen). c. Class mempunyai daftar atribut di tengah bagiannya d. Class mempunyai daftar operasi di bagian paling bawah e. Class
tidak
menunjukkan
secara
eksplisit
operasi
yang
tersedia untuk semua class 2
Atribut
Nama Atribut
a. Atribut
menggambarkan
properties yang menggambarkan kondisi dari suatu objek. b. Atribut dapat berasal dari atribut lain,
ditunjukkan
menempatkan
garis
sebelum nama atribut itu 36
http://digilib.mercubuana.ac.id/
dengan miring
No.
Nama
Simbol
Definisi
Operation name ()
a. Metode menggambarkan tindakan
Elemen 3
Metode
atau fungsi yang dapat dilakukan sebuah class b. Metode
dapat
diklasifikasikan
sebagai konstruktor, query atau operasi update c. Metode terdiri dari tanda kurung yang
dapat
mengandung
parameter khusus atau informasi yang dibutuhkan untuk melakukan operasi 4
Asosiasi
a. Asosiasi
menggambarkan
hubungan antara beberapa class, atau class dengan dirinya sendiri. b. Asosiasi diberi label kata kerja atau nama peran, tergantung yang mana
yang
lebih
baik
yang
menggambarkan relasi c. Asosiasi terdapat di antara satu class atau lebih d. Asosiasi berisi simbol multiplicity, yang mewakili jumlah minimum dan maksimum
suatu class
instance dapat dikaitkan dengan class intance yang lain
1.7.1.3.
Sequence Diagram Sequence Diagram menggambarkan interaksi antar obyek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (obyek-obyek yang terkait). 37
http://digilib.mercubuana.ac.id/
Sequence Diagram biasa digunakan untuk menggambaran scenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Di awali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.
Gambar 2.11 Contoh Sequence Diagram (Bernd Bruegge & Allen H. Dutoit, 2010) Di bawah ini adalah elemen–elemen dalam Sequence Diagram : Tabel 2.5 Elemen - Elemen Sequence Diagram No. Nama Elemen 1
Simbol
Definisi
Aktor
a) Aktor adalah orang atau sisytem yang memperoleh manfaat dari dan di luar sistem b) Aktor aktif secara berurutan dengan mengirimkan atau menerima pesan c) Aktor ditempatkan di bagian atas diagram
2
Object
a) Objek berpartisasi secara berurutan dengan mengirimkan atau menerima Object
message b) Objek ditempatkan di bagian atas diagram
38
http://digilib.mercubuana.ac.id/
No. Nama Elemen 3
Simbol
Definisi a) Lifeline menunjukkan masa dari
Lifeline
sebuah objek dalam sebuah urutan Lifeline berisi X pada suatu poin dimana kelas atau objek tidak lagi berinteraksi 4
Focus
a) Focus of control berupa
of
control
persegi
panjang yang tipis ditempatkan di atas lifeline b) Focus of control ditunjuk ketika sebuah objek sedang mengirim atau menerima message
5
a) Mesaage menyampaikan informasi
Message
dari satu object ke object lain 5
Object
a) Object destruction berupa simbol X
X
destruction
ditempatkan pada akhir dari suatu object’s lifeline untuk menunjukkan bahwa lifeline akan berakhir
1.7.1.4.
Activity Diagram Activity Diagram menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Activity Diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram. Activity diagram dipakai pada bisnis pemodelan untuk memperlihatkan urutan aktivitas proses bisnis.
39
http://digilib.mercubuana.ac.id/
Gambar 2.12 Contoh Activity Diagram (Bernd Bruegge & Allen H. Dutoit, 2010) Di bawah ini adalah elemen–elemen dalam Activity Diagram : Tabel 2.6 Elemen - Elemen Activity Diagram No. Nama Elemen 1
Simbol
Definisi
Activity
Menggambarkan aksi atau aktivitas, activity dapat dilakukan hanya setelah .
semua
predecessor
activty
atau
aktivitas yang sebelumnya telah selesai dilakukan 2
Control Flow
Arah aliran dari dan ke masing-masing activity
40
http://digilib.mercubuana.ac.id/
No. Nama Elemen 3
Simbol
Definisi Adalah cabang dari control flow. Yang
Control node – Decision
memberikan alternatif berbasis kondisi Decision
pada suatu object atau sekumpulan object
4
5
Control node –
Membagi flow control ke dalam
Fork nodes
banyak activity (thread)
Control node –
Melakukan sinkroniasi dari banyak
Join nodes
activity (thread) ke dalam satu activity paralel
1.7.2. Database Database adalah sebuah tempat penyimpanan yang besar dimana terdapat kumpulan data yang tidak hanya berisi data operasional tetapi juga deskripsi data. Seperti yang disampaikan oleh Connolly dan Begg (2010, 65), bahwa database adalah kumpulan data yang saling terhubung secara logis dan deskripsi dari data tersebut, dirancang untuk menemukan informasi yang dibutuhkan oleh sebuah organisasi. Database ini akan menjadi sumber data yang digunakan secara bersama dalam perusahaan. Untuk dapat menggunakan database dibutuhkan sebuah Database Management System (DBMS), seperti MySQL, MsSQL, PostgreSQL, dll.
41
http://digilib.mercubuana.ac.id/
Gambar 2.13 Contoh diagram Database (Connolly and Begg 2010)
1.7.2.1.
Spesifikasi Basis Data Spesifikasi basis data menguraikan tentang data yang saling berhubungan satu sama lainnya yang tersimpan di perangkat komputer dan digunakan oleh perangkat lunak untuk memanipulasi. Spesifikasi basis data menjelaskan masing–masing relasi berisi nama file, media penyimpanan yang dipakai, isi atau keterangan dari file, organisasi, Primary Key, panjang record, jumlah record dan struktir file. Basis data merupakan kumpulan dari data yang saling berhubungan satu dengan yang lain dan tersimpan diluar komputer serta digunakan perangkat lunak (software) tertentu untuk memanipulasinya. Sedangkan sistem basis data adalah untuk suatu sistem penyusunan dan pengolahan record-record dengan menggunakan komputer dengan tujuan untuk menyimpan atau merekam serta melihat data operasional lengkap pada sebuah organisasi atau perusahaan, sehingga mampu menyediakan informasi optimal yang diperlukan untuk kepentingan proses pengambilan keputusan.
1.8.
Pengujian Perangkat Lunak Pengujian (Testing) Arsitektur dari perangkat lunak berorientasi objek menghasilkan sekumpulan layered subsistems yang mengenkapsulasi kelas-kelas yang berkolaborasi. Setiap elemen sistem (subsistem dan class) melakukan fungsi yang membantu untuk mencapai kebutuhan sistem. Setiap elemen sistem sangat penting untuk menguji sebuah object oriented sistem pada berbagai macam level yang berbeda dalam sebuah usaha untuk menemukan kesalahan-kesalahan yang mungkin terjadi dari kolaborasi kelas-kelas dan komunikasi subsistem melewati architetural layer (Pressman, 2010:631).
42
http://digilib.mercubuana.ac.id/
1.8.1. Teknik Pengujian Pengujian perangkat lunak memerlukan perancangan kasus uji (test case) agar dapat menemukan kesalahan dalam waktu singkat dan usaha minimum. Berbagai macam metode perancangan kasus uji telah berevolusi. Metode-metode ini menyediakan developer pendekatan sistematis untuk pengujian. Terlebih lagi metode-metode ini menyediakan mekanisme yang dapat membantu memastikan kelengkapan dari pengujian dan menyediakan kemungkinan tertinggi untuk menemukan kesalahan-kesalahan dalam perangkat lunak (Pressman, 2010:443). Teknik atau metode perancangan kasus uji yang digunakan adalah black-box testing.
1.8.1.1.
Black-Box Testing Black-box testing atau behavioral testing berfokus pada persyaratan fungsional perangkat lunak (Pressman, 2010 : 459). Dengan demikian, pengujian black-box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk semua program. Pengujian black-box merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan. Pengujian black-box berusaha menemukan kesalahan dalam kategori berikut : 1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan interface. 3. Kesalahan dalam struktur data atau akses basis data eksternal. 4. Kesalahan kinerja. 5. Inisialisasi dan kesalahan terminasi. Pengujian black-box cenderung diaplikasikan selama tahap akhir pengujian. Pengujian black-box memperhatikan struktur kontrol, maka perhatian berfokus pada domain informasi.
1.8.1.2.
White-Box Testing White-box testing atau glass-box testing merupakan sebuah metode perancangan kasus uji yang menggunakan struktur kontrol dari perancangan prosedural untuk memperoleh kasus uji (Pressman, 2010:444).
43
http://digilib.mercubuana.ac.id/
1.8.2. Strategi Pengujian Menurut Roger Pressman (2001:477) strategi untuk pengujian perangkat lunak mengintegrasikan metode desain test case perangkat lunak ke dalam sederetan langkah yang direncanakan dengan baik, dan hasilnya adalah konstruksi perangkat lunak yang berhasil. Sejumlah strategi pengujian perangkat lunak telah diusulkan di dalam literatur. Strategi pengujian harus mengakomodasi pengujian tingkat rendah yang diperlukan untuk membuktikan bahwa segmen kode sumber yang kecil telah diimplementasikan dengan tepat, demikian juga pengujian tingkat tinggi yang memvalidasi fungsi-fungsi sistem mayor yang berlawanan dengan kebutuhan pelanggan. Proses pengujian dimulai dengan pengujian yang berfokus pada setiap modul secara individual (unit testing), dan dilanjutkan dengan pengujian validasi (validation testing) (Pressman, 2010:481).
1.8.2.1.
Pengujian Unit Pengujian unit berfokus pada usaha verifikasi pada inti terkecil dari desain perangkat lunak, yakni modul. Dengan menggunakan gambaran desain prosedural sebagai panduan, jalur kontrol yang penting diuji untuk mengungkap kesalahan di dalam batas modul tersebut. Kompleksitas relatif dari pengujian dan kesalahan yang diungkap dibatasi oleh ruang lingkup batasan yag dibangun untuk pengujian unit. Pengujian unit biasanya berorientasi pada white-box, dan langkahnya dapat dilakukan secara paralel untuk model bertingkat (Pressman, 2010:485). Interface modul diuji untuk memastikan bahwa informasi secara tepat mengalir masuk dan keluar dari inti program yang diuji. Struktur data lokal diuji untuk memastikan bahwa data yang tersimpan secara temporal dapat tetap menjaga integritasnya selama semua langkah di dalam suatu algoritma dieksekusi. Kondisi batas diuji untuk memastikan bahwa modul beroperasi dengan tepat pada batas yang ditentukan untuk membatasi pemrosesan. Semua jalur independen (jalur dasar) yang melalui struktur kontrol dipakai sedikitnya satu kali. Proses selanjutnya adalah proses penanganan kesalahan uji sebagai akhir dari pengujian (Pressman, 2010:485).
1.8.2.2.
Pengujian Validasi Pada kulminasi pengujian terintegrasi, perangkat lunak secara lengkap dirakit sebagai suatu paket; kesalahan interfacing telah diungkap dan dikoreksi, dan seri akhir dari pengujian perangkat lunak, yaitu pengujian validasi dapat dimulai. Validasi dapat ditentukan dengan berbagai cara, tetapi definisi yang sederhana adalah bahwa validasi berhasil bila perangkat lunak berfungsi dengan cara yang dapat diharapkan 44
http://digilib.mercubuana.ac.id/
secara bertanggung jawab oleh pelanggan. Validasi perangkat lunak dicapai melalui sederetan pengujian black-box yang memperlihatkan konformitas dengan persyaratan. Rencana pengujian menguraikan kelas-kelas pengujian yang akan dilakukan, dan prosedur pengujian menentukan test case spesifik yang akan digunakan untuk mengungkap kesalahan dalam konformitas dengan persyaratan. Baik rencana dan prosedur didesain untuk memastikan apakah semua persyaratan fungsional dipenuhi; semua persyaratan kinerja dicapai; dokumentasi betul dan direkayasa oleh manusia: dan persyaratan lainnya dipenuhi (transportabilitas, kompatibilitas, pembetulan kesalahan, maintanabilitas) (Pressman, 2010:495).
45
http://digilib.mercubuana.ac.id/