10 BAB II LANDASAN TEORI 2.1. Aplikasi Aplikasi merupakan

advertisement
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.
Download