BAB II LANDASAN TEORI 2.1 Pengertian Internet Terdapat banyak jaringan di dunia yang menggunakan perangkat keras dan perangkat lunak yang berbeda-beda. Beberapa orang yang terhubung ke jaringan sering berharap untuk bisa berkomunikasi dengan lainnya yang terhubung melalui jaringan. Keinginan seperti ini memerlukan hubungan antar jaringan yang seringkali tidak sesuai satu dengan lainnya. Biasanya untuk melakukan hal ini diperlukan sebuah mesin yang disebut gateway guna melakukan hubungan dan melaksanakan terjemahan yang diperlukan, baik perangkat keras maupun perangkat lunaknya. Kumpulan jaringan yang saling terhubung inilah yang disebut dengan internet. Teknologi World Wide Web (WWW) atau biasa disebut web adalah salah satu jenis layanan yang disediakan oleh internet merupakan jenis layanan yang berkembang paling pesat dan paling banyak digunakan di internet selain layanan pengiriman surat elektronik (e-mail) dan protocol pengiriman berkas (FTP). 2.2 Secure Socket Layer (SSL) Saat ini banyak aplikasi yang membutuhkan keamanan, kriptografi merupakan salah satu alat untuk menyediakan kemanan tersebut. OpenSSL tidak saja menyediakan library kriptografi, tetapi juga menyediakan implementasi dari industry algoritma terbaik, termasuk algoritma enkripsi seperti 3DES, AES dan RSA, serta berfungsi juga sebagai kode otentikasi pesan suatu pesan (www.openssl.org). Banyak dari pihak pengembang menjaga keamanan dengan membuat aplikasi enkripsi dan penerima medekripsi pesan yang datang dengan membuat suatu algoritma kriptografi. Startegi tersebut terkadang gagal karena fakor integritas dari suatu data. Dalam banyak situasi pihak ketiga (penyerang) dapat mengganggu integritas suatu data dan bahkan menyadap data tersebut. Sehingga dibuatlah suatu protokol yang aman yang berjalan pada protokol yang tidak aman yaitu Secure Socket Layer (SSL). Secure Socket Layer (SSL) 6 7 menyediakan keamanan berupa kriptografi yang umum dipakai dan berbasis pada Transmission Control Protocol (TCP) 2.2.1 Cara Kerja Secure Socket Layer (SSL) Pada dasarnya SSL berkerja dengan membangun saling kepercayaan antara browser pengguna dengan webserver yang dikunjungi. Sebagai ilustrasi akan dijelaskan gambaran umum dari cara kerja Secure Socket Layer (SSL) pada Gambar 2.1. Gambar 2.1. Gambaran umum cara kerja SSL [Sumber: IETF 108] Seperti terlihat pada gambar diatas cara kerja SSL terbagi menjadi 5 bagian utama, berikut penjelasannya: 1. Browser pengguna mengakses sebuah website dan meminta kepada webserver agar mendapatkan jalur koneksi yang diproteksi. 2. Webserver akan mengirimkan sertifikat miliknya dan meminta sertifikat dari user. Dan browser akan memeriksa validasi dari sertifikat yang dimiliki oleh situs tersebut dengan cara: 1. Apakah sertifikat tersebut masih berlaku atau sudah kadaluarsa. 2. Sertifikat tersebut benar milik situs yang dikunjungi atau bukan. 3. Sertifikat tersebut juga terdapat dalam database browser milik pengguna. 3. Browser akan mengirimkan sertifikat atau publik key miliknya. 4. Pengguna sudah bisa menjelajah isi website yang dikunjunginya dengan aman. 8 2.2.2 Kriptografi Kriptografi sudah digunakan 4000 tahun yang lalu diperkenalkan oleh orang Mesir lewat hieroglyph. Pada Zaman Romawi Kuno Julius Caesar juga menggunakan batang silinder (Scytale) dalam pengiriman pesan kepada Jendralnya. Dimana Julius Caesar mengganti semua susunan huruf alfabet dari a,b,c dengan huruf def dan seterusnya. Sedangkan di India kriptografi digunakan oleh para pecinta untuk saling berkomunikasi. Hal ini ditemukan didalam buku Kamasutra yang merekomendasikan agar wanit mempelajari seni memahami tulisan dengan kode. Ditinjau dari asal usulnya kata algoritma mempunyai sejarah yang menarik. Pertama kali muncul dalam kamus Webster 1957. Kata Algorism mempunyai arti proses perhitungan dalam bahasa Arab. Algoritma berasal dari nama penulis buku Arab yaitu Abu Ja’far Muhammad Ibnu Musa al-Khuwarizmi (al-Khuwarizmi dibaca orang barat sebagai algorism) (DonyAriyus 43). Dony Ariyus (43) menyatakan, bahwa: “Terminologi Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan masalah yang disusun secara sistematis” Dan Algoritma mempunyai tiga fungsi dasar, yaitu: 1. Enkripsi, bisa diartikan chiper atau kode untuk mengubah suatu pesan asli (plaint text) menjadi suatu kode yang tidak dimengerti (chipertext) 2. Deskripsi, merupakan kebalikan dari proses enkripsi yaitu mengubah chipertext menjadi plaintext. Algoritma yang digunakan berbeda dengan algoritma yang dipakai enkripsi 3. Kunci (Key), Kunci yang dimaksud adalah kunci yang dipakai untuk proses enkripsi dan deskripsi yang terbagi menjadi dua yaitu kunci rahasia (secret key atau private key) dan kunci umum (public key) Kemanan dari kriptografi modern didapatkan dengan merahasiakan kunci yang dimiliki dari orang lain tanpa harus merahasiakan algoritma tersebut dengna kata lain kunci memiliki fungsi yang sama dengan password. Beberapa aspek penting dalam kriptografi dalam menjaga suatu data meliputi beberapa hal, yaitu (PK Yuen 4): 9 1. Confidentiality (Kerahasiaan), Pengirim pesan membuat pesan hanya untuk penerima pesan yang dimaksud oleh pengirim. 2. Integrity Data (Integritas Data), Memastikan tidak ada perubahan pesan yang diubah oleh orang lain di tengah jalan 3. Authentication (Otentikasi), Pembuktian pesan dan identifikasi dari pesan bahwa benar dating dari pengirim yang dimaksud 4. Non Repudiation (akuntabilitas), Perlindungan terhadap penyangkalan pesan Jika keseluruhan algoritma yang dipakai tersebut dipublikasikan dan bisa dipecahkan dalam waktu singkat berarti algoritma tersebut tidaklah aman digunakan. Ada beberapa algoritma kriptografi modern yang dipakai dalam secure socket layer (SSL), antara lain: 1. Symmetric Algorithms (Algoritma Simetris) Merupakan algoritma yang dalam proses deskripsi maupun enkripsinya menggunakan kunci yang sama. Contoh: Nita ingin mengirimkan pesan kepada Deni menggunakan saluran umum. Nita menggunakan kunci xo yang sudah disepakati sebelumnya dengan Deni. Kemudian Nita mengirimkan pesan e xo (x) kedapa Deni yang kemudian mengenkripsi pesan menggunakan kunci xo tersebut. Pada Gambar 2.2 Penulis ilustrasikan tentang algoritma simetris. Gambar 2.2. Algoritma Simetris [Sumber: Dony Ariyus 108] Beberapa Algoritma simetris diantaranya adalah Data Ecription Standard (DES) dan Rivest Code 4 (RC4). 10 2. Asymmetric Algorithms (Algoritma Asimetris) Merupakan algoritma yang pasangan kuncinya digunakan untuk keperluan yang berbeda dimana kunci publik (public key) bisa dimiliki setiap orang dan hanya satu orang pemilik yang mempunyai kunci rahasia (private key). Beberapa algoritma yang menggunakan kunci asimetris adalah Rivest Shamir, dan Adleman (RSA), Digital Signature Algorithm (DSA), dan Diffie-Hellman (DH). Pada Gambar 2.3 merupakan ilustrasi dari algoritma asimetris. Gambar 2.3 Algoritma Asimetris [Sumber: Dony Ariyus 109] 3. Hybrid Algorithms (Algoritma Hibrida) Adalah algoritma yang memanfaatkan dua tingkatan kunci yaitu kunci rahasia (simetris) yang juga disebut dengan kunci sesi (session key) yang digunakan untuk enkripsi data dan pasangan kunci rahasia – kunci publik untuk pemberian tanda tangan digital serta melindungi kunci simetris (Dony Ariyus 110). Algoritma hibrida ini menggabungkan algoritma simetris dan asimetris. Proses ini dimulai dengan negosiasi menggunakan algoritma asimetris dimana kedua belah pihak setuju dengan private key atau session key yang akan dipakai. Kemudian session key dibuat menggunakan algoritma simetris untuk mengenkripsi data selanjutnya. Session key hanya dapat dipakai untuk sekali sesi. Untuk sesi selanjutnya session key tersebut harus dibuat kembali. Pada Gambar 2.4 terlihat kombinasi dari algoritma RSA, MD5 dan AES. 11 Gambar 2.4 Algoritma Hibrida [Sumber:P.K.Yuen 656] 4. Hash Function (Fungsi Hash) Cryptographic Hash Function adalah suatu fungsi dengan inputan yang berubah-ubah panjangnya (atau sangat panjang) dan memetakannya sehingga menghasilkan output yang pendek dan panjang nya tetap (Mey Lee). Funsi Hash satu arah mempunyai fungsi sebagai berikut (Dony Ariyus): 1. Fingerprint (Sidik Jari), sebagai identitas dari pengirim pesan 2. Fungsi Kompresi, dokumen D yang memiliki ukuran tetap akan di hash disebut pre image dan keluarannya memiliki ukuran tetap dalam bentuk aslinya. 3. Message digest, merupakan hasil keluaran data yang sudah diberikan fungsi hash Contoh dari algoritma fungsi hash satu arah adalah Message Digest (MD5) dan Secure Hash Algorithm (SHA). Message Authentication Code (MAC) merupakan variasi dari fungsi hash satu arah, selain pre image sebuah kunci rahasia juga menjadi masukan bagi fungsi Message Authentication Code (MAC) 2.2.3 Sertifikat Sertifikat kunci publik sama seperti sebuah kartu Surat Ijin Mengemudi (SIM). Ada tiga karasteritik penting dalam suatu sertifikat yaitu (Stephen A. Thomas 29): 1. Sebagai identifikasi pemilik seperti nama pemilik 2. Menegaskan informasi penting tentang subjek (Sertifikat menegaskan akan kunci public yang dimiliki sedangkan SIM menegaskan pemilik memiliki hak untuk mengemudi mobil) 3. Keduanya dikeluarkan oleh organisasi yang dipercaya (SIM oleh instansi pemerintah (Kepolisian) dan Sertifikat oleh Organisasi CA). 12 Terkadang sulit untuk suatu certificate authority untuk melacak suatu aktifitas dari suatu identitas. Untuk itu dibuatlah sebuah sistem hirarki dan Secure Socket Layer (SSL) mendukung konsep hirarki sehingga memudahkan dalam pengecekan suatu sertifikat. Seperti pada Gambar 2.5 terlihat hirarki dari perusahaan ACME yang mempunyai master certificate authority dan dua sub ordinat authority yaitu HR. Dept dan R&D Dept. Suatu hirarki sertifikat tidak mengharuskan suatu sertifikat untuk mempercayai semua sertifikat. Sebagai contoh HR.Dept tidak harus mempercayai sertifikat dari yang di tanda tangani oleh R&D Dept (Subject: Software) karena berada di luar authority sehingga menanyakan kepada root certificate (ACME Corp) apakah benar subject: Software ditanda tangani oleh R&D Dept. Gambar 2.5 Hirarki Sertifikat [Sumber: Stephen Thomas 34] 2.3 Apache Web Server Menurut survey netcraft.com Apache masih menduduki peringkat pertama dalam web server hosting sampai dengan april 2011 kemudian diikuti dengan Microsoft dan Sun. 13 Gambar 2.6 Peringkat penggunaan web server dari netcraft.com Perjalanan panjang Apache dimulai pada tahun 1991 Tim Berners Lee dan dilanjutkan oleh Ari Luotonen dan Henrik F. Nielsen menulis CERN HTTP server yang merupakan aplikasi pertama kali dari sebuah web server. Pada Tahun 1993 Tony Sander menulis sebuah web server dengan menggunakan Perl yang disebut dengan Plexus. Pada tahun 1994 pengembangan dan maintenance sempat berhenti ketika McCool meninggalkan National Center for Supercomputing Applications (NCSA). Kemudian beberapa orang mulai berkumpul untuk memulai memperbaiki NCSA httpd dengan mulai membuat patch. Pada tahun 1995 Proyek Apache HTTP server lahir dari patch yang dibuat dan merupakan rilis untuk public berdasarkan NCSA httpd 1.3. 2.3.1 Struktur Konfigurasi Apache mempunyai konfigurasi global yang diletakkan pada sebuah file yaitu httpd.conf. Berkas tersebut akan diproses setiap Apache dijalankan maupun di restart. 14 Gambar 2.7 Struktur berkas httpd.conf [Sumber: Ralf S. Engelschall 65] Gambar 2.7 Menjelaskan struktur dari berkas yang ada dalam httpd.conf dan berikut ini penjelasan gambar 2.7. 1. Global Context Berisi petunjuk yang diterapkan pada default atau server utama dan dapat diwarisi oleh bagian lainnya. 2. <VirtualHost> Mengandung arahan yang diterapkan pada virtual web server dan dibedakan dengan IP address dan port yang terpasang. 3. <Directory> Mengandung arahan dimana tempat direktori web server disimpan. 4. <Files> Mengandung arahan dimana tempat suatu file web server disimpan. 5. <Location> Mengandung arahan yang diterapkan pada particular suatu Uniform Request List (URL) beserta listnya. 2.4 OpenSSL OpenSSL merupakan suatu komunitas yang lebih memfokuskan diri pada pengembangan Secure Socket Layer (SSL) secara terbuka dan dikembangkan berdasarkan pada library SSLeay yang dikembangkan oleh Eric A. Young dan 15 Tim J. Hudson. Toolkit OpenSSL dilisensikan di bawah lisensi Apache, yang pada dasarnya setiap orang bebas untuk mendapatkan dan menggunakannya untuk tujuan komersial dan non-komersial (www.openssl.org). Sehingga dalam mengimplementasikan Secure Socket Layer (SSL) dalam sebuah situs tidak membutuhkan biaya yang mahal. OpenSSL merupakan piranti lunak yang dapat diintegrasikan kedalam webserver seperti apache 2. Sehingga menjamin sebuah situs yang aman dan dapat dipercaya. OpenSSL merupakan usaha kolaboratif dari komunitasnya untuk membangun suatu toolkit OpenSource yang dapat memfungsikan Secure Socket Layer (SSL v2/v3) dan Transport Layer Secure (TLS v1) dan juga untuk membangun suatu perpustakaan kriptografi umum yang kuat (www.openssl.org). Dengan demikian, OpenSSL dituntut untuk dapat difungsikan sepenuhnya dalam implementasi Secure Socket Layer (SSL) dan memiliki keamanan yang kuat, yang memenuhi berbagai macam tingkat kebutuhan akan komunikasi data yang aman 2.5 HyperText Markup Language (HTML) HTML adalah bahasa pemrograman yang digunakan untuk membuat sebuah halaman web yang nantinya akan ditampilkan di dalam sebuah browser internet seperti Mozila Firefox Hypertext Markup Language (HTML) digunakan untuk atau Internet Explorer. adalah bahasa markup sederhana yang membuat dokumen hypertext menjadi platform yang independent (www.ietf.org 2). HTML inilah yang mengatur bagus atau tidaknya sebuah situs web. Membuat sebuah halaman web dapat menggunakan editor teks seperti notepad, kemudian mengetikkan kode-kode HTML dan menyimpan kodekode tersebut dengan ekstensi .html atau dengan menggunakan program yang menyediakan kode html secara otomatis seperti Macromedia Dreamweaver maupun Microsoft Frontpage. Sehingga pembuatan halaman web menghasilkan tampilan seperti yang anda inginkan. 2.6 PHP Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun1995. Pada waktu itu PHP masih bernama Form Interpreted (FI), yang wujudnya berupa 16 sekumpulan skrip yang digunakan untuk mengolah data formulir dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi sumber terbuka, maka banyak pemrogram yang tertarik untuk ikut mengembangkan PHP (www.php.net). Ketika seseorang melakukan permintaan terhadap suatu halaman web tertentu dengan mengetikkan alamat Uniform Resource Locator (URL) pada browser. Browser kemudian meneruskan alamat situs web yang dimasukkan tersebut ke web server. Kemudian web server mengidentifikasi halaman yang dikehendaki dan mencarikan berkas yang diminta dengan menghubungkan pada database jika berkas tersebut memuat data yang diambil dari server database dan mengirimkan hasilnya ke PHP Engine. PHP engine kemudian menerjemahkan berkas yang diminta dan mengirimkannya ke web server dalam bentuk kode HTML. Dari web server, berkas tersebut dikirimkan ke browser. Browser kemudian menampilkan berkas yang diminta ke layar pengguna yang meminta. Konsep kerja tersebut bisa dilihat pada Gambar 2.8. Gambar 2.8 Konsep kerja PHP [Sumber: www.php.net] 2.7 Pengertian Umum Rekayasa Perangkat Lunak Menurut Roger. S. Pressman (2001:20) Rekayasa perangkat lunak adalah suatu teknologi yang melalui beberapa tahapan, dimana seorang ahli rekayasa perangkat 17 harus mempunyai komitmen untuk mencapai suatu perangkat lunak berkualitas. Untuk mencapai kualitas tersebut perekayasa perangkat lunak harus melalui beberapa tahapan, seperti terlihat Gambar 2.9. Gambar 2.9 Tahapan rekayasa perangkat lunak [Sumber: Roger. S. Pressman 21] Adapun penjelasan Gambar 2.9 dijelaskan sebagai berikut: a. Alat bantu rekayasa perangkat lunak menyediakan otomasi atau semi otomasi guna mendukung metode. Sistem pendukung pengembangan perangkat lunak disebut Computer Aided Software Engineering (CASE). Dimana CASE merupakan kombinasi dari perangkat lunak, perangkat keras, dan database rekayasa perangkat lunak (stuktur data yang berisi informasi penting tentang analisis, desain, pengkodean, dan ujicoba). b. Metode menyediakan teknik “bagaimana” untuk membangun perangkat lunak. Metode meliputi sejumlah pekerjaan yang diperlukan dalam analisis, desain, pengkodean, ujicoba, dan pemeliharaan. Metode rekayasa perangkat lunak seringkali diorientasikan bahasa khusus atau notasi grafik dan kriteria dari kualitas perangkat lunak. c. Prosedur rekayasa perangkat lunak merupakan bagian yang merekatkan metode dan alat bantu, sehingga memungkinkan pengembangan perangkat lunak dilakukan secara rasional dan tepat waktu. d. Manajemen mutu total dan filosofi yang sama menumbuhkan proses budaya perbaikan dan berkesinambungan, dan budaya ini akhirnya mengarah pada pengembangana pendekatan yang semakin matang untuk rekayasa perangkat lunak. Landasan yang mendukung software engineering adalah pada fokus kualitas. Sehingga rekayasa perangat lunak dapat di definisikan sebagai suatu disiplin ilmu yang menggabungkan proses, metoda dan alat bantu untuk pengembangan suatu perangkat lunak komputer. 18 2.7.1 Pengertian Unified Modeling Language (UML) Menurut (James Rumbaugh et al 3) UML adalah suatu pemodelan bahasa visual yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan artefak dari sebuah system perangkat lunak. UML berisi sekumpulan simbol dan diagram untuk memodelkan suatu perangkat lunak. Dengan adanya UML ini semua anggota tim mulai dari desain, pengembang dan pengguna yang sedang mengembangkan perangkat lunak dapat berbicara dengan bahasa yang sama karena UML adalah bahasa standar didalam pembuatan sebuah pemodelan suatu perangkat lunak. Definisi model itu sendiri adalah deskripsi suatu masalah dari perangkat lunak yang akan dibuat. Ada tiga aspek utama dalam pemodelan sistem perangkat lunak yang didukung oleh UML (James Rumbaugh et al 26): 1. Structural Classification, menggambarkan hal-hal dalam sistem dan hubungan mereka dengan hal-hal lain. Dapat dibuat dengan menggunakan use case, class, dan component diagram. 2. Dynamic Behavior, menggambarkan perilaku dari sistem atau classifier lainnya dari waktu ke waktu yang menunjukkan internal behavior dan suatu sistem. Ini dicapai dengan menggunakan state machine, activity dan juga statechart diagram. 3. Physical Layout, menggambarkan sumber daya komputasi dalam system dan diagram penyebaran. Dibuat dengan menggunakan deployment diagram. 4. Model Management, menggambarkan pemodelan suatu organisasi menjadi unit hirarkis. Dibuat menggunakan package diagram. 2.7.2 Diagram Unified Modeling Language (UML) UML menyediakan beberapa jenis diagram untuk memodelkan aplikasi berorientasi obyek, yaitu (Adi Nugroho 2005:19): 1. Use Case diagram Berfungsi untuk memodelkan bisnis proses berdasarkan cara pandang seorang pengguna (Adi Nugroho 51). Use case diagram terdiri dari use case dan actor. Use case menggambarkan bagaimana seorang pengguna sebuah sistem berinteraksi dengan sistem itu sendiri dan bagaimana sistem itu digunakan oleh 19 pengguna. Sedangkan actor adalah pengguna yang menggunakan sistem tersebut. Actor yang berinteraksi dengan sistem dihubungkan dengan sebuah tanda panah ke use case. Hal tersebut bisa dilihat pada Gambar 2.10. Use Case Diagram Pesan Tiket Pembeli Gambar 2.10 Model pembelian tiket [Sumber: Adi Nugroho 51] 2. Activity diagram Berfungsi merepresentasikan aliran bisnis proses dan juga workflow operasional dalam suatu system (Adi Nugroho 61). Sebuah Activity diagram didalam sistem memberikan ilustrasi aliran atau alur dari setiap fungsi yang ada dalam sistem, dimulai dari sistem itu berjalan sampai dengan berhenti. Pada Tabel 2.1 merupakan notasi yang biasa dipakai. Tabel 2.1 Notasi pada Activity diagram [Sumber: Adi Nugroho 61] Nama Notasi Start State Aktifitas Forking Joining End State Notasi Keterangan Keadaan untuk memulai diagram statechart Perilaku yang terjadi di dalam sebuah objek atau berupa pesan yang dikirim ke objek lain Satu aliran yang pada tahap tertentu berubah menjadi dua aliran Dua aliran sekaligus yang secara bersamaan masuk kepada satu titik Keadaan untuk mengakhiri diagram statechart 20 3. Statechart diagram Statechart diagram menunjukkan siklus hidup sebuah objek tunggal, dari saat dibuat sampai objek tersebut dihapus (Adi Nugroho 188). Diagram ini merupakan cara tepat untuk memodelkan perilaku dinamis sebuah kelas. Tabel 2.2 Notasi pada Statechart diagram [Sumber: Adi Nugroho 188] Nama Notasi Notasi Start State Aktifitas Transition Transition to self End State Keterangan Keadaan untuk memulai diagram statechart Perilaku yang terjadi di dalam sebuah objek atau berupa pesan yang dikirim ke objek lain Menambahkan transisi pada diagram Menambahkan transisi pada state awal Keadaan untuk mengakhiri diagram statechart 4. Class diagram Class diagram berarti penggambaran suatu class, operasi, atribut dan hubungan antar class (Adi Nugroho 110). Class digambarkan dengan sebuah kotak yang terbagi menjadi tiga bagian yaitu nama class, variable dari class, dan operasi class. Lihat Gambar 2.11. berikut. Class diagram Nama Class Variabel Operasi Gambar 2.11 Class diagram [Sumber: Adi Nugroho 110] 21 5. Component diagram Digunakan untuk penggambaran suatu model secara fisik sebagai sebuah komponen perangkat lunak yang ada dalam sebuah system (Adi Nugroho 200). Seperti yang ditunjukkan oleh Gambar 2.12. berikut. Gambar 2.12 Component diagram [Sumber: Adi Nugroho 200] 6. Deployment diagram Pemodelan perangkat keras yang digunakan dalam suatu implementasi sistem dan perangkat lunak yang terdapat dalam perangkat keras tersebut (Adi Nugroho 210). WEB SERVER Client Internet Apache PHP Engine LAN Printer LAN DATABASE MySQL Gambar 2.13 Deployment diagram [Sumber: Adi Nugroho 210] Pada Gambar 2.13. terdapat hubungan client yang mengakses sebuah web server. Dimana database server sudah terinstall aplikasi MySQL dan terhubung melalui jaringan lokal dengan web server yang terinstall aplikasi apache dan PHP engine. 22 2.8 Basis Data Menurut Thomas M. Connolly (2004:7) Basis Data adalah kumpulan berbagai data yang saling berkaitan yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Dalam sebuah database terdapat beberapa istilah yang sering dipakai, yaitu: 1. Entitas (entity) Adalah spesifikasi dari sebuah obyek yang bisa dibeda-bedakan didalam suatu organisasi yang disimpan didalam basis data. Obyek bisa berupa orang tempat, atau kejadian. 2. Atribute Setiap entity mempunyai attribute, yang merupakan nama atau sebutan untuk mewakili suatu entity. Misalnya atribute dari sebuah mahasiswa terdiri dari NIM, nama, dan alamat. Atribute juga biasa disebut dengan column, field, atau item. 3. Nilai atau isi data (data value) Adalah data aktual yang disimpan dalam tiap data elemen atau atribute. Sebagai contoh atribute nama mahasiswa merupakan tempat dimana informasi nama mahasiswa disimpan, dan isi datanya adalah Tono, Dino, dan Susi dimana merupakan isi data attribute nama mahasiswa. 4. Record Merupakan sekumpulan nilai atau isi data yang saling berkaitan dari sebuah entitas secara lengkap. Sering juga disebut sebagai tuple atau row. 5. Tabel (Table) Sebuah Tabel berisi sebuah kolom (column) dan baris (row) Untuk lebih jelas lagi tentang istilah lihat Gambar 2.14. 23 Atribute Branch Table Record/Tuple Value Relasi Gambar 2.14 Istilah dalam database [Sumber: Thomas M. Connolly 24] 2.8.1 Teknik Entity Relationship Diagram (ERD) Menurut Thomas M. Connolly (2004:146) Entity relationship diagram adalah hubungan antara dua file atau dua table. Bentuk hubungan dikategorikan menjadi tiga macam hubungan, dengan notasi segiempat sebagai file dan tanda panah sebagai hubungannya sebagai berikut: 1. One to one relationship Hubungan antara table pertama dengan tabel kedua adalah satu berbanding satu, contohnya seorang peserta seminar hanya dapat membeli satu tiket masuk. Sebagai ilustrasi dapat dilihat pada Gambar 2.15. Gambar 2.15 One to one relationship [Sumber: Thomas M. Connolly 156] 24 2. One to many relationship Hubungan antara tabel pertama dengan tabel kedua adalah satu berbanding n atau n berbanding satu. Contohnya satu instruktur seminar membimbing oleh 1 (satu) atau lebih peserta. Terlihat pada Gambar 2.16. Gambar 2.16 One to many relationship[Sumber: Thomas M. Connolly 157] 3. Many to many relationship Hubungan antara tabel pertama dengan tabel kedua adalah n berbanding m. Contohnya banyak instruktur memiliki banyak mobil, seperti yang terlihat pada Gambar 2.17. Gambar 2.17 Many to many relationship[Sumber: Thomas M. Connolly 158]