bab ii landasan teori -...

31
7 BAB II LANDASAN TEORI Pada BAB II ini akan diuraikan tentang teori-teori yang didapat dari buku- buku literatur dan jurnal-jurnal ilmiah yang sebelumnya telah diteliti yang kemudian akan dijadikan dasar dalam menganalisis dan pembangunan sistem. 2.1 Sistem Berbasis Aturan (Rule Based System) Rule Based System adalah suatu program komputer yang memproses informasi yang terdapat didalam working memory dengan sekumpulan aturan yang terdapat di dalam basis pengetahuan menggunakan mesin inferensi untuk menghasilkan informasi baru.[6] Rule Based merupakan sistem yang digunakan sebagai cara untuk menyimpan dan memanipulasi pengetahuan untuk diwujudkan dalam suatu informasi yang dapat membantu dalam menyelesaikan berbagi permasalahan. Teori sistem berbasis aturan ini menggunakan tekhnik yang sederhana, yang dimulai dengan dasar aturan yang berisi semua pengetahuan dari permasalahan yang dihadapi yang kemudian dikodekan ke dalam aturan IF-THEN dan sebuah tempat penyimpanan (basis data) yang mengandung data, pernyataan dan informasi awal. Sistem akan memeriksa semua aturan kondisi ( IF) yang menentukan subset, set konflik yang ada. Jika ditemukan, maka sistem akan melakukan kondisi THEN. Perulangan atau looping ini akan terus berlanjut hingga salah satu atau dua kondisi bertemu, jika aturan tidak diketemukan maka sistem tersebut harus keluar dari perulangan (terminate). Pendekatan Untuk mengelola rules , terdapat 2 pendekatan yaitu : 1. Forward Chaining : dimana rules diproses berdasarkan sejumlah fakta yang ada, dan didapatkan konklusi sesuai dengan fakta-fakta tersebut. Pendekatan forward chaining disebut juga data driven. Proses forward chaining dapat dilihat pada Gambar 2.1

Upload: hathien

Post on 22-Jun-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

7

BAB II

LANDASAN TEORI

Pada BAB II ini akan diuraikan tentang teori-teori yang didapat dari buku-

buku literatur dan jurnal-jurnal ilmiah yang sebelumnya telah diteliti yang

kemudian akan dijadikan dasar dalam menganalisis dan pembangunan sistem.

2.1 Sistem Berbasis Aturan (Rule Based System)

Rule Based System adalah suatu program komputer yang memproses

informasi yang terdapat didalam working memory dengan sekumpulan aturan yang

terdapat di dalam basis pengetahuan menggunakan mesin inferensi untuk

menghasilkan informasi baru.[6]

Rule Based merupakan sistem yang digunakan sebagai cara untuk

menyimpan dan memanipulasi pengetahuan untuk diwujudkan dalam suatu

informasi yang dapat membantu dalam menyelesaikan berbagi permasalahan.

Teori sistem berbasis aturan ini menggunakan tekhnik yang sederhana, yang

dimulai dengan dasar aturan yang berisi semua pengetahuan dari permasalahan

yang dihadapi yang kemudian dikodekan ke dalam aturan IF-THEN dan sebuah

tempat penyimpanan (basis data) yang mengandung data, pernyataan dan informasi

awal. Sistem akan memeriksa semua aturan kondisi (IF) yang menentukan subset,

set konflik yang ada. Jika ditemukan, maka sistem akan melakukan kondisi THEN.

Perulangan atau looping ini akan terus berlanjut hingga salah satu atau dua kondisi

bertemu, jika aturan tidak diketemukan maka sistem tersebut harus keluar dari

perulangan (terminate).

Pendekatan

Untuk mengelola rules , terdapat 2 pendekatan yaitu :

1. Forward Chaining : dimana rules diproses berdasarkan sejumlah fakta yang

ada, dan didapatkan konklusi sesuai dengan fakta-fakta tersebut.

Pendekatan forward chaining disebut juga data driven. Proses forward

chaining dapat dilihat pada Gambar 2.1

8

Gambar 2.1 Penyelesaian menggunakan forward chaining

Gambar 2.1 diatas menunjukkan alur dalam proses forward chaining, dimana

untuk mencapai kondisi yang ingin dicapai berawal dari fakta, kemudian

ditarik keputusan dari berdasarkan rule-rule yang saling terkait.[9]

2. Backward Chaining : dimana diberikan target (goal), kemudian rules yang

aksinya mengandung goal di-trigger. Backward chaining ini cocok untuk

menelusuri fakta yang masih belum lengkap, disebut juga goal driven.

Strategi Rule Based System :

1. First Applicable : Ini adalah strategi yang paling sederhana tetapi berpotensi

menimbulkan masalah besar, yaitu akan terjadinya looping yang tak terbatas

pada kondisi yang sama.

2. Random : Meskipun tidak menggunakan prediksi atau first applicable control,

metode ini cukup memberikan keuntungan, yaitu dapat diprediksi (seperti

game yang membutuhkan strategi). Sebuah strategi acak akan memilih aturan

acak tunggal dari sebuah set konflik. Kemungkinan lain untuk strategi acak

adalah dengan sistem berbasis aturan fuzzy (fuzzy rule based system) dimana

masing-masing aturan memiliki probabilitas sebuah kondisi akan lebih

mungkin terjadi daripada yang lainnya.

3. Most Spesific : Strategi ini berdasarkan pada jumlah kondisi aturan. Hal ini

didasari pada asumsi jika ia memiliki sebagian besar kondisi maka memiliki

relevansi ke data yang ada.

4. Least Recently Used : Menyimpan data yang terakhir dipakai untuk selanjutnya

dipakai kembali ke dalam permasalahan jika memang problem yang dihadapi

sama.

9

Kelebihan dan Kekurangan

Kelebihan Sistem Berbasis Aturan

Availability-bertambah

Intelligent tutor

Intelligent dB

Danger-reduced

Performance

Multiple expertise

Reability-bertambah

Explanation

Steady, unemotional and complete response

Kekurangan Sistem Berbasis Aturan

1. Jika terlalu banyak aturan, sistem menjadi sulit dalam me-maintain

performance.

2. Keterbatasan dalam memutuskan teknik yang digunakan untuk suatu masalah.

Manfaat

Kedokteran : Sistem pakar dalam dunia kedokteran dapat

mencatat history atau riwayat penyakit pasien sehingga mudah

dalam penentuan obat dan dosis obat yang akan diberikan oleh

dokter. Selain itu dapat juga sebagai penyimpanan data dalam

mendiagnosa penyakit-penyakit tertentu.

