BAB II
LANDASAN TEORI
2.1 Rekayasa Perangkat Lunak
Perangkat lunak adalah program komputer, prosedur, aturan, dan dokumentasi yang berkaitan serta data, yang bertalian dengan operasi suatu sistem komputer [ Pressman : 2010 ] . Rekayasa perangkat lunak adalah Pembentukan dan penggunaan prinsip rekayasa ( engineering ) untuk mendapatkan perangkat lunak secara ekonomis namun andal dan dapat bekerja secara efesien pada computer. 2.1.1 Aplikasi
Menurut Pressman (2010, p7), “Application Software is stand-alone programs that solve a spesific business need. Application in this area process business or technical data in a way that facilities business operations or management/technical decision making. In addition to conventional data processing application, application software is used to control business functions in real time (e.g., point-of-sale transaction processing, real-time manufacturing process control)”. Aplikasi merupakan program yang berdiri sendiri untuk menyelesaikan proses bisnis yang dibutuhkan Aplikasi yang dimaksud merupakan aplikasi yang memfasilitasi kegiatan operasional atau pun pengambilan keputusan. Sebagai tambahan untuk aplikasi pemrosesan data maka aplikasi ini digunakan untuk kontrol proses real time.
2.1.2 Layanan Berbasis Web
Layanan berbasis web atau disebut juga dengan nama web services, adalah layanan khusus yang dapat digunakan melalui Unified Resource Identifier (URI). URI melayani fitur-fitur pemrograman internet, menggunakan bahasa standar internet dan protokol-protokol berbasis internet. Web services dapat dipasang pada antarmuka self-describing berbasis standar open internet, contohnya adalah XML interface, yang dibuat melalui repositories berbasis jaringan. “A Web
service is specific kind of service that is identified by a URI that exposes its features programmatically over the Internet using standard Internetlanguages and protocols, and can be implemented via a self-describing interfacebased on open Internet standards (e.g., XML interfaces which are published in network-based repositories).“ [Bouguettaya, A., Sheng Q.Z., Daniel F, 2014]
2.1.3 Agile Unified Processing
Metodologi pengembangan sistem yang digunakan adalah Agile Unified
Process (AUP) yang merupakan versi lebih sederhana dari Rational Unified Process oleh Scott Ambler. AUP terdiri dari 4 fase utama dan 7 disiplin, berikut
uraian fase-fase tersebut :
Gambar 2.1 : Agile Unified Processing
1. Inception (Permulaan)
Tujuan dari fase ini ialah untuk mengidentifikasi cakupan utama proyek, potensi arsitektur, dan untuk mendapatkan pendanaan dan persetujuan dari para
stakeholder.
Dalam fase ini pengerjaan sistem dimulai. 4. Transition (Peralihan)
Di tahap ini, pengujian dan integrasi sistem dilakukan. Seperti Testing
& Deployment di environment Production.
7 Disiplin (tata tertib) dari AUP adalah : 1. Model
Tujuan utama dari disipin ini adalah untuk memahami bisnis organisasi / perusahaan, mendefinisikan masalah dan apa yang user butuhkan lalu , mengidentifikasi solusi terbaiknya.
2. Implementation
Dalam proses disiplin ini, model diubah menjadi Loc (Lines of Code), lalu melakukan testing pada tingkat dasar seperti unit testing.
3. Test
Tujuan dari disiplin ini adalah untuk menemukan celah dalam sistem, dan memvalidasi apakah aplikasi berjalan sesuai desain sistem dan kebutuhan user.
4. Deployment
Pada tahap ini, tujuannya adalah untuk mengintegrasi sistem menuju organisasi pengguna.
5. Configuration Management
Tujuan dari tahap ini adalah untuk mengatur akses ke struktur project. Contohnya seperti versi aplikasi dalam jangka waktu berjalan, lalu mengontrol dan mengatur perubahan bila ada (Versioning).
6. Project Management
Tahap ini bertujuan untuk mengalihkan aktivitas yang terkait dalam proyek. Diantaranya seperti risk management, assign task, tracking
progress,dll. Dan mengkoordinasikan orang-orang dan sistem yang
diluar proyek untuk memastikan bahwa proyek berjalan sesuai timeline dan budget.
7. Environment
Tahap ini berguna untuk menyuplai proyek yang berjalan dengan proses, panduan, dan tools / peralatan yang dibutuhkan.
2.1.4 Definisi Unified Modeling Language
Unified modeling language adalah bahasa standar untuk menulis rancangan software. UML dapat digunakan untuk membangun dan mendokumentasikan
kerangka software. Di sisi lain, dengan membangun rancangan arsitektur untuk digunakan para konstruksi perusahaan, pembangun software membuat UML diagram untuk membantu pengembang software untuk membangun software Sehingga lebih mudah untuk dipahami, mudah untuk menentukan sistem dan mudah untuk menjelaskan desain system [Pressman, 2010].
Diagram-diagram pada Unified Modeling Language (UML) dibagi menjadi 2 jenis yaitu structure diagrams dan behavior diagrams. Structure Diagrams yaitu diagram yang digunakan untuk menggambarkan data dan relasi paten yang terdapat pada sistem informasi. Sedangkan Behavior Diagrams adalah diagram yang menyediakan analisa dengan cara menggambarkan relasi yang dinamis antar objek yang mewakili sistem informasi yang akan dibangun.
Dalam perancangan aplikasi ini digunakan beberapa step Diagram UML yang digunakan yaitu :
1. Usecase Diagram ( Analisa sistem )
2. Activity Diagram ( Analisa dan Design sistem )
3. Sequence Diagram (Analisa dan Design sistem)
4. Class Diagram ( Analisa dan Design sistem )
2.1.5 Definisi Use Case Diagram
Use case diagram adalah gambar dari beberapa atau seluruh aktor dan use case dengan tujuan mengenali interaksi mereka dalam suatu sistem. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem, yang
ditekankan adalah “apa” yang diperbuat sistem, buka “bagaimana”. Sebuah use
sebagainya. Oleh karena itu, use case diagaram dapat membantu menganalisa kebutuhan suatu sistem. (Verdi Yasin, 2012:269)
Use case diagram digunakan oleh para analis untuk mengetahui lebih baik
lagi mengenai fungsionalitas sistem dari tingkatan yang sangat tinggi. (Dennis, Alan. 2012).
Gambar 2.2 Contoh Use Case Diagram (Dennis, Allan. 2012)
Tabel 2.1 Elemen-Elemen Use Case Diagram
No. Nama
Elemen Simbol Definisi
1 Batasan Sistem
Batasan sistem terdiri dari nama sistem yang terdapat di dalam atau di atas simbol
Batasan sistem merupakan ruang lingkup system
2 Relasi Asosiasi
Relasi asosiasi menghubungkan aktor dengan use case yang berinteraksi
3 Aktor
Aktor adalah orang atau sistem yang memperoleh manfaat dari dan /atau di luar sistem.
Aktor harus diberikan label sesuai dengan peranannya
Aktor dapat dikaitkan dengan aktor-aktor lain oleh spesialisasi atau asosiasi superclass yang dilambangkan dengan anak panah dengan panah berongga
Aktor ditempatkan di luar batas sistem
4 Use Case
Use case merupakan bagian utama dari fungsionalitas sistem
Use case dapat memperpanjang use case lain (extend)
Use case dapat menggunakan use case lain
Use case ditempatkan di dalam batas sistem
Use case diberi label dengan penjelasan kata kerja atau kata benda
2.1.6 Definisi Class Diagram
Class diagram merupakan model statis yang mendukung static view pada
pengembangan sistem. Class diagram menampilkan kelas-kelas dan relasi kelas yang terdapat dalam sebuah sistem dalam waktu ke waktu, secara konstan. (Dennis, Alan. 2012).
Berikut ini adalah contoh class diagram:
Berikut ini adalah elemen-elemen dari class diagram:
Tabel 2.3 Elemen-Elemen Class Diagram
No. Nama
Elemen Simbol Definisi
1 Class
Class dapat berupa jenis orang, tempat atau mengenai suatu hal yang harus didapatkan sistem dan disimpan informasinya.
Class mempunyai nama class yang ditulis dengan huruf tebal dan berada di atas bagiannya (kompartemen).
Class mempunyai daftar atribut di tengah bagiannya
Class mempunyai daftar operasi di bagian paling bawah
Class tidak secara eksplisit menunjukkan operasi yang tersedia untuk semua class
2 Atribut Atribut Nama
Atribut menggambarkan properties yang menggambarkan kondisi dari suatu objek. Atribut dapat berasal dari atribut lain,
ditunjukkan dengan menempatkan garis miring sebelum nama atribut itu
3 Metode Operation name ()
Metode menggambarkan tindakan atau fungsi yang dapat dilakukan sebuah class Metode dapat diklasifikasikan sebagai
konstruktor, query atau operasi update Metode terdiri dari tanda kurung yang dapat
mengandung parameter khusus atau informasi yang dibutuhkan untuk melakukan operasi
class
+Attribute1 +Operation1()
No. Nama
Elemen Simbol Definisi
4 Asosiasi
Asosiasi menggambarkan hubungan antara beberapa class, atau class dengan dirinya sendiri.
Asosiasi diberi label kata kerja atau nama peran, tergantung yang mana yang lebih baik yang menggambarkan relasi
Asosiasi terdapat di antara satu class atau lebih
Asosiasi berisi simbol multiplicity, yang mewakili jumlah minimum dan maksimum suatu class instance dapat dikaitkan dengan class intance yang lain
2.1.7 Definisi Activity Diagram
Diagram aktivitas lebih memfokuskan diri pada eksekusi dan alur sistem dari pada bagaimana sistem itu dirakit. Diagram aktivitas menunjukkan aktivitas sistem dalam bentuk kumpulan aksi-aksi. (Prabowo Pudjo Widodo Herlawati, 2011 : 143)
Gambar 2.4 : Contoh Activity Diagram
Berikut elemen-elemen dari activity diagram:
Tabel 2.4 Elemen-Elemen Activity Diagram
No. Nama Elemen Simbol Definisi
1 Percabangan atau Decision
Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu
2 Status Awal
Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal
No. Nama Elemen Simbol Definisi
3 Aktivitas
Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja
4 Penggabungan atau Join
Asosiasi
penggabungan dimana lebih dari satu aktivitas yang digabungkan menjadi satu 5 Status Akhir
Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir
6 Swimlane
Atau Memisahkan organisasi bisnis yang bertanggung jawab terhadap aktivitas yang terjadi
2.1.8 Definisi Sequence Diagram
Sequence diagram digunakan untuk menunjukkan komunikasi yang
dinamis antara objek selama eksekusi perintah sebuah tugas. (Pressman, Roger, 2010). Hal tersebut menunjukkan urutan sementara di mana pesan yang dikirim antar objek untuk menyelesaikan tugas itu. salah satu kekuatan menggunakan sequence diagram untuk menunjukkan interaksi dalam satu kasus penggunaan atau
dalam satu skenario dari sistem perangkat lunak.. Berikut ini adalah contoh
sequence diagram:
Berikut ini adalah elemen-elemen dari sequence diagram:
Tabel 2.6 Elemen-Elemen Sequence Diagram
No. Nama
Elemen Simbol Definisi
1 Object
Objek berpartisipasi secara berurutan dengan mengirimkan atau menerima message Objek ditempatkan di
bagian atas diagram Objek dapat berupa
pelaku pengguna sistem (Aktor) maupun elemen dari sistem itu sendiri (ex: Model, DB, Controller, dsb).
2 Lifeline
Lifeline menunjukkan masa dari sebuah objek dalam sebuah urutan Lifeline berisi X pada suatu poin dimana kelas atau objek tidak lagi berinteraksi
No. Nama
Elemen Simbol Definisi
3 Focus of control
Focus of control berupa persegi panjang yang tipis ditempatkan di atas lifeline
Focus of control ditunjuk ketika sebuah objek sedang mengirim atau menerima message
4 Message
Message menyampaikan informasi dari satu object ke object lain
6 Object
destruction X
Object destruction berupa simbol X ditempatkan pada akhir dari suatu object’s lifeline untuk menunjukkan bahwa lifeline akan berakhir
2.2 Studi Pustaka Penelitian
yang harus dijawab secara tertulis juga ( WS. Winkel, 1987) Angket merupakan teknik pengumpulan data yang dilakukan dengan mengadakan komunikasi dengan sumber data ( I. Djumhur, 1985 ) Kuesioner atau angket merupakan teknik pengumpulan data yang tidak memerlukan kedatangan langsung dari sumber data ( Dewa Ktut Sukardi, 1983 ). Kuesioner adalah suatu daftar yang berisi pertanyaan yang harus dijawab atau dikerjakan oleh orang/anak yang ingin diselidiki atau responden ( Bimo Walgito, 1987 ). Dari beberapa pengertian diatas dapat disimpulkan pengertian angket adalah suatu alat pengumpul data yang berupa serangkaian pertanyaan tertulis yang diajukan kepada subyek untuk mendapatkan jawaban secara tertulis juga.
2.2.2 Helpdesk
Menurut Wooten (2001, p5), ”Helpdesk is a formal organization that provides support function to users of the companies product, services, or technology”. Jadihelpdesk merupakan bagian dari perusahaan yang menyediakan dokumen fungsi produk, servis atau teknologi dari perusahaan tersebut.
Helpdesk adalah sebuah departemen atau bagian dalam perusahaan yang
melayani atau menanggapi pertanyaan teknis pengguna. Helpdesk digunakan untuk menjawab pertanyaan client. Pertanyaan dan jawaban dapat disampaikan melalui telepon,email, web atau fax. Umumnya, sistem helpdesk memanfaatkan sistem penomoran (request ticket) untuk memudahkan penelusuran terhadap tindakan penyelesaian yang dikoordinasi oleh suatu team.
2.3 Server Side Programming
Menurut Hardjono (2006;2) Web merupakan fasilitas hiperteks untuk menampilkan data berupa teks, gambar, suara, animasi, dan data multimedia lainnya. Ada 2 kategori dalam pemrograman web, yaitu pemrograman Server web dan Client web. Pada pemrograman Server Side, perintah-perintah program (script) dijalankan di server web, kemudian hasil dikirimkan ke browser dalam bentuk HTML biasa.
2.3.1 Apache
Menurut Kurniawan (2008b:2) ”Apache adalah web server yang dapat dijalankan dibanyak sistem operasi (Unix, BSD, Linux, Microsoft windows dan Novell Netware serta Platfrom lainnya) yang berguna untuk memfungsikan situs web”. Protokol yang digunakan untuk melayani
fasilitaswebini menggunakan HTTP. 2.3.2 PHP (Hyertext Preprocessor)
PHP adalah salah satu bahasa pemograman skrip yang dirancang untuk membangun aplikasi web. Ketika dipanggil dari web browser, program yang ditulis dengan PHP akan di-parsing di dalam web server oleh interpreter PHP dan diterjemahkan ke dalam dokumen HTML, yang selanjutnya akan di tampilkan kembali ke web browser, karena pemprosesan program PHP dilakukan di lingkungan web server, PHP dikatakan sebagai bahasa sisi server (server-side). (Taryana Suryana & Koesheryatin, 2014 : 47)
PHP juga dapat diintegrasikan dengan HTML, JavaScript, JQuery, Ajax. Namun, pada umumnya PHP lebih banyak digunakan bersamaan dengan file bertipe HTML. Dengan menggunakan PHP bisa membuat website powerfull yang dinamis dengan disertai manajemen basis datanya. Selain itu juga penggunaan PHP yang sebagian besar dapat berjalan dibanyak platform, menjadi salah satu alasan pembangunan aplikasi menggunakan PHP. (Hidayatullah, Priyanto. 2015).
2.3.3 HTML (Hypertext Markup Language)
HTML (Hypertext Markup Language) adalah bahasa standard yang
digunakan untuk menampilkan halaman web. (Hidayatullah, Priyanto & Kawistara, Jauhari Khairul. 2014).
Suatu dokomen HTLM disusun oleh beberapa elemen atau lebih dikenal dengan komponen-komponen dasar. Dokumen dapat berupa text murni, atau bukan teks, atau keduanya. Elemen atau komponen tersebut misal head, body, paragraph, list, dll. (M. Rudyanto Arief, 2011 : 24)
Berikut ini adalah elemen-elemen yang digunakan pada HTML:
Tabel 2.8 Elemen-Elemen HTML
Elemen Keterangan
<a>
Mendefinisikan sebuah anchor, tetapi lebih tepat jika diartikan sebagai tautan dikarenakan tautan ini digunakan untuk saling menautkan antara satu dokumen HTML ke dokumen HTML yang lain
<body>
Mendefinisikan body/isi dokumen HTML, berfungsi untuk menentukan bagaimana isi suatu dokumen ditampilkan di web browsernya. Isi dokumen tersebut dapat berupa teks, gambar, animas, link dan seterusnya
<br /> Memberi baris baru/pindah baris
<col /> Mendefinisikan nilai atribut dari satu kolom atau lebih dalam sebuah tabel
<colgroup> Menentukan kelompok dari satu kolom atau lebih dalam sebuah tabel untuk performatan
<div> Mendefinisikan sebuah section dalam dokumen
<font> Mendefinisikan jenis font, warna dan ukuran untuk teks <form> Mendefinisikan sebuah form HTML untuk input form <frame /> Mendefinisikan frame dalam fremeset
Elemen Keterangan <h1> to
<h6>
Digunakan untuk menunjukkan awal dari suatu header/judul dari dokumen HTML tersebut.
<head> Digunakan untuk memberikan informasi tentang dokumen tersebut
<html> Mendefinisikan root dari suatu dokumen HTML
<img /> Berfungsi untuk menampilkan gambar pada dokumen HTML
<input /> Mendefinisikan input field pada form
<li> Digunakan untuk menampilkan informasi dalam bentuk item daftar
<link /> Mendefinisikan hubungan antara dokumen dan sumber eksternalnya
<object> Meletakkan embed sebuah objek
<ol> Mendefinisikan daftar dalam format penomoran
<option> Menampilkan beberapa pilihan yang berbentuk dalam sebuah daftar drop-down
<p> Membuat sebuah paragraph
<param /> Mendefinisikan sebuah parameter untuk objek <pre> Membuat teks dengan ukuran huruf yang sama <script> Mendefinisikan client-side script
<span> Mendefinisikan sebuah section dalam dokumen <table> Membuat table
<td> Mendefinisikan sel di dalam sebuah table <textarea> Mendefinisikan sebuah kontrol input multiline <th> Mendefinisikan sel header di dalam sebuah tabel <title> Membuat judul untuk dokumen HTML
<tr> Membuat baris di dalam sebuah table
Elemen Keterangan
HTML text formatting melainkan termasuk kategori HTML Style
<ul> Mendefinisikan daftar dalam format bullet <var> Mendefinisikan sebuah variable
2.3.4 Basis Data
Basis data merupakan kumpulan dari data yang saling berhubungan satu sama lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. (Yakub, 2012). Basisdata merupakan kumpulan data yang mendeskripsikan tentang aktifitas dari satu atau lebih organisasi data. Dalam pengembangan sebuah sistem, desain basisdata sangat berperan penting. Desain basisdata yang baik dapat mempengaruhi kinerja dari suatu sistem. (Hidayatullah, Priyanto & Kawistara, Jauhari Khairul. 2014)).
2.3.5 PostgreSQL
PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah database besar yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi. Penggunaanya begitu meluas di berbagai platform dan didukung oleh banyak bahasa pemrograman. SQL di Postgres tidaklah seperti yang di temui pada DBMS umumnya. Perbedaan penting antara Postgres dengan sistem relasional standar adalah arsitektur Postgres yang memungkinkan user untuk mendefenisikan sendiri SQL-nya, terutama pada pembuatan function atau biasa disebut sebagai stored procedure. Hal ini dimungkinkan karena informasi yang disimpan oleh Postgres bukan hanya tabel dan kolom, melainkan tipe, fungsi, metode akses, dan banyak lagi yang terkait dengan tabel dan kolom tersebut. Semua terhimpun dalam bentuk class yang bisa diubah user. Arsitektur yang menggunakan class ini lazim disebut sebagai object oriented
2.3.6 Javascript dan JQuery
Javascript adalah bahasa scripting yang digunakan sebagai fungsionalitas
dalam membuat suatu web. Javascript bersifat client-side sehingga untuk menggunakannya browser harus mengaktifkan fitur javascript, bila konfigurasi
browser diset pada konfigurasi default, secara otomatis browser sudah
mengaktifkan javascript. (Hidayatullah, Priyanto & Kawistara, Jauhari Khairul. 2014).
JQuery adalah suatu library javascript yang akan menjadikan web lebih
bagus dalam hal user interface, lebih stabil, dan dapat dipercepat waktu dan kinerja dalam membuat web karena hanya perlu memanggil fungsinya saja tanpa harus membuat dari awal. (Hidayatullah, Priyanto & Kawistara, Jauhari Khairul. 2014). 2.3.7 Framework Laravel
Laravel framework (www.laravel.com) adalah salah satu dari sekian banyak framework PHP yang tersedia. Framework dapat diartikan sebagai kerangka kerja. Framework di dalam bahasa pemrograman PHP berfungsi untuk memudahkan dalam proses pembuatan sebuah aplikasi berbasis web. 16 Pembuatan suatu aplikasi web tidak harus menggunakan framework. Namun, agar pembuatan aplikasi menjadi lebih efektif dan efisien maka dipakailah framework karena dapat menyelesaikan proses-proses yang lebih kompleks. Laravel dibuat oleh Taylor Otwell sejak tahun 2012. Framework ini mengaku “clean and classy”, dengan kode yang lebih singkat, mudah dimengerti, dan ekspressif. Artinya hanya dengan membaca sekilas kode yang ditulis maka pembaca sudah bisa menduga apa maksudnya tanpa perlu membaca dokumentasi.
2.3.8 Pengujian Black Box
Metode black-box testing mengetahui spesifik fungsi yang telah dirancang pada sebuah aplikasi. Pengujian menggunakan black-box yaitu menguji setiap fungsi-fungsi yang ada untuk mengetahui fungsi tersebut dapat berjalan dengan baik. Metode pengujian menggunakan black-box melakukan pengujian terhadap