10 BAB II LANDASAN TEORI 2.1. Aplikasi Aplikasi merupakan kumpulan dari prosedur-prosedur yang digunakan untuk mengolah data menjadi informasi. Misalnya penjumlahan, klasifikasi, rotasi, koreksi geometri, query, overlay, buffer, join table dan sebagainya. Menurut Daryanto (2004:347), aplikasi adalah software atau perangkat lunak yang dibuat untuk mengerjakan menyelesaikan masalah-masalah khusus. Sedangkan menurut Jogiyanto (2004:4), aplikasi merupakan program yang berisikan perintah-perintah untuk melakukan pengolahan data. Jadi aplikasi secara umum adalah sutau proses dari cara manual yang ditransformasikan ke komputer dengan membuat sistem atau program agar data diolah lebih berdaya guna secara optimal. Dari uraian di atas dapat disimpulkan bahwa aplikasi adalah sebuah perangkat lunak yang berisi perintah untuk menyelesaikan masalah dan pengolahan data. 2.1.1. Komponen Aplikasi Komponen-komponen aplikasi yang digunakan dalam pengembangannya adalah: 1. Perangkat keras, diperlukan untuk menjalankan Database Management System (DBMS). Database Management System adalah koleksi terpadu dari 10 11 database dan program-program komputer (utilities) yang digunakan untuk mengakses dan memelihara database. 2. Program, terdiri atas sistem operasi, Database Management System dan program aplikasi. 3. Data, terdiri atas sumber data, meta data, kamus data dan overhead data. 4. Prosedur, yang menjelaskan bagaimana sistem dijalankan 5. Personalia, yang terkait dengan pengembangan maupun pemanfaatan aplikasi. 2.2. Data Data adalah fakta atau bagian dari fakta yang digambarkan dengan simbol- simbol, gambar-gambar, nilai-nilai, uraian karakter yang mempunyai arti pada suatu konteks tertentu. Data merupakan bahan baku yang diolah menjadi informasi. Data merupakan salah satu hal utama yang dibahas dalam Teknologi Informasi komputer. Penggunaan dan pemanfaatan data sudah mencakup banyak aspek. Menurut Siagian (2009:118), data merupakan bahan mentah atau bahan baku yang diolah lebih lanjut sehingga bentuknya berubah menjadi informasi. Sedangkan menurut Hartono (2002:2), data adalah kumpulan kejadian yang diangkat dari suatu kenyataan, data dapat berupa angka-angka atau simbol khusus atau gabungan darinya. 12 Jadi berdasarkan referensi diatas dapat disimpulkan bahwa data adalah kumpulan dari suatu kejadian yang berupa bahan mentah untuk jadi kenyataan dan dapat menghasilkan informasi. 2.2.1. Data untuk Aplikasi 1. Data Sumber (source data), ialah fakta yang disimpan di dalam basis data, misalnya: nama, tempat lahir, tanggal lahir, dan lain-lain. 2. Meta Data, digunakan untuk menjelaskan struktur dari basis data, type dan format penyimpanan data item dan berbagai pembatas (constraint) pada data. 3. Data Dictionary atau Data Repository, digunakan untuk menyimpan informasi katalog schema dan pembatas serta data lain seperti: pembakuan, deskripsi program aplikasi dan informasi pemakai. 2.3. Pengolahan Data Menurut Moekijat (2005:22), pengolahan data adalah kegiatan pikiran dengan bantuan tangan atau suatu peralatan, dan mengikuti serangkaian langkah, perumusan atau pola tertentu untuk mengubah data, sehingga data tersebut, bentuk, susunan, sifat, atau isinya menjadi lebih berguna. Sedangkan menurut Jogiyanto (2004:2), pengolahan data merupakan manipulasi dari data ke dalam bentuk yang lebih berguna dan lebih berarti, berupa suatu informasi. 13 Dari uraian di atas dapat disimpulkan bahwa pengolahan data adalah kegiatan memanipulasi atau mengubah data agar menghasilkan informasi yang lebih berguna. 2.3.1. Tahap Pengolahan Data Suatu proses pengolahan data terdiri dari tiga tahapan dasar yang disebut dengan siklus pengolahan data (data processing cycle) yaitu input, processing, output. Tiga tahapan dasar ini kemudian dikembangkan dengan ditambah tiga tahap lagi yaitu origination, storage, dan distribution. Menurut Jogiyanto (2004:3): a) Origination Tahapan ini berhubungan dengan proses dari pengumpulan data yang biasanya merupakan proses pencatatan (recording) data dokumen dasar. b) Input Tahap ini merupakan proses pemasukan data kedalam proses komputer lewat alat Input (input device). c) Processing Tahapan ini merupakan proses pengolahan dari data yang sudah dimasukkan yang dilakukan oleh alat pemroses (processing device). d) Output Tahapan ini merupakan proses menghasilkan output dari hasil pengolahan data ke alat output (out device). 14 e) Distribution Tahapan ini merupakan proses dari didistribusi output kepada pihak yang berhak dan membutuhkan informasi. f) Storage Tahapan ini merupakan proses perekaman hasil pengolahan kesimpulan luar (storage). 2.4. Definisi Nikah/Pernikahan Adapun pengertian yang dikemukakan dalam Undang-undang Perkawinan (UU no. 1 tahun 1974), adalah: Perkawinan/Pernikahan adalah ikatan lahir bathin antara seorang pria dengan seorang wanita sebagai suami istri dengan tujuan membentuk keluarga (rumah tangga) yang bahagia dan kekal berdasarkan Ketuhanan Yang Maha Esa. Bunyi pasal 1 UU Perkawinan ini dengan jelas menyebutkan tujuan perkawinan/pernikahan yaitu membentuk keluarga bahagia dan kekal yang didasarkan pada ajaran agama. Tujuan yang diungkap pasal ini masih bersifat umum yang perinciannya dikandung pasal-pasal lain berikut penjelasan Undangundang tersebut dan peraturan pelaksanaannya. Dalam penjelasan ini disebutkan bahwa membentuk keluarga yang bahagia itu erat hubungannya dengan keturunan, yang juga merupakan tujuan perkawinan, di mana pemeliharaan dan pendidikan menjadi hak dan kewajiban orang tua. 15 2.5. Web/Website Website dapat diartikan sebagai kumpulan halaman-halaman yang dapat digunakan untuk mempublikasikan informasi berupa teks, gambar, dan program multimedia lainnya berupa animasi, suara, atau gabungan dari semuanya itu baik yang bersifat statis maupun yang bersifat dinamis yang membentuk suatu rangkaian bangunan yang saling terkait antara satu page dengan page yang lain yang sering disebut dengan hyperlink. Terminology website adalah kumpulan dari halaman-halaman situs yang biasanya terangkum dari sebuah domain atau subdomain, yang tempatnya berada didalam World Wide Web (WWW) di internet. Sebuah web page adalah dokumen yang ditulis dalam format HTML (Hyper Text Markup Language), yang hampir bisa selalu di akses di HTTP, yaitu protocol yang menyampaikan informasi dari server website untuk ditampilkan kepada para pemakai melalui web browser. Semua publikasi dari website-website tersebut dapat membentuk sebuah jaringan informasi yang sangat besar. Website adalah alat pendukung promosi, bukan alat promosi utama. Mengakses website dibutuhkan koneksi internet dan komputer. Ini sangat berbeda dengan media promosi utama lain: kartu nama, poster, stiker, banner, brosur, media cetak (koran, majalah, tabloid, dll) dan media elektronik (radio dan tv). Website membutuhkan informasi lebih dari sekedar yang ada di media promosi lain. Ini sebabnya juga website harus dirancang dengan baik serta dapat menampilkan citra dari produk/jasa kita. 16 2.6. Komputer Menurut Daryanto (2008:11), komputer adalah peralatan elektronik yang bekerja secara koordinatif dan integratif berdasarkan program, dapat menerima masukan berupa data, mengolahnya dalam memori, dan menampilkan hasil berupa informasi. 2.7. RUP (Rational Unified Process) RUP (Rational Unified Process) merupakan suatu Software engineering process hasil kerja awal dari “Three Amigos” –Ivar Jacobson, Grady Booch, dan James Rumbaugh- yang bertujuan untuk memastikan kualitas yang terbaik pada suatu produksi software dengan memperkirakan jadwal dan biaya yang harus dikeluarkan. RUP merupakan process product dari Rational Software dengan konsep utamanya adalah tentang model, workflow dan workers, serta tentang phase dan iterasi. Aktifitas yang dilakukan oleh Rational Unified Process adalah membuat dan memelihara model. RUP juga meliputi pembahasan dari implementasi UML (Unified Modelling Language) secara luas dan memfokuskan dirinya pada software yang memiliki metodologi berorientasi objek. Sehingga dapat kita bedakan dengan UML bahwa RUP merupakan sebuah proses yang dilakukan dalam rekayasa perangkat lunak sedangkan UML adalah bahasa standar yang digunakan untuk memvisualisasikan, mendeskripsikan, membangun, dan mendokumentasikan perangkat yang akan digunakan dalam membangun sebuah perangkat lunak. 17 Sebelum membahas lebih dalam mengenai Rational Unified Process, kita perlu untuk mengetahui terlebih dahulu apa maksud dari proses itu sendiri. Proses merupakan suatu tahapan yang mendefinisikan siapa yang mengerjakan apa, kapan dan bagaimana meraih suatu tujuan yang pasti. RUP merepresentasikan empat elemen dasar untuk memodelkan pertanyaan yang muncul dari sebuah proses, yaitu workers, activities, artifacts, dan workflows. Worker mendefinisikan behavior/kelakuan dan responsibilities dari seseorang atau sebuah team. Dalam Unified Process, worker lebih diartikan sebagai bagaimana team/individual seharusnya bekerja. Sedangkan tanggungjawab bagi worker adalah melakukan serangkaian aktifitas sebagai pemilik dari sekumpulan artifact. Activity dari spesific worker adalah sebuah unit kerja yang dilakukan seorang individu. Tujuannya cukup jelas,yaitu membuat/meng-update artifact. Setiap activity diberikan kepada spesific worker dan harus dapat digunakan sebagai elemen dalam planning dan progress software development. Artifact merupakan sekumpulan informasi yang dihasilkan, diubah, dan dipakai dalam sebuah proses. Artifact digunakan sebagai input bagi worker untuk melakukan activity dan juga sebagai output dari activity. Workflow adalah serangkaian activities yang menghasilkan nilai hasil yang dapat terlihat. Dalam UML, workflow digambarkan dengan sequence diagram, atau activity diagram. Berikut ini Gambar 2.1 metode pengembangan sistem yang digunakan pada metode RUP: 18 Gambar 2.1 Arsitektur Rational Unified Process Dari gambar diatas, terlihat ada sembilan core process workflow dalam RUP. Semuanya merepresentasikan pembagian worker dan activities ke dalam logical grouping. Ada dua bagian utama yaitu process workflows dan supporting workflows. Dalam process workflows terdapat Bussiness modeling yang didalamnya dibuat dokumen bussiness process yang dipakai disebut bussiness use cases. Tujuan dari requirement workflow adalah mendeskripsikan ‘what’/apa yang harus dikerjakan oleh sistem serta membolehkan developer dan costumer untuk menyetujui deskripsi itu. Analysis&Design workflows bertujuan untuk menunjukkan ‘how/bagaimana merealisasikan sistem dalam tahap implementasi. Implementation workflow bertujuan untuk mengimplementasikan classes dan objects dalam hubungannya dengan component, mengetest component yang dihasilkan sebagai unit, dan untuk mengintegrasikan hasil yang dibuat oleh masing-masing implementer/teams ke dalam executable system. Test workflow bertujuan untuk memeriksa interaksi antar objek, penggabungan component dari software dengan tepat, dan memeriksa apakah semua kebutuhan sudah dipenuhi dengan tepat. Selain itu, test bertujuan untuk mengidentifikasikan dan meyakinkan 19 bahwa kerusakan yang ada telah diatasi sebelum men-deploy software. Test menghasilkan tiga macam ukuran qualitas yaitu reliability, functionality, application dan system performance. Deployment workflow dilakukan untuk menghasilkan product release dengan sukses dan aktifitas mengantar software kepada end user seperti membuat external releases dari software, packing software, distributing software, installing software, serta membantu user memahami sistem. Aktifitas ini dilakukan pada fase transition. Project management menyediakan framework untuk mengatur software-intensive projects, panduan untuk planning, staffing, executing, dan monitoring projects. Dikatakan sukses apabila produk tersebut dapat memenuhi kebutuhan user dan kebanyakan customer. Configuration and change management menyediakan panduan untuk mengatur penyusunan software systems, mengatasi perubahan request management, dan dapat menjadi salah satu cara untuk melaporkan suatu kerusakan. Environment bertujuan menyediakan software development organization beserta software development environment, yang dibutuhkan untuk mendukung development team. Setiap phase memiliki tujuan tersendiri, yaitu sebagai berikut : 1. Inception Merupakan fase yang pertama kali dijalankan, didalamnya akan membangun bussiness case dan batasan ruang lingkup project. Hasil dari fase ini adalah vision document (bayangan umum project), initial use-case model (sudah 10%-20% selesai), initial bussiness case, project plan (phases dan iteration), bussiness model jika perlu, dan beberapa prototype. 20 2. Elaboration Tujuan fase ini adalah menganalisa masalah utama, menyusun pondasi arsitektur, membangun rencana project, dan menghilangkan resiko terburuk yang akan dialami project. Aktifitas yang dilakukan yaitu menjamin bahwa arsitektur, requirement, dan rencana yang dilakukan cukup stabil dan mengurangi resiko sehingga dapat memprediksikan schedule yang dibutuhkan. Hasil dari proses ini adalah : use case model (min.80% complete), software architecture description, executable architectural prototype, revisi daftar resiko dan bussiness case. 3. Construction Di fase ini semua component dan feature aplikasi dibangun dan disatukan ke dalam product serta akan diperiksa. Construction phase berupa sebuah proses manufacturing yang menekankan pada pengontrolan operasi untuk mengoptimalkan schedule, dan kualitas. Keluaran dari fase ini adalah kesiapan produk untuk diserahkan kepada user. 4. Transition Tujuannya yaitu untuk mentransisikan/menyerahkan funsionalitas sistem lengkap ke pengguna dan juga menyerahkan rilis produk. Fase ini meliputi : “beta testing” untuk memvalidasi sistem dengan perkiraan user, melakukan operasi paralel dengan sistem lama, mengkonversi operational database, melatih user dan maintaners, roll-out produk untuk pemasaran dan distribusi. 21 2.8. Metode Pendekatan Sistem Menurut Bambang Hariyanto (2004:79-80) pendekatan berorientasi objek adalah cara memandang persoalan menggunakan model-model yang diorganisasikan seputar konsep objek yang mengkombinasikan struktur data dan perilaku suatu entitas. Pendekatan sistem berorientasi objek berbeda dengan pendekatan konvensional yang memandang perangkat lunak sebagai fungsi dan data yang terisolasi. Pada pendekatan konvensional kebanyakan berfokus pada data terutama pada basis data dan pemodelan informasi. Sementara pada pendekatan berorientasi objek berpusat pada objek yang mengkombinasikan data dan fungsionalitas. 2.8.1. UML (Unified Modeling Language) Menurut Munawar (2005:17) UML adalah salah satu alat bantu yang sangat handal di dunia pengembangan sistem yang berorientasi objek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atau visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi (sharing) dan mengkomunikasikan rancangan mereka yang lain. UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan oleh Booch, Object Modeling Technique (OMT) dan Object Oriented Software Engineering (OOSE). Metode Booch dari Grady Booch sangat terkenal dengan nama metode Design Object Oriented. Metode ini menjadikan proses analisis dan design ke dalam empat tahapan iteratif, yaitu: identifikasi kelas-kelas dan objek- 22 objek, identifikasi sematik dari hubungan objek dan kelas tersebut, perincian interface dari implementasi. Keunggulan metode booch adalah pada detail dan kaya dengan notasi dan elemen. Pemodelan OMT yang dikembangkan oleh Rumbaugh didasarkan pada analisis terstruktur dan pemodelan entity-relationship. Tahapan utama dalam metodologi ini adalah analisis, design system, design object dan implementasi. Keunggulan dalam metode ini adalah dalam penotasian yang mendukung semua konsep OO. Metode OOSE dari Jacobson lebih memberi penekanan pada use case. OOSE mempunyai 3 tahapan yaitu membuat model requirement dan analisis, desain dan implementasi, model dan pengujian (test model). Keunggulan metode ini adalah mudah dipelajari karena memiliki notasi yang sederhana namun mencakup seluruh tahapan dalam rekayasa perangkat lunak. Berikut ini Gambar 2.2 unsur-unsur pembentuk UML: Gambar 2.2 Unsur-unsur pembentuk UML 23 UML dibangun atas model 4+1 view. Model ini didasarkan pada fakta bahwa struktur sebuah sistem dideskripsikan dalam 5 view dimana salah satu diantaranya use case view. Use case view ini memegang peran khusus untuk mengintegrasikan konten kepada view yang lain. Berikut ini Gambar 2.3 model 4+1 view: Design View Implementation View Use Case View Process View Deployment View Gambar 2.3 Model 4+1 View Kelima view tersebut berhubungan dengan diagram yang dideskripsikan dalam UML. Setiap view berhubungan dengan perspektif tertentu dimana sistem akan diuji. View yang berbeda akan menekankan pada aspek yang berbeda dari sistem yang mewakili ketertarikan sekelompok stakeholder tertentu. Use case view mendefinisikan prilaku eksternal sistem. Hal ini menjadi daya tarik bagi end user, analis dan tester. Pandangan ini mendefinisikan kebutuhan sistem karena mengandung semua view yang lain yang mendeskripsikan aspekaspek tertentu dari rancangan sistem. Itu sebabnya use case view menjadi pusat peran dan sering dikatakan yang mendrive proses pengembangan perangkat lunak. 24 Design view mendeskripsikan struktur logika yang mendukung fungsifungsi yang dibutuhkan di use case. Design view ini berisi definisi komponen program, class-class utama bersama-sama dengan spesifikasi data, perilaku dan interaksinya. Informasi yang terkantung di view ini menjadi perhatian para programmer karena menjelaskan secara detail bagaimana fungsionalitas sistem akan diimplementasikan. Implementation view menjelaskan komponen-komponen fisik dari sistem yang akan dibangun. Hal ini berbeda dengan komponen logic yang dideskripsikan pada design view. Termasuk disini diantaranya file exe, library dan database. Informasi yang ada di view ini relevan dengan aktifitas-aktifitas seperti manajemen konfigurasi dan integrasi sistem. Proses view berhubungan dengan hal-hal yang berkaitan dengan concurrency di dalam sistem. Sedangkan Deployment view menjelaskan bagaimana komponen-komponen fisik didistribusikan ke lingkungan fisik seperti jaringan komputer dimana sistem akan dijalankan. Kedua view ini menunjukan kebutuhan non fungsional dari sistem seperti toleransi kesalahan dan hal-hal yang berhubungan dengan kinerja. Di bawah ini Tabel 2.1 tipe diagram UML: Tabel 2.1 Tipe Diagram UML Diagram Activity Class Communication Component Composite Structure Tujuan Prilaku procedural dan paralel Class, fitur dan relasinya Interaksi diantara objek. Lebih menekankan ke link Struktur dan koneksi dari komponen Dekomposisi sebuah class saat runtime Keterangan Sudah ada di UML 1 Sudah ada di UML 1 Di UML1 disebut collaboration Sudah ada di UML 1 Baru untuk UML 2 25 Tabel 2.1 Tipe Diagram UML (Lanjutan) Diagram Deployment Interaction Overview Tujuan Penyebaran / instalasi ke klien Gabungan antar activity dan sequence diagram Object Contoh konfigurasi instance Package Struktur hierarki saat kompilasi Sequence State Machine Timing Interaksi antar objek. Lebih menekankan pada urutan Bagaimana event mengubah sebuah objek Interaksi antar objek. Lebih menekan pada waktu Keterangan Sudah ada di UML 1 Baru untuk UML 2 Tidak resmi ada di UML1 Tidak resmi ada di UML1 Sudah ada di UML 1 Sudah ada di UML 1 Baru untuk UML 2 2.8.1.1 Use-case Diagrams Menurut Adi Nugroho (2010:83) Diagram use case pada prinsipnya dibuat untuk mendapatkan spesifikasi kebutuhan pengguna. Diagram use case sangat membantu pekerjaan pengembang. Menurut Bambang Hariyanto (2004:267) Use Case adalah interaksi antara actor eksternal dan sistem, hasil yang dapat diamati oleh actor, berorientasi pada tujuan, dideskripsikan di diagram use-case dan teks. Use-case Diagrams menyediakan cara medeskripsikan pandangan eksternal terhadap sistem dan interaksi-interaksinya dengan dunia luar. Dengan cara ini diagram use-case menggantikan diagram konteks pada pendekatan konvensional. Untuk penciptaan model use-case melibatkan pendefinisian sistem, pencarian aktor-aktor dan use-case, mendeskripsikan use-case dan mendefinisikan hubungan antar use-case dan terakhir adalah melakukan validasi model. 26 2.8.1.1.1 Aktor Menurut Adi Nugroho (2010:35) sebuah aktor pada dasarnya menggambarkan interaksi pengguna-pengguna sistem dengan sistem/perangkat lunak yang sedang dikembangkan. Menurut Bambang Hariyanto (2004:269) Dalam pemodelan sistem dengan UML, actor adalah seseorang atau sesuatu yang berinteraksi dengan sistem. Yang dimaksud dengan berinteraksi adalah actor mengirim atau menerima pesan ke atau dari sistem atau mempertukarkan informasi dengan sistem. Secara prinsip dapat kita kenali 3 jenis actor untuk hampir semua sistem/perangkat lunak yang kita kembangkan, yaitu sebagai berikut : 1. Aktor yang pertama yaitu orang-orang yang hadir secara fisik, atau para pengguna. Mereka adalah aktor yang paling umum dan hadir di setiap sistem/perangkat lunak. 2. Aktor yang kedua yaitu sistem lain. 3. Aktor yang ke tiga yaitu waktu menjadi aktor ketika ia memicu event-event tertentu bagi sistem/perangkat lunak yang kita kembangkan. Berikut ini Gambar 2.4 contoh gambar aktor: Gambar 2.4 Aktor 27 2.8.1.1.2 Use case Menurut Adi Nugroho (2010:51) Use case merupakan unit koheren dari fungsionalitas sistem/perangkat lunak yang tampak dari luar dan diekspresikan sebagai urutan pesan-pesan yang dipertukarkan unit-unit sistem dengan satu atau lebih actor yang ada diluar sistem. Berikut ini Gambar 2.5 contoh gambar use case: Gambar 2.5 Use case 2.8.1.1.3 Class Class merupakan pembentuk utama dari sistem berorientasi objek, karena class menunjukkan kumpulan objek yang memiliki atribut dan operasi yang sama. Class digunakan untuk mengimplementasikan interface. Class digunakan untuk mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. Class bisa merepresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun benda nyata. Notasi class berbentuk persegi panjang berisi 3 bagian: persegi panjang paling atas untuk nama class, persegi panjang paling bawah untuk operasi, dan persegi panjang ditengah untuk atribut. 28 Atribut digunakan untuk menyimpan informasi. Nama atribut menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi yang tersimpan didalamnya. Operasi menunjukkan sesuatu yang bisa dilakukan oleh objek dan menggunakan kata kerja. Berikut ini Gambar 2.6 contoh gambar class: Gambar 2.6 Class 2.8.1.1.4 Relasi Use case dan actor masing masing tidak berdiri sendiri, mereka saling terhubung dengan apa yang dinamakan relasi (Nugroho, Adi. 2005). Adapun relasi tersebut adalah: a) Relasi Asosiasi Relasi Asosiasi adalah lintasan komunikasi antara aktor dengan use case. Dalam UML asosiasi digambarkan dengan garis lurus. (Nugroho, Adi. 2010) b) Relasi Include Relasi Include adalah penambahan prilaku ke suatu use case dasar yang secara eksplisit mendeskripsikan penambahan tersebut. Relasi ini digambarkan sebagai tanda panah bergaris putus-putus dengan kata kunci <<include>>. (Nugroho, Adi. 2010) 29 c) Relasi Extends Relasi Extends berfungsi untuk penambahan perilaku ke suatu use case dasar. Relasi Extends digambarkan sama seperti relasi Include yaitu tanda panah bergaris putus-putus dengan kata kunci <<extends>>. (Nugroho, Adi. 2010) d) Generalisasi Relasi generalisasi menggambarkan hubungan antara use case yang bersifat umum dengan use case-use case yang bersifat lebih spesifik. (Nugroho, Adi. 2010) 2.8.1.2 Activity Diagram Menurut Adi Nugroho (2005:61) Activity diagram adalah salah satu cara untuk memodelkan event-event yang terjadi dalam suatu use case. Diagram ini juga dapat diganti dengan sejumlah teks. Namun, penggunaan teks kadang terlalu sulit dan dipahami, terutama jika aliran event berbelit-belit dan memiliki banyak alternatif Activity diagram digunakan untuk memodelkan aspek dinamis dari sistem. Activity diagram secara esensial mirip diagram alir (flowchart), memperlihatkan aliran kendali dari suatu aktifitas ke aktifitas lainnya. 2.8.1.3 Sequence Diagrams Menurut Adi Nugroho (2005:92) Sequence Diagram adalah interaction diagram yang memperlihatkan event-event yang berurutan sepanjang berjalannya waktu, kita membaca diagram ini dari atas ke bawah. Masing-masing sequence 30 diagram akan menggambarkan aliran-aliran pada suatu use case. Kita dapat membaca diagram ini dengan melihat pada objek-objek dan pesan-pesan (message). Objek-objek yang berperan dalam aliran diperlihatkan pada kotak empat persegi panjang yang melintas pada bagian atas diagram. 2.8.1.4 Class Diagram Menurut Adi Nugroho (2005:110) Diagram Kelas (class diagram) adalah diagram yang digunakan untuk menampilan beberapa kelas serta paket-paket yang ada di dalam sistem/perangkat lunak yang sedang kita kembangkan. Class diagram memberi kita gambaran/diagram statis tentang sistem/perangkat lunak dan relasi-relasi yang ada didalamnya. 2.8.1.4.1 Class Class adalah sesuatu yang membungkus (encapsulate) informasi (atribut) dan perilaku dalam dirinya(operasi/method). Identifikasi class Berikut adalah cara-cara mengidentifikasi class: 1. Class-class dapat kita temukan saat kita meninjau skenario-skenario, baik alternatif maupun primer, untuk suatu use case. Class-class dapat ditemukan dalam bentuk kata-kata benda dalam skenario-skenario use case. 2. Cara lain yang dapat digunakan untuk menemukan class-class adalah dengan memeriksa object-object yang ada di sequence diagram dan colaboration diagram. Untuk menemukan class berusahalah menemukan segala sesuatu yang bersifat umum dari object-object, sebab kita tahu 31 bahwa sesungguhnya class adalah blue print bagi object-object didalamnya. Setiap object yang kita temukan dalam sequence diagram dan collaboration diagram sesungguhnya harus dipetakan kedalam bentuk class-class. (Nugroho, Adi. 2005). 2.8.1.4.2 Relasi Ada lima jenis relasi yang dapat kita modelkan. Kelima jenis relasi beserta relasinya adalah sebagai berikut (Nugroho, Adi. 2005): a) Relasi asosiasi Asosiasi adalah koneksi semantik antara satu class dengan dengan class yang lain. Asosiasi digambarkan dengan garis tunggal yang menghubungkan class-class. Saat asosiasi terhubung antara dua class, setaiap class dapat mengirim pesannya kearah class yang lainnya pada interaction diagram. Dalam notasi UML mengenal asosiasi dua arah (bidirectional) atau satu arah (undirectional). Dalam UML asosiasi dua arah digambarkan dengan dengan garis dua tanda panah di kedua sisinya maupun dengan garis tanpa tanda panah. Asosiasi satu arah mengandung satu kepala panah yang menunjukan dari arah pemberian pesan (Nugroho, Adi. 2005). b) Depedencies Depedencies juga menghubungkan dua class, tetapi memiliki perbedaan dengan asosiasi. Dependency selalu bersifat satu arah (undirectional) dan memperlihatkan bahwa, meski suatu class tidak menginstansiasi yang lainnya, ia tidak perlu mengirim pesan ke class yang lainnya. Dengan kata 32 lain, meski object A tidak terinstansiasi dan memiliki object B, ia perlu mengirim pesan ke object B. Depedency juga dibutuhkan saat suatu class digunakan sebagai parameter atau tipe kembalian untuk operasi suatu class (Nugroho, Adi. 2005). c) Agregasi Agregasi merupakan bentuk yang lebih kuat dari asosiasi. Agregasi adalah relasi antara suatu keseluruhan ke bagian-bagiannya (Nugroho, Adi. 2005). d) Realisasi (realizes relationship) Relasi realisasi digunakan untuk memperlihatkan relasi antara suatu class dengan interfacenya, antara komponen dengan interfacenya, atau antara use case dengan relalisasi use case yang bersangkutan. Dengan kata lain relasi ini memisahkan antarmuka (interface) dengan implementasinya (Nugroho, Adi. 2005). e) Generalisasi Generalisasi diperlukan untuk memperlihatkan relasi/hubungan pewarisan (inheritance) antar unsur dalam class diagram (Nugroho, Adi. 2005). Identifikasi relasi Untuk menemukan relasi-relasi dengan pertolongan interaction diagram, lakukanlah langkah-langkah berikut ini (Nugroho, Adi. 2005): 1. Mulailah dengan memeriksa sequence diagram dan collaboration diagram. Jika class A mengirim pesan ke class B pada diagram-diagram tadi maka harus ada relasi antara class A dan class B tadi, biasanya relasi-relasi yang kita temukan dengan metoda ini adalah asosiasi atau dependency. 33 2. Uji class-class dan cari relasi-relasi dari suatu bagian ke keseluruhan. Dengan cara ini, kita akan menemukan relasi agregasi. Uji class-class untuk mencari relasi generalisasi. Cobalah untuk menemukan setiap class yang memiliki tipe-tipe yang berbeda. 2.9. Framework CodeIgniter (CI) Framework adalah sebuah struktur konseptual dasar yang digunakan untuk memecahkan sebuah permasalahan, bahkan isu-isu kompleks yang ada. Sebuah framework telah berisi sekumpulan arsitekstur/konsep-konsep yang dapat mempermudah dalam pemecahan sebuah permasalahan. Framework bukan peralatan/tools untuk memecahkan sebuah masalah, tetapi sebagai alat bantu. Framework hanya menjadi sebuah konstruksi dasar yang menopang sebuah konsep atau sistem yang bersifat “essential support” (penting tapi bukan komponen utama). Salah satu alasan mengapa orang menggunakan framework terutama dalam membangun sebuah aplikasi adalah kemudahan yang ditawarkan. Didalam sebuah framework biasanya sudah tersedia struktur aplikasi yang baik, standard coding, best practice, design pattern dan common function. Dengan menggunakan framework kita dapat langsung fokus kepada business process yang dihadapi tanpa harus berfikir banyak masalah struktur aplikasi, standar coding dan lainlain. Codeigniter adalah sebuah web application framework yang bersifat open source digunakan untuk membangun aplikasi PHP dinamis. Tujuan utama pengembangan CodeIgniter adalah untuk membantu developer mengerjakan 34 aplikasi lebih cepat dari pada menulis semua code dari awal. CodeIgniter menyediakan berbagai macam library yang dapat mempermudah dalam pengembangan. CodeIgniter diperkenalkan kepada publik pada tanggal 28 Februari 2006. CodeIgniter sendiri dibangun menggunakan konsep Model-View-Controller development pattern. CodeIgniter sangat ringan, terstruktur, mudah dipelajari, dokumentasi lengkap dan dukungan yang luar biasa dari forum CodeIgniter. Selain itu CodeIgniter juga memiliki fitur-fitur lainnya yang sangat bermanfaat, antara lain: Menggunakan Pattern MVC. Dengan menggunakan pattern MVC ini, struktur kode yang dihasilkan menjadi lebih terstruktur dan menjadi standar yang jelas. URL Friendly. URL yang dihasilkan sangat url friendly. Pada CodeIgniter diminimalisasi penggunaan $_GET dan digantikan dengan helper. Kemudahan. Kemudahan dalam mempelajari, membuat library dan helper, memodifikasi serta meng-integrasikan Library dan helper. Jika kita membandingkan antara CodeIgniter dengan framework-framework yang lainnya maka beberapa poin yang membuat CodeIgniter unggul adalah : Kecepatan. Berdasarkan hasil benchmark CodeIgniter merupakan salah satu framework PHP tercepat saat ini. Mudah dimodifikasi dan adaptasi. Sangat mudah memodifikasi behavior framework ini. Tidak membutuhkan server requirement yang macam-macam serta mudah mengadopsi library lainnya. 35 Dokumentasi lengkap dan jelas. CodeIgniter telah menyediakan panduan yang lengkap mengenai CodeIgniter. Learning Curve Rendah. CodeIgniter sangat mudah dipelajari. Dalam pemilihan framework hal ini sangat penting diperhatikan karena kita juga harus memperhatikan skill dari seluruh anggota team. Jika sebuah framework sangat sulit dipelajari maka akan beresiko untuk memperlambat team development anda. 2.9.1. Model-View-Controller Model-View-Controller (MVC) adalah konsep dasar yang harus diketahui sebelum mengenal CodeIgniter. MVC sebenarnya adalah sebuah pattern/teknik pemrograman yang memisahkan bisnis logic (alur piker), data logic (penyimpanan data) dan presentation logic (antar muka aplikasi) atau secara sederhana adalah memisahkan antara desain, data dan proses. Adapun komponen-komponen MVC antara lain: 1. Model Model berhubungan dengan data dan interaksi ke database atau webservice. Model juga merepresentasikan strukur data dari aplikasi yang bisa berupa basis data maupun data lain, misalnya dalam bentuk file teks, file XML maupun webservice. Biasanya di dalam model akan berisi class dan fungsi untuk mengambil, melakukan update, dan menghapus data website. Sebuah aplikasi web biasanya menggunakan basis data dalam menyimpan data, 36 maka pada bagian Model biasanya akan berhubungan dengan perintahperintah query SQL. 2. View View berhubungan dengan segala sesuatu yang akan ditampilkan ke enduser. Bisa berupa halaman web, rss, javascript dan lain-lain. Kita harus menghindari adanya logika atau pemrosesan data di view. Di dalam view hanya berisi variabel-variabel yang berisi data yang siap ditampilan. View dapat dikatakan sebagai halaman website yang dibuat dengan menggunakan HTML dan bantuan CSS dan JavaScript. Di dalam view jangan pernah ada kode untuk melakukan koneksi ke basis data. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller. 3. Controller Controller bertindak sebagai penghubung data dan view. Di dalam controller inilah terdapat class-class dan fungsi-fungsi yang memproses permintaan dari view ke dalam struktur data di dalam model. Controller juga tidak boleh berisi kode untuk mengakses basis data karena tugas mengakses data telah diserahkan kepada model. Tugas controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan kesalahan/error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input. Berikut ini Gambar 2.7 perbandingan PHP biasa dengan Codeigniter: 37 Gambar 2.7 Perbandingan PHP Biasa dengan CodeIgniter Pada gambar diatas. Eksekusi pada PHP, biasanya kita akan me-“load” semua library dan fungsi yang dibutuhkan kemudian digabungkan ke dalam HTML untuk dieksekusi oleh PHP. Untuk kasus sederhana cara tersebut masih baik-baik saja, tetapi ketika aplikasi tersebut menjadi kompleks/rumit maka kita akan sulit memeliharanya jika tidak didukung oleh arsitektur software yang bagus. Hal tersebut bisa terjadi disebabkan oleh kode yang sama namun dibuat berulangulang, kode tidak konsisten dan lain-lain. Berikut ini Gambar 2.8 Flow Codeigniter: 38 Gambar 2.8 Flow CodeIgniter Jika dipetakan, alur kerja CodeIgniter akan tampak seperti gambar diatas. Browser berinteraksi melalui controller. Controller-lah yang akan menerima dan membalas semua request dari browser. Untuk data maka controller akan meminta ke model dan untuk UI/template akan meminta ke view. Jadi “otak” dari aplikasi ada di controller, “muka” aplikasi ada di view dan “data” ada di model. Ketika browser meminta sebuah halaman web maka router akan mencarikan controller mana yang harus menangani request tersebut. Setelah itu barulah si controller menggunakan model untuk mengakses data dan view untuk menampilkan data tersebut. (Daqiqil, Ibnu. 2011). 39 2.10. Basis Data (Database) Basis data terdiri dari 2 kata, yaitu Basis dan Data. Basis kurang lebih diartikan sebagai markas atau gudang, tempat sarana atau berkumpul. Sedangkan data adalah representasi fakta dunia yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang hewan, peristiwa, konsep, keadaan, dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, dan kombinasinya. (Fathansyah, 2007) Atau basis data juga memiliki arti yang bermacam-macam, yaitu: a. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasikan sedemikian rupa agar dapat digunakan kembali secara mudah dan cepat. b. Kumpulan data yang saling berhubungan yang disimpan secara bersama dengan tanpa adanya pengulangan (redudansi) yang tidak perlu untuk memenuhi yang tidak perlu untuk memenuhi berbagai kebutuhan. c. Kumpulan file / tabel / arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik. d. Kumpulan dari item data yang saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu, tersimpan di hardware komputer dan dengan software untuk melakukan manipulasi untuk kegunaan tertentu. (Fathansyah, 2007) 40 2.10.1. Database Management System (DBMS) Menurut Abdul Kadir (2003:254), Untuk mengelola basis data diperlukan perangkat lunak yang disebut DBMS. DBMS adalah perangkat lunak sistem yang memungkinkan para pemakai membuat, memelihara, mengontrol, dan mengakses basis data dengan cara yang praktis dan efisien. DBMS dapat digunakan untuk mengakomodasikan berbagai macam pemakai yang memiliki kebutuhan akses yang berbeda-beda. Umumnya DBMS menyediakan fitur-fitur sebagai berikut: Indepedensi data-program Karena basis data ditangani oleh DBMS, program dapat ditulis sehingga tidak tergantung pada struktur data dalam basis data. Dengan kata lain, program tidak akan terpengaruh sekiranya bentuk fisik data diubah. Keamanan Keamanan dimaksudkan untuk mencegah pengaksesan data oleh orang yang tidak berwenang. Integritas Hal ini ditujukan untuk menjaga agar data dapat diakses oleh banyak pemakai tanpa menimbulkan masalah. Konkurensi Konkurensi memungkinkan data dapat diakses oleh banyak pemakai tanpa menimbulkan masalah. 41 Pemulihan (recovery) DBMS menyediakan mekanisme untuk mengembalikan basis data ke keadaan semula yang konsisten sekiranya terjadi gangguan perangkat keras atau kegagalan perangkat lunak. Katalog sistem Katalog sistem adalah deskripsi tentang data yang terkandung dalam basis data yang dapat diakses oleh pemakai. Perangkat produktivitas Untuk menyediakan kemudahan bagi pemakai dan meningkatkan produktivitas, DBMS menyediakan sejumlah perangkat produktivitas seperti pembangkit query dan pembangkit laporan. (Kadir, Abdul. 2003) 2.10.2. MySQL MySQL merupakan software yang tergolong sebagai DBMS (Database Management System) yang bersifat Open Source. Open Source menyatakan bahwa ini dilengkapi dengan Source Code (kode yang dipakai untuk membuat MySQL), selain tentu saja bentuk executable-nya atau kode yang dapat dijalankan secara langsung dalam sistem operasi, dan bisa diperoleh dengan cara mendownload di Internet secara gratis. Sebagai software DBMS, MySQL memiliki sejumlah fitur seperti yang dijelaskan dibawah ini : 42 a. Multiplatform b. MySQL tersedia pada beberapa platform (Windows, Linux, Unix, dan lainlain) c. Andal, cepat, dan mudah digunakan d. MySQL tergolong sebagai database server yang andal, dapat menangani database yang besar dengan kecepatan yang tinggi, mendukung banyak sekali fungsi untuk mengakses database, dan sekaligus mudah untuk digunakan. Perlu diketahui MySQL dapat menangani sebuah tabel yang berukuran dalam terabyte ( 1 terabyte = 1024 gigabyte) e. Jaminan keamanan akses f. MySQL mendukung pengamanan database dengan berbagai kriteria pengaksesan. g. Dukungan SQL h. Seperti tersirat dalam namanya MySQL mendukung perintah SQL (Structure Query Language). SQL merupakan standar dalam pengaksesan database relasional. (Kadir, Abdul. 2008) 2.11. Pengujian Software Menurut Bambang Hariyanto (2004:569) Pengujian adalah proses pemeriksaan atau evaluasi sistem atau komponen sistem secara manual atau otomatis untuk memverifikasi apakah sistem memenuhi kebutuhan-kebutuhan yang dispesifikasikan atau mengidentifikasi perbedaan-perbedaan antara hasil yang diharapkan dengan yang terjadi. 43 Pengujian black box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pada pengujian black-box, kasus-kasus pengujian berdasarkan pada spesifikasi sistem. Rencana pengujian dapat dimulai sedini mungkin di proses pengembangan perangkat lunak. Pada pengujian black box, mencoba beragam masukan dan memeriksa keluaran yang dihasilkan. Teknik pengujian black box juga dapat digunakan untuk pengujian berbasis skenario, dimana isi dalam sistem mungkin tidak tersedia untuk diinspeksi tapi masukan dan keluaran yang didefinisikan dengan use case dan informasi analisis yang lain.