BAB II LANDASAN TEORI
2.1
Rekayasa Perangkat Lunak
2.1.1 Pengertian Rekayasa Perangkat Lunak Menurut Roger
S. Pressman
pada tahun 2001, pengertian awal dari
rekayasa perangkat lunak (Software Engineering) diajukan oleh Fritz Bauer, “Rekayasa perangkat lunak adalah penetapan dan penggunaan prinsip rekayasa dalam rangka memperoleh perangkat lunak yang dapat dipercaya dan dapat bekerja secara efisien pada mesin nyata.”
2.1.2 Sejarah Rekayasa Perangkat Lunak Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software Engineering. Istilah Software Engineering mulai dipopulerkan tahun 1968 pada Software Engineering Conference yang diselenggarakan oleh NATO (North Atlantic Treaty Organization), yaitu organisasi pakta pertahanan untuk politik dan keamanan negara – negara di kawasan Atlantik Utara. Meskipun penggunaan kata software engineering pada konferensi tersebut menimbulkan
perdebatan
sengit
menyangkut
aspek
engineering dari
pengembangan perangkat lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak.
2.1.3 Tujuan Rekayasa Perangkat Lunak Menurut Fritz Bauer pada Conference NATO tahun 1968, rekayasa perangkat lunak adalah penetapan dan penggunaan prinsip rekayasa dalam rangka memperoleh perangkat lunak yang dapat dipercaya dan dapat bekerja secara efisien pada mesin nyata. Berdasarkan definisi dari Fritz Bauer tersebut, maka dapat disimpulkan bahwa tujuan rekayasa perangkat lunak adalah melakukan rekayasa pada perangkat lunak untuk agar diperoleh perangkat lunak yang dapat dipercaya dan bekerja secara efisien pada sebuah mesin. 7
8
Beberapa tujuan yang dilakukan rekayasa perangkat lunak antara lain : 1. Membangun perangkat lunak yang benar dan benar sebuah perangkat lunak (Right Software and Software Right). 2. Membangun perangkat lunak yang tepat sesuai kebutuhan (Correct). 3. Perangkat lunak dapat dikelola dengan baik untuk pemeliharaan kebenarannya (Correctness).
2.1.4 Model Proses Pada Perangkat Lunak Menurut Roger S. Pressman pada tahun 2005, dalam mengembangkan sebuah produk atau sistem, adalah sangat penting untuk melakukannya dalam suatu tahapan-tahapan yang terprediksi. Tahapan-tahapan ini menjadi sebuah peta jalan guna mencapai hasil dengan kualitas tinggi dan tepat waktu. Software process adalah peta jalan tersebut.
2.1.4.1 Kerangka Kerja Proses (Process Framework) Kerangka kerja atau process framework adalah kesamaan – kesamaan tahapan
pengembangan
yang
ditemui
dalam
pembuatan
proyek-proyek
pengembangan piranti lunak. Secara umum kerangka kerja proses terdiri dari 5 tahapan, yaitu komunikasi, perencanaan, pemodelan, pembangunan, dan penyebaran (deployment). Pada tahapan komunikasi, terjadi proses komunikasi dan kerja sama yang sangat insentif dengan pengguna dan para stakeholder lainnya. Pada tahapan ini juga terjadi kegiatan pengumpulan kebutuhan – kebutuhan yang diperlukan oleh sistem yang dibangun (requirement gathering). Selanjutnya dibuat sebuah rencana yang menjelaskan mengenai tugas tugas teknis yang dilakukan, resiko - resiko yang mungkin terjadi, sumber daya yang dibutuhkan, produk hasil kerja yang akan dihasilkan dan jadwal pengerjaannya. Tahapan pemodelan menciptakan model-model analisa kebutuhan dan perancangan yang dapat membuat pihak pengembang maupun pengguna mengerti dengan lebih baik terhadap kebutuhan dan desain dari piranti lunak yang akan
9
dikembangkan. Tahapan permodelan ini lebih jauh terdiri atas dua aktifitas, yaitu analisis dan perancangan. Selanjutnya masuk pada tahapan pembangunan yang melingkupi pembangunan kode aplikasi (code generation) dan pengujian yang dibutuhkan untuk menemukan kesalahan - kesalahan dalam kode yang dibangun. Tahapan terakhir adalah tahapan penyebaran (deployment). Pada tahapan ini, setelah tahapan pembangunan diselesaikan seluruhnya maupun sebagian, piranti lunak diberikan kepada pengguna yang kemudian akan mengevaluasi dan memberikan umpan balik berdasarkan hasil evaluasi tersebut.
2.1.4.2 Model Air Terjun (Waterfall Process Model) System Development Live Cycle (SDLC) adalah keseluruhan proses dalam membengun sistem melalui beberapa langkah. Ada beberapa model SDLC yaitu waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize. Model yang cukup popular dan banyak digunakan adalah model air terjun atau waterfall. Waterfall Model banyak digunakan untuk rekayasa sistem proyek dimana sistem ini dikembangkan di beberapa situs besar.
Gambar 1 Waterfall Model
10
Menurut Ian Sommerville tahun 2007, langkah - langkah pada waterfall model seperti yang terdapat pada gambar diatas dapat diterangkan sebagai berikut : 1. Requirements definition Pada tahap ini dibentuk layanan, tujuan, dan batasan berdasarkan wawancara dengan calon pengguna sistem. Berdasarkan hasil wawancara tersebut dihasilkan spesifikasi dari sistem.
2. System and software design Pada tahapan ini, dibangun arsitektur sistem secara keseluruhan dengan mengidentifikasikan abstraksi dari sistem perangkat lunak dan relasinya. Desain perangkat lunak membagi kebutuhan perangkat lunak atau software. 3. Implementation and unit testing Pada tahapan ini, sistem perangkat lunak menghasilkan beberapa unit program. Unit yang dihasilkan akan diuji, apakah sudah memenuhi fungsinya dengan baik. 4. Integration and system testing Pada tahapan ini, seluruh unit program disatukan dan diuji sebagai suatu sistem yang utuh untuk memastikan bahwa perangkat lunak yang telah terbentuk telah memenuhi spesifikasi awalnya. Jika telah memenuhi spesifikasi, maka perangkat lunak dapat segera disampaikan kepada ke pengguna. 5. Operation and maintance Tahapan ini mencakup beberapa hal, yaitu perbaikan terhadap cacat program atau bug yang tidak ditemukan pada tahap pengujian sebelumnya, setelah perangkat lunak disampaikan dan digunakan oleh pengguna setelah beberapa lama atau jika produsen ingin meningkatkan performa dan fungsi dari perangkat lunaknya.
11
2.2
Pemrograman Website Pengertian Pemrograman menurut Jogiyanto pada tahun 2005, merupakan
“kegiatan menulis kode program yang akan dieksekusi oleh komputer”. Adapun website menurut Yuhefizar pada tahun 2008, website atau world wide web (www) adalah kumpulan halaman-halaman web yang mengandung informasi. Sedangkan menurut Jovan pada tahun 2007, website adalah media penyampai informasi di internet. Sehingga dapat disimpulkan bahwa pemrograman website adalah kegiatan menulis kode program berbasis web yang mengandung informasi dan akan disampaikan melalui internet.
2.2.1 Komponen Website 2.2.1.1 Penyedia Layanan Web (Web Server) Web server merupakan software yang memberikan layanan data yang berfungsi
menerima
permintaan HTTP (Hyper
Text
Transfer
Protocol)
atau HTTPS (Hyper Text Transfer Protocol Secure) dari klien yang dikenal dengan peramban web dan mengirimkan kembali hasilnya dalam bentuk halaman - halaman web yang umumnya berbentuk dokumen HTML (Hypertext Markup Language) Macam - macam Web Server diantaranya: 1. Apache Tomcat 2. Microsoft Internet Information Services (IIS) 3. IBM Websphere Application Server (WAS) 4. Sun Java System Web Server 5. Xitami Web Server 6. Zeus Web Server 7. Redhat JBoss Namun web yang terkenal dan yang sering digunakan adalah Apache, Apache Tomcat dan Microsoft Internet Information Service (IIS).
2.2.1.2 Aplikasi Web (Website) Menurut Jasmadi pada tahun 2004, website merupakan sebuah kumpulan halaman - halaman web beserta file - file pendukungnya, seperti file gambar,
12
video, dan file digital lainnya yang diletakkan (di-host) di sebuah web server yang umumnya dapat diakses melalui internet. Sedangkan menurut Yuhefizar pada tahun 2008, website atau world wide web (www) adalah kumpulan halamanhalaman web yang mengandung informasi.
2.2.1.3 Peramban Web (Web Browser) Pengertian peramban web (web browser) secara sederhana adalah sebuah perangkat lunak yang manfaatnya adalah untuk menampilkan berbagai dokumen yang tersedia pada web server, proses menampilkan berbagai dokumen ini melewati sebuah interaksi antara browser dengan web server. Untuk lebih jelasnya mengenai pengertian browser, mungkin akan terjawab dengan studi kasus secara langsung tentang browser yang sudah umum kita gunakan. Menurut Hanson pada tahun 2000, web browser adalah perangkat lunak yang dijalankan pada computer pemakai atau client, yang meminta informasi dari server web yang menampilkannya sesuai dengan file data itu sendiri. Fungsi dari browser antara lain adalah untuk melakukan atau menampilkan halaman web atau interaksi dengan dokumen yang disediakan oleh server. Setiap jenis browser memiliki perbedaan, kelebihan serta kekurangan masing masing. Ini disebabkan perbedaan produsen atau perusahaan yang menyediakan browser tersebut. Berikut ini adalah beberapa macam browser : 1. Chrome 2. Opera 3. Mozilla Firefox 4. Microsoft Internet Explorer
2.2.2 WWW (World Wide Web) Pengertian world wide web adalah sebuah sistem informasi yang mengelola
jaringan
internet
dengan
menggunakan
suatu
set
protokol
tertentu. world wide web atau yang biasa disingkat dengan WWW ini diciptakan pada bulan Maret 1989 disaat sekelompok peneliti dan para ahli bermaksud untuk
13
menciptakan sebuah protokol baru untuk keperluan distribusi informasi pada internet. Para peneliti ini kemudian menetapkan sebuah standar baru yang merupakan cikal bakal terbentuknya sebuah consortium yang lazim dikenal dengan nama W3C atau World Wide Web Consortium yang bertugas untuk melanjutkan pengembangan standart tersebut. Dibawah naungan W3C inilah para ahli dan peneliti berhasil melahirkan bahasa pemrograman yag dikenal sebagai HTML (Hyper Text Markup Language)
2.2.3 HTTP (Hyper Text Transfer Protocol) HTTP (HyperText Transfer Protocol) adalah sebuah protokol untuk melakukan permintaan (request) dan menjawab (acknowledge) antara client dan server dari sebuah web. Sebuah client HTTP seperti web browser, biasanya memulai permintaan dengan membuat hubungan TCP/IP ke port tertentu di alamat web yang dituju (biasanya port 80). Sebuah server HTTP yang mendengarkan di port tersebut menunggu client mengirim kode permintaan (request) yang akan meminta halaman yang sudah ditentukan, diikuti dengan pesan MIME yang memiliki beberapa informasi kode kepala (header) yang menjelaskan aspek dari permintaan tersebut, diikut dengan badan (body) dari data yang diminta. Karena akses ke suatu web dilakukan melalui internet, maka HTTP berkomunikasi melalui protocol TCP / IP. Client HTTP terhubung ke server HTTP menggunakan TCP. Setelah koneksi terbentuk, client dapat mengirim pesan permintaan HTTP ke server. Alur yang terjadi disini adalah HTTP mengirimkan permintaan dari klien web (browser) ke web server, kemudian server akan melakukan respons dan pengembalian data berupa konten web (halaman web) dari server ke klien. HTTP tidak terbatas hanya menggunakan TCP/IP, namun juga bisa melalui protocol lain. TCP/IP paling sering digunakan untuk media HTTP karena merupakan salah satu protokol paling popular, yaitu melalui Internet.
14
2.2.4 TCP/IP (Transmission Control Protocol / Internet Protocol) Menurut Melwin Syafrizal pada tahun 2004, TCP/IP adalah sekumpulan protokol yang terdapat di dalam jaringan komputer (network) yang digunakan untuk berkomunikasi atau bertukar data antarkomputer. TCP/IP merupakan protokol standar pada jaringan internet yang menghubungkan banyaknya komputer yang berbeda jenis mesin maupun sistem operasi agar dapat berinteraksi satu sama lain. Banyak protocol yang terdapat dalam TCP/IP layer. Gambar di bawah ini menjelaskan protocol protocol yang dapat digunakan di layer TCP/IP.
Gambar 2 Protokol – protocol yang Dapat Berjalan di Layer TCP/IP
2.2.5 HTML (Hypertext Markup Language) Menurut Turban pada tahun 2005, HTML adalah bahasa pemrograman yang digunakan di web, dalam format dokumen dan menghubungkan dynamic hypertext ke dokumen lain di komputer lain. Dokumen HTML disebut sebagai hypertext, ini berarti suatu dokumen tidak harus dibaca secara berurutan dari atas ke bawah. Dokumen dapat dibaca langsung menuju ke topik tertentu secara langsung dalam dokumen dengan menggunakan teks penghubung. Yang dimaksud dengan dynamic hypertext adalah konten yang ada pada halaman web bersifat dinamis dan dapat diperbarui tanpa mengubah susunan kode web tersebut.
15
Dokumen HTML disebut juga sebagai markup language karena mengandung tanda-tanda tertentu yang digunakan untuk menentukan tampilan suatu teks tersebut dalam suatu dokumen dan tanda - tanda atau kode tersebut di kenal dengan TAG. Agar kode – kode HTML dapat berfungsi sebagai halaman web, HTML harus ditulis dalam software atau aplikasi tertentu, yang dikenal sebagai HTML editor. HTML editor inilah yang bertugas untuk menerjemahkan bahasa HTML menjadi halaman web yang siap dilihat oleh para pengguna internet di seluruh dunia. Secara umum, ada dua jenis HTML editor, yaitu TEXT editor dan WYSIWYG editor. 1. Text editor Text editor biasa digunakan oleh pemrogram yang sudah mahir dalam menggunakan bahasa HTML, karena melalui editor jenis ini dapat langsung dituliskan kode-kode HTML satu persatu, sesuai prosedur teknis yang berlaku. Contoh aplikasi text editor adalah Notepad, Notepad++, Editplus dll 2. WYSIWYG editor Pada jenis aplikasi ini, anda bisa membangun halaman web dengan lebih mudah, karena apa yang terlihat di layar akan sama dengan hasil yang anda dapatkan. WYSIWYG adalah singkatan dari What You See Is What You Get. Aplikasi WYSIWYG yang populer adalah Adobe Dreamweaver.
2.2.6 Bahasa Pemrograman JavaScript JavaScript adalah bahasa yang digunakan untuk membuat program yang digunakan agar dokumen HTML yang ditampilkan dalam browser menjadi lebih interaktif,
tidak
sekedar
indah
saja.
JavaScript
memberikan
beberapa
fungsionalitas ke dalam halaman web, sehingga dapat menjadi sebuah program yang disajikan dengan menggunakan antarmuka web. JavaScript merupakan bahasa script, bahasa yang tidak memerlukan kompiler untuk menjalankannya, cukup dengan interpreter. Tidak perlu ada proses kompilasi terlebih dahulu agar program dapat dijalankan. Browser web Netscape Navigator dan Internet Explorer adalah salah satu contoh interpreter, karena kedua browser ini telah dilengkapi dengan interpreter JavaScript. Tetapi
16
tidak semua browser web dapat menjadi interpreter JavaScript karena belum tentu browser tersebut dilengkapi denganinterpreter JavaScript. JavaScript adalah bahasa script yang ringan dan mudah digunakan. Dengan adanya JavaScript ini, maka kini halaman web tidak sekedar menjadi halaman data dan informasi daja, tetapi juga dapat menjadi suatu program aplikasi dengan antarmuka web. JavaScript merupakan bahasa pemrograman yang tidak membutuhkan lisensi untuk dapat menggunakannya. jika browser web yang kita gunakan mendukung (memiliki) JavaScript maka kita dapat langsung membuat aplikasi berbasis web dengan menggunakan JavaScript. Umumnya program JavaScript adalah program yang ditanamkan (disisipkan) ke dalam halaman web, sehingga halaman (dokumen) web menjadi sebuah aplikasi yang berjalan di dalam browser web. Beberapa sistem operasi menggunakan JavaScript untuk membuat aplikasi non-web, seperti sistem operasi MS Windows, yang menggunakan istilah Windows Scripting Host (WSH) sebagai interpreter JavaScript dan VBscript, sehingga program yang dibuat dengan JavaScript dan VBScript dapat langsung dijalankan di atas sistem operasi, tanpa harus menggunakan browser web terlebih dahulu.
2.2.7 Bahasa Pemrograman PHP (Page Hypertext Preprocessor) Kepanjangan dari PHP adalah "Page Hypertext Preprocessor". PHP adalah bahasa scripting web HTML-embedded. Ini berarti kode PHP dapat disisipkan ke dalam halaman Web HTML. PHP mula - mula dikembangkan oleh Rasmus Lerdofr. Menurut Swastika pada tahun 2006, PHP merupakan bahasa berbentuk skrip yang ditempatkan dalam server dan diproses di server. Hasilnya akan dikirimkan ke client, tempat pemakai menggunakan browser. PHP dikenal sebagai sebuah bahasa scripting, yang menyatu dengan tag-tag HTML, dieksekusi di server, dan digunakan untuk membuat halaman web yang dinamis seperti halnya Active Server Pages (ASP) atau Java Server Pages (JSP). PHP merupakan sebuah software open source. Nah, hal inilah yang membedakan ASP dengan PHP.
17
Secara khusus, PHP dirancang untuk membentuk web dinamis. Artinya, ia dapat membentuk suatu tampilan berdasarkan permintaan terkini, atau mungkin lebih mudah nya ia dapat di update (diubah isi kontennya tanpa harus masuk kedalam coding. Simple nya seperti blog ini saja. Pada prinsipnya, PHP mempunyai fungsi yang sama dengan skrip-skrip seperti ASP (Active Serever Page), Cold Fusion, maupun Perl. Metode kerja PHP diawali dengan permintaan suatu halaman web oleh browser, berdasarkan Uniform Resource Locator (URL) atau dikenal dengan sebutan alamat internet. Browser mendapatkan alamat dari web server, mengidentifikasi halaman yang dikehendaki, dan menyampaikan segala informasi yang dibutuhkan oleh web server. Selanjutnya web server akan mencarikan barkas PHP yang diminta dan setelah didapatkan, isinya akan segera dikirimkan ke mesin PHP dan mesin inilah yang memproses dan memberikan hasilnya berupa kode HTML ke web server. Lalu web server akan menyampaikan isi halaman web tersebut kepada klien melalui browser. Setiap statement/perintah dari PHP harus diakhiri dengan menggunakan tanda titik koma (;). Menurut Swastika pada tahun 2006, umumnya setiap statement dituliskan dalam satu baris. Penulisan skrip PHP dalam tag HTML dapat dilakukan dengan dua cara yaitu Embedded Script dan non-Embeddded Script.
2.2.8 CSS (Cascading Style Sheet) CSS (Cascading Style Sheet) adalah salah satu bahasa desain web (style sheet language) yang mengontrol format tampilan sebuah halaman web yang ditulis dengan menggunakan penanda(markup laguage. Biasanya CSS digunakan untuk mendesain sebuah halaman HTML dan XHTML (Extensible HTML), tetapi sekarang CSS bisa diaplikasikan untuk segala dokumen XML (Extensible Markup Language), termasuk SVG (Scalable Vector Graphics) dan XUL (XML User Interface Language) bahkan ANDROID. CSS dibuat untuk memisahkan konten utama dengan tampilan dokumen yang meliputi layout, warna da font. Pemisahan ini dapat meningkatkann daya
18
akses konten pada web, menyediakan lebih banyak fleksibilitas dan kontrol dalam spesifikasi darisebuah karakteristik dari sebuah tampilan, memungkinkan untuk membagi halaman untuk sebuah formatting dan mengurangi kerumitan dalam penulisan kode dan struktur dari konten, contohnya teknik tableless pada desain web. CSS juga memungkinkan sebuah halaman untuk ditampilkan dalam berbagai style dengan menggunakan metode pembawaan yang berbeda pula, sepertion-screen, in-print, by voice, dan lain-lain. Sementaraitu, pemilik konten web bisa menentukan tautan yang menghubungkan konten dengan file CSS. Tujuan utama CSS diciptakan untuk membedakan konten dari dokumen dan dari tampilan dokumen, dengan itu, pembuatan ataupun pemrograman ulang web akan lebih mudah dilakukan. Hal yang termasuk dalam desain web diantaranya adalah warna, ukura dan formatting. Dengan adanya CSS, konten dan desain web akan mudah dibedakan, jadi memungkinkan untuk melakukan pengulangan pada tampilan-tampilan tertentu dalam suatu web, sehingga akan memudahkan dalam membuat halaman web yang banyak, yang pada akhirnya dapat memangkas waktu pembuatan web (http://jambispirit.com:2013).
2.2.9 Kerangka Kerja (Framework) Menurut Danny (http://www.ms-room.com:24 Juni 2011), framework adalah sekumpulan perintah/fungsi dasar yang dapat membantu dalam menyelesaikan proses-proses yang lebih kompleks. Sebenarnya bukan keharusan untuk menggunakan framework. Namun, framework dapat membantu anda dalam menyelesaikan pekerjaan yang lebih kompleks. Secara umum, framework menggunakan struktur MVC (Model, View, Controller).
Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu: 1. View, merupakan salah satu bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan
19
data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model. 2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view. 3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi. Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan. 2.2.10 Kerangka Kerja CodeIgniter CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir 2.1.2 yang dirilis pada 29 Juni 2012. Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain, diantaranya: 1. Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth,
20
tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain. 2. Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config. 3. Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru. 4. Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
2.3
Basis Data
2.3.1 Teori Basis Data Basis data diartikan oleh beberapa ahli sebagai berikut : 1. Menurut Connolly pada tahun 2002, basis data adalah kumpulan data yang dihubungkan secara bersama-sama, dan gambaran dari data yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. 2. Menurut C. J Date pada tahun 1990, basis data adalah kumpulan terintegrasi dari file yang merupakan representasi data dari suatu model enterprise. 3. Sedangkan menurut Fathansyah pada tahun 1999, basis Data adalah himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. Berbeda dengan sistem file yang menyimpan data secara terpisah, pada basis data data tersimpan secara terintegrasi. Basis data bukan menjadi milik dari suatu departemen tetapi sebagai sumber daya perusahaan yang dapat digunakan bersama. Data dalam basis data disimpan dalam tiga struktur, yaitu file, tabel atau objek. File atau berkas terdiri dari record dan field, tabel terdiri dari baris dan kolom. Objek terdiri dari data dan instruksi program yang memfungsikan data.
21
Tabel terdiri dari kolom-kolom yang saling terkait, seperti file yang terdiri dari record yang saling terkait. File didalam basis data dapat terhubung kepada beberapa tabel. Dalam sebuah tabel, data pada tiap kolom terdiri dari ukuran dan tipe yang sejenis (char/ numeric).
2.3.2 DBMS (Database Management System) Berikut adalah beberapa pengertian DBMS menurut beberapa ahli : 1. Menurut C.J Date pada tahun 2000, DBMS adalah merupakan software yang menghandel seluruh akses pada database untuk melayani kebutuhan user. 2. Menurut Gordon C. Everest pada tahun 1979, DBMS adalah manajemen yang efektif untuk mengorganisasi sumber daya data.
Sehingga dapat disimpulkan bahwa DBMS adalah suatu software yang mengatur dan mengakses segala sumber daya data dari seluruh database untuk melayani kebutuhan user. DBMS dilengkapi dengan bahasa yang berorientasi pada data (High level data langauage) yang sering disebut juga sebagai bahasa generasi ke 4 (fourth generation language).
Beberapa fungsi DBMS adalah : 1. Mendefinisikan data dan hubungannya 2. Memanipulasi data 3. Mengatur keamanan dan integritas data 4. Mengatur Recovery / perbaikan dan concurency / keterkaitan data 5. Sebagai data dictionary 6. Meningkatkan unjuk kerja / performance pada suatu instansi
2.3.3 ERD (Entity Relationship Diagram) Berikut adalah beberapa pengertian ERD menurut beberapa ahli : 1. Menurut Hoffer, Prescott dan Mc Fadden pada tahun 2005, ERD (Entity Relationship Diagram) adalah representasi grafis dari entity-relationship
22
model. Entity-Relationship Model (E-R Model) adalah representasi logical dari data untuk sebuah organisasi atau untuk sebuah area bisnis. 2. Menurut Whitten pada tahun 2004, ERD adalah model data yang menggunakan beberapa notasi untuk menggambarkan data dalam hubungan antar entity dan relationship yang digambarkan oleh data tersebut. 3. Menurut
Coronel
pada
tahun
2002,
ERD
adalah
diagram
yang
menggambarkan entity, atribut dan relasi dalam ERM (Entity Relationship Model). Di dalam ERD terdapat tiga komponen pembentuk, yaitu: 1. Entitas (Entity) Menurut Connolly dan Begg pada tahun 2002, entitas merupakan kelompok orang, tempat, objek, kejadian atau konsep tentang apa yang diperlukan untuk men-capture atau menyimpan data ke dalam database. 2. Hubungan (Relationship) Menurut Connolly dan Begg pada tahun 2002, relationship adalah asosiasi antar entitas. Entitas merupakan pangkal dan ujung dari relationship. Relationship dapat digambarkan dengan bentuk belah ketupat yang berisi nama dari relasi tersebut. Tingkat relasi yang umum antar entity adalah. Masih menurut Connolly dan Begg pada tahun 2002, relationship di dalam ERD dibagi menjadi tiga, yaitu : a. Relasi One-to-One (1:1) Relasi dimana setiap entity yang ada hanya dapat mempunyai maksimal 1 (satu) relasi dengan entity yang lain. b. Relasi One-to-Many (1:*) Relasi dimana setiap entity yang ada dapat mempunyai satu atau lebih dari satu relasi dengan entity yang lain. c. Relasi Many-to-Many (*:*) Relasi dimana setiap entity dapat mempunyai lebih dari satu relasi dengan entity lainnya. 3. Attribute
23
Attribute adalah properti dari sebuah entitas. Atribut memegang nilai yang menjelaskan setiap kejadian entitas dan merepresentasikan bagian utama dari data yang disimpan ke dalam database.
2.3.4 Database MySQL Menurut Antonius Nugraha Widhi Pratama (2010:10), MySQL adalah suatu sistem managemen basis data relasional (RDBMS-Relational Database Management System) yang mampu bekerja dengan cepat, kokoh dan mudah digunakan. Menurut Wahana Komputer (2010:21), MySQL merupakan program database yang mampu mengirim dan menerima data dengan sangat cepat dan multi user. MySQL pertama kali dirintis oleh seorang programer database bernama Michael Widenius. Selain MySQL ada beberapa program database server lain yang menggunakan standar query berupa SQL, antara lain adalah: 1. Oracle 2. PostgreSQL 3. MySQL front 4. MySQL 5. Microsoft SQL Server MySQL adalah sebuah database server, dapat juga berperan sebagai client sehingga sering disebut database client/server, yang open source dengan kemampuan dapat berjalan baik di OS (Operating System) manapun, dengan Platform Windows maupun Linux. 2.4
Komponen Pendukung Lainnya Selain komponen – komponen pada pemrograman website yang telah
dijelaskan sebelumnya, yaitu pemrograman website dan basis data, terdapat beberapa komponen tambahan yang akan digunakan pada perancangan website aplikasi pengelolaan jadwal siding tugas akhir Fasilkom. Berikut akan dijelaskan mengenai komponen – komponen tersebut.
24
2.4.1 Fitur eksport data ke file Excel Pada aplikasi ini terdapat fitur untuk melakukan eksport data ke dalam bentuk file berekstensi XLS (Microsoft Excel). Microsoft Excel atau Microsoft Office Excel adalah sebuah program aplikasi lembar kerja spreadsheet yang dibuat dan didistribusikan oleh Microsoft Corporation untuk sistem operasi Microsoft Windows dan Mac OS. Tujuan utama aplikasi ini adalah diterapkannya fitur kalkulasi dan pembuatan grafik. Aplikasi ini merupakan bagian dari Microsoft Office System, dan versi terakhir adalah versi Microsoft Office Excel 2013 yang diintegrasikan di dalam paket Microsoft Office System 2013. Microsoft Excel terinspirasi oleh program serupa yang telah lebih dulu ada, yaitu Lotus123, yang berjalan pada platform MS-DOS. Microsoft kemudian mengembangkan aplikasi Excel agar dapat berjalan di Mac OS dan Windows dengan semua fitur – fitur yang dimiliki oleh Lotus123 namun dengan tampilan dan cara penggunaan yang lebih baik. Menurut Doug Klunder pada tahun 1992 mengenai Microsoft Excel adalah “melakukan apa yang dilakukan oleh 1-2-3 dan lebih baik lagi”. Fitur yang digunakan dalam eksport data pada aplikasi pengelolaan jadwal sidang tugas akhir Fasilkom ini adalah menjadikan data – data yang tampil pada website menjadi format spreadsheet menggunakan tabel agar lebih mudah diproses dan dibaca.
2.4.2 QR Code (Quick Response Code) Quick Response Code atau biasa disingkat dengan QRCode adalah salah satu bentuk barcode (kode bar) untuk menimpan suatu informasi yang dapat dengan mudah dibaca menggunakan aplikasi pembaca barcode maupun QR Code. QR Code merupakan pengembangan dari barcode yang hanya satu dimensi menjadi dua dimensi, sehingga memungkinkan menyimpan data lebih banyak dari barcode. QR Code pertama kali diperkenalkan oleh Denso Wave, sebuah divisi Denso Corporation yang merupakan sebuah pabrikan manufaktur industry
25
otomotif dari Jepang. Tujuan awal dari penggunaan QR Code adalah untuk pelacakan data otomotif secara cepat dengan pemindai QRCode. Pada perkembangan selanjutnya, QR Code diperkenalkan di teknologi telepon seluler pintar di Jepang untuk mendapatkan informasi – informasi secara cepat, sebelum akhirnya disebarluaskan ke seluruh dunia. 2.5
Permodelan UML (Unified Modeling Language) Menurut Widodo (2011:6), “UML adalah bahasa pemodelan standar yang
memiliki sintak dan semantik”. Menurut Nugroho (2010:6), ”UML (Unified Modeling Language) adalah bahasa pemodelan untuk sistem atau perangkat lunak yang berparadigma (berorientasi objek).” Pemodelan (modeling) sebenarnya digunakan untuk menyederhanakan permasalahan - permasalahan yang kompleks sehingga lebih mudah dipelajari dan dipahami. Dapat ditarik kesimpulan bahwa UML adalah sebuah bahasa yang berbasiskan grafik atau gambar untuk memvisualisasikan, menspesifikasikan, membangun dan mendokumentasikan sistem pengembangan perangkat lunak berbasis Objek (Object Oriented programming). Menurut Henderi pada tahun 2008, langkah-langkah penggunaan Unified Modeling Language (UML) adalah sebagai berikut: 1. Membuat daftar proses bisnis dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul 2. Memetakan use case setiap proses bisnis untuk mendefinisikan dengan tepat fungsi - fungsi yang harus disediakan oleh sistem, kemudian melengkapi use case diagram dengan kebutuhan – kebutuhan (requirement), constraints dan catatan-catatan lain 3. Membuat deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem 4. Mendefinisikan requirement non fungsional lainnya, termasuk aspek sekuriti dan sebagainya yang juga harus disediakan oleh sistem 5. Membuat activity diagram berdasarkan use case diagram yang telah dibuat
26
6. Mendefinisikan obyek-obyek level atas package atau domain dan membuat sequence dan / atau collaboration untuk tiap alur pekerjaan. Jika sebuah use case memiliki kemungkinan alur normal dan error, maka perlu dibuat lagi satu diagram untuk masing-masing alur 7. Membuat rancangan user interface model yang menyediakan antar muka bagi pengguna untuk menjalankan skenario use case. 8. Membuat class diagram berdasarkan model - model yang sudah ada 9. Melihat kemungkinan pengelompokkan class menjadi komponen-komponen setelah class diagram dibuat, kemudian membuat component diagram 10. Mendetilkan kemampuan dan kebutuhan - kebutuhan piranti lunak, sistem operasi, jaringan dan sebagainya 11. Membangun sistem berdasarkan dokumen – dokumen dan diagram yang telah dibuat. Ada dua pendekatan yang dapat digunakan : a. Pendekatan use case, yaitu dengan mengassign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit kode yang lengkap dengan test b. Pendekatan komponen, yaitu mengassign setiap komponen kepada tim pengembang tertentu. Menurut
Nugroho
(2010:6),
bangunan
dasar
metodologi
UML
menggunakan dua dasar untuk mendeskripsikan sistem/perangkat lunak yang akan dikembangkan, yaitu : 1. Sesuatu (things) Ada 4 (empat) things dalam UML, yaitu: a. Structural things, merupakan bagian yang relatif statis dalam model Unified Modeling Language (UML). Bagian yang relatif statis dapat berupa elemen-elemen yang bersifat fisik maupun konseptual. b. Behavioral things, merupakan bagian yang dinamis pada model Unified Modeling Language (UML), biasanya merupakan kata kerja dari model Unified Modeling Language (UML), yang mencerminkan perilaku sepanjang ruang dan waktu. c. Grouping things, merupakan bagian pengorganisasi dalam Unified Modeling Language (UML). Dalam penggambaran model yang rumit
27
kadang diperlukan penggambaran paket yang menyederhanakan model. Paket-paket ini kemudian dapat didekomposisi lebih lanjut. Paket berguna bagi pengelompokkan sesuatu, misalnya model-model dan subsistemsubsistem. d. Annotational things, merupakan bagian yang memperjelas model Unified Modeling Language (UML) dan dapat berupa komentar-komentar yang menjelaskan fungsi serta ciri-ciri setiap elemen dalam model Unified Modeling Language (UML).
2. Relasi (Relationship) Ada 4 (empat) macam relationship dalam Unified Modeling Language (UML), yaitu: a. Ketergantungan, merupakan hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (independent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (dependent). b. Asosiasi, merupakan hal yang menghubungkan objek satu dengan objek lainnya, serta hubungan suatu objek dengan objek lainnya. c. Generalisasi, merupakan hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada diatasnya objek induk (ancestor). Arah dari atas ke bawah dari objek induk ke objek anak dinamakan spesialisasi, sedangkan arah berlawanan sebaliknya dari arah bawah ke atas dinamakan generalisasi. d. Realisasi, merupakan operasi yang benar-benar dilakukan oleh suatu objek
2.5.1 Diagram Kelas (Class Diagram) Class adalah kumpulan objek-objek dengan dan yang mempunyai struktur umum, behavior umum, relasi umum, dan semantic/kata yang umum. Class-class ditentukan / ditemukan dengan cara memeriksa objek-objek dalam sequence diagram dan collaboration diagram. Sebuah class digambarkan seperti sebuah bujur sangkar dengan tiga bagian ruangan. Menurut Whitten L. Jeffrey (2004:432), class sebaiknya diberi nama menggunakan kata benda sesuai dengan domain / bagian / kelompoknya.
28
Class Diagram adalah diagram yang menunjukan class-class yang ada dari sebuah sistem dan hubungannya secara logika. Class diagram menggambarkan struktur statis dari sebuah sistem. Karena itu menurut Henderi pada tahun 2008, class diagram merupakan tulang punggung atau kekuatan dasar dari hampir setiap metode berorientasi objek termasuk UML. Sementara menurut Whitten L. Jeffery et al pada tahun 2004, class diagram adalah gambar grafis mengenai struktur objek statis dari suatu sistem, menunjukan class-class objek yang menyusun sebuah sistem dan juga hubungan antara class objek tersebut. Elemen - elemen class diagram dalam pemodelan UML terdiri dari: Classclass, struktur class, sifat class (class behavior), perkumpulan/gabungan (association), pengumpulan/kesatuan (agregation), ketergantungan (dependency), relasi-relasi turunannya, keberagaman dan indikator navigasi, dan role name (peranan/tugas nama).
2.5.2 Diagram Studi Kasus (Use Case Diagram) Menurut Booch
pada
tahun
2005,
suatu
use
case
diagram
menampilkan sekumpulan use case dan aktor (pelaku) dan hubungan diantara use case dan aktor tersebut. Use case diagram digunakan untuk penggambaran use case statik dari suatu sistem. Use case diagram penting dalam mengatur dan memodelkan kelakuan dari suatu sistem. Use case menjelaskan apa yang dilakukan sistem (atau subsistem) tetapi tidak tidak menspesifikasikan cara kerjanya. Flow of event digunakan untuk menspesifikasikan kelakuan dari use case. Flow of event menjelaskan use case dalam bentuk tulisan dengan sejelas-jelasnya, diantaranya bagaimana, kapan use case dimulai dan berakhir, ketika use case berinteraksi dengan aktor, obyek apa yang digunakan, alur dasar dan alur alternatif. 2.5.3 Diagram Sekuensial (Sequence Diagram) Menurut Booch pada tahun 2005, suatu sequence diagram adalah suatu diagram interaksi yang menekankan pada pengaturan waktu dari pesan-pesan. Diagram ini menampilkan sekumpulan peran dan pesan-pesan yang dikirim dan diterima oleh instansi yang memegang
peranan
tersebut. Sequence
29
diagram menangkap objek dan class yang terlibat dalam skenario dan urut-urutan pesan yang ditukar antara objek diperlukan untuk melaksanakan fungsionalitas skenario. Sequence diagram berasosiasi dengan use case selama proses pengembangan. 2.5.4 Diagram Aktifitas (Activity Diagram) Menurut Martin Fowler pada tahun 2005, activity diagram adalah teknik untuk menggambarkan logika prosedural, proses bisnis, dan jalur kerja. Dalam beberapa hal, activity diagram memainkan peran mirip diagram alir, tetapi perbedaan prinsip antara notasi diagram alir adalah activity diagram mendukung behavior paralel. Node pada sebuah activity diagram disebut sebagai action, sehingga diagram tersebut menampilkan sebuah activity yang tersusun dari action.
2.6
Pengujian Perangkat Lunak Definisi pengujian perangkat lunak menurut beberapa sumber adalah sebagai
berikut : 1. Menurut Myers pada tahun 1979, pengujian perangkat lunak adalah proses menjalankan program dengan maksud menemukan kesalahan 2. Menurut IEEE pada tahun 1990, pengujian perangkat lunak adalah : a. Proses sistem operasi atau komponen menurut kondisi tertentu, pengamatan atau pencatatan hasil dan mengevaluasi beberapa aspek sistem atau komponen b. Proses analisis item perangkat lunak untuk mendeteksi perbedaan antara kondisi yang ada dengan yang diinginkan dan mengevaluasi fitur item perangkat lunak
2.6.1 Tujuan Pengujian Perangkat Lunak Tujuan pengujian perangkat lunak dapat dikategorikan menjadi 2 yaitu : 1. Tujuan langsung a. Melakukan identifikasi dan menemukan beberapa kesalahan yang mungkin ada dalam perangkat lunak yang diuji b. Setelah perangkat lunak diperbaiki, dilakukan identifikasi lkembali untuk menemukan kesalahan dan dilakukan pengetesan ulang untuk menjamin kualitas level penerimaan c. Merancang dan melakukan tes yang efisien dan efektif dengan anggaran dan jadwal yang terbatas
30
2. Tujuan tidak langsung a. Mengumpulkan daftar kesalahan untuk digunakan dalam daftar pencegahan kesalahan melalui tindakan perbaikan (corrective) dan pencegahan (preventive)
2.6.2 Strategi Pengujian Perangkat Lunak Strategi pengujian perangkat lunak dapat dikategorikan menjadi 2 yaitu : 1. Big bang testing, yaitu menguji perangkat lunak secara keseluruhan, dengan jumlah pengujian sekali untuk semua package yang ada 2. Incremental testing, menguji perangkat lunak per bagian dalam modul (unit testing), dilanjutkan dengan menguji integrasi tiap modul (integration test), selanjutnya seluruh package diuji (system testing) Incremental testing dibentuk dari 2 dasar strategi : a. Top-down i.
Modul pertama yang diuji adalah modul utama (tertinggi)
ii.
Modul terakhir yang diuji adalah modul pada level paling rendah
iii.
Keuntungan metode ini adalah memperlihatkan keseluruhan fungsi program (semua modul lengkap)
iv.
Kerugian metode ini adalah sulit menyiapkan potongan program dan menganalisis hasil tes
b. Bottom-up i.
Metode ini adalah kebalikan dari metode top-bottom
ii.
Modul pertama yang diuji adalah modul pada level paling rendah
iii.
Modul terakhir yang diuji adalah modul utama (tertinggi)
iv.
Keuntungan dari metode ini adalah relatif mendorong kinerja lebih meningkat
v.
Kerugian dari metode ini adalah menghambat program sebagai suatu keseluruhan modul
Keduanya menganggap kestuan (package) perangkat lunak dibangun berdasarkan hirarki modul – modul dalam perangkat lunak tersebut.
2.6.3 Jenis Pengujian Perangkat Lunak Jenis pengujian perangkat lunak dikelompokkan berdasarkan konsep pengujian yang popular adalah : 1. White Box Testing 2. Black Box Testing
31
2.6.3.1 White Box Testing White box (structural) testing / glass box testing : memeriksa kalkulasi internal path untuk mengidentifikasi kesalahan. Menurut IEEE pada tahun 1990, pengujian white box adalah pengujian yang memegang perhitungan mekanisme internal sistem atau komponen White Box Testing adalah pengujian pada keseluruhan sistem, sampai dengan kode – kode dalam sistem tersebut. Pengujian dilakukan secara prosedural pada kode – kode program. White box testing memiliki 4 kategori : 1. Data processing and calculations correctness test yaitu melakukan pengecekan data processing untuk setiap kasus tes a. Pendekatan yang digunakan : i. Path coverage yaitu rencana tes yang mencakup semua kemungkinan path, di mana cakupan diukur dengan persentase dari path yang dapat dicakup ii. Line coverage yaitu rencana tes yang mencakup semua baris kode program, di mana cakupan diukur dengan persentase dari line yang dicakup b. Perbaikan Pengujian dan Cakupan Path i. Path yang berbeda dalam modul perangkat lunak akan dibentuk oleh pilihan kondisional statement seperti IF-THEN-ELSE / DO WHILE / DO UNTIL. ii. Untuk full line coverage, tiap baris program dieksekusi minimal 1 kali selama proses pengujian, contoh pada Imperial Taxi Service (ITS) taximeter ada 24 test case 2. Software qualification test 3. Maintainability test 4. Reusability test
2.6.3.2 Black Box Testing Pengujian black box berkonsentrasi untuk menemukan kondisi dimana program tidak berjalan sesuai dengan spesifikasi (fungsional), berusaha menemukan kesalahan fungsi yang tidak benar atau tidak ada, kesalahan interface, kesalahan pada struktur data atau akses database, serta kesalahan perilaku atau performa. Pengujian black box digunakan untuk menguji sistem yang dibangun dengan berbasis objek.
32
Menurut Myers pada tahun 2004, pengujian black box testing digunakan untuk menguji fungsi - fungsi khusus dari perangkat lunak. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur sekaligus dapat diiketahui kesalahan-kesalahannya. Menurut Beizer pada tahun 1995, pada pengujian dengan black box testing, seorang penguji tidak akan secara langsung berhubungan dengan control flow, data flow, dan code program. Seorang penguji memperhatikan kesesuaian antara output dari input yang diberikan. Untuk bisa menemukan semua kesalahan menggunakan strategi ini, diperlukan exhaustive input testing (menggunakan segala macam kemungkinan sebagai input). Input tidak hanya input yang benar (valid), tetapi juga kombinasi yang mungkin dimasukkan Menurut IEEE pada tahun 1990, pengujian black box mencakup 2 hal berikut : 1. Pengujian yang mengabaikan mekanisme internal sistem atau komponen dan fokus semata-mata pada output yang dihasilkan yang merespon input yang dipilih dan kondisi eksekusi 2. Pengujian yang dilakukan untuk mengevaluasi pemenuhan sistem atau komponen dengan kebutuhan fungsional tertentu