bab ii landasan teori - Perpustakaan Universitas Mercu Buana

advertisement
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]
Download