BAB II LANDASAN TEORI
2.1
Teori Dasar PHP Atau Personal Home Page 2.1.1
PHP
Ada beberapa pengertian tentang PHP. Akan tetapi kurang lebih PHP dapat di artikan sebagai PHP Hypertext preeprocesor. Ini merupakan bahasa yang hanya dapat berjalan pada server yang hasilnya dapat ditampilkan pada klien. Interpreter PHP dalam mengeksekusi kode PHP pada sisi server berbeda dengan mesin virtual yang mengeksekusi program pada sisi klien. Proses eksekusi kode PHP yang disisipkan pada halaman HTML secara diagram dapat digambarkan sebagai berikut:
Web Server
Html format
Gambar 2. 1 Struktur Pembacaan Web Server (http://www.deptan.go.id/pusdatin/admin/RB/Programming/MateriPHP.pdf)
PHP adalah program yang fleksibel artinya skrip-skrip PHP dapat ditulis pada sela-sela tag HTML. Hampir seluruh aplikasi berbasis web dapat dibuat dengan PHP ini, namun fungsi PHP yang paling utama adalah
untuk
menghubungkan database dengan web. Ada beberapa fungsi yang digunakan 7
8
dalam aplikasi antara PHP dan MySQL. Fungsi-fungsi tersebut sangat erat kaitannya dengan query SQL. Akan tetapi kita tidak dapat langsung menggunakan perintah SQL pada script PHP. Di fungsi MySQL lah yang digunakan sebagai penghubung antar SQL sehingga Query tersebut dapat dilihat hasilnya oleh klien. Untuk dapat menggunakan semua perintah SQL pada PHP kita memerlukan suatu fungsi MySQl. Fungsi ini berguna untuk mengantarkan perintah SQL pada PHP menuju server sehingga perintah tersebut dapat dieksekusi oleh server MySQL. Tabel 2.1 Perintah Dasar PHP Untuk Database MySQL (http://www.deptan.go.id/pusdatin/admin/RB/Programming/MateriPHP.pdf)
Fungsi MySQL
Penggunaan
Mysql_close()
Digunakan untuk menutup koneksi dengan MySQL
Mysql_connect()
Untuk membuka koneksi dengan database MySQL server
Mysql_fetch_array() Menghasilkan data array dalam bentuk field dari MySQL Mysql_fetch_row()
Menghasilkan array / baris dengan keluaran nama field pada tabel MySQL.
Mysql_num_field()
Menghasilkan nilai jumlah field
Mysql_num_row()
Menghasilkan nilai jumlah baris
Mysql_result()
Untuk menghasilkan data
mysql_select_db()
Digunakan untuk masuk pada database MySQL
mysql_query()
Digunakan untuk mengirimkan perintah SQL.
9
Gambar 2.2 Tampilan output dalam PHP (http://hadian-alkani.blogspot.com/2011/04/belajar-php-bagian-2-output-dalam-php.html)
2.2
Database MySQL MySQL merupakan software sistem manajemen database yang paling
populer di gunakan untuk membangun aplikasi web yang menggunakan database sebagai sumber dan pengelola datanya. Database MySQL tersedia secara bebas dan digunakan oleh setiap orang dengan lisensi open source GNU General Public License (GPL) ataupun lisensi komersial non GPL. MySQL dikenal sebagai database yang pertama kali didukung oleh bahasa pemrograman script untuk internet – PHP (yang akan dibahas kemudian) dan Perl. MySQL dan PHP dianggap sebagai pasangan berbasis web yang ideal. Database MySQL tersedia untuk banyak sistem operasi, berikut adalah daftar sistem operasi berikut adalah daftar sistem operasi yang telah mempunyai distribusi binary (exetuble)-nya. •
Linux Redhat
•
Windows (95/98/2000/XP)
10
• 2.2.1
Berbagai varian unix seperti MacOS X, HP-UX dan lain-lain.
Type data dalam MySQL Nilai numerik adalah semua data yang berupa bilangan yang dapat
dioperasikan dengan menggunakan operasi matematika. Berikut adalah tipe data numerik dalam MySQL: Tabel 2.2 Tipe Data Numerik (http://www.hendrik-perdana.web.id/basis-web/pemrograman-php/141-tipe-tipedata-yang-didukung-oleh-mysql)
Nama tipe
Range Nilai
Byte
Tinyint
Signed: -128 s/d 127 Unsigned: 0 s/d 255
1
Smallint
Signed: -32678 s/d 32767 Unsigned: 0 s/d 65535
2
Mediumint Signed: -8388608 s/d 8388607 Unsigned: 0 s/d 16777215
3
Int
Signed: -2147483648 s/d 2147483647 Unsigned: 0 s/d 4294967295
4
Bigint
Signed: -9223372036854775808 s/d 9223372036854775807 Unsigned: 0 s/d 18446744073709551615 Minimum ± 1.175494351e -38 Maksimum ± 3.402823466e +38
8
Float
Double
4
Minimum ± 2.2205738585072014e -308 Maksimum ± 1.7976931348623457e +308
Nilai string atau karakter adalah semua data berupa teks( huruf dan tanda baca) dan angka. Tipe data string dibedakan menjadi :
11
Tabel 2.3 Tipe Data String (http://www.hendrik-perdana.web.id/basis-web/pemrograman-php/141-tipe-tipedata-yang-didukung-oleh-mysql)
Nama tipe
Arti
CHAR
String karakter dengan panjang yang tetap
VARCHAR
String karakter dengan panjang yang tidak tetap
TIYNBLOB
Blob (binary large object) yang sangat kecil
BLOB
Blob berukuran kecil
LONGBLOB
Blob berukuran besar
TNYTEXT
String teks yagn sangat kecil
TEXT
String teks berukuran kecil
MEDIUMTEXT
String teks berukuran sedang
LONGTEXT
String teks berukuran besar
Nilai tanggal dan waktu merupakan nilai data khusus yang digunakan untuk menyimpan data tanggal dan waktu. Nilai Null adalah nilai khusus dalan suatu kolom pada suatu baris yang isinya kosong dalam pengertian kosong yang sebenarnya tidak memiliki isi
2.3
UML
2.3.1 Unified Moddeling Language (UML) UML (Unified Modelling language) adalah salah sebuah bahasa grafik untuk memvisualisasi dan sebagai satu alat bantu yang sangat handal di dunia pengembang sistem yang berorientasi objek. Hal ini disebabkan karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang
12
sistem untuk membuat cetak biru atas visi mereka dalam bentuk yang baku, mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi (sharing) dan mengkomunikasikan rancangan mereka dengan yang lain. UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan oleh Booch, Object Modelling Technique (OMT) dan Object Oriented Software Engineering (OOSE). Metode Booch dari Grandy Booch sangat terkenal dengan metode Design Object Orented.Metode ini menjadikan proses analisis dan desain ke dalam empat tahapan iteratif, yaitu: identifikasi class-class dan obyek-obyek, identifikasi semantik dari hubungan obyek dan class tersebut, perincian interfce dan implementasi. Keunggulan metode Booch adalah pada detail dan kayanya dengan notasi dan elemen 2.3.2 Diagram Use-Case Use-Case Diagram merupakan salah satu diagram untuk memodelkan aspek
perilaku
sistem.
Masing-masing
diagram
use-case
menunjukkan
sekumpulan use-case, aktor dan hubungannya. Diagram use-case penting untuk memvisualisasikan, menspesifikasikan dan mendokumentasikan kebutuhan perilaku sistem. Use-case adalah diagram yang menggambarkan interaksi antara sistem dengan sisetm eksternal dan pengguna, dengan kata lain secara grafis menggambarkan siapa yang akan menggunakan sistem dan dengan cara apa pengguna mengharapkan untuk berinteraksi dengan sistem. (whitten : 2004, 72). Sebuah Diagram use-case mengandung :
13
•
Aktor. Aktor menggambarkan pengguna software, aplikasi (user). Aktor membantu memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi, satu aktor mungkin seorang manusia, satu device hardware atau sistem informasi lain. Aktor berkomunikasi dengan sistem lewat pengiriman dan penerimaan pesan. Use case selalu diawali oleh aktor yang mengirim pesan, disebut dengan stimulus. Ketika satu use case dilakukan, use case dapat mengirim pesan ke satu aktor atau lebih. Sebuah aktor dinotasikan dengan gambar berikut :
Gambar 2. 3 Simbol Actor •
Use Case. Use case menggambarkan perilaku software aplikasi, urutan transaksi yang berhubungan yang dilakukan oleh suatu aktor dengan software aplikasi atau sistem yang memberikan sesuatu yang bernilai kepada aktor. Setiap Use Case harus diberi nama yang menyatakan apa yang harus dicapai dari hasil interaksinya dengan aktor. Tidak boleh ada dua atau lebih use case mempunyai nama yang sama. Kegunaan use case adalah menangkap kebutuhan sistem, berkomunikasi dengan pemakai akhir
dan pakar
domain masalah dan untuk pengujian sistem. Sebuah use case dinotasikan sebagai berikut :
14
Gambar 2. 4 Simbol Use Case •
Relationship. Pada diagram uses case hubungan digambarkan sebagai sebuah garis antara dua simbol. Hubungan asosiasi adalah hubungan antara seorang pelaku dan satu use case terbentuk kapan pun use case menggambarkan interaksi antara keduanya. Extension uses case (<<extend>>) adalah uses case yang terdiri dari langkah yang diekstraksi dari uses case lebih kompleks untuk menyederhanakan masalah orisinal dan karena itu memperluas fungsinya. Abstract uses case (<
>) adalah use case yang mengurangi redundansi antara dua atau lebih uses case lain dengan menggabungkan langkah-langkah yang biasa ditemukan pada uses case tersebut. Di bawah ini adalah tabel notasi yang digunakan : Tabel 2.4 Notasi Use-case Tabel http://www.ilmukomputer.org/wp-content/uploads/2006/08/yanti-uml.zip) Notasi
Nama Simbol Aktor
Sebuah actor mencirikan suatu bagian outside user atau susunan yang berkaitan dengan user yang berinteraksi dengan sistem.
Usecase
Merupakan serangkaian skenario yang terikat secara bersama oleh suatu tujuan yang sama dari pengguna. Menggambarkan aliran data
Actor1
UseCase1
Keterangan
Arus
15
•
Include. Kelakuan yang harus terpenuhi agar sebuah event dapat terjadi dimana pada kondisi ini sebuah use case adalah bagian dari use case yang lainnya
•
Extends. Kelakuan yang hanya berjalan dibawah kondisi tertentu seperti menggerakan alarm (http:// thoy.blog detik.com /category/rpl/use-caseinformasi-teknologi/)
2.3.3
Class Diagram Class Diagram adalah gambar grafis mengenai struktur objek statis dari
suatu sistem, menunjukkan class-class objek yang menyusun sebuah sistem dan juga hubungan antara class objek tersebut. Selama proses analisis Class Diagram memperlihatkan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku sistem, simbol – simbol yang di gunakan adalah sebagai berikut : •
Class adalah satu set objek yang memiliki atribut dan behavior yang sama. Kadang-kadang disebut juga object class. Class
Gambar 2. 5 Simbol Class Beserta Atribut Dan Behaviornya (http://www.ilmukomputer.org/wp-content/uploads/2006/08/yanti-uml.zip)
16
Gambar 2.6 Contoh Class Diagram (http://www.ilmukomputer.org/wp-content/uploads/2006/08/yanti-uml.zip) •
Attribut adalah data yang mewakili karakteristik tentang sebuah objek
•
Behavior adalah kumpulan dari sesuatu yang dapat dilakukan oleh objeck dan terkait dengan fungsi-fungsi yang bertindak pada data objek. Pada siklus berorientasi objek perilaku objek merujuk kepada metode, operasi atau fungsi
•
Object / Class Relationship adalah asosiasi bisnis biasa yang ada di antara satu atau lebih objek dan class. Dalam hubungan ini ada beberapa konsep yang menunjukkan bagaimana dua atau lebih class berinteraksi. Konsep multiplicity adalah jumlah kejadian minimum dan maksimum dari satu objek/class untuk satu kejadian tunggal dari objek yang terkait. Konsep aggregation adalah sebuah hubungan di mana satu class “whole” yang lebih besar berisi satu atau lebih class “part” yang lebih kecil. Atau class
17
“part” yang lebih kecil adalah bagian dari class “whole” yang lebih besar. Composition adalah hubungan agregasi dimana “whole” bertanggung jawab atas pembuatan dan perusakan “bagian-bagian”. Jika “whole” rusak, maka “part” juga akan rusak . di bawah ini tabel notasi yang digunakan :
Tabel 2.5 Notasi Hubungan dalam UML pada Class Diagram Hubungan Ketergantungan
Notasi UML
Contoh Kendaraan menggunakan bahan bakar Kendaraan memiliki mesin, mobil memiliki
Pengumpulan as roda Asosiasi pengeneralisasi
Izin kendaraan oleh pemerintah Sebuah mobil adalah sebuah kendaraan
Multiplisitas menunjukkan jumlah suatu objek yang bisa berhubungan dengan objek yang lain. Multiplisitas biasanya ditunjukkan dengan “satu” serta “banyak”, tetapi secara khusus dapat ditunjukkan pula dengan bilangan integer lebih besar atau sama-dengan nol. Contoh-contoh bilangan yang bisa digunakan adalah “1” (satu dan hanya satu), “1+” (satu atau lebih), “1-4” (satu hingga empat), ”1,3,4” (satu atau tiga atau lima), dan seterusnya. Disamping itu, dalam OMT (Object Modelling Technique) juga dikenali simbol-simbol khusus yang dapat diterapkan dalam multiplisitas ini. Lingkaran berisi menunjukkan “banyak” (nol atau lebih), sedangkan lingkaran kosong berarti “bukan
keharusan”
18
(opsional), yaitu nol atau satu. Garis tanpa lingkaran (baik kosong maupun berisi) menunjukkan hubungan satu-ke-satu. Multiplisitas bergantung pada bagaimana kita menentukan batasan masalah. Pada umumnya multiplisitas (seperti pada kardinalitas yang kita temukan pada ERD) memiliki nilai “satu” atau “banyak”. Multiplicity
Notasi
Asosiasi dengan Multiplicity Karyawan
Exactly 1
1
1
Departeme
1
Makna asosiasi Seorang karyawan bekerja pada satu dan hanya departemen
Zero or 1
0..1
Karyawan
1
0.. 1
Seorang karyawan bisa pasangan
memiliki satu suami atau istri atau tidak sama sekali
Customer
Zero or more
1
0..n
Customer dapat tidak Payment
0..n
melakukan pembayaran sampai beberapa kali Kendaraan Operasional paling
1 or more
1..n
mobil
Team
Specific range
7..9
1
1
1..n
7..9
supir
sedikit 1 mobil untuk 1 supir Tim memiliki pertandingan
Jadwal
terjadwal sebanyak 7, 8 atau 9 pertandingan
Tabel 2.6 Notasi Multiplycity dalam UML pada Class Diagram (http://azoel.files.wordpress.com/2010/03/uml-class-diagram.pdf)
19
•
Packages Packages adalah mekanisme pengelompokan yang digunakan untuk
menandakan pengelompokan elemen-elemen model. Packages dapat juga berisi aneka ragam seperti class, interface, komponen, node, kolaborasi use case, diagram atau packages – packages yang lain. Pemaketan adalah teknik vital untuk sistem berskala besar untuk dapat dikelola dengan baik. Sementara tidak menggunakannya untuk sistem kecil. Dalam model paket dapat digambarkan sebagai berikut:
Gambar 2.7 Gambar packages 2.3.4
Sequence Diagram Diagram Diagram sequence menjelaskan interaksi objek yang disusun
dalam suatu urutan waktu. Diagram ini secara khusus berasosiasi dengan use case. Diagram sequence memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case. Diagram sekuen digunakan untuk overview
perilaku,
menunjukkan
objek-objek
yang
diperlukan,
mendokumentasikan skenario dari suatu diagram use case dan untuk memerikasa jalur-jalur pengaksesan. Memerlukan sedikitnya satu diagram sekuen untuk masing-masing diagram use-case.
20
Tabel 2. 7 Notasi Yang Digunakan Dalam Diagram sequence (http://azoel.files.wordpress.com/2010/03/uml-class-diagram.pdf)
Notasi
Nama Simbol Activation
Keterangan Menambahkan periode waktu selama actor atau
objek
sedang
melakukan
sewaktu
tindakan Message
Komunikasi antar objek dalam menyampaikan informasi dalam suatu tindakan
Object Lifeline
Keberadaan sebuah objek pada situasi tertentu dimana objek akan memulai dan mengakhiri dengan pesan yang disampaikan
Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
21
Untuk
objek-objek
yang
memiliki
sifat
khusus,
standar
UML
mendefinisikan icon khusus untuk objek boundary, controller dan persistent entity.
Gambar 2.8 Contoh Sequence Diagram (http://ilmukomputer.org/2006/08/25/pengantar-uml/)
2.3.5 Activity Diagram Diagram activity memodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses. Diagram ini sangat mirip dengan sebuah flowchart karena kita dapat memodelkan sebuah alur kerja dari suatu aktivitas ke aktivitas lainnya atau dari satu aktivitas kedalam keadaan sesaat (state). Activity diagaram juga bermanfaat ketika kita ingin menggambarkan perilaku paralel atau menjelaskan bagaimana perilaku dalam berbagai use case berinteraksi.
22
Tabel 2.8 Notasi activity diagram (http://ilmukomputer.org/2006/08/25/pengantar-uml/) Notasi
Keterangan Start, awal dari sebuah aktivitas
End, akhir dari sebuah aktivitas
Aktivitas Transisi Decision
Diagram aktivitas dapat digunakan untuk: 1. pandangan dalam (internal view) yang dilakukan di operasi, 2. pandangan dalam bagaimana objek-objek bekerja, 3. Pandangan dalam dari suatu use case, 4. logic dari proses bisnis. Elemen-elemen aktifitas adalah 1. activity state 2. action state 3. transisi 4. objek.
23
Gambar 2.9 Contoh Activity Diagram (http://ilmukomputer.org/2006/08/25/pengantar-uml/) 2.3.6 Sistem Basis Data Basis data dapat didefinisikan dalam sejumlah sudut pandang seperti : a. Himpunan kelompok data yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. b. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan yang tidak perlu untuk memenuhi berbagai keperluan. c. Kumpulan file/tabel/arsip yang berhubungan yang berhubungan yang disimpan dalam media penyimpanan elektronis. (Fatansyah:2004,3) Keuntungan dari sebuah sistem basis data atas penyimpanan catatan tradisional berupa kertas adalah ringkas tidak memerlukan kertas yang banyak,
24
mesin dapat mengambil kembali dan memperbaharui data jauh lebih cepat dari kemampuan manusia. Suatu basis data terdiri dari berbagai objek database, meliputi tabel, view, domain, stored procedure dan trigger. DBMS (Database Manajemen Sistem) merupakan perantara antara pemakai dengan database dalam media penyimpanan (storage).