BAB 2
2.1 Intranet Menurut Turban, Rainer, dan Potter (2003, p222), intranet merupakan suatu jaringan yang bersifat privat yang hanya dapat digunakan oleh orang yang berwenang untuk menggunakan jaringan tersebut. Menurut Tittel (2001, p69), intranet adalah jaringan informasi internal dari suatu perusahaan yang memiliki prinsip kerja mirip dengan internet. Jadi dapat ditarik kesimpulan bahwa intranet adalah jaringan internal yang bersifat privat, yang berfungsi menyalurkan informasi dan hanya dapat diakses oleh orang yang berwenang saja.
2.2 Rekayasa Perangkat Lunak 2.2.1 Definisi Rekayasa Perangkat Lunak Menurut Kaseem A. Saleh (2009, p2), Rekayasa perangkat lunak adalah suatu teknik untuk mengembangkan dan merawat perangkat lunak yang handal dan efisien dalam menyelesaikan masalah. Menurut Pankaj Sharma (2004, p1), Rekayasa perangkat lunak adalah suatu disiplin yang bertujuan mengembangkan perangkat lunak yang menjawab kebutuhan dalam batasannya terhadap waktu dan biaya. Menurut D. Sundar (2010, p4), Rekayasa perangkat lunak adalah suatu disiplin yang berkaitan dengan teknik dan pengaturan dalam produksi perangkat lunak secara sistematis.
9
10
Jadi dapat disimpulkan bahwa tekayasa perangkat lunak adalah suatu disiplin yang melingkupi teknik dan pengaturan langkah kerja dalam pembuatan perangkat lunak yang sistematis, dalam menghasilkan perangkat lunak yang menjawab kebutuhan user.
2.2.2 Analisa Kebutuhan Menurut Ian Sommerville (2007, p143), tujuan dari analisa kebutuhan adalah untuk menghasilkan dan memelihara dokumen yang berisi spesifikasi perangkat lunak. Keseluruhan proses dari analisa ini terdiri dari 4 sub-proses utama, seperti pada gambar di bawah.
Gambar 2.1 Proses analisis kebutuhan (Ian Sommerville, Software Engineering, 2007, p143)
Demikian penjelasan dari ke-4 sub-proses tersebut :
11
1. Feasibility study Tahapan ini bertuuan untuk mengetahui apakah perangkat lunak yang dibangun akan berkontribusi banyak bagi perusahaan. Pengujian dapat dilakukan dengan mengajukan sejumlah perntanyaan kepada pihak yang terkait. 2. Requirements elicitation and analysis Tahap ini bertujuan untuk mendefinisikan servis apa yang dibutuhkan, batasan pernagkat keras, performa perangkat lunak, dan lain-lain. Pada tahap ini, beberapa stakeholder akan terlibat. Tahap ini terdiri dari 4 proses, yaitu : a. Requirement discovery Proses ini melibatkan para stakeholder untuk menginformasikan kebutuhan mereka yang berbeda-beda, sehingga dapat dihasilkan dokumentasi kebutuhan. Umumnya digunakan metode wawancara untuk mengumpulkan kebutuhan tersebut. b. Requirement classification and organization Tahapan ini akan mengklasifikasikan kebutuhan dan mengaturnya ke dalam kelompok-kelompok kecil. c. Requirement prioritisation and negotiation Jika terdapat banyak stakeholder yang terlibat langsung, besar kemungkinan akan terjadi bentrokan kebutuhan, sehingga dalam tahap ini akan dicari solusinya melalui negosiasi. d. Requirement documentation Kebutuhan yang sudah fixed akan didokumentasikan dan dimasukkan pada tahapan spiral berikutnya, seperti gambar di bawah ini.
12
Gambar 2.2 Proses analisis dan penentuan kebutuhan (Ian Sommerville, Perangkat lunak Engineering, 2007, p66)
3. Requirements specification Tahap ini akan mengelompokkan kebutuhan yang sebelumnya didefinisikan ke dalam user, sistem, dan kebutuhan bisnis. 4. Requirements validation Tahap ini akan mengkonfirmasi ulang apakah daftar kebutuhan yang telah direvisi sudah benar-benar memenuhi kebutuhan user. Sebab kesalahan pada
13
pendefinisian kebutuhan akan mengakibatkan diulangnya sebagian besar pekerjaan yang membutuhkan biaya yang relatif besar.
Pengujian yang terdapat dalam tahap ini meliputi : 1. Pengujian validitas Menguji apakah diperlukan fungsi tambahan di dalam peranagkat lunak. 2. Pengujian konsistensi Menguji apakah terdapat konflik kebutuhan di dalam suatu peranagkat lunak. 3. Pengujian kelengkapan Menguji apakah sudah terdapat semua fungsi yang didefinisikan berdasarkan kebutuhan. 4. Pengujian realita Menguji apakah peranagkat lunak yang dibentuk benar-benar dapat diimplementasikan dengan mempertimbangkan batasan uang dan waktu. 5. Pengujian kepastian Menguji apakah semua kebutuhan user telah terjawab, misalnya dengan mendemokan program didepan user.
Beberpa teknik validasi yang dapat digunakan sendiri atau bersamaan pada tahap ini : 1. Review kebutuhan Kebutuhan dianalisa oleh sekelompok ahli, dapat dilakukan dengan berdiskusi. 2. Prototyping
14
Membuat model dari sistem dan melakukan berbagai eksperimen untuk melihat apakah nantinya peranagkat lunak yang utuh akan dapat memenuhi kebutuhan. 3. Uji kasus Tes yang ditujukan bagi kebutuhan itu sendiri, untuk memastikan bahwa kebutuhan itu dapat diimplementasikan. Jika tidak, sebaiknya kebutuhan yang bersangkutan direvisi kembali.
2.2.3 Waterfall Model Dari sekian banyak model pengebangan perangkat lunak (Software Development Life Cycle), model yang digunakan pada skripsi ini adalah waterfall model.
Gambar 2.3 Siklus hidup perangkat lunak (Ian Sommerville, Software Engineering, 2007, p66)
15
Menurut Ian Sommerville (2007, p67), adapun langkah-langkah pada waterfall model seperti yang terdapat pada gambar diatas dapat diterangkan sebagai berikut : 1. Requirements definition Layanan, tujuan, dan batasan dibentuk berdasarkan wawancara dengan calon pengguna sistem. Pada tahap ini dihasilkan spesifikasi dari sistem. 2. System and perangkat lunak design Desain sistem membagi kebutuhan ke perangkat lunak atau hardware. Pada tahap
ini
dibangun
arsitektur
sistem
secara
keseluruhan
dengan
mengidentifikasikan abstraksi dari sistem perangkat lunak dan relasinya. 3. Implementation and unit testing Pada tahapan ini, sistem perangkat lunak seharusnya sudah menghasilkan beberapa unit program.
Unit yang dihasilkan akan diuji, apakah sudah
memenuhi fungsinya dengan baik. 4. Integration and system testing Seluruh unit program disatukan dan diuji sebagai satu sistem yang utuh untuk memastikan bahwa perangkat lunak yang telah terbentuk telah memenuhi spesifikasi awalnya. Jika telah memenuhi spesifikasi, maka perangkat lunak dapat segera diantar ke user. 5. Operation and maintenance Setelah perangkat lunak diantar dan digunakan user beberapa lama, jika ditemukan kesalahan atau bug yang tidak ditemukan pada tahap pengujian sebelumnya, atau jika produsen ingin meningkatkan performa dan fungsi dari perangkat lunaknya, maka semua itu termasuk pada tahap ini.
16
2.2.4 Definisi User Interface Menurut Wilbert O. Galitz (2007,p4), User interface adalah bagian dari komputer yang memungkinkan user untuk berinteraksi dengan memanfaatkan sebagian atau seluruh panca inderanya, dan memungkinkan user melakukan input dan melihat output yang dibutuhkannya. Manurut Deborah L. Stone dan Debbie Stone (2005, p4), User interface adalah bagian dari sistem komputer yang berinteraksi langsung dengan user, agar user dapat mencapai tujuannya. Jadi dapat disimpulkan bahwa user interface adalah bagian dari komputer yang berinteraksi langsung dengan user, tempat user memasukkan data dan memperoleh informasi yang diinginkannya.
2.2.5 Delapan Aturan Emas Perancangan User Interface Menurut Schneiderman (1998, p74-75), terdapat delapan aturan emas yang harus dipenuhi dalam merancang User Interface (UI) yang baik, yaitu : 1. Konsisten Diperlukan konsistensi di dalam tampilan, menu, jenis tulisan, istilah yang digunakan, warna, dsb. 2. Adanya shortcut Shortcut memungkinkan user untuk bekerja lebih cepat dan lebih mudah dalam mengakses fitur yang tersedia. 3. Memberikan umpan balik yg informatif
17
Setiap tindakan yang dilakukan oleh user harus mendapat system feedback yang sesuai. Tindakan sederhana akan direspon sederhana, dan tindakan yang bersifat major akan direspon secara khusus pula. 4. Merancang dialog yang memandu user sampai output terpenuhi Memberikan gambaran hasil dari suatu tindakan yang dilakukan user beserta alternatif pilihan yang memungkinkan user untuk mempengeruhi hasil akhir dari suatu proses, sehingga user dapat merasa lebih aman dan nyaman dalam memutuskan suatu tindakan. 5. Terdapat mekanisme penanganan untuk kesalahan sederhana Kesalahan kecil sering dilakukan oleh user, terutama user awam. Karena itu, diperlukan pula suatu mekanisme yang dapat menekan kesalahan user tesebut, dan pesan kesalahan harus dimunculkan agar user mengerti kesalahannya. 6. Terdapat fitur undo Mekanisme undo diperlukan agar user dapat meralat kembali kesalahan yang dilakukannya. 7. Mendukung internal locus of control (user memegang kendali) Maksudnya adalah fitur yang tersedia memberikan kemudahan bagi user agar user merasa memegang kendali atas site. Kesulitan navigasi akan menimbulkan ketidakpuasan. 8. Mengurangi beban ingatan jangka pendek Keterbatasan manusia dalam menerima banyak informasi dalam waktu bersamaan dapat menimbulkan ketidaknyamanan. Karena itu suatu site harus dibuat sesederhana mungkin agar tidak membingungkan user dengan informasi yang membanjir.
18
2.3 Basis data 2.3.1 Data Menurut Turban, Rainer, dan Potter (2003, p13), data adalah deskripsi dari suatu benda atau peristiwa yang direkam, dikelompokkan, dan disimpan, namun belum terorganisir dengan baik untuk dapat ditarik informasi daripadanya. Menurut Hoffer (2005, p5), data adalah suatu fakta yang telah diketahui, dikumpulkan, dan disimpan secara digital. Jadi dapat ditarik kesimpulan bahwa data adalah kumpulan fakta mentah yang dikelompokkan dan disimpan, untuk kemudian digunakan dalam proses penarikan informasi.
2.3.2 Definisi Basis data Menurut Connolly (2002, p14), basis data adalah kumpulan data yang saling berhubungan secara logika, berikut dengan deskripsi tiap-tiap data tersebut, yang dibuat untuk memenuhi kebutuhan informasi di dalam suatu organisasi. Menurut Indrajani (2008, p2), basis data adalah kumpulan data terpadu yang saling berhubungan secara logika, yang sebelumnya tersimpan secara terpisah. Jadi dapat ditarik kesimpulan, bahwa basis data adalah kumpulan data yang saling terhubung secara logika, yang memberikan informasi bagi user.
2.3.3 Sistem Basis data Menurut Conolly dan Begg (2005, p4), sistem basis data adalah kumpulan aplikasi yang berinteraksi dengan basis data.
19
Terdapat berbagai pendekatan yang dapat digunakan dalam perancangan basis data, yaitu : 1. Top-down Pendekatan ini diawali dengan pembentukan model data yang berisi beberapa entity high level dan relationship, kemudian entity lower level, relationship, dan atribut lainnya akan diidentifikasikan secara berurut ke bawah. 2. Bottom-up Pendekatan ini diawali dengan atribut atribut dasar, yang terdiri dari sifat entitas dan relationship, kemudian dilanjutkan dengan analisis dan penggabungan antar atribut yang dikelompokkan di dalam suatu relasi yang menggambarkan tipe dari entitas dan relationship antar entitas. 3. Inside-out Mirip dengan pendekatan bottom-up, namun identifikasi awal dimulai dengan entitas utama, kemudian menyebar ke identifikasi entitas, relationship, dan atribut lainnya yang masih terkait, yang sebelumnya telah diidentifikasi terlebih dahulu. 4. Mixed Menggunakan pendekatan bottom-up dan top-down untuk bagian yang berbeda, sesuai dengan kecocokan, dan kemudian digabungkan.
2.3.4 Tahapan Perancangan Basis data Perancangan basis data terdiri tiga tahap utama, yaitu : 1. Perancangan basis data Konseptual Pada tahap ini, model data dibuat dari sudut pandang dunia nyata dan telepas dari pertimbangan fisik. Model desain hanya terdiri dari blok-blok dengan nama tabel
20
dan relasi yang terjadi antar-tabel. 2. Perancangan basis data Logikal Dibuat berdasarkan model konseptual dari basis data, yang ditambahkan pemetaan objek, yang memiliki nama dan atribut. 3. Perancangan basis data Fisikal Pada proses ini akan diproduksi sebuah deskripsi dari implementasi basis data dalam penyimpanan sekunder, yang menggambarkan struktur penyimpanan dan metode akses yang akan digunakan sebagai metode akses yang efisien terhadap data.
2.3.5 Transaksi Menurut Connolly dan Begg (2002,p73), transaksi adalah satu atau serangkaian aksi yang dipicu oleh user atau aplikasi untuk dapat mengakses atau mengubah isi dari basis data.
Terdapat tiga macam transaksi, yaitu : 1. Transaksi pengambilan Misalnya ketika kita ingin menampilkan data karyawan, dan detailnya ditampilkan di layar. 2. Transaksi update Contohnya memasukan data baru, menghapus data, atau merubah detail suatu data. 3. Transaksi campuran Transaksi yang memanggil dan menampilkan data di layar, kemudian merubah
21
detail data tersebut.
2.4 Pembuatan Perangkat lunak 2.4.1 Definisi PHP Menurut Allen (2002, p xix), PHP merupakan suatu bahasa pemrograman yang diselipkan pada HTML, dimana didalamnya terdapat kumpulan fitur terbaik yang terdapat pada berbagai bahasa pemrograman modern untuk pembuatan aplikasi web. Bahasa PHP didesain agar dapat digunakan dari tingkat dasar sampai tingkat atas. Menurut Welling dan Thomson (2003, p4), keunggulan PHP dibandingkan bahasa pemrograman lainnya adalah : 1. Kemampuan yang tinggi. 2. Mampu terhubung dengan banyak sistem basis data seperti MySQL, Oracle, filepro, dll. 3. Biaya relatif rendah, karena tidak perlu mengeluarkan biaya untuk memperoleh PHP. 4. Mudah dipelajari dan digunakan karena PHP dibuat berdasarkan bahasa C dan Perl. 5. PHP dapat berjalan pada beberapa sistem operasi seperti berbagai versi Windows, Linux, dll. Dengan mempertimbangkan kelebihan-kelebihan yang dimiliki oleh bahasa PHP, maka bahasa ini dipilih untuk menulis program dalam skripsi kali ini.
22
2.4.2 Definisi MySQL Menurut Allen dan Homberger (2002, p220), MySQL merupakan bahasa pemrograman open source yang paling banyak digunakan oleh para programmer, terutama pada Linux, karena query basis datanya yang handal dan jarang bermasalah. Menurut Nugroho (2004, p220), MySQL adalah program open source yang berfungsi membuat basis data, sehingga semua orang dapat menggunakannya dengan bebas, dan dapat berjalan pada banyak Operating System, seperti Windows, Linux, dll. MySQL juga bersifat multiuser, yaitu dapat digunakan banyak orang bersamaan, karena program pengakses basis datanya yang bersifat jaringan. Karena inilah MySQL dipilih untuk digunakan pada skripsi kali ini, karena sifatnya yang open source, tidak memerlukan banyak biaya, query yang jarang error, fleksibel (dapat berjalan pada banyak platform), dan multiuser.
2.5 Teori Pendukung Tambahan 2.5.1 Diagram Aliran Dokumen (DAD) Menurut Whitten, Bentley, dan Dittman (2004, p344), DAD merupakan alat yang menggambarkan bagaimana dokumen berpindah dalam suatu sistem dan bagaimana dokumen tersebut diproses oleh sistem tersebut. Komponen DAD terdiri dari : 1. Entitas eksternal Entitas yang menyediakan data input atau menerima output dokumen. 2. Proses Gambaran dari prosedur yang berjalan. 3. Arus data
23
Sekumpulan data yang secara logis terhubung dan bergerak dari 1 proses ke proses lainnya. 4. Dokumen Tempat penampungan data, dimana dari padanya suatu proses dapat mengambil dan memasukkan data.
2.5.2 Entity Relationship (ER) Modelling Menurut Connolly dan Begg (2005, p330), ER modelling adalah pendekatan topdown untuk merancang basis data yang dimulai dengan mengidentifikasi entitas yang dianggap penting, dan kemudian hubungan antar entitas tersebut juga diidentifikasi. Menurut Hoffer, Prescott, dan McFadden (2002, p92), ER modelling adalah gambaran logikal data dari suatu organisasi. Jadi dapat ditarik kesimpulan bahwa ER modelling adalah suatu gambaran logikal yang menggambarkan entitas-entitas yang terdapat di dalam suatu basis data, dan bagaimana cara setiap entitas tersebut dapat terhubung.
2.5.3 State Transition Diagram (STD) Menurut Yourdon (1989, p263), STD merupakan suatu alat untuk memodelkan tingkah laku sistem dengan memodelkan pergerakan sistem dari satu kondisi ke kondisi lainnya. Komponen utama dari STD adalah : 1. State, diwakili oleh simbol persegi panjang. 2. Transisi antar state, diwakili oleh anak panah. Tiap panah diberi label yang menunjukkan bagaimana perpindahan state terjadi.
24
2.5.4 Data Flow Diagram (DFD) Menurut Kendall (2005, p191-197), DFD adalah representasi grafis dari seluruh proses data yang terjadi dalam suatu organisasi. Komponen DFD terdiri dari : 1. Entitas
2. Arus data
3. Proses
4. Penyimpanan data
DFD level 0 adalah diagram yang menggambarkan garis besar proses, hingga maksimal 9 proses, tanpa terlalu mendetail. Pada level berikutnya, proses-proses pada level 0 tersebut akan dipecah untuk memberikan gambaran yang lebih mendetail. Proses yang dipecah disebut parent process, dan hasilnya disebut child process.