Pertanian : Dapat digunakan untuk mengidentifikasi hama dan

penyakit yang mampu menyerang tanaman beserta cara

pengendaliannya serta mampu mengetahui waktu perairan atau

penyemaian.

Keuangan : Dapat digunakan untuk memeriksa persoalan-persoalan

dengan menggunakan beberapa metode yang berbeda.

10

2.2 Metode V-Model

Metode ini serupa dengan model metode waterfall, akan tetapi lebih

menekankan pada adanya asosiasi antar tahapan sebelum pemrograman dan

sesudahnya. Penekanan dalam V-Model terutama pada fase verifikasi dan

validasi.[5]

Gambar 2.2 V-Model

Tahapan yang dilakukan dalam V-Model ialah sebagai berikut

1. Analisa Kebutuhan, tahap pendefinisian dan dokumentasi kebutuhan dari

konsumen.

2. Desain Sistem, perekayasaan sistem, berdasarkan analisis kebutuhan.

3. Desain Program, perekayasaan struktur program, algoritma dan struktur

data.

4. Coding, penulisan / interpretasi dari hasil desain program.

5. Pengujian Unit & Integrasi, pengetesan pada program setingkat low-level

testing. Bila terjadi kekurangan dan ketidaksesuaian maka tahap ini akan

berkoneksi dengan tahap tiga yaitu desain program.

6. Pengujian Sistem, pengetesan pada sistem. Bila terjadi kekurangan dan

ketidaksesuaian maka tahap ini akan berkoneksi dengan tahap yaitu desain

sistem.

11

7. Pengujian Menyeluruh, test ini bersifat integral/menyeluruh,dengan

simulasi data sebenarnya. Bila terjadi ketidaksesuaian, maka tahap ini akan

berinteraksi langsung dengan tahap satu yaitu analisa kebutuhan.

8. Operasi & Pemeliharaan, tahap akhir pengembangan sistem dimana sistem

diimplementasi dan diterima serta dijalankan sesuai kebutuhan. Tahap ini

dilakukan hanya jika sistem telah dianggap selesai tanpa syarat.

2.3 PhoneGap

PhoneGap merupakan sebuah framework yang digunakan untuk membuat

aplikasi mobile berbasis HTML5 dan CSS3. Dalam pengembangan aplikasi mobile

yang berbeda sistem operasi seperti Android, Ios, dan Windows Phone

membutuhkan banyak bahasa pemrograman yang masing-masing tidak dapat

diimplementasikan satu sama lain. Dengan kelebihan Phonegap yang multi

platform, pengembangan dapat membuat aplikasi untuk beberapa device secara

langsung dengan menggunakan teknologi web standar (Adobe System Inc, n.d).

Sampai saat ini framework yang didukung oleh PhoneGap antara lain Amazon Fire

OS, Android, BlackBerry 10, OS, Ubuntu, Windowa Phone 7 & 8, dan Windows

8.[11]

PhoneGap dapat mengakses fitur-fitur yang tidak dapat dilakukan oleh web

application yaitu berhubungan dengan perangkat keras seperti kamera, GPS dan

accelerometer dengan menggunakan cordova sebagai penghubungnya.[12].

2.4 Push Notification

Layanan push notification pertama kali diperkenalkan oleh Apple pada bulan

Juni 2009. Apple menamakan layanan tersebut APNs, singkatan dari Apple Push

Notification Service. Sebagai pesaing terkuat Apple di pasar smarphone, Google

melalui Android-nya tidak tinggal diam. Hampir setahun kemudian Google

memperkenalkan layanan sejenis yang dinamakannya C2DM, Google Could to

Device Messaging.[7]

Penelitian terus dikembangkan oleh kedua perusahaan raksasa teknologi

tersebut. Bulan Mei 2013 Google memperkenalkan apa yang disebutnya dengan

istilah rich notifications. Bukan hanya pesan dalam bentuk teks, rich notifications

12

juga dapat diisi dengan gambar. Selain itu ada action buttons, tombol yang jika di-

click akan membawa pengguna langsung melakukan hal-hal tertentu seperti

memutar musik, membuka app, dll.

Pada bulan September 2014, Apple menyempurnakan sistem push

notification versinya dengan memperkenalkan interactive button yang

memungkinkan pemilik smartphone memberikan respon langsung atas push

notification yang dikirimkan app publisher.

Push notification adalah pesan pendek yang muncul secara otomatis di layar

smartphone. Pemilik app dapat mengirimkan pesan-pesan tersebut setiap saat

meskipun pemilik smartphone tidak sedang membuka app yang bersangkutan. Ada

banyak informasi yang dikirimkan melalui push notification, misalnya informasi

hasil pertandingan olah raga, meminta pengguna untuk melakukan sesuatu seperti

mendonwload kupon diskon, informasi mengenai event menarik seperti sale di

sebuah mall, dll. Bentuk push notification ini mirip dengan pesan singkat SMS,

hanya saja push notification hanya bisa muncul pada smartphone yang sudah

menginstall app yang kita buat.

2.5 PushBots

PushBots berguna utnuk memberikan fitur push notification pada aplikasi

Android. Fitur ini menggunakan pelayanan google cloud messaging (GCM),

sebagai perantara untuk mengirim notifikasi pada perangkat Android. GCM

memberikan pelayanan untuk meneruskan data yang dikirim dari server aplikasi ke

perangkat Android yang terhubung Internet. Secara sederhana, arsitektur PushBots

dapat digambarkan pada gambar 2.3.

Gambar 2.3 Arsitektur PushBots

(Google Developers, 2015)

13

Pada Gambar 2.3 App Server adalah posisi PushBots untuk mengirim pesan

GCM, kemudian GCM connecting Server akan meneruskan pesan ke perangkat

(client app) dan untuk menghasilkan notofikasi.

Kemudian dari sistem yang dibangun digunakan modul Python PushBots

berguna untuk mengakses API yang disediakan PushBots seperti mengirimkan

pesan ke GCM server atau memperoleh informasi aplikasi klien terdaftar yang

sedang aktif.

2.6 Android

Android merupakan salah satu sistem operasi smartphone yang mengadopsi

sistem operasi Linux. Selayaknya sistem operasi Linux, android merupakan sistem

operasi dengan platform terbuka atau open source dengan lisensi apache. Apache

sendiri merupakan standar lisensi perangkat terbuka atau open source perangkat

seluler. Android yang bersifat open source memungkinkan semua orang dapat

melakukan pengembangan secara bebas terhadap android secara penuh.[3]

Keuntungan utama dari android adalah dalam pengembangan adanya

