BAB II
LANDASAN TEORI
2.1
Algoritma FIFO (First In First Out) Algoritma FIFO (First In First Out) adalah algoritma pergantian
halaman yang paling sederhana, ide dari algoritma FIFO adalah “mengganti halaman yang paling lama berada didalam memori utama”. FIFO fokus pada seberapa lama halaman tersebut berada didalam memori dari pada berapa banyak halaman tersebut digunakan (Ramesh, 2010).
Gambar 2.1 Illustrasi Algoritma FIFO (Ramesh, 2010) Pada Gambar 2.1 jumlah page faults adalah 16. ‘P’ menggambarkan
sebagai page fault. Kinerja algoritma pergantian halaman di tentukan oleh tingkat fault rate halaman. Page fault rate
= Number of page faults / number of bits = 16 / 16 = 100%
Jika halalman yang diperlukan berada di memory utama, kemudian
pergantian halaman tidak diperlukan, maka pada situasi tersebut page fault tidak dapat terjadi.
7 http://digilib.mercubuana.ac.id/
8
Gambar 2.2 FIFO System (Reddy, 2009) Pada gambar menjelaskan tentang wilayah program atau data yang
banyak digunakan pada keseluruhan kehidupan sebuah program. Dalam hal teknik, jumlah page fault lebih banyak bila dibandingkan dengan algoritma
lainnya. Pada gambar 2.2, ‘Yes’ menunjukan bahwa page fault telah terjadi dan halaman yang diganti ditampilkan delam kotak yang berkenaan dengan nomor frame yang bersangkutan.
Pada awalnya, algoritma ini dianggap cukup mengatasi masalah
tentang pergantian halaman, sampai pada tahun 70-an, Belady menemukan
keanehan pada algoritma ini yang dikenal dengan anomali Belady. Anomali Belady adalah keadaan di mana page fault rate meningkat seiring dengan
pertambahan jumlah frame, seperti yang bisa dilihat pada contoh dibawah
ini.
http://digilib.mercubuana.ac.id/
9
Gambar 2.3 Illustrasi Anomali Belady (Godbole & Kahate, 2011) 2.2
Monitoring Monitoring didefinisikan sebagai siklus kegiatan yang mencangkup
pengumpulan, peninjauan ulang, pelaporan dan tindakan atas informasi
suatu proses yang sedang diimplementasikan (Corps, 2005). Secara umum monitoring digunakan untuk melakukan pengawasan terhadap sebuah
proses yang sedang berlangsung guna mengetahui sebuah proses tersebut berjalan dengan benar atau tidak. Monitoring ditinjau dari hubungan
terhadap manajemen adalah proses terintegrasi untuk memastikan bahwa proses berjalan dengan baik dan sesuai rencana. Level kajian monitoring mengacu pada kegiatan perkegiatan dalam suatu bagian (Wirhatnolo, 2008), misalnya kegiatan proses produksi pada sebuah usaha jasa percetakan oleh
masing-masing departemen. Indikator yang menjadi acuan monitoring adalah output per proses.
http://digilib.mercubuana.ac.id/
10 2.3
Rekayasa Perangkat Lunak
2.3.1 Perangkat Lunak Perangkat lunak (software) adalah program komputer yang
terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi
kebutuhan, model desain, dan cara penggunaan (user manual). Sebuah
program komputer tanpa terasosiasi dengan dokumentasinya maka belum dapat disebut perangkat lunak (software). Sebuah perangkat lunak juga
sering disebut dengan sistem perangkat lunak. Sistem berarti kumpulan komponen yang saling berkaitan dan mempunyai satu tujuan yang ingin
dicapai. Sistem perangkat lunak berarti sebuah sistem yang memiliki komponen berupa perangkat lunak yang memiliki hubungan satu sama lain untuk memenuhi kebutuhan pelanggan (customer) (S & Shalahuddin, 2013). 2.3.2
Rekayasa Perangkat Lunak Rekayasa perangkat lunak (software engineering) merupakan
pembangunan menggunakan prinsip atau konsep rekayasa dengan tujuan
menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan
bekerja secara efisien menggunakan mesin (S & Shalahuddin, 2013). Rekayasa perangkat lunak lebih fokus pada praktik pengembangan perangkat lunak dan mengirimkan perangkat lunak yang bermanfaat kepada
pelanggan (customer). Rekayasa perangkat lunak lebih fokus pada bagaimana membuat perangkat lunak yang memenuhi kriteria berikut :
Dapat terus dipelihara setelah perangkat lunak selesai dibuat seiring
Dapat diandalkan dengan proses bisnis yang dijalankan dan perubahan
berkembangnya teknologi dan lingkungan (maintainability). yang terjadi (dependability dan robust).
Efisien dari sumber daya dan penggunaan. Kemampuan untuk dipakain sesuai dengan kebutuhan (usability).
http://digilib.mercubuana.ac.id/
11 Dari kriteria diatas maka perangkat lunak yang baik adalah
perangkat lunak yang dapat memnuhi kebutuhan pelanggan (customer) atau
user (pemakai perangkat lunak) atau berorientasi pada pelanggan atau
pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak.
Pekerjaan yang terkait dengan perangkat dapat dikategorikan
menjadi tiga buah fase umum tanpa melihat area dari aplikasi, ukuran
proyek perangkat lunak, atau kompleksitas perangkat lunak yang dibuat. Setiap fase dialamatkan pada satu atau lebih pertanyaan yang diajukan sebelumya. Ketiga fase tersebut yaitu: 1.
Fase pendefinisian fokus pada “what” yang artinya harus mencari tahu atau mendefinisikan informasi apa yang harus diproses, seperti apa
fungsi dan performansi yang diinginkan, seperti apa perilaku sistem yang diinginkan, apa kriteria validasi yang dibutuhkan untuk 2.
mendefinisikan sistem.
Fase pengembangan yang fokus dengan “how” yang artinya selama
tahap pengembangan perangkat lunak seorang perekayasa perangkat lunak (software engineer) berusaha untuk mendefinisikan bagaimana
data distrukturkan dan bagaimana fungsi-fungsi yang dibutuhkan diimplementasikan didalam arsitektur perangkat lunak, bagaimana detail procedural diimplementasikan, bagaimana karakter antarmuka
tampilan, bagaimana desain ditranslasikan ke bahasa pemrograman, 3.
dan bagaimana pengujian akan dijalankan.
Fase pendukung (support phase) fokus pada perubahan yang terasosisasi pada perbaikan kesalahan (error), adaptasi yang dibutuhkan pada lingkungan perangkat lunak yang terlibat dan
perbaikan yang terjadi akibat perubahan kebutuhan pelanggan
(customer). Fase pendukung terdiri dari empat tipe perubahan antara lain:
http://digilib.mercubuana.ac.id/
12
Koreksi (correction)
Walaupun dengan jaminan kualitas yang terbaik, akan selalu ada kecacatan atau keinginan pelanggan (customer) yang tidak
tertangani oleh perangkat lunak. Adaptasi (adaptation)
Pada saat tertentu lingkungan asli (seperti CPU, sistem operasi, aturan bisnis, karakteristik produk luar) dimana perangkat lunak
yang dikembangkan akan mengalami perubahan. Pemeliharaan
adaptasi merupakan tahap untuk memodifikasi perangkat lunak guna mengakomodasi perubahan lingkungan luar dimana
perangkat lunak dijalankan. Perbaikan (enhancement)
Sejalan dengan digunakannnya perangkat lunak, maka pelanggan (customer) atau pemakainya (user) akan mengenali fungsi
tambahan yang dapat mendatangkan manfaat. Perubahan prefektif atau penyempurnaan melakukan ekstensi atau penambahan pada
kebutuhan fungsional sebelumnya. Pencegahan (prevention)
Keadaan perangkat lunak komputer sangat dimungkinkan untuk
perubahan. Oleh karena itu, pemeliharaan pencegahan (preventive)
atau sering disebut juga dengan rekayasa ulang sistem (software reengineering) harus dikondisikan untuk mampu melayani
kemudahan pemakainya (user). Untuk menanggulangi hal ini maka perangkat lunak harus dirancang dan dikondisikan untuk mengakomodasi perubahan kebutuhan yang diinginkan oleh pemakainya (user). 2.3.3
Proses Rekayasa Perangkat Lunak Proses rekayasa perangkat lunak dilakukan selama pembangunan
perangkat lunak. Proses-proses yang dilakukan dalam rekayas perangkat lunak secara garis besar adalah sebagai berikut:
http://digilib.mercubuana.ac.id/
13
Mulai
Analisa
Perancangan
Pengujian
Implementasi
Gambar 2.4 Tahapan Umum Rekayasa Perangkat Lunak (S & Shalahuddin, 2013)
Proses-proses pada gambar diatas dapat dilakukan berulang kali sampai perangkat lunak memenuhi kebutuhan pelanggan atau user. Untuk membangun perangkat lunak yang benar-benar baik maka diperlukan tahapan-tahapan rekayasa perangkat lunak. 2.3.4
Ruang Lingkup Rekayasa Perangkat Lunak Sesuai dengan definisi yang telah dijelaskan, maka ruang lingkup
rekayasa perangkat lunak dapat digambarkan sebagai berikut:
Gambar 2.5 Ruang Lingkup Rekayasa Perangkat Lunak (Yasin, 2012)
http://digilib.mercubuana.ac.id/
14 Software Requirement berhubungan dengan spesifikasi kebutuhan dan
persyaratan perangkat lunak.
Software Desian mencangkup proses penampilan arsitektur, komponen,
antar muka dan karakteristik lain dari perangkat lunak.
Software Contruction berhubungan dengan detail pengembangan
perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.
Software Testing meliputi pengujian pada keseluruhan perilaku
perangkat lunak.
Software Maintenance mencakup upaya-upaya perawatan ketika
perangkat lunak telah dioperasikan.
Software Configuration Management berhubungan dengan usaha
perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
Software Engineering Management berkaitan dengan pengelolaan dan
pengukuran rekayasa perangkat lunak, termasuk perencanaan proyek perangkat lunak.
Software Engineering Tools and Methods mencakup kajian teoritis
tentang alat bantu dan metode rekayasa perangkat lunak.
Software
Engineering
Process
berhubungan
dengan
definisi,
implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses rekayasa perangkat lunak.
Software Quality menitik beratkan pada kualitas dan daur hidup
perangkat lunak.
2.3.5 Software Development Life Cycle Software Development Life Cycle adalah proses mengembangkan
atau mengubah suatu sistem perangkat lunak dengan menggunakan model-
model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik) (S & Shalahuddin, 2013).
http://digilib.mercubuana.ac.id/
15 Tahapan-tahapan yang ada pada SDLC secara global adalah
sebagai berikut:
Inisiasi (Inisiation)
Tahap ini biasanya ditandai dengan pembuatan proposal proyek perangkat lunak.
Pengembangan konsep sistem (system concept development)
Mendefinisikan lingkup konsep termasuk dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana, dan pembelajaran kemudahan sistem.
Perencanaan (planning)
Mengembangkan rencana pengembangan proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi.
Analisa kebutuhan (requirements analysis)
Menganalisa kebutuhan pemakai sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional.
Desain (design)
Mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan.
Pengembangan (development)
Mengonversi desain ke sistem informasi yang lengkap termasuk
bagaimana memperoleh dan melakukan instalasi lingkungan sistem yang dibutuhkan; membuat basis data dan mempersiapkan prosedur kasus pengujian; mempersiapkan berkas atau file pengujian, pengodean,
pengompilasian, memeperbaiki dan membersihkan program; peninjauan pengujian.
Integrasi dan pengujian (integration and test)
Mendemonstrasikan sistem perangkat lunak bahwa telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan fungsional.
http://digilib.mercubuana.ac.id/
16 Dengan diarahkan oleh staf penjamin kualitas (quality assurance) dan
user. Menghasilkan laporan analisis pengujian.
Implementasi (implementation)
Termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkungan produksi (lingkungan pada user) dan menjalankan
resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian.
Operasi dan pemeliharaan (operations and maintenance)
Mendeskripsikan pekerjaan untuk mengoperasikan dan memelihara
sistem informasi pada lingkungan produksi (lingkungan pada user),
termasuk implementasi akhir dan masuk pada proses peninjauan.
Disposisi (disposition)
Mendeskripsikan aktifitas akhir dari pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktifitas user.
2.3.6
Model Waterfall Model SDLC waterfall (air terjun) sering juga disebut model
sekuensial linear (sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain,
pengodean, pengujian, dan tahap pendukung (support). Berikut adalah gambar model air terjun.
http://digilib.mercubuana.ac.id/
17
Analisis Kebutuhan Desain Sistem Pembuatan Kode Program
Pengujian Program Pemeliharaan
Gambar 2.6 Ilustrasi Model Waterfall
Analisis kebutuhan perangkat lunak
Proses pengumpulan kebutuhan dilakukan secara intensif untuk
menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi
kebutuhan
perangkat
didokumentasikan.
lunak
pada
tahap
ini
perlu
untuk
Desain sistem
Desain perangkat lunak adalah proses multi langkah yang fokus pada
desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antar muka, dan prosedur
pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya. Desain
perangkat lunak yang dihasilkan pada tahap ini juga perlu
didokumentasikan.
Pembuatan kode program
Desain harus ditranslasikan kedalam program perangkat lunak. Hasil
dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain.
http://digilib.mercubuana.ac.id/
18
Pengujian program
Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini
dilakukan untuk meminimalisir kesalahan (error) dan memastikan
keluaran yang dihasilkan sesuai dengan yang diinginkan. pendukung (support) atau pemeliharan (maintenance)
Tidak menutup kemungkinan sebuah perangkat lunak mengalami
perubahan ketikas sudah dikirimkan ke user. Perubahan bisa terjadi
karena adanya kesalahan yang muncul dan tidak terdeteksi saat
pengujian atau perangkat lunak harus beradaptasi dengan lingkungan
yang baru. Tahap pendukung atau pemeliharaan dapat mengulang proses pengembangan mulai dari analisis spesifikasi untuk perubahan
perangkat lunak yang sudah ada, tapi tidak membuat perangkat lunak baru. 2.3.7
Pengujian Perangkat Lunak Pengujian perangkat lunak adalah sebuah elemen sebuah topic yang
memiliki cakupan luas dan sering dikaitkan dengan verifikasi (verification)
dan validasi (validation) (V&V) (S & Shalahuddin, 2013).
Verifikasi mengacu pada sekumpulan aktifitas yang menjamin bahwa perangkat lunak mengimplementasikan dengan benar sebuah fungsi yang spesifik. Verifikasi dapat juga dikatakan sebagai; “Apakah produk dibangun dengan benar?” (lebih ke arah apakah proses pengembangan
produk sudah benar dan telah berhasil mengimplementasikan fungsi
yang benar).
Validasi mengacu pada sekumpulan aktifitas yang berbeda yang menjamin bahwa perangkat lunak yang dibangun ditelusuri sesuai dengan kebutuhan pelanggan (customer). Validasi dapat juga dikatakan
sebagai; “Apakah sudah membangun produk yang benar?” (lebih ke arah hasil produk apakah sudah sesuai dengan yang diinginkan).
http://digilib.mercubuana.ac.id/
19 Verifikasi dan validasi meliputi beberapa aktifitas yang sering
disebut sebagai jaminan kualitas perangkat lunak (Software Quality Assurance (SQA)).
Gambar 2.7 Hirarki Pengujian Sistem (S & Shalahuddin, 2013) Gambar diatas menunjukan tahap pengujian pada level program
ditangan pengembang perangkat lunak. Pengujian Unit
Pengujian Integrasi
Pengujian Sistem
Pengujian Penerimaa
Gambar 2.8 Pengujian Perangkat Lunak (S & Shalahuddin, 2013) Gambar diatas menunjukan gambaran tahapan pengujian secara
keseluruhan.
2.3.7.1 Jenis-Jenis Pengujian Pengujian untuk validasi memiliki beberapa pendekatan sebagai
berikut:
Black-Box Testing (pengujian kotak hitam)
Yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari
http://digilib.mercubuana.ac.id/
20 perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Kasus
uji yang dibuat dengan kasus benar dan kasus salah, misalkan untuk kasus proses login maka kasus uji yang dibuat adalah:
Jika user memasukan nama pemakai (username) dan kata sandi
(password) yang benar.
Jika user memasukan nama pemakai (username) dan katasandi
(password) yang salah, misalnya nama pemakai benar tapi kata
sandi salah, atau sebaliknya, atau keduanya salah.
White-Box Testing (pengujian kotak putih)
Yaitu menguji perangkat lunak dari segi desain dank ode program
apakah mampu menghasilkan fungsi-fungsi, masukan dan keluaran yang sesuai dengan spesifikasi kebutuhan. Pengujian kotak putih
dilakukan dengan memeriksa lojik dari kode program. Pembuatan kasus uji bisa mengikuti standar pengujian dari standar pemrograman yang seharusnya. 2.4
Paradigma Berorientasi Objek OOP (Object Oriented Programming) atau Pemrograman
Berorientasi Objek adalah suatu cara baru dalam berpikir serta berlogika dalam menghadapi masalah-masalah yang akan dicoba-atasi dengan
bantuan komputer (Nugroho A. , Analisis dan Perancangan Sistem Informasi dengan Metodologi Berorientasi Objek (Edisi Revisi), 2005).
Pendekatan berorientasi objek (object-Oriented [OO]) untuk
perancangan dan pemrograman diperkenalkan pada tahun 1980-an
(Simarmata, 2010). Pendekatan ini mewakili suatu pergeseran paradigma utama dalam pengembangan perangkat lunak. Pendekatan ini selanjutnya
akan menimbulkan akibat utama dalam perangkat lunak dalam beberapa
tahun selanjutnya. Berbeda dengan pemrograman tradisional yang memisahkan data dan kontrol, pemrograman berorientasi objek dilakukan berdasarkan objek, dengan sekumpulan data yang ditetapkan dan
sekumpulan operasi-operasi (metode) yang dapat dilaksanakan dalam data
http://digilib.mercubuana.ac.id/
21 tersebut. Seperti paradigma dari perancangan struktural dan dekomposisi fungsional, pendekatan berorientasi objek telah menjadi sebuah dasar utama dari rekayasa perangkat lunak (software engineering) (Mulyana, 2008). 2.4.1 Pemodelan UML (Unified Modeling Language) UML (Unified Modeling Language) adalah ‘bahasa’ pemodelan
untuk sistem atau perangkat lunak yang berparadigma ‘berorientasi objek’ (Nugroho A. , Rekayasa Perangkat Lunak Berorientasi Objek dengan
Metode USDP (Unified Software Development Process), 2010). Pemodelan (modeling) sesungguhnya digunakan untuk penyederhanaan permasalahan-
permasalahan yang kompleks sedemikian rupa sehingga lebih mudah dipelajari dan dipahami. Sebagai contoh, alih-alih membawa planet bumi ke meja kita, kita mungkin akan membawa peta tentang bagian bumi tertentu
ke meja kita untuk kita pelajari lebih jauh. Dalam hal ini, sasaran model sesungguhnya adalah abstraksi segala sesuatu yang ada di planet bumi menjadi gambaran-gambaran yang lebih mudah dipelajari dan dipahami.
Adapun tujuan pemodelan (dalam rangka pengembangan sistem/perangkat lunak aplikasi) adalah serupa dengan yang kita singgung diatas, yaitu
sebagai sarana analisi, pemahaman, visualisasi, dan komunikasi antar
anggota tim pengembang (saat seorang analis/perancang perangkat lunak bekerja dalam tim yang beranggotakan beberapa/banyak orang), serta
sebagai sarana dokumentasi (yang bermanfaat untuk menelaah perilaku perangkat lunak secara seksama serta bermanfaat untuk melakukan pengujian terhadap perangkat lunak yang telah selesai dikembangkan).
Dalam hal di atas, pemodelan perangkat lunak (software modeling)
bekerja dengan cara yang cukup erupa layaknya seorang arsitek atau
insinyur teknik sipil yang akan membuat sebuah bangunan/gedung yang berskala besar. Saat seorang arsitek dan insinyur teknik sipil akan membuat sebuah gedung berskala besar, dia biasanya terlebih dahulu membuat denah-
denah atau maket-maket yang menggambarkan seperti apa kelak gedung itu akan terbentuk. Seorang perancang perangkat lunak sesungguhnya juga
http://digilib.mercubuana.ac.id/
22 bertindak dengan cara yang serupa, hanya saja yang dirancang adalah sebuah perangkat lunak tertentu. Dalam hal ini, bisa menggambarkan
komponen-komponen perangkat lunak dalam bentuk-bentuk geometri tertentu, misalnya untuk menggambarkan suatu kelas (class) dalam
perangkat lunak, bisa menggunakan bentuk geometri empat-persegipanjang;
untuk
menggambarkan
hubungan
antarkelas
(Asosiasi),
menggunakan bentuk geometri garis lurus; demikian selanjutnya.
Pada UML versi 2.3 terdiri dari 13 macam diagram yang
dikelompokan dalam 3 kategori. Pembagian kategori dan macam-macam diagram tersebut dapat dilihat pada gambar dibawah. UML 2.3 Diagram Structure Diagrams
Behavior Diagrams
Interaction Diagrams
Class Diagram
Use Case Diagram
Sequence Diagram
Object Diagram
Activity Diagram
Communication Diagram
Component Diagram
State Machine Diagram
Timing Diagram
Composite Diagram
Interaction Overview Diagram
Package Diagram Deployment Diagram
Gambar 2.9 Diagram UML Versi 2.3 (S & Shalahuddin, 2013)
http://digilib.mercubuana.ac.id/
23 Berikut ini penjelasan singkat dari pembagian kategori tersebut.
Structure diagrams yaitu kumpulan diagram yang digunakan untuk
Beghavior diagrams yaitu kumpulan diagram yang digunakan untuk
menggambarkan suatu struktur statis dari sistem yang dimodelkan.
menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
Interaction diagrams yaitu kumpulan diagram yang diguanakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.
2.4.1.1 Use Case Diagram Use Case atau diagram use case merupakan pemodelan untuk
kelakuan (behavior) sistem informasi yang akan dibuat (S & Shalahuddin, 2013). Use case mendeskripsikan sebuah interaksi antara satu atau lebih
actor dengan sistem informasi yang akan dibuat. Secara kasar, use case
digunakan untuk mengetahui fungsi apa saja yang ada didalam sebuah
sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi itu.
Syarat penamaan pada use case adalah nama didefinisikan sesimpel
mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case.
Aktor merupakan orang, proses, atau sistem lain yang berinteraksi
dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun symbol dan aktor adalah gambar
orang, tapi aktor belum tentu merupakan orang.
Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor.
http://digilib.mercubuana.ac.id/
24
Gambar 2.10 Contoh Use case Diagram (Pressman, 2010) Tabel 2.1 Simbol-Simbol Diagram Use Case (S & Shalahuddin, 2013) Gambar
Nama Actor
Dependency
Keterangan
Menspesifikan himpunan peran yang pengguna mainkan ketika berinteraksi dengan use case.
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi
elemen yang bergantung padanya Generalization
elemen yang tidak mandiri. Hubungan
dimana
objek
anak
(descendent) berbagi perilaku dan struktur data dari objek yang ada
Include Extend
diatasnya objek induk (ancestor).
Menspesifikasikan bahwa use case sumber secara eksplisit.
Menspesifikasikan bahwa use case
target memperluas perilaku dari use
case sumber pada suatu titik yang diberikan.
http://digilib.mercubuana.ac.id/
25
Association System Use Case
Apa yang menghubungkan antara objek satu dengan objek lainnya. Menspesifikasikan
paket
yang
menampilkan sistem secara terbatas.
Deskripsi dari urutan aksi-aksi yang ditampilkan
sistem
yang
menghasilkan suatu hasil yang terukur Collaboration
bagi suatu aktor.
Interaksi aturan-aturan dan elemen lain
yang
bekerja
sama
dari
jumlah
dan
untuk
menyediakan perilaku yang lebih besar Note
elemennya (sinergi).
elemen-
Elemen fisik yang eksis saat aplikasi
dijalankan dan mencerminkan suatu sumber daya komputasi.
2.4.1.2 Sequence Diagram Diagram sekuen menggambarkan kelakuan objek pada use case
dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek (S & Shalahuddin, 2013). Oleh karena itu untuk
menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas
yang diinstansiasi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case.
Banyaknya diagram sekuen yang harus digambar adalah minimal
sebanyak pendefinisian use case yang memiliki proses sendiri atau yang
penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakin banyak use case
http://digilib.mercubuana.ac.id/
26 yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak.
Gambar 2.11 Contoh Sequence Diagram (Pressman, 2010) Tabel 2.2 Simbol-Simbol Diagram Sequence (S & Shalahuddin, 2013) Aktor
Simbol
Deskripsi
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang
Atau
Nama aktor Nama aktor
Tanpa waktu aktif
akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang;
biasanya dinyatakan menggunakan kata benda di awal frase nama aktor.
Garis hidup / lifeline
Menyatakan kehidupan suatu objek.
Objek
Menyatakan objek yang berinteraksi pesan
Nama objek : nama kelas
http://digilib.mercubuana.ac.id/
27
Waktu aktif
Menyatakan objek dalam keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan yang dilakukan di dalamnya, misalnya
2: cekStatusLogin()
1: login ()
maka
3: open()
cekStatusLogin()
dan
open()
dilakukan di dalam metode login(). Aktor Pesan tipe create <
>
Pesan tipe call
1: nama_metode()
tidak memiliki waktu aktif.
Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat. Menyatakan
suatu
objek
memanggil
operasi/metode yang ada pada objek lain atau dirinya sendiri,
1 : nama_metode()
arah panah mengarah pada objek yang memiliki
memanggil
operasi/metode,
karena
operasi/metode
ini
maka
operasi/metode yang dipanggil harus ada Pesan tipe send 1 : masukan
Pesan tipe return
pada diagram kelas objek yang berinteraksi. Menyatakan
bahwa
suatu
objek
mengirimkan data/masukan/informasi ke
objek lainnya, arah panah mengarah pada objek yang dikirimi.
Menyatakan bahwa suatu objek yang telah
menjalankan suatu operasi atau metode
http://digilib.mercubuana.ac.id/
28
1 : keluaran
Pesan tipe destroy <<destroy>>
menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian.
Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada
objek yang diakhiri, sebaiknya jika ada create maka ada destroy.
2.4.1.3 Activity Diagram Diagram aktivitas atau activity diagram menggambarkan workflow
(aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis atau menu
yang ada pada perangkat lunak. Yang perlu diperhatikan disini adalah
bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.
Diagram aktivitas juga banyak diguanakan untuk mendefinisikan
hal-hal berikut:
Rancangan proses bisnis dimana setiap urutan aktivitas yang
Urutan atau pengelompokan tampilan dari sistem / user interface
digambarkan merupakan proses bisnis sistem yang didefinisikan.
dimana setiap aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan.
Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya.
Rancangan menu yang ditampilkan pada perangkat lunak.
http://digilib.mercubuana.ac.id/
29
Gambar 2.12 Contoh Activity Diagram (Pressman, 2010) Tabel 2.3 Simbol-Simbol Activity Diagram (S & Shalahuddin, 2013) Simbol
Status awal
Deskripsi
Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal
Aktivitas
Aktivitas yang dilakukan sistem, aktivitas
aktivitas
Percabangan / decision
biasanya diawali dengan kata kerja.
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu.
http://digilib.mercubuana.ac.id/
30
Penggabungan / join
Asosiasi penggabungan dimana lebih dari
Status akhir
Status akhir yang dilakukan sistem, sebuah
satu aktivitas digabungkan menjadi satu.
diagram aktivitas memiliki sebuah status akhir.
Swimlane
Nama swimlane
Memisahkan
organisasi
bisnis
yang
bertanggung jawab terhadap aktivitas yang terjadi.
Nama swimlane
Atau
2.4.1.4 Class Diagram Diagram kelas atau class diagram menggambarkan struktur sistem
dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.
Atribut merupakan variable-variabel yang dimiliki oleh suatu kelas.
Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.
http://digilib.mercubuana.ac.id/
31
Gambar 2.13 Contoh Class Diagram (Pressman, 2010) Tabel 2.4 Simbol-Simbol Class Diagram (S & Shalahuddin, 2013) Kelas
Simbol
Deskripsi
Kelas pada struktur sistem.
nama_kelas +atribut
+operasi() Antarmuka / interface
Sama dengan konsep interface
nama_interface
objek.
dalam pemrograman berorientasi
Asosisasi / association
Asosiasi
association
berarah
Relasi antarkelas dengan makna umum, asosiasi biasanya juga /
disertai dengan multiplicity.
directed Relasi antarkelas dengan makna
kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity.
http://digilib.mercubuana.ac.id/
32
Generalisasi
Relasi antarkelas dengan makna generalisasi-spesialisasi
Kebergantungan / dependency Agregasi / aggregation
2.5
khusus).
(umum
Relasi antarkelas dengan makna kebergantungan antarkelas.
Relasi antarkelas dengan makna semua-bagian (whole-part).
Basis Data Basis data (database) secara sederhana, dapat kita sebut sebagai
gudang data. Secara teori, basis data (database) adalah kumpulan data atau informasi yang kompleks, data-data tersebut disusun menjadi beberapa
kelompok dengan tipe data yang sejenis (disebut tabel), dimana setiap datanya dapat saling berhubungan satu sama lain atau dapat berdiri sendiri, sehingga mudah diakses (Nugroho B. , 2008). 2.5.1 MySQL MySQL pertama kali dirintis oleh programmer database bernama
Michael Widenius. MySQL database server adalah RDBMS (Relasional
Database Management System) yang dapat menangani data yang bervolume
besar. Meskipun begitu tidak termasuk resources yang besar. MySQL adalah program database yang mampu mengirim dan menerima data dengan sangat cepat dan multi user (Sudarma, 2010).
MySQL adalah sebuah implementasi dari sistem manajemen
basisdata relasional (RDBMS) yang didistribusikan secara gratis
dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat
lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial.
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam
http://digilib.mercubuana.ac.id/
33 basisdata yang telah ada sebelumnya; SQL (Structured Query Language).
SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk
pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari
cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah
SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi
basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor
lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-
transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat
disarankan untuk menggunakan modus basisdata transaksional, hanya saja
sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional. 2.6
Java Java adalah suatu jenis teknologi pemrograman yang dikembangkan
oleh Sun Microsystem. Teknologi java dapat digunakan untuk pembuatan
aplikasi database, web, jaringan, andal. Keandalannya ini terbukti sesuai
dengan slogannya yaitu “Write Once Run Everywhere” yang mana
penulisan kode program dan berbagai platform tanpa bergantung pada
arsitektur komputer yang digunakan asalkan ada mesin penerjemah bahasa java yang disebut dengan Java Virtual Machine atau JVM sehingga lebih praktis untuk diterapkan.
http://digilib.mercubuana.ac.id/
34 2.6.1 Sejarah Singkat Java Java lahir dari sebuah green project yang berjalan selama 18 bulan
yaitu pada awal 1991 sampai musim panas 1992. Proyek yang dimotori oleh Patrick Naugton, Bill Joy, James Gosling, dan sembilan pemrogram lainnya
dari tim Sun Microsystem yang pada awalnya membuat bahasa
pemrograman kecil yang akan di terapkan pada perangkat elektronik. Bahasa pemrograman ini kemudian diberi nama Oak yang merupakan nama
salah satu jenis pohon yang tumbuh diluar jendela pemimpin proyek tersebut.
Bahasa pemrograman Oak merupakan modifikasi dari C++ tetapi
lebih mudah beradaptasi pada berbagai sistem operasi dan platform. Seperti
yang telah dibuktikan oleh pengembang C++, bahasa pemrograman baru ini
lebih kuat tetapi telah memasukan banyak fitur yang dimikiki C++ (Westriningsih, Sulistiyani, dan_dut, & Erang, 2012). Bahasa Oak berganti nama menjadi Java setelah bergantinya cara pelayanan konsumen peralatan
elektronik dari pelayanan manual ke pelayanan online kemudian tim Sun
Microsystem mengganti bahasa pemrograman desktop menjadi web browser. Web browser yang dirilis pada Maret 1995 ini diberi nama HotJava karena Oak sudah digunakan untuk merk dagang perangkat lunak yang telah
dikembangkan terlebih dahulu. Maka, nama HotJava-lah yang digunakan untuk versi rilis perangkat lunak buatan Sun Microsystem yang berjalan
pada web. Nama ini diambil dari nama kopi murni yang digiling langsung (kopi tubruk) kesukaan James Gsoling.
Java mempunyai tiga komponen yang sangat penting yaitu:
The Java Programming Language adalah bahasa pemrograman yang
The Java Platform adalah lingkungan yang digunakan untuk
digunakan untuk menulis kode program dalam platform Java.
menjalankan kode program yang telah ditulis pada bahasa pemrograman Java.
http://digilib.mercubuana.ac.id/
35 2.6.2
Java Platform Pada bahasa pemrograman, proses kompilasi program harus
dilakukan di mesin komputer tempat kode program itu ditulis sehingga
hanya dapat dijalankan pada arsitektur komputer tersebut. Permasalahan terjadi ketika program tersebut harus berjalan pada arsitektur komputer yang
tidak sama dengan lingkungan program tersebut dibangun maka program tersebut tidak akan dapat dijalankan. Pada Java, program yang telah dibangun dapat dijalankan pada berbaga platform dan sistem operasi. Java memiliki dua buah platform penting untuk membangun perangkat lunak. 2.6.3
Java Virtual Machine (JVM) Java Virtual Machine (JVM) adalah penerjemah kode program yang
telah dikompilasi menjadi kode mesin. JVM dapat diterapkan pada berbagai
sistem operasi dan berbaga platform. Hal ini membuat program java dapat
dengan mudah dijalankan pada komputer bersistem operasi apapun tanpa harus mengubah kode program yang telah ditulis. 2.6.4 Java Runtime Environment (JRE) Java Runtime Environment (JRE) merupakan lingkungan yang
mendukung proses eksekusi program ketika VJM menerjemahkan program itu kedalam bahasa mesin. Pada JRE juga telah terdapat kelas ini untuk Java
API dan berbagai file pendukungnya. Berikut ini beberapa jenis JRE yang penting saat ini.
Java 2 Platform Standard Edition (J2SE) adalah perangkat lunak java
Java 2 Platform Enterprise Edition (J2EE) adalah perangkat lunak
yang digunakan untuk menjalankan aplikasi berskala kecil.
java yang digunakan untuk perusahaan besar yang didalamnya telah
http://digilib.mercubuana.ac.id/
36 dilengkapi dengan sistem terdistribusi, manajemen transaksi, dan e
commerce.
Java 2 Platform Model Edition [J2ME] adalah perangkat lunak java yang digunakan untuk sistem bermemori rendah seperti telepon genggam maupun PDA.
Browser Rintime Environtments adalah perangkat lunak Java yang digunakan untuk penggunaan akses internet.
Web Server Runtime Environtments adalah perangkat lunak java yang digunakan untuk akses internet pada sisi server yang berfungsi
membangkitkan halaman membangkitkan halaman web dinamis dan konten lainnya.
http://digilib.mercubuana.ac.id/