BAB II LANDASAN TEORI 2.1 Pengertian Sistem Basis Data / Database 2.1.1 Data Data adalah fakta yang dapat disimpan dan memiliki makna. Dapat disimpulkan data adalah kumpulan fakta yang terjadi yang dapat dicatat, disimpan serta dapat dimanfaatkan sedemikian rupa untuk berbagai tujuan. Contoh dari data, seperti data nomor telepon, data karyawan, data customer, dll (Elmasri & Navathe, 2015). Data adalah fakta mengenai suatu objek atau orang. Data dinyatakan dengan nilai (angka, deret karakter, atau simbol) (Kadir, 2013). Hirarki secara tradisional data diorganisasikan kedalam suatu hirarki yang terdiri dari elemen, rekaman (record), dan berkas (file) (Kadir, 2013). 1. Elemen data Elemen data adalah suatu data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. Istilah lain untuk elemen data adalah medan (field), kolom, item, dan atribut. 2. Rekaman Rekaman adalah gabungan sejumlah elemen data yang saling terkait. Dalam sistem basis data relasional, rekaman biasa disebut dengan istilah tuple atau baris. 3. Berkas Himpunan seluruh rekaman yang bertipe sama membentuk sebuah berkas. Berkas dapat dikatakansebagai kumpulan rekaman data yang berkaitan dengan suatu objek. Dalam sistem basis data relasional, berkas mewakili komponen yang disebut tabel atau relasi. 8 http://digilib.mercubuana.ac.id/ 2.1.2 Basis Data Basis data adalah sekumpulan data yang terhubung secara logikal yang dipakai bersama dan deskripsi data ini dirancang untuk menemukan informasi-informasi yang dibutuhkan oleh sebuah organisasi (Connolly & Begg, 2014), Basis data bukan merupakan file-file yang tidak terhubung dengan data yang redundan, melainkan semua data yang ada diintegrasikan dengan nilai duplikasi yang minimal. Basis data tidak lagi dimiliki oleh hanya satu departemen saja tetapi seluruh sumber daya perusahaan yang digunakan bersama. Dapat disimpulkan bahwa basis data adalah sebuah kumpulan data yang tidak redundan yang tersusun secara struktural untuk tujuan tertentu. 2.1.3 Sistem Sistem adalah sebuah kumpulan unsur-unsur yang berkaitan / berhubungan membentuk sebuah kesatuan (Marakas & O’Brien, 2012). Desain sistem adalah spesifikasi atau konstruksi solusi yang teknis dan berbasis komputer untuk persyaratan bisnis yang diidentifikasikan dalam analisis sistem (Whitten, Bentley & Dittman, 2016). 2.1.4 Sistem Basis Data Sistem basis data adalah kumpulan dari program aplikasi yang berinteraksi dengan basis data. Sehingga dapat disimpulkan bahwa sistem basis data merupakan gabungan dari beberapa aplikasi yang digunakan untuk mengakses, dan mengubah data sesuai dengan kebutuhan (Connolly &Begg, 2014). Database adalah kumpulan dari data yang saling berelasi secara logical dan sebuah deskripsi dari data tersebut, yang didesain untuk menemukan informasi yang dibutuhkan organisasi. Dimana deskripsi dari data dikenal sebagai sistem katalog (data dictionary atau metadata – ’data tentang data’). Metadata menggambarkan dirinya sendiri dalam sebuah database yang menyediakan program-data independence (Connolly & Begg, 2014). 9 http://digilib.mercubuana.ac.id/ 2.2. Analisis dan Perancangan Sistem 2.2.1. Analisis Sistem Analisis sistem merupakan sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi bagian-bagian komponen dengan tujuan mempelajari seberapa bagus bagian-bagian komponen tersebut bekerja dan berinteraksi untuk meraih tujuan mereka (Whitten, Bentley & Dittman, 2016). 2.2.2. Perancangan Sistem Perancangan sistem adalah sebuah teknik pemecahan masalah yang saling melengkapi (dengan analisis sistem) yang merangkai kembali bagian-bagian komponen menjadi sebuah sistem yang lengkap harapannya, sebuah sistem yang diperbaiki. Hal ini melibatkan penambahan, pengahapusan, dan perubahan bagian-bagian relatif pada sistem aslinya (asalnya) (Whitten, Bentley & Dittman, 2016). 2.3 Perkembangan Basis Data Pendekatan tradisional terhadap aplikasi perkembangan sistem terfokus pada proses yang dianggap bekerja secara sendiri-sendiri. Pendekatan tradisional melibat data terpadu dengan proses aplikasi. Pandangan ini memotivasi organisasi-organisasi untuk menuju ke pendekatan basis data. Hal-hal yang mendukung adalah: 1. Ketidakmampuan untuk mendapatkan jawaban secara cepat untuk pertanyaan- pertanyaan sederhana. 2. Biaya pengembangan yang mahal. 3. Ketidakmampuan untuk beradaptasi dengan perubahan. 4. Rendahnya integritas / kepastian data 5. Ketidaksesuaian model database dengan kenyataan. DBMS (Database Management System) dapat mengurangi kebutuhan pengembangan dan perawatan, menjadikan orang-orang lebih produktif, dan mengurangi efisiensi mesin. 10 http://digilib.mercubuana.ac.id/ Perkembangan awal dari fasilitas DBMS dimulai dengan menggeneralisasikan kegiatan input-output sehari-hari. Pada awal menjadi bagian dari user program dan kemudian berkembang menjadi bagian dari sistem operasi. Salah satu landasan utama pengembangan adalah untuk meningkatkan fasilitas-fasilitas dalam sistem opertasi untuk membantu programmer aplikasi. Landasan lainnya adalah untuk menyediakan fasilitas high-level language secara langsung kepada pengguna non-programer. Hal ini menciptakan dikotomi dalam DBMS yang harus dihilangkan karena melanggar empat tujuan utama database management dalam sebuah perusahaan, yaitu: 1. Pembagian resource data antara pemakai dan aplikasi. 2. Memungkinkan data tersedia pada setiap fungsi dari DBMS. 3. Mempertahankan kemampuan berevolusi pada database dan DBMS untuk merespon perubahan teknologi dan permintaan pemakai. 4. Memastikan integritas/kepastian database. 2.4 DBMS (Database Management System) Sistem manajemen basis data (Database Management System) adalah sekumpulan program yang memungkinkan pengguna untuk membuat dan menjaga sebuah basis data (Elmasri & Navathe, 2015). Sistem manajemen basis data (Database Management System) adalah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, menjaga, dan mengendalikan akses pada basis data (Connolly &Begg, 2014). Fasilitas yang dimiliki oleh DBMS : 1. Data Definition Language (DDL) : memungkinkan pengguna untuk menspesifikasikan tipe data dan struktur serta batasan data yang akan disimpan dalam basis data 11 http://digilib.mercubuana.ac.id/ 2. Data Manipulation Language (DML) : memungkinkan pengguna untuk memasukkan, memperbaharui, menghapus, dan mangambil data dari dalam basis data. 3. Akses kontrol kedalam database. DBMS menyediakan : 1. Sistem keamanan, yang mencegah akses pengguna yang tidak memiliki otoritas. 2. Integritas sistem, yang menjaga konsistensi data yang disimpan dalam basis data. 3. Sistem kontrol konkurensi, yang memungkinkan akses secara bersamaan kedalam basis data. 4. Sistem kontrol perbaikan, yang mengembalikan basis data kedalam keadaan konsisten sebelum terjadinya kegagalan pada perangkat keras atau perangkat lunak. 5. Katalog yang dapat diakses pengguna, yang berisi penjelasan tentang data yang ada dalam basis data. Sistem manajemen basis data (Database Management System) adalah sebuah program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh data dan informasi dengan praktis dan efisien (Kadir, 2013). 2.4.1 Komponen DBMS Ada 5 (lima) komponen utama dari DBMS, yaitu perangkat keras, perangkat lunak, data, prosedur dan sumber daya manusia (SDM) (Connolly & Begg, 2014). 1. Hardware (Perangkat keras) Suatu DBMS dan aplikasi nya menggunakan perangkat keras untuk menjalankan aplikasinya. Perangkat keras dapat disusun dari suatu komputer tunggal, suatu mainframe tunggal, dan suatu jaringan. 12 http://digilib.mercubuana.ac.id/ 2. Software (Perangkat lunak) Komponen perangkat lunak meliputi perangkat lunak DBMS dan program aplikasi beserta sistem operasi, termasuk perangkat lunak tentang jaringan, bila DBMS digunakan dalam jaringan LAN. 3. Data Data merupakan komponen terpenting dalam DBMS khususnya sudut pandang dari pengguna akhir mengenai data. Data pada sebuah basis data baik single-user maupun multiuser sistem harus terintegrasi dan dapat digunakan bersama. 4. Procedures Prosedur berupa instruksi dan aturan-aturan yang membuat rancangan dan menggunakan basis data. Pengguna sistem dan staf yang mengatur kebutuhan basis data di dokumentasikan dalam prosedur yang berupa petunjuk penggunaan sistem atau petunjuk menjalankan sistem. Instruksi tersebut misalnya bagaimana untuk : 1. Log in ke DBMS. 2. Menggunakan sebagian DBMS atau program aplikasi. 3. Start dan stop DBMS. 4. Membuat duplikat basis data. 5. Menangani kesalahan pada hardware atau software. 6. Mengubah struktur suatu tabel dan meningkatkan tampilan 5. Sumber Daya Manusia (SDM) Komponen terakhir adalah manusia yang terlibat langsung dalam sistem tersebut. Manusia dibedakan menjadi 3 (tiga), yaitu : 1. Application programmers, bertanggung jawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada, seperti: C++, Java, Visual Basic, dan lainnya. 13 http://digilib.mercubuana.ac.id/ 2. End users, siapapun yang akan menggunakan aplikasi. 3. Database administrator (DBA), seorang yang berwenang untuk membuat keputusan strategis dan kebijakan mengenai data yang ada, Database Administrator (DBA) menyediakan dukungan teknis untuk menerapkan keputusan tersebut dan bertanggung jawab atas keseluruhan kontrol sistem pada tingkat teknis. 2.4.2 Fungsi DBMS Ada beberapa fungsi dari DBMS adalah sebagai berikut (Connolly & Begg, 2014).: 1. Data storage, retrieval, and update Sebuah DBMS harus menyediakan kemampuan penyimpanan, pengambilan, dan pembaharuan data dalam basis data untuk pengguna. 2. User-accesible catalog Sebuah DBMS harus dilengkapi/menyediakan sebuah katalog yang mendeskripsikan data tersimpan yang dapat diakses oleh pengguna. 3. Transaction Support Sebuah DBMS harus menyediakan mekanisme yang akan menjamin antara semua pembaharuan yang berhubungan dengan transaksi yang diberikan sukses dilakukan atau tidak dari semua transaksi itu berhasil dilakukan. 4. Concurrency Control Services Sebuah DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa basis data telah terubah dengan benar ketika banyak pengguna melakukan perubahan terhadap basis data secara bersamaan. 14 http://digilib.mercubuana.ac.id/ 5. Recovery Services Sebuah DBMS harus mennyediakan sebuah mekanisme untuk memperbaiki basis data yang rusak dalam berbagai hal karena suatu kejadian. 6. Authorization Services Sebuah DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa hanya pengguna yang memiliki otoritas yang dapat mengakses basis data. 7. Support for Data Communication Sebuah DBMS harus sanggup berintegrasi dengan perangkat lunak komunikasi. 8. Integrity services Sebuah DBMS harus menyediakan sebuah cara untuk menjamin bahwa data dalam basis data dan perubahan data keduanya mengikuti aturan-aturan yang tepat. 9. Services to promote data independence Sebuah DBMS harus memiliki fasilitas-fasilitas untuk mendukung program-program independence dari struktur basis data yang aktual. 10. Utility services Sebuah DBMS seharusnya menyediakan sekumpulan utility service agar basis data dapat di administrasi secara efektif. 2.4.3 Keuntungan dan Kerugian DBMS Sistem manajemen basis data memang menjanjikan potensi keuntungan tetapi di sisi lain juga terdapat kekurangan. Pada bagian ini penulis akan membahas tentang keuntungan dan kerugian yang terdapat pada sistem manajemen basis data (Connolly & Begg, 2014). 15 http://digilib.mercubuana.ac.id/ 2.4.3.1 Keuntungan Sistem Manajemen Basis Data Berikut ini adalah keuntungan dari sistem manajemen basis data: 1. Mengontrol kerangkapan data Sistem berbasis file tradisional menyimpan informasi yang sama lebih dari satu file sehingga membuang tempat penyimpanan. 2. Menjaga konsistensi data Resiko data yang tidak konsisten bisa dikurangi dengan mengendalikan kerangkapan data. Apabila data disimpan satu file maka jika ada perubahan hanya ke satu file dan nilai yang baru bisa langsung digunakan pengguna. 3. Data dapat dipakai secara bersama-sama Informasi yang sama dapat dipakai secara bersama karena di integrasikan dari data operasional. 4. Meningkatkan integritas data Integritas basis data mengacu pada validitas dan konsistensi data yang tersimpan. 5. Meningkatkan keamanan data Keamanan meningkat karena data terlindung dari pengguna yang tidak memiliki hak yang diatur oleh sistem manajemen basis data. 6. Peningkatan pemeliharaan melalui independensi data Deskripsi data dan logika pengaksesan data dibangun dalam sebuah aplikasi, menjadikan aplikasi tergantung pada data. Perubahan struktur data atau perubahan dengan bagaimana cara data disimpan pada media penyimpanan memerlukan perubahan besar untuk aplikasi yang terpengaruh oleh perubahan. 7. Meningkatkan produktivitas Penyediaan fungsi standar memungkinkan pengembang untuk berkonsentrasi pada fungsi khusus yang diperlukan oleh 16 http://digilib.mercubuana.ac.id/ pengguna tanpa harus kawatir tentang detil implementasi tingkat rendah. 8. Terdapat standarisasi data Administrator basis data dapat mendefinisikan dan menegakan standar yang diperlukan. Termasuk departemen, organisasi untuk hal-hal seperti format data untuk memfasilitasi pertukaran data antara sistem, konversi penamaan, standar dokumentasi, perubahan prosedur dan aturan akses. 9. Meningkatkan layanan backup dan recovery Sistem manajemen basis data menyediakan layanan untuk backup yang bisa dilakukan setiap hari. Misalnya pada malam hari dilakukan backup kemudian terjadi kerusakan pada keesokan harinya maka bisa dilakukan recovery dari data yang sudah di backup pada malam hari sebelumnya. 2.4.3.2 Kerugian Sistem Manajemen Basis Data Berikut ini adalah kerugian dari sistem manajemen basis data: 1. Rumit (Complexity) Harapan kesediaan fungsi yang baik membuat system manajemen basis data menjadi perangkat lunak yang rumit. Basis data, pengembang basis data dan pengguna harus memahami fungsi yang ada untuk mengambil keuntungan penuh. Kegagalan memahami sistem dapat menyebabkan keputusan rancangan yang buruk dan memiliki konsekuensi serius bagi suatu organisasi. 2. Ukuran (Size) Kerumitan dan luasnya fungsi yang disediakan membuat sistem manajemen basis data menjadi perangkat lunak yang membutuhkan memori besar untuk bisa berjalan dengan efisien. 17 http://digilib.mercubuana.ac.id/ 3. Biaya (Cost of DBMS) Variasi biaya tergantung pada lingkungan dan fungsi yang disediakan. 4. Biaya tambahan hardware (Additional hardware costs) Persyaratan penyimpanan untuk basis data dan system manajemen basis data memungkinkan pembelian ruang penyimpanan tambahan atau bahkan perlu membeli mesin yang didedikasikan untuk menjalankan sistem manajemen basis data agar kinerja yang dihasilkan sesuai dengan kebutuhan. 5. Biaya Konversi (Cost of conversion) Perpindahan aplikasi yang ada untuk dijalankan pada system manajemen basis data baru menimbulkan biaya termasuk biaya pelatihan staf untuk menggunakan sistem baru. 6. Kinerja (Performance) Pada dasarnya sistem manajemen basis data dibuat untuk menyediakan berbagai aplikasi sebagai akibatnya mungkin beberapa aplikasi tidak berjalan seperti biasanya. 7. Resiko kegagalan lebih tinggi (Higher impact of a failure) Sumber daya terpusat meningkatkan kerentanan sistem karena semua pengguna dan aplikasi bergantung pada ketersediaan suatu sistem manajemen basis data. Kegagalan komponen tertentu dapat menyebabkan operasional berhenti. 2.5 Aplikasi Berbasis Web Perkembangan aplikasi yang menggunakan media internet sebagai media yang akan berkembang pesat pada waktunya akan mendominasi aplikasi bisnis maupun media informasi. Banyaknya permintaan aplikasi yang berjalan pada media internet, memicu para pengembang menciptakan kerangka sistem yang diharapkan dapat memberikan kemudahaan pengembangan, meningkatkan performa aplikasi dan mempercepat pembuatan aplikasi (Sibero, 2011). 18 http://digilib.mercubuana.ac.id/ 2.5.1 My Structure Query Language (MySQL) My Structure Query Language (MySQL) adalah suatu Relational Data Base Management System (RDBMS) yaitu aplikasi sistem yang menjalankan fungsi pengolahan data. MySQL pertama dikembangkan oleh MySQL AB yang kemudian diakusisi Sun Microsystem dan terakhir dikelola oleh Oracle Corporation (Sibero, 2011). 2.5.2 Data Definition Language (DDL) Data Definition Language (DDL) adalah suatu bahasa yang memungkinkan Database Administrator (DBA) atau pengguna untuk mendeskripsikan nama dari suatu entity, atribut dan hubungan data yang diminta oleh aplikasi bersama dengan integritas data dan keamanan datanya (Connolly & Begg, 2014). Hasil dari kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut kamus data (Data Dictionary). Beberapa tahapan dari DDL, yaitu (Connolly & Begg, 2014). : 1. Create Table Untuk membuat tabel dengan meindentifikasikan tipe data untuk tiap kolom. 2. Alter table Untuk menambah atau membuat kolom dan constraint. 3. Drop table Untuk membuang atau menghapus tabel beserta semua data yang ada di dalamnya. 4. Create Index Untuk membuat index pada suatu table 5. Drop index Untuk membuang atau menghapus index yang dibuat sebelumnya. 19 http://digilib.mercubuana.ac.id/ 2.5.3 Data Manipulation Language (DML) DML (Data Manipulation Language) adalah suatu bahasa yang memberikan fasilitas pengoperasian data yang ada dalam basis data. Pengoperasian data yang dimanipulasi antara lain (Connolly & Begg, 2014). : 1. Penambahan data baru ke dalam basis data (insertion). 2. Modifikasi data yang disimpan dalam basis data (modify). 3. Pengambilan data yang terdapat dalam basis data (retrieve). 4. Penghapusan data dari basis data (delete). DML dapat dibedakan menjadi 2 tipe yang berbeda, yaitu (Connolly & Begg, 2014). : 1. Procedural DML Procedural DML adalah suatu bahasa yang memungkinkan perngguna (umumnya programmer) untuk memberi instruksi ke sistem mengenai data apa yang dibutuhkan dan bagaimana cara pemanggilannya (retrieve). Artinya pengguna harus menjelaskan operasi pengaksesan data yang akan digunakan dengan menggunakan prosedur yang ada untuk mendapatkan informasi yang dibutuhkan. 2. Non-Procedural DML Non-Procedural DML adalah bahasa yang memungkinkan pengguna untuk menentukan data apa yang dibutuhkan dengan menyebutkan spesifikasi bagaimana cara mendapatkannya 2.6 Bahasa Pemrograman Pemrograman adalah sekumpulan instruksi yang digunakan untuk menjalankan dan mengatur perangkat keras agar melakukan tindakan sesuai yang diinginkan oleh pembuat program. Program-program ini dibuat melalui bahasa yang dimengerti oleh mesin. Bahasa pemrograman inilah yang menjadi sarana komunikasi antara manusia dengan komputer (Mulyanto, 2009). 20 http://digilib.mercubuana.ac.id/ Bahasa pemrograman memungkinkan pembuat program untuk melakukan perintah-perintah yang akan dijalankan komputer. Banyak bahasa pemrograman yang telah dikembangkan dengan tata bahasa, kosakata yang berbeda-beda, namun tujuan utamanya untuk berkomunkasi dengan mesin. Berikut akan dijelaskan mengenai bahasa pemrograman yang dipakai pada penulisan ini. 2.6.1 Hypertext Markup Language (HTML) Hypertext Markup Language (HTML) adalah bahasa yang digunakan pada dokumen web sebagai bahasa untuk pertukaran dokumen web. Struktur dokumen HTML terdiri dari tag pembuka dan tag penutup. HTML versi 1.0 dibangun oleh World Wide Web Consortium (W3C), kemudian mengalami perkembangan sampai saat ini HTML terakhir versi 5.0 (Sibero, 2011). Tag adalah tanda awal < dan tanda akhir > yang digunakan sebagai pengapit suatu elemen. Tag pada elemen pembuka diawali dengan tanda < dan diakhir dengan tanda >. Sedangkan untuk elemen penutup diawali dengan tanda < dan diakhiri dengan tanda / kemudian diakhiri dengan tanda >. Untuk penulisan tag elemen tunggal cukup menuliskan tanda < dan sebelum tanda > ditambahkan dengan tanda / (Sibero, 2011). 2.6.2 Hypertext Processor (PHP) PHP adalah pemrograman interpreter yaitu proses penerjemahan baris kode sumber menjadi kode mesin yang dimengerti oleh komputer secara langsung pada saat baris kode dijalankan. PHP disebut sebagai pemrograman Server Side Server Programming, hal ini dikarenakan proses dijalankan pada server. PHP adalah suatu bahasa dengan hak cipta terbuka atau yang juga dikenal dengan istilah Open Source, yaitu pengguna dapat mengembangkan kode-kode fungsi PHP sesuai dengan kebutuhannya (Sibero, 2011) 21 http://digilib.mercubuana.ac.id/ 2.6.3 Cascending Style Sheet (CSS) Mengacu dari arti bahasa, Cascading Style Sheet (CSS) memiliki arti gaya menata halaman bertingkat, yang berati satu elemen yang telah diformat dan memiliki anak dan telah diformat, maka anak dari elemen tersebut otomatis mengikuti format induknya (Sibero, 2011) 2.7 Bahasa Pemodelan 2.7.1 Unified Modeling Language (UML) UML (Unified Modeling Language) adalah proses desain berbasis objek dan diagram teknik yang cukup efektif untuk memodelkan setiap proyek pengembangan sistem mulai tahap analisis sampai tahap desain dan implementasi (Dennis, Wixom, & Roth, 2012). Area utama dari UML views adalah struktural, dinamis dan model manajemen. Struktural view meliputi class diagram, use case diagram, component diagram dan deployment diagram. Dinamis view meliputi statechart diagram, activity diagram, sequence diagram dan collaboration diagram sedangkan model manajemen view meliputi class diagram (Jayant, Garg, Kumar, & Rana, 2014). 2.7.2 Diagram - Diagram UML Dalam pengembangan perangkat lunak penggunaan diagram disesuaikan dengan kebutuhan. UML yang sering digunakan adalah use case diagram, activity diagram, sequence diagram dan class diagram. 2.7.3 Use Case Diagram Use case diagram merupakan suatu diagram yang menangkap kebutuhan bisnis untuk sistem dan untuk menggambarkan interaksi antara sistem dan lingkungannya (Dennis et al., 2012). Tabel 2.1 dibawah ini menjelaskan simbol-simbol pada use case diagram: 22 http://digilib.mercubuana.ac.id/ Tabel 2.1 Simbol-simbol pada Use Case Diagram Simbol Nama Deskripsi Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar Use case Use case pesan antar unit atau aktor, biasanya dinyatakan dengan menggunakan kata kerja diawal frase nama use case. Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang Aktor 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. Komunikasi antara aktor dan use case yang Association berpartisipasi pada use case atau use case memiliki interaksi dengan aktor. System Boundary Boxes Menspesifikasikan paket yang menampilkan sistem secara terbatas. 2.7.4 Activity Diagram Activity diagram adalah yang menggambarkan alur kerja bisnis independen dari class, aliran kegiatan dalam Use case, atau desain rinci sebuah metode (Dennis et al., 2012). Tabel 2.2 dibawah ini menjelaskan simbol-simbol pada activity diagram: 23 http://digilib.mercubuana.ac.id/ Tabel 2.2 Simbol-simbol pada Activity Diagram (Rosa dan Salahudin, 2014) Simbol Keterangan Start point Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal End point Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir. Activities Aktivitas aktivitas biasanya diawali dengan kata kerja. Decision Asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu. nama_swimlane Swimlane Sebuah cara mengelompokkan untuk aktivitas berdasarkan aktor (pengelompokan activity dalam sebuah urutan yang sama) 2.7.5 Sequence Diagram Sequence Diagram merupakan urutan model dinamis yang menggambarkan contoh class yang berpartisipasi dalam use case dan pesan yang 24 http://digilib.mercubuana.ac.id/ lewat di antara mereka dari waktu ke waktu (Dennis et al., 2012). Tabel 2.3 dibawah ini menjelaskan simbol-simbol pada sequence diagram. Table 2.3 Simbol-simbol pada Sequence Diagram NO GAMBAR NAMA LifeLine 1 KETERANGAN Objek entity, antar muka yang saling berinteraksi. Message 2 Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi Message 3 Spesifikasi dari komunikasi antar objek yang memuat informasi-informasi tentang aktifitas yang terjadi 2.7.6 Flowchart (Diagram Alur) Pada beberapa dokumen, flowcharts merupakan bagian yang penting untuk mengilustrasikan secara detail dan mudah untuk dimengerti. Beberapa masalah rumit tidak bisa diselesaikan langsung tanpa menjelaskan masalah tersebut dalam sebuah flowcharts (Arrish, Afif, Maidorawa, & Salim, 2014). Tabel 2.4 dibawah ini menjelaskan simbol-simbol pada flowchart. 25 http://digilib.mercubuana.ac.id/ Tabel 2.4 Simbol-simbol pada Flowchart Gambar Simbol untuk Proses/Langkah Keterangan Menyatakan kegiatan yang akan ditampilkan dalam diagram alur. Proses/langkah dimana perlu adanya keputusan atau adanya Keputusan kondisi tertentu. Di titik ini selalu ada dua keluaran untuk melanjutkan aliran kondisi yang berbeda. Masukan/Keluaran Data Digunakan untuk mewakili data masuk, atau data keluar. Terminasi Garis alur Menunjukkan awal atau akhir sebuah program. Menunjukkan arah aliran proses atau algoritma. Simbol yang menyatakan input Dokumen berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas. Simbol untuk keluar/masuk Konektor prosedur atau proses dalam lembar/halaman yang sama Simbol untuk keluar/masuk Off-line Konektor prosedure atau proses dalam lembar/halaman yang lain 26 http://digilib.mercubuana.ac.id/ 2.8 Pengertian Algoritma Kriptografi RC4 Stream Cipher Agoritma RC4 merupakan salah satu algortitma kunci simetris berbentuk stream cipher yang memproses unit atau input data, pesan atau informasi pada suatu saat. unit atau data pada umumnya sebuah byte atau bahkan bit (byte dalam hal RC4). Algoritma tidak harus menunggu sejumlah input data, pesan atau informasi tertentu sebelum diproses atau menambahakan byte tambahan untuk mengenkrip. RC4 mempunya sebuah S-Box, S0, S1,...S255, yang berisi permutasi dari bilangan 0 sampai 255. menggunakan dua buah index yaitu i dan j di dalam algoritmanya. index i digunakan untuk memastikan bahwa suatu elemen berubah, sedangkan index j akan memastikan bahwa suatu elemen berubah secara random. intinya, dalam algoritma enkripsi metode ini akan membangkitkan pseudo random byte dari key yang akan dikenakan operasi XOR terhadap plainteks untuk meghasilkan cipherteks. Dan untuk menghasilkan plainteks semula, maka cipherteks nya akan dikenakan operasi XOR terhadap pseudo random byte-nya (Haji & Mulyono 2012). 2.9 Pengujian Perangkat Lunak Pengujian merupakan salah satu bagian yang tidak dapat terpisahkan dari perangkat lunak. Proses pengujian juga mempengaruhi masa penggunaan perangkat lunak. Semakin terperinci proses pengujian yang dilakukan, semakin lama rentang waktu akan diperlukan pada satu pemeliharaan perangkat lunak dan untuk proses selanjutnya. Pengajuan perangkat lunak akan dilakukan pada setiap tahapan pengembangan hingga pada pemeliharaan perangkat lunak. Cara pandang terhadap perangkat lunak berkembang menjadi lebih konstruktif. Pengujian tidak lagi dipandang sebagai aktivitas yang hanya dilakukan setelah pengodean perangkat lunak selesai dengan batasan sebagai pendeteksi kegagalan perangkat lunak, melainkan sebagai aktivitas yang menuntun keseluruhan proses pengembangan perangkat lunak dan pemeliharaan. Pengujian pun 27 http://digilib.mercubuana.ac.id/ menjadi bagian penting dari suatu konstruksi perangkat lunak (Janner Simarmata, 2010). 2.9.1 Metode Waterfall Metode waterfall disebut juga dengan siklus hidup perangkat lunak merupakan salah satu model pengembangan perangkat lunak dari sekian banyak model pengembangan perangkat lunak. Waterfall adalah model yang umumnya paling banyak digunakan. Pada model ini, desain perangkat lunak atau sistem dibagi menjadi sejumlah langkah linier, sistematis dan sekuensial dimana evolusi perangkat lunak atau sistem terlihat seperti air yang mengalir semakin turun melalui serangkaian tahapan. Gambar 2.1 Metode Waterfall Aktifitas-aktifitas dalam waterfall adalah sebagai berikut: 1. Tahapan Rekayasa Sistem Tahapan ini sangat menekankan pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem dengan menentukan konsep sistem beserta antarmuka yang menghubungkannya dengan lingkungan sekitar. Hasilnya berupa spesifikasi sistem. 28 http://digilib.mercubuana.ac.id/ 2. Tahapan Analisis Pada tahap ini akan dilakukan pengumpulan kebutuhanelemen-elemen ditingkat perangkat lunak. Dengan analisis harus dapat ditentukan domain-domain data atau informasi, fungsi, proses atau prosedur yang diperlukan beserta unjuk kerjanya, dan antarmuka. Hasilnya berupa spesifikasi kebutuhan perangkat lunak. 3. Tahapan Perancangan Pada tahap perancangan ini, kebutuhan-kebutuhan perangkat lunak yang dihasilkan pada tahap analisis, ditransformasikan kedalam bentuk arsitektur perangkat lunak yang memiliki karakteristik mudah dimengerti dan tidak sulit untuk diterapkan atau di implementasikan. 4. Tahapan Pemrograman Tahap ini melakukan penerapan hasil rancangan kedalam baris-baris kode program yang dapat dimengerti oleh komputer. 5. Tahapan Pengujian Setelah perangkat lunak selesai diterapkan, pengujian dapat segera dimulai. Pengujian terlebih dahulu dilakukan pada setiap modul. Jika tidak ada masalah, modul tersebut akan diintegrasikan hingga membentuk perangkat lunak secara utuh. Kemudian dilakukan pengujian ditingkat perangkat lunak yang memfokuskan pada masalahmasalah logika internal, fungsi internal, potensi masalah yang mungkin terjadi danpemeriksaan hasil apakah sudah sesuai dengan permintaan. 6. Tahapan Pengoperasian dan pemeliharaan Dalam masa operasional sehari-hari, suatu perangkat lunak mungkin saja mengalami kesalahan atau kegagalan dalam menjalankan fungsifungsinya. Atau pemilik bisa saja meminta peningkatan kemampuan perangkat lunak pada pengembangannya. Dengan demikian, kedua faktor ini menyebabkan perlunya perangkat lunak dipelihara dari waktu ke waktu. Biasanya ini merupakan tahapan yang panjang dari perangkat lunak. 29 http://digilib.mercubuana.ac.id/ 2.10 Metode Pengujian 2.10.1 Level Pengujian Terdapat beberapa level dalam proses testing, antara lain : 1. Unit Testing, merupakan pengujian pada tiap komponen (unit) untuk menjamin bahwa komponen tersebut berjalan dengan semestinya. Pengujian ini mencakup pengujian sepotong atau sebagian kode. 2. Integration Testing, merupakan level kedua dalam proses testing. Pengujian ini dilakukan dengan mencari bug dalam hubungan dan antarmuka antara pasangan komponen atau sekelompok komponen dalam sistem yang diuji. Tujuannya adalah memastikan modulmodul dan antarmuka dalam suatu aplikasi berinteraksi satu-sama lain dengan benar dan aman. 3. System Testing, merupakan pengujian terhadap keseluruhan fungsionalitas dan kecocokan penggunaan berdasarkan system/acceptance test plan. Pengujian ini juga mungkin dirancang untuk menekankan pada aspek-aspek tertentu pada sistem yang mungkin tidak disadari oleh pengguna, tetapi kritis terhadap perilaku system yang benar. 4. User Acceptance Testing, merupakan pengujian yang dilakukan oleh end-user dimana user tersebut adalah staff/ karyawan perusahaan yang langsung berinteraksi dengan sistem dan dilakukan verifikasi apakah fungsi yang ada telah berjalan sesuai dengan kebutuhan/fungsinya. 2.10.2 Metode Pengujian Blackbox Black box testing 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 perangkat lunak sesuai dengan spesifiikasi yang dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang bersifat mencoba semua fungsi dengan memakai perangkat lunak apakah 30 http://digilib.mercubuana.ac.id/ sesuai dengan spesifikasi yang dibutuhkan. Kasus uji yang dibutuhkan untuk melakukan pengujian kotak hitam harus dibuat dengan kasus benar dan kasus salah, misalkan untuk kasus proses login maka kasus uji yang dibuat adalah : 1. Jika user memasukkan nama pemakai (username) dan kata sandi (password) yang benar 2. Jika user memasukkan nama pemakai (username) dan kata sandi (password) yang salah, misalnya nama pemakai benar tapi kata sandi salah, atau sebaliknya, atau keduanya salah. 31 http://digilib.mercubuana.ac.id/