pendekatan aplikasi terpadu. Pendekatan ini menjadikan pengembang hanya

berkonsentrasi pada aplikasi saja. Aplikasi yang dikembangkan akan dapat berjalan

pada perangkat yang berbeda selama masih menggunakan sistem operasi android,

dengan kata lain pengembang tidak perlu mempertimbangkan kebutuhan jenis

perangkatnya.

Perkembangan Sistem Operasi Android

Sejak diluncurkan pertama kali pada 5 November 2007, hingga saat ini android

telah banyak berkembang dan memiliki beberapa versi. Krajci & Darren (2014:6-

8) dalam bukunya menyebutkan versi android mulai dari awal hingga terbaru

seperti tertera pada tabel 1.

Tabel 1. Versi dan Code name Android (Krajci & Darren, 2014:6-8)

Versi Code name

Beta -

Android (1.0) Astro

Android (1.5) Cupcake

Android (1.6) Donuts

14

Banyaknya versi sistem operasi android menunjukan bahwa perkembangan

sistem operasi ini terus berkembang dan mengalami penyempurnaan. Data statistik

pengguna perangkat android dari situs resmi pengembang android

developer.android.com) yang dihimpun hingga tanggal 1 Mei 2014 dapat

ditunjukan pada gambar 2.

Gambar 2.4 Statistik Perangkat Android (Android,2014)

Data yang tertera dari statistik pada Gambar 2 menunjukan bahwa sistem

operasi yang paling banyak digunakan pada smartphone android adalah versi

4.1.X/4.2.X/4.3 (Jelly Bean), versi 2.3.X (Gingerbread), versi 4.0.3/4.0.4 (Ice

Cream Sandwich), versi 4.4 (KitKat), versi 2.2 (Froyo) dan versi 3.X (Honeycomb).

2.7 Andriod Studio

Andoid Studio adaalah lingkungan pengembangan Android berdasarkan

IntelliJ IDEA. Mirip dengan Eclipse dengan ADT Plugin, Android Studio

menyediakan alat pengembang Android terintegrasi untuk pengembang dan

debugging. Diatas kemampuan yang Anda harapkan dari IntelliJ, Android Studio

menawarkan:[10]

Android (2.0/2.1) Éclair

Android (2.2) Froyo

Android (2.3.X) Ginger Bread

Android (3.0/3.2) Honeycomb

Android (4.0.3/4.0.4) Ice Cream Sandwich

Android (4.1.X/4.2.X/4.3) Jelly Bean

Android (4.4) KitKat

15

A. Berbasis Grandle membangun dukungan.

B. Refactoring android, spesifik dan perbaikan yang cepat.

C. Alat Lint untuk meangkap kinerja, kegunaan, Kompabilitas versi dan masalah

lainnya.

D. ProGuard dan aplikasi-penanda tanganan kemapuan.

E. Penyihir berbasis template untuk membuat desain Android umum dan

komponen.

F. Sebuah layout editor yang memungkinkan Anda untuk dragp-and-drop UI

komponen, layout pratinjau pada beberapa konfigurasi layar, dan banyak lagi.

2.8 PHP

PHP merupakan salah satu dari berbagai macam pemrograman web.

Menurut Loka (2010:3), PHP awalnya ditemukan pada 1995 oleh Rasmus Lerdrof

ketika ingin mengetahui jumlah pengunjung yang membaca resume onlinenya.

Script yang dibuat Rasmus Lerdrof tersebut menarik developer sehingga Rasmus

mengembangkan PHP menjadi suatu bahasa tersendiri yang mungkin dapat

mengkonversikan data yang diinputkan melalui form HTML menjadi suatu

variabel, yang dapat dimanfaatkan oleh sistem lainnya. Loka (2010:3) menerangkan

bahwa pengguna PHP yang semakin banyak membuat Zeev Suraski dan Andi

Gutsman selaku core developer (programmer inti) mencoba untuk menulis ulang

PHP Parser, dan diintegrasikan dengan menggunakan Zend scripting engine, dan

mengubah jalan alur operasi PHP.[8]

Banyaknya pengguna PHP dalam pemrograman web bukan tanpa alasan.

Butzon (2002) menjelaskan bahwa PHP adalah pilihan tepat dalam pemrograman

web dibandingkan dengan bahasa pemrogram lainnya. Menurut Butzon (2002:8),

PHP merupakan pemrograman dengan biaya rendah dibandingkan ASP dan

memiliki waktu eksekusi yang lebih cepat dibandingkan Java. PHP sebagai bahasa

pemrograman web memiliki berbagai keunggulan. Loka (2010:4) menjelaskan

berbagai macam keunggulan PHP yaitu:

1. Open Source

PHP merupakan pemrograman yang bebas digunakan dan dikembangkan

tanpa harus membayar lisensi.

16

2. Cross Platform

PHP dapat dijalankan hampir di semua sistem operasi.

3. Mendukung banyak database

PHP mendukung banyak database seperti MySQL, PostgreSQL, Oracle dan

masih banyak lagi.

4. On The Fly

PHP memiliki kemampuan untuk membuat dokumen word, excel, PDF dan

masih banyak lagi. Salah satu fitur yang dapat diandalkan oleh PHP adalah

dukungannya terhadap banyak database, salah satunya adalah MySQL.[4]

a. Sintaks PHP

Sintak Sintaks program/script PHP ditulis dalam apitan tanda khusus PHP. Ada

empat macam pasangan tag PHP yang dapat digunakan untuk menandai blok script

PHP:

1) <?php ... ?>

2) <script language = “PHP”> ... </script>

3) <? ... ?>

4) <% ... %>

Cara 1 dan 2 merupakan cara yang paling umum digunakan sekalipun cara 3

tampak lebih praktis karena cara 3 tidak selalu diaktifkan pada konfigurasi file

php.ini. Sedangkan cara 4 dimungkinkan sebagai kemudahan bagi yang sudah

terbiasa dengan ASP (Active Server Pages). Namun, bila ini tidak dikenal, maka

harus dilakukan pengaktifan pada file konfigurasi php.ini.

b. Menampilkan String

Untuk menampilkan string dalam PHP disediakan fungsi seperti ditunjukkan

pada tabel berikut:

Tabel 2. Fungsi Menampilkan String dalam PHP

Fungsi Sintaks

echo echo (string arg1 [,string argn])

print print (string arg)

printf printf (string format [, mixed args])

17

c. Struktur Kontrol

1. Statement if

Statement if digunakan untuk mengeksekusi sebuah blok pernyataan jika

memenuhi kondisi tertentu. Sintaksnya:

Jika kondisi bernilai true (benar), blok pernyataan akan dikerjakan.

Apabila pernyataan yang dikerjakan lebih dari satu, maka harus diletakkan

dalam tanda {}.

2. Statement if ... else ...

Perintah if ... else ... pada prinsipnya mirip dengan perintah if, tetapi ada

kalanya anda menginginkan dua percabangan, yakni jika suatu kondisi

terpenuhi, maka lakukan blok pernyataan1. Jika tidak terpenuhi, lakukan blok

pernyataan2. Untuk kebutuhan tersebut, gunakan statement if ... else.

Sintaksnya:

Jika kondisi bernilai true (benar), maka blok pernyataan1 akan

dikerjakan. Jika bernilai false (salah), maka blok pernyataan2-lah yang akan

dikerjakan.

3. Statement if ... elseif ... else

Statement if ... elseif ... else ... digunakan untuk masalah yang

membutuhkan lebih dari dua percabangan. Statement if ...elseif ... else ...

sering disebut nested if (if bersarang).

if (kondisi)

blok pernyataan

if (kondisi)

{

blok pernyataan1;

}

else

{

blok pernyataan2;

}

18

Sintaksnya:

Jika kondisi1 bernilai true, maka blok pernyataan1 akan dikerjakan. Jika

false, maka diuji kondisi2. Jika kondisi2 bernilai false, maka diuji kondisi

berikutnya. Namun, jika tidak ada kondisi yang terpenuhi, maka akan

dikerjakan blok pernyataan ke-N.

4. Statement while

Statement while adalah statement yang digunakan untuk melakukan

perulangan mengevaluasi blok pernyataan selama kondisi true (benar), dan

akan berhenti apabila kondisi bernilai false (salah).

Sintaksnya:

kondisi adalah pernyataan boolean.

blok pernyataan adalah daftar statement yang akan diulang selama

kondisi terpenuhi.

5. Statement do ... while

Pada prinsipnya statement do ... while sama dengan cara kerja while,

hanya saja pada do ... while blok pernyataan pasti dikerjakan sekali dan

kemudian dilakukan pengujian kondisi. Jika kondisi masih terpenuhi (true),

maka blok pernyataan dikerjakan lagi. Namun, jika kondisi tidak terpenuhi

(false) lagi, maka perulangan berhenti.

if (kondisi1)

{

blok pernyataan1;

}

elseif (kondisi2)

{

blok pernyataan2;

}

...

else

{

blok pernyataanN;

}

while (kondisi)

{

blok pernyataan;

}

19

Sintaksnya:

kondisi adalah bernilai boolean.

blok pernyataan adalah daftar statement yang diulang selama kondisi

dipenuhi (benar). Jika kondisi tidak terpenuhi (salah), maka anda bisa

keluar dari perulangan dan mengerjakan statement setelah while.

6. Statement for

Statement for adalah statement yang digunakan untuk mengulang blok

pernyataan dalam jumlah yang ditentukan berdasarkan inisialisasi awal,

akhir/kondisi, dan nilai penambahan atau pengurangan yang ditentukan.

Sintaksnya:

Statement for bekerja sebagai berikut:

inisialisasi sebagai nilai awal.

kondisi diuji; jika bernilai true (benar), maka perulangan dilanjutkan

dengan mengerjakan blok pernyataan, sedangkan jika bernilai false

(salah), maka perulangan berhenti dan blok pernyataan dilompati.

Jika blok pernyataan hanya terdiri dari satu baris, maka tanda {} dapat

ditiadakan.

increment merupakan nilai penambahan atau pengurangan untuk

mengulangi pengerjaan blok pernyataan setelah penambahan atau

pengurangan yang nilai kebenarannya diuji apakah kondisi masih

terpenuhi.

do {

blok pernyataan;

} while (kondisi);

for (inisialisasi; kondisi; increment)

{

blok pernyataan;

}

20

7. Statement require

Statement require() merupakan konstruksi bagi parser PHP yang

digunakan untuk membuka file yang diberi dan membaca nilai variabel serta

fungsi yang terdapat didalamnya untuk kemudian mengeksekusinya. File

akan diperlakukan sebagai suatu script PHP normal. Apabila file tersebut

berisi tag-tag PHP, maka akan dievaluasi terlebih dahulu sebelum

mengirimnya ke browser, tetapi apabila hanya berisi teks biasa, maka akan

dikirim langsung ke browser. Statement require() tidak dapat dimasukkan ke

dalam struktur perulangan karena hanya boleh dipanggil satu kali.

Sintaksnya:

string filename menyatakan nama file yang akan digabungkan.

8. Statement include

Statement include() merupakan konstruksi bagi parser PHP yang

digunakan untuk membuka dan membaca nilai variabel dari file yang

dinyatakan serta fungsi yang tedapat didalamnya untuk kemudian

mengeksekusinya.

File akan diperlakukan sebagai suatu script PHP normal. Apabila file

tersebut berisi tag-tag PHP, maka akan dievaluasi terlebih dahulu sebelum

mengirimnya ke browser, tetapi apabila hanya berisi teks biasa, maka akan

dikirim langsung ke browser. Statement include() dapat dimasukkan dala

struktur perulangan.

Sintaksnya:

string filename menyatakan nama file yang akan digabungkan.

9. Statement require _once

Statement require_once() secara prinsip sama dengan statement

require(). Perbedaannya terletak pada penggunaan require_one. Untuk itu

pemanggilan suatu fungsi dapat dihindari jika terjadi duplikasi.

Sintaksnya:

string filename menyatakan nama file yang akan digabungkan.

require (string filename)

include (string filename)

require_once (string filename)

21

10. Statement include_once

PHP juga menyediakan statement include_once() yang bertindak sama

seperti require_once() dengan suatu perbedaan utama. Statement

require_once() memungkinkan eksekusi script berhenti dengan suatu fatal

error apabila file target yang ingin digabungkan tidak ditemukan. Statement

include_once() memunculkan suatu peringatan kesalahan sementara eksekusi

script terus berlanjut apabila file target yang hendak digabungkan tidak

ditemukan.

Sintaksnya:

string filename menyatakan nama file yang akan digabungkan.

d. Session

Session dalam PHP dapat dapat dimulai dengan dua cara, yaitu secara

otomatis dan menggunakan fungsi session pada script PHP. Untuk memulai session

secara otomatis, file php.ini perlu diedit dengan melakukan perubahan pada baris

session.auto.start = 0 menjadi session.auto.start = 1, kemudian simpan perubahan

tersebut dan restart kembali web server. Untuk memulai session menggunakan

fungsi pada PHP, gunakan fungsi session_start().

Penggunaan session dengan session_start() akan menghasilkan file session

dengan nama sess_ diikuti oleh nilai session_id. Session dapat juga dibuat dengan

menggunakan fungsi session_register(). Penggunaan session_register() PHP

memungkinkan penyimpanan variabel dan nilainya dalam file.

Untuk mengakhiri session digunakan fungsi session_destroy(). Sedangkan

untuk menghapus semua variabel session, digunakan fungsi session_unset().

Sementara itu, untuk menghapus sebuah variabel dari sebuah session dan agar

session tetap ada, dapat digunakan fungsi session_unregister(nama variabel).

e. Koneksi PHP dengan MySQL

Untuk melakukan koneksi dengan MySQL, PHP telah menyediakan berbagai

fungsi untuk kebutuhan tersebut. Beberapa dari fungsi tersebut antara lain sebagai

berikut:

include_once (string filename)

22

1) mysql_connect()

Fungsi mysql_connect() digunakan untuk membuat/membuka koneksi ke

suatu server MySQL.

Sintaks :

Keterangan :

o server merupakan nama server MySQL.

o username merupakan nama pemakai yang digunakan untuk melakukan

koneksi.

o password merupakan kata sandi yang digunakan username tersebut.

Nilai balik fungsi berupa nilai integer, dan FALSE bila terjadi kesalahan.

Contoh:

<?php

$conn = mysql_connect(“localhost”, “kasiman”, “”);

echo $conn;

?>

2) mysql_connect()

Fungsi mysql_pconnect() digunakan untuk membuat/membuka koneksi ke

suatu server MySQL secara persisten.

Sintaks :

Keterangan:

• server merupakan nama server MySQL.

• username merupakan nama pemakai yang digunakan untuk melakukan

koneksi.

• password merupakan kata sandi yang digunakan username tersebut.

Nilai balik fungsi berupa nilai integer, dan FALSE bila terjadi kesalahan.

Perbedaan koneksi mysql_connect() dengan mysql_pconnect ada dua hal, yaitu:

a) Saat koneksi, fungsi mysql_pconnect akan mencoba menemukan koneksi

persisten yang lain pada server dengan username yang sama. Jika ditemukan,

koneksi akan menggunakan koneksi yang telah ada tersebut daripada membuka

koneksi yang baru.

mysql_connect(“server”, “username”, “password”)

mysql_connect(“server”, “username”, “password”)

23

b) Koneksi ke server MySQL tidak akan ditutup ketika eksekusi script berakhir,

bahkan fungsi mysql_close pun tidak dapat menutup koneksi yang dibangun

dengan mysql_pconnect.

Contoh:

<?php

$conn = mysql_pconnect(“localhost”, “kasiman”, “”);

echo $conn;

?>

3) mysql_close()

Fungsi mysql_close digunakan untuk menutup koneksi server MySQL.

Sintaks:

Keterangan:

link_identifier merupakan pengenal yang dihasilkan dari fungsi

mysql_connect.

Nilai balik TRUE apabila sukses, dan FALSE bila terjadi kesalahan.

Contoh :

<?php

$conn = mysql_connect(“localhost”, “kasiman”, “”);

echo $conn;

mysql_close($conn);

?>

4) mysql_select_db()

Fungsi mysql_select_db digunakan untuk memilih database yang akan

digunakan.

Sintaks :

Keterangan:

database_name merupakan nama database yang dipilih.

link_identifier merupakan pengenal yang dihasilkan dari perintah

mysql_connect.

Nilai balik fungsi ini TRUE apabila sukses, dan FALSE bila terjadi kegagalan.

mysql_close([link_identifier])

mysql_select_db(database_name [, link_identifier])

24

Contoh:

<?php

$conn = mysql_connect(“localhost”, “kasiman”, “”) or

die (“Koneksi Gagal”);

mysql_select_db(“kawan”, $conn);

mysql_close($conn);

?>

5) mysql_query()

Fungsi mysql_query digunakan untuk memasukkan perintah-perintah SQL ke

dalam PHP.

Sintaksnya:

Keterangan:

query merupakan perintah SQL.

link_identifier merupakan pengenal yang dihasilkan dari perintah

mysql_connect.

Nilai balik fungsi ini:

resource untuk perintah SELECT, SHOW, DESCRIBE, atau EXPLAIN,

mysql_query() dan FALSE jika terjadi kesalahan.

TRUE untuk perintah SQL yang lain, UPDATE, DELETE, DROP, dan

lainnya jika sukses dan FALSE jika terjadi kesalahan.

Hasil dilewatkan ke mysql_fetch_array(), dan fungsi-fungsi lainnya

untuk hasil lebih detail tabel dalam mengakses data.

Pergunakan mysql_num_rows() untuk mencari berapa banyak baris yang

dihasilkan untuk perintah SELECT atau mysql_affected_rows() untuk

mencari berapa banyak baris yang dipengaruhi oleh perintah DELETE,

INSERT, REPLACE, atau UPDATE.

mysql_query() juga akan gagal dan bernilai balik FALSE jika username

tidak memiliki hak akses terhadap tabel yang diacu oleh query.

6) mysql_fetch_array()

Fungsi mysql_fetch_array digunakan untuk mengambil record dari database

dan memasukannya ke dalam array assosiatif, array numerik, atau keduanya.

mysql_query(query[,link identifier])

25

Sintaks:

Keterangan:

result merupakan query.

result_type merupakan nilai konstanta yang dapat berupa

MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH (default).

7) mysql_fetch_row()

Fungsi mysql_fetch_row ini digunakan untuk mengambil record dari

database dan memasukkannya ke dalam array numerik, kebalikan dari

mysql_fetch_array() yang hanya menghasilkan array assosiatif.

Sintaknya:

Keterangan:

result merupakan perintah query.

8) mysql_num_rows()

Fungsi mysql_num_rows ini digunakan untuk memperoleh informasi jumlah

record/baris data dari suatu query.

Sintaksnya:

Keterangan:

result merupakan nilai dari pemanggilan fungsi mysql_num_query atau

mysql_query.

9) mysql_num_fields()

Fungsi mysql_num_fields ini digunakan untuk memperoleh informasi jumlah

kolom dari suatu query.

Sintaksnya:

Keterangan:

result merupakan nilai dari pemanggilan fungsi mysql_num_query atau

mysql_query.

mysql_fetch_array(result[, int result_type])

mysql_fetch_row(resource result);

mysql_num_rows(resource result);

mysql_num_fields(resource result);

26

2.9 XAMPP

XAMPP adalah perangkat lunak bebas, yang mendukung banyak sistem

operasi, merupakan kompilasi dari beberapa program. Fungsinya adalah sebagai

server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP

Server, MySQL database, dan penerjemah bahasa yang ditulis dengan bahasa

pemrograman PHP dan Perl. Nama XAMPP merupakan singkatan dari X (empat

sistem operasi apapun), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam

GNU General Public License dan bebas, merupakan web server yang mudah

digunakan yang dapat melayani tampilan halaman web yang dinamis. Untuk

mendapatkanya dapat mendownload langsung dari web resminya.

2.10 SQL

Data adalah bagian penting dari pemrograman modern sehingga keseluruhan

bahasa program menyediakan fungsi untuk mengakses database. Standar utama

untuk bahasa database adalah Structured Query Language (SQL). SQL

distandarisasi sebagai bahasa untuk menciptakan database, menyimpan informasi

ke dalam database, dan mendapatkan kembali informasi darinya. Aplikasi khusus

dan lingkungan pemrograman mengkhususkan diri untuk menginterpretasikan data

SQL. [4]

Seorang programmer akan memulai dengan menciptakan suatu struktur data

di dalam SQL dan kemudian menulis suatu program dalam bahasa (PHP) untuk

mengakses data tersebut. Program PHP kemudian bisa memformulasikan

permintaan atau memperbaharui data tersebut, yang dilewatkan ke interpreter SQL.

a. Konsep Databse

1) Entitas dan Relationship

Entitas adalah berbagai hal dalam dunia nyata yang informasinya disimpan

dalam database. Sebagai contoh, kita dapat menyimpan informasi pegawai dan

bekerja untuk departemen tertentu. Dalam kasus ini, pegawai merupakan suatu

entitas dan departemen juga merupakan entitas.

Relationship adalah hubungan antar entitas. Sebagai contoh, seorang pegawai

bekerja untuk suatu departemen. Bekerja untuk adalah relationship antara entitas

pegawai dan entitas departemen.

27

Relationship terdiri dari tiga derajat berbeda, yakni one-to-one, one-to-many

(many-to-one), dan many-to-many. One-to-one menghubungkan secara tepat dua

entitas dengan satu kunci (key). Misalnya, dalam suatu perusahaan satu orang

pegawai memiliki satu komputer saja.

One-to-many (many-to-one) merupakan hubungan antar entitas dimana kunci

(key) pada satu tabel muncul berkali-kali dalam tabel lainnya. Misalnya, banyak

pegawai bekerja untuk satu perusahaan.

Many-to-many merupakan hubungan yang sering menyebabkan

permasalahan dalam prakteknya. Dalam hubungan many-to-many, kunci utama

(primary key) dari tabel kedua dapat muncul beberapa kali pada tabel pertama.

Misalnya, dalam suatu perusahaan, banyak pegawai bekerja untuk banyak

departemen. Untuk mengatasi permasalahan tersebut, dibutuhkan tabel antara.

2) Relasi atau Tabel

Database terdiri dari sekumpulan relasi atau tabel. Relasi dan tabel memiliki

arti yang sama.

3) Kolom atau Attribute

Dalam tabel database, setiap kolom atau attribute menjelaskan beberapa

bagian record data yang disimpan dalam tabel. Kolom adalah bagian dari tabel,

sedangkan suatu attribute berkaitan dengan entitas dunia nyata yang merupakan

pemodelan tabel. Seperti pada tabel pegawai sebelumnya, dapat dilihat bahwa

setiap pegawai memiliki satu NoPegawai, Nama, Pekerjaan, dan KodeDepartemen

yang merupakan kolom, tetepi sering juga disebut attribute dari tabel pegawai.

4) Baris, Record, dan Tuple

Pada tabel pegawai sebelumnya, setiap baris pada tabel mewakili suatu

record pegawai. Setiap baris dalam tabel sering juga disebut record atau tuple yang

terdiri dari suatu nilai untuk setiap kolom dalam tabel.

5) Kunci (Key)

Suatu superkey adalah suatu kolom yang dapat digunakan untuk

mengidentifikasi suatu baris dalam tabel. Suatu key adalah suatu minimal superkey.

Sebagai contoh, pada tabel pegawai sebelumnya, kita dapat menggunakan

NoPegawai dan Nama secara bersama-sama untuk mengidentifikasi baris-baris

dalam tabel. Kita juga dapat menggunakan seluruh klom sebagai superkey.

28

Namun, kita tidak membutukan seluruh kolom tersebut untuk

mengidentifikasi suatu baris. Kita hanya butuh NoPegawai. Ini adalah suatu

minimal superkey yang merupakan suatu minimal kolom yang dapat digunakan

untuk mengidentifikasi suatu baris tunggal, maka NoPegawai adalah suatu key.

Kita dapat mengidentifikasi seorang pegawai dengan Nama atau dengan

NoPegawai yang merupakan dua key yang disebut candidate key. Disebut candidate

key karena dengan kedua kolom tersebut kita akan memilih salah satu yang menjadi

primary key. Primary key adalah sutu kolom atau sekumpulan kolom yang akan

digunakan untuk mengidentifikasi secara tunggal setiap baris dari suatu tabel.

Dalam hal ini, kita akan membuat NoPegawai sebagai primary key karena secara

umum Nama mungkin ada yang sama.

Foreign key menyatakan hubungan antar tabel. Sebagai contoh, pada tabel

pegawai dapat dilihat bahwa KodeDepartemen menyimpan suatu nomor

departemen yang akan disimpan dalam suatu tabel terpisah dengan primary key-nya

adalah KodeDepartemen.

b. MySQL

Loka (2010:6) mendefinisikan MySQL adalah basis data (database).

Database menurut Loka (2010:6) merupakan suatu jalan untuk dapat menyimpan

berbagai informasi dengan membaginya berdasarkan kategori-kategori tertentu.

Dimana informasi-informasi tersebut saling berkaitan, satu dengan yang lainnya.

Loka (2010) menjelaskan bahwa MySQL bersifat Relational Database

Management System (RDBMS). RDBMS memungkinkan seorang admin dapat

menyimpan banyak informasi ke dalam tabel, dimana tabel tersebut saling berkaitan

satu sama lain. Keuntungan RDBMS sendiri adalah kita dapat memecah database

ke dalam tabel - tabel yang berbeda. setiap tabel memiliki informasi yang berkaitan

dengan tabel yang lainnya (Loka, 2010:6). Menurut Loka (2010:6), MySQL

memiliki berbagai keunggulan sebagai RDMS yaitu,[8]

1) Gratis

2) Cross platform

3) Lengkap dan cepat

MySQL merupakan basis data tipe RDBMS yang cocok digunakan dalam

software berbasis web karena kemampuannya untuk dapat digunakan dalam

29

platform yang berbeda, cepat dan sifatnya yang gratis. Selain itu, MySQL juga

didukung oleh banyak web server sehingga MySQL merupakan database yang

tepat digunakan untuk website.

c. Membuat Database

Pembuatan suatu database dapat dilakukan dengan perintah SQL berikut:

create database nama_database;

Contoh :

mysql>create database pegawai;

Untuk memastikan apakah perintah tersebut berhasil dilakukan, dapat

menggunakan perintah SQL berikut:

mysql>show database;

Apabila berhasil, akan tampil nama database yang baru dibuat.

d. Memilih Database

Sebelum dapat membuat tabel atau mengerjakan sesuatu berkaitan dengan

database yang dibuat, kita perlu memberitahu MySQL bahwa kita akan bekerja

dengan database baru kita. Untuk memilih database, dapat diberikan perintah

berikut:

use nama_database;

Contoh :

mysql>use pegawai;

Artinya, seluruh aksi berikutnya akan diaplikasikan terhadap database

tersebut.

e. Menghapus Database

Contoh:

mysql>drop database pegawai;

Perintah tersebut sebaiknya digunakan secara hati-hati karena MySQL

menjalankan perintah tersebut tanpa memberi peringatan.

30

f. Membuat Tabel

Contoh :

mysql>create table pegawai (

->NoPegawai int not null auto increment,

->Nama varchar (50),

->Pekerjaan varchar (30),

->KodeDepartemen int not null,

->primary key (NoPegawai));

Setelah perintah pembuatan tabel diberikan, untuk memastikan tabel telah

sukses terbentuk atau belum dapat diberikan perintah SQL berikut:

show tables;

g. Menghapus Tabel

Perintah SQL dapat digunakan untuk menghapus tabel sebagai berikut:

drop table nama_tabel;

Contoh :

drop table pegawai;

Perintah tersebut sebaiknya dilakukan secara hati-hati karena MySQL

menjalankan perintah tanpa memberi peringatan.

h. Menyisipkan Data ke dalam Tabel

Contoh :

mysql> insert into

-> instruktur(kd_instruktur, instruktur)

-> values(‘001’, ‘Andi’);

Hasil perintah diatas adalah sebagai berikut:

kd_instruktur instruktur

001 Andi

i. Menampilkan Data

Perintah untuk menampilkan data yang tersimpan dalam tabel dapat

dilakukan dengan perintah select.

1) Menampilkan data dari seluruh field/kolom

Contoh :

mysql> select * from belajar;

31

2) Menampilkan data dari field/kolom tertentu

Contoh:

mysql> select no_siswa from belajar;

3) Menampilkan data dengan mengacu nama tabel secara absolut Terkadang kita

memiliki field/kolom yang sama dari tabel yang berbeda. Oleh karena itu, untuk

menampilkan data dari satu tabel secara absolut, anda dapat mengacu pada nama

tabel yang dikehendaki.

Contoh:

mysql> select siswa.no_siswa, siswa.nama_siswa from siswa;

4) Menampilkan data tanpa data kembar dengan DISTINCT

Contoh:

mysql> select DISTINCT no_siswa from belajar;

5) Menampilkan data berdasarkan kondisi WHERE

Contoh:

Menampilkan data dari tabel rekan yang berusia 30 sampai

dengan 40:

mysql> select * from rekan where usia between 30 and 40;

atau

mysql> select * from rekan where usia>=30 and usia<=40;

Menampilkan data dari tabel rekan yang namanya diawali

dengan karakter R:

mysql> select * from rekan WHERE nama LIKE “R%”;

6) Menampilkan data berdasarkan klausa GROUP BY

Contoh:

Menampilkan data dari tabel rekan dengan menghitung jumlahnya

berdasarkan alamat:

mysql> select count(*), alamat FROM rekan GROUP BY alamat;

7) Menampilkan data dengan klausa ORDER BY

Klausa ORDER BY digunakan untuk menampilkan hasil urut asc

(ascending) dari kecil ke besar dan desc (descending) dari besar ke kecil.

32

Contoh:

Untuk menampilkan data rekan terurut dari besar ke kecil berdasarkan usia:

mysql> select * from rekan ORDER BY usia desc;

8) Menampilkan data dengan klausa LIMIT

Klausa LIMIT digunakan untuk menampilkan data berdasarkan jumlah baris

data atau range baris data.

Contoh:

Untuk menampilkan data dari tabel rekan setelah data baris ke 3 sebanyak

4:

mysql> select * from rekan LIMIT 3,4;

9) Menampilkan data dari gabungan beberapa tabel dengan JOIN

Contoh:

Untuk menampilkan data gabungan dari tabel siswa dan tabel

belajar:

mysql> select * from belajar CROSS JOIN siswa;

Untuk menampilkan data gabungan tabel belajar dan tabel siswa yang

orangnya sama, perlu ditambahkan kondisi (klausa WHERE).

mysql> select * from belajar CROSS JOIN siswa WHERE

belajar.no_siswa=siswa.no_siswa;

j. Mengubah Data (Update)

Data yang tersimpan dalam tabel ternyata telah kadaluarsa atau terdapat

kesalahan, maka data dapat diubah dengan perintah update. Untuk mengubah data

dari tabel rekan bernama Erlinda menjadi Erlinda Restu Ningsih, lakukan perintah:

mysql> update rekan set nama=’Erlinda Restu Ningsih’ WHERE

nama=’Erlinda’;

k. Menghapus Data (Delete)

Apabila data yang telah tersimpan tidak diperlukan lagi, data tersebut dapat

dihapus dengan perintah delete.

Contoh:

Untuk menghapus data rekan yang bernama Ray, lakukan dengan perintah:

mysql> delete from rekan WHERE nama=’Ray’;

33

2.11 Data Flow Diagram (DFD)

Rossa dan Shalahuddin (2011), menjelaskan bahwa DFD adalah representasi

grafik yang menggambarkan aliran informasi dan transformasi informasi yang

diaplikasikan sebagai data yang mengalir dari masukan (input) dan keluaran

(output). Menurut Kristanto (2008)DFD adalah suatu model logika data atau proses

yang dibuat untuk menggambarkan darimana asal data dan kemana tujuan data yang

keluar dari sistem. Arus data (Data Flow) di DFD diberi simbol suatu anak panah.

Arus data mengalir diantara proses (process), simpanan data (data store), dan

kesatuan luar (external entity).[12]

DFD dapat digunakan untuk merepresentasikan sebuah sistem atau perangkat

lunak pada beberapa level abtraksi. DFD dapat dibagi menjadi beberapa level yang

lebih detail untuk merepresentasikan aliran informasi atau fungsi yang lebih detail.

Edward Yourdon dan

Tom DeMarco Keterangan

Chris Gane dan Trish

Sarson

Source (Entitas Luar)

Proses

Data Flow

(Aliran / Arus Data)

Data Store

(Penyimpanan Data)

Gambar 2.6 Simbol – Simbol Pada DFD

DFD digambarkan di awal merupakan level teratas, diagram ini disebut

context diagram. Diagram tersebut kemudian digambar secara lebih rinci lagi yang

disebut overview diagram. Tahapan perancangan menggunakan DFD lebih rinci

sebagai berikut:

a. Membuat DFD Level 0 atau sering disebut juga dengan Context Diagram.

DFD level 0 menggambarkan suatu sistem yang akan dibuat sebagai suatu

entitas tunggal yang berinteraksi dengan orang maupun sistem lain. Penomoran

34

proses yang ada di dalam DFD Level 0 menggunakan angka 0 dan hanya ada satu

proses didalamnya. Pada diagram ini belum diperbolehkan adanya data store

karena diagram ini menggambarkan sistem secara keseluruhan.

Gambar 2.7 Context Diagram

b. Membuat DFD level 1

DFD level 1 digunakan untuk menggambarkan modul-modul yang ada dalam

sistem yang dikembangkan. DFD level 1 merupakan hasil breakdown DFD level 0

yang telah dibuat. DFD level 1 juga disebut sebagai Diagram Nol/Zero atau lebih

biasa disebut sebagai Overview Diagram. Pada level ini sudah dimungkinkan

digambarkannya data store yang digunakan. Penomoran proses DFD level 1

dimulai dengan angka 1.0, 2.0, 3.0, dan seterusnya.

Gambar 2.8 Contoh Diagram Level 1

35

c. Membuat DFD Level 2

Modul-modul pada DFD level 1 dapat di-breakdown menjadi DFD level 2.

Jumlah DFD level 2 sama dengan jumlah proses pada DFD level 1 yang di-

breakdown.

DFD level 2 dan seterusnya disebut diagram rinci, misal DFD level 2 dari

proses 1.0 maka diagram tersebut dapat disebut Diagram Rinci 1.0. Penomoran

proses pada level 2 dimulai dengan angka 1.1, 1.2, 1.3 dan seterusnya. Pada diagram

level 2 harus benar-benar diperhatikan keseimbangan aliran data antara diagram

nol dan diagram rinci juga keseimbangan pada data store yang ada.

Gambar 2.9 Contoh Diagram Level 2

d. Membuat DFD level 3 dan seterusnya

DFD level 3, 4, 5 dan seterusnya merupakan breakdown dari modul DFD

level diatasnya. Breakdown pada level 3, 4, 5 dan seterusnya aturannya sama persis

dengan DFD level 1 atau level 2. Penomoran prosesnya untuk DFD level 3 dimulai

dari angka 1.1.1, 1.1.2, 1.1.3 dan seterusnya.

2.12 Entity Relationship Diagram (ERD)

Menurut Rossa dan Shalahuddin (2011), ERD adalah pemodelan data utama

yang membantu mengorganisasikan data dalam suatu proyek ke dalam entitas-

entitas dan menentukan hubungan antar entitas. ERD merupakan suatu model untuk

menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar

data yang mempunyai hubungan antar relasi.[12]

36

Menurut pendapat Kroenke (2006)Entity-Relationship Diagram (ERD)

adalah suatu pemodelan konseptual yang didesain secara khusus untuk

mengidentifikasikan entitas yang menjelaskan data dan dan hubungan antar data,

yaitu dengan menuliskan cardinality. Sedangkan menurut Kadir (2009) Model E-R

(Diagram ER) adalah suatu model yang digunakan untuk menggambarkan data

dalam bentuk entitas, atribut dan hubungan antarentitas. Huruf E menyatakan

entitas dan R menyatakan hubungan (dari kata Relationship).

Gambar 2.10 Contoh Gambar ERD

ERD adalah suatu model penyajian data dengan menggunakan entitas dan

atribut yang saling berhubungan. ERD untuk memodelkan struktur data dan

hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan

simbol.

Pada dasarnya ada tiga simbol yang digunakan, yaitu :

a. Entitas

Entitas merupakan objek dari sesuatu yang nyata maupun abstrak. Simbol

dari entitas ini biasanya digambarkan dengan persegi panjang.

b. Atribut

Setiap Setiap entitas pasti mempunyai elemen yang disebut atribut yang

berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut.. Gambar atribut

diwakili oleh simbol elips.

c. Relasi (hubungan)

Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang

berbeda. Biasanya digambarkan dengan simbol panah.

37

Jenis hubungan diantara dua tipe entitas dinyatakan dengan istilah hubungan

one-to-one, one-to-many, many-to-one, dan many-to-many (Kadir, 2003).

Diasumsikan terdapat dua buah tipe entitas yang diberi nama X dan Y dapat saling

berhubungan, penjelasan dari masing-masing jenis hubungan yang dapat terjadi

pada X dan Y tersebut adalah sebagai berikut:

1) Hubungan one-to-one (1:1)

Setiap entitas pada tipe entitas X paling banyak berpasangan dengan satu

entitas pada tipe entitas Y, begitu pula sebaliknya.

2) Hubungan one-to-many (1:M)

Setiap entitas pada tipe entitas X bisa berpasangan dengan banyak entitas

pada tipe entitas Y, sedangkan setiap entitas pada entitas Y hanya dapat

berpasangan dengan satu entitas pada entitas X.

3) Hubungan many-to-one (M:1)

Setiap entitas pada tipe entitas X paling banyak berpasangan dengan satu

entitas pada tipe entitas Y dan setiap entitas pada tipe entitas Y dapat

berpasangan dengan banyak entitas pada tipe entitas X.

4) Hubungan many-to-many (M:M)

Setiap entitas pada suatu tipe entitas X bisa berpasangan dengan banyak

entitas pada tipe entitas Y dan begitu pula sebaliknya.

Gambar 2.11 Notasi Dasar Dalam ERD

Kardinalitas hubungan menggambarkan banyaknya jumlah anggota entitas

yang terlibat di dalam relasi yang terjadi dan menjelaskan jenis hubungan apa

yang yang terjadi antar entitas satu dengan entitas lainnya.