BAB II LANDASAN TEORI
2.1
Permodelan Rekayasa Perangkat Lunak Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal
yang dilakukan di tahapan awal. Di dalam suatu rekayasa dalam perangkat lunak sebenarnya masih memungkinkan tanpa melakukan suatu pemodelan. Hal itu tidak dapat lagi dilakukan dalam suatu industri perangkat lunak. Pemodelan dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal dari rekayasa, dan pemodelan ini akan mempengaruhi perkerjaan dalam rekayasa perangkat lunak tersebut. Model proses perangkat lunak masih menjadi objek penelitian, tapi sekarang ada banyak model umum atau paradigma yang berbeda dari pengembangan perangkat lunak, antara lain:
•
Pendekatan Waterfall Berisi rangkaian aktivitas proses seperti yang telah diuraikan diatas dan disajikan dalam proses yang terpisah, seperti spesifikasi kebutuhan, implementasi desain perangkat lunak, uji coba dst. Setelah setiap langkah didefinisikan, langkah tersebut di sign off dan pengembangan dilanjutkan pada langkah berikutnya.
7
8
•
Pengembangan secara evolusioner Pendekatan ini interleaves aktivitas spesifikasi, pengembangan dan validasi. Sistem awal dengan cepat dikembangkan dari pelanggan untuk memproduksi sistem yang memenuhi kebutuhan pelanggan tersebut. Kemudian sistem disampaikan. Sistem itu mungkin diimplementasikan kembali dengan pendekatan yang lebih terstruktur untuk menghasilkan sistem yang kuat dan maintable.
•
Transformasi formal Pendekatan ini berdasarkan pembuatan spesifikasi sistem formal secara matematik dan transformasi spesifikasi dengan menggunakan metode matematik atau dengan suatu program. Transformasi ini adalah correctness preserving ini berarti bahwa kita dapat yakin program yang dikembangkan sesuai dengan spesifikasi.
•
Penggabungan sistem dengan menggunakan komponen-komponen yang dapat digunakan kembali. Teknik ini menganggap bagian-bagian dari sistem sudah ada. Proses pengembangan sistem lebih berfokus pada penggabungan bagianbagian daripada pengembangan tiap bagian. Dua pertama dari pendekatan-pendekatan diatas yaitu waterfall dan
pengembangan evolusioner, saat ini banyak digunakan dalam pengembangan sistem. Beberapa sistem sudah dibuat dengan menggunakan transformasi correctness preserving tapi ini masih menjadi penelitian. Metode penggunaan kembali (reuse) umum di jepang. Metode ini sekiranya akan diakui oleh Eropa dan Amerika Utara. Di US metode ini dimulai
9
1995 dengan anggaran 150 million dolars. Bagaimanapun juga reuse masih suatu penelitian, terlalu cepat untuk berkomentar tentang keefektifannya. Model pengembangan perangkat lunak yang dilakukan oleh penulis dalam mengembangkan aplikasi web ini yaitu dengan menggunakan permodelan perangkat lunak waterfall.
2.1.1 Waterfall Menurut Kenneth, E. Kendall, Julie E. Kendall (1992:6) System Development Life
Cycle (SDLC) adalah fase pendekatan untuk analisa dan
desain untuk suatu sistem yang dikembangkan melalui daur tertentu dari analisis dan aktifitas pengguna (user). Siklus kehidupan klasik (The classic life cycle) merupakan salah satu metode penerapan dari SDLC dan sering juga disebut sebagai “waterfall model”. Dengan menerapkan metode ini diharapkan bisa mendapatkan pendekatan dan pengembangan perangkat lunak yang sistematis dan sekuensial, Pressman (2002:36) membagi model waterfall ke dalam beberapa tahap, yaitu: tahap rekayasa sistem, tahap analisis, desain, pengkodean, pengujian, dan pemeliharaan.
Gambar 2.1. Pemodelan Waterfall
10
Berikut ini penjelasan dari tahapan-tahapan yang terdapat pada model waterfall: 1. Tahapan rekayasa sistem. Tahapan ini menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta desain tingkat puncak. 2. Tahap Analisis. Pada tahap ini dilakukan pengumpulan perangkat lunak. Untuk memahami perangkat lunak yang dibangun, perekayasa perangkat lunak harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar muka yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi dengan pelanggan. 3. Tahapan desain. Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut program yang berbeda; struktur data, arsitek perangkat lunak, representasi antarmuka, dan detail prosedural. Proses desain menerjemahkan kebutuhan kedalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum memulai proses pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menhajdi bagian luar dari konfigurasi perangkat lunak 4. Tahapan Pengkodean. Desain harus diterjemahkan kedalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini.Jika desain dilakukan
11
denan cara yang lengkap, pembuatan kode dapat diselesaikan secara lengkap, pembuatan kode dapat diselesaikan secara mekanis. 5. Tujuan pengujian. Sekali kode dibuat, pengujian program dimulai, proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua peryataan sudah diuji, dan pada eksternal fungsional yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa masukan yang dibatasi akan memberikan hasil yang aktual yang sesuai dengan hasil yang dibutuhkan. 6. Tahapan pemeliharaan. Perangkat lunak akan mengalami perubahan setelah disampaikan kepada pelanggan. Perubahan akan terjadi kesalahan-kesalahan ditentukan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahanperubahan di dalam lingkungan eksternalnya. Pemeliharaan perangkat lunak menerapkan lagi setiap tahap program sebelumnya dan tidak membuat baru lagi.
2.2
Unified Modelling Language Saat ini piranti lunak semakin luas dan besar lingkupnya, piranti lunak
tersebut seharusnya dirancang dengan memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bugs mudah ditemukan dan
12
diperbaiki, bahkan oleh orang lain selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas yang sama. Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk faktor-faktor seperti scalability, robustness, security, dan sebagainya. Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi
standar
dalam
industri
untuk
visualisasi,
merancang
dan
mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa
13
berorientasi objek seperti PHP, C++, Java, C# atau VB.NET. Walaupun demikian UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya UML mendefinisikan notasi dan sintaksis (syntax) atau semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan sintaksis (syntax) UML mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan
2.2.1 Sejarah UML Sejarah UML sendiri cukup panjang. Tahun 1950-an saat keterbatasan perangkat keras, media penyimpanan dan peranti lunak pemrograman, muncul metode perancangan sistem yang berbasis proses. Muncul diagram-diagram terkenal seperti Data Flow Diagram (DFD). Inti dari diagram ini adalah entitas apa dan melakukan proses apa dengan metode yang sangat terkenal SDLC (System Development Life Cycle). Tahun 1976, Chen menemukan Entity Relationship Diagram (ERD) yang berguna dalam memodelkan basis data dari suatu proses. Dimulailah era metode perancangan sistem berbasis data. Muncul istilah terkenal: Relational Database Management System (RDBMS). Metode perancangan ini berusaha menutupi kelemahan metode perancangan berbasis proses. Perlu diketahui bahwa proses sangat cepat berubah dibandingkan data. Sampai era tahun 90-an, diiringi membanjirnya peranti lunak berorientasi objek, bahkan hingga ke basis data seperti Oracle, SQL Server, dan lain-lain sudah menganut OR-DMBS (Object Relational – DBMS). Seperti kita ketahui
14
puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dan sebagainya. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang menggunakan metodologi yang berlainan. Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 dikeluarkan draft pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh Object Management Group (OMG – http://www.omg.org). Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003. Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun 1999. Sejak saat itulah UML telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
2.2.2 Konsep Dasar UML Untuk menguasai UML, sebenarnya cukup dua hal yang harus kita perhatikan, yaitu menguasai pembuatan diagram UML dan menguasai langkahlangkah dalam analisa dan pengembangan dengan UML.
15
Komponen penyusun utama dari UML adalah things dan relationships; yang dikombinasikan dengan cara berbeda-beda dengan mengikuti aturan yang berbeda
pula
untuk menghasilkan tipe
diagram
yang berbeda. UML
mendefinisikan diagram-diagram sebagai berikut: 1. Diagram Use case 2. Diagram Kelas 3. Diagram Statechart 4. Diagram Aktivitas 5. Diagram Sequence 6. Diagram kolaborasi 7. Diagram Komponen 8. Diagram Deployment Dalam penulisan tugas akhir ini, diagram UML yang akan dibahas adalah diagram use case, dan diagram aktivitas.
2.2.3 Diagram Use Case Use case adalah menjelaskan manfaat sistem jika dilihat menurut pandangan orang yang berada di luar sistem (aktor), diagram use case juga menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar. Sejak konsep use case dikenalkan oleh Ivar Jacbson, pemodelan ini secara luas digunakan pada requirements gethering dan analisis domain untuk menangkap persyaratan fungsional dan non fungsional, memandu desain dan validasi berbasis sekenario, dan untuk mengatur projek. Use case dan sekenario
16
tidak hanya membantu dalam pengumpulan kebutuhan dari stakeholder tetapi juga dapat membantu pemahaman terhadap sistem perangkat lunak secara utuh. Diagram Use case menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, membuat sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun kebutuhan sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Telah disebutkan di atas bahwa UML bukan hanya diagram, UML juga merupakan bahasa (language). Oleh karena itu dengan peranti lunak CASE
17
(Computer Aided Software Engineering) seperti Rational Rose dapat di-generate menjadi code. Jadi jika kita membuat suatu model dalam peranti lunak CASE, kita dapat merubah model menjadi code program, begitu pula sebaliknya. Beberapa peranti lunak seperti Microsoft Visio, hanya bisa reverse engineering, sedangkan Rational Rose bisa Forward maupun Reverse. Berikut ini merupakan sintaks-sintaks use case diagram: Tabel 2.1. Sintaks diagram use case Nama Sintaks Aktor
Use Case
Penjelasan
Sintaks
•
Orang atau sistem.
•
Digambarkan sebagai stcik figure atau jika melibatkan bukan manusia digambarkan dengan <
>.
•
Diberi label peranan.
•
Dapat diasosiasikan dengan aktor menggunakan spesialisasi superkelas.
•
Ditempatkan diluar batasan subjek
•
Mempresentasikan bagian fungsionalitas sistem.
•
Dapat dihubungkan secara extend dengan use case lainnya.
•
Dapat dihubungkan secara include dengan use case lainnya.
•
Ditempatkan dalam batasan sistem.
•
Diberi label menggunakan deskripsi kata kerja-non frase
lainnya
Batasan Subjek
Mempresentasikan skop subjek misalnya sebuah sistem atau bagian proses bisnis.
Association Relationship
Tautan aktor dengan use case yang berinteraksi.
Include Relationship
Mempresentasikan inklusi fungsionalitas suatu use case dengan yang lain.
Extend Relationship
Mempresentasikan perluasan use case ke include tingkah laku pilihan
<extend>
Generalisasi Relationship
Mempresentasikan spesialisasi use case ke suatu generalisasi
*
*
18
2.2.4 Diagram Aktivitas Diagram aktivitas merupakan pemodelan alur kerja (workflow) sebuah proses, atau urutan aktivitas dalam suatu proses (Suhendra dan Gunadi, 2002:49). Dengan diagram aktivitas ini kita akan lebih dapat memahami alur dari prosesproses tersebut, atau dengan kata lain diagram ini akan menggambarkan langkahlangkah dari setiap aplikasi yang disediakan dalam sistem. Diagram aktivitas adalah sebuah cara untuk memodelkan aliran kerja dari suatu use case bisnis dan aliran kejadian dalam use case sistem dalam bentuk grafik. Diagram ini menunjukkan langkah-langkah didalam aliran kerja, titik keputusan di dalam aliran kerja, siapa yang bertanggung jawab menyelesaikan masing-masing aktivitas dan objek-objek yang digunakan dalam aliran kerja. Diagram aktivitas menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Diagram aktivitas juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Diagram aktivitas merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu diagram aktivitas tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.
19
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan
proses
yang
berjalan,
sementara
use
case
menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segi empat dengan sudut membulat
untuk
menggambarkan
aktivitas.
Decision
digunakan
untuk
menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan prosesproses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Diagram aktivitas dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Dalam diagram aktivitas, terdapat fasilitas yang dinamakan dengan lintasan renang (swimlanes). Lintasan ini berguna bagi perancang ketika beberapa aktivitas akan dikelompokkan.
2.3
Basis Data Basis data atau biasa dikenal dengan sebutan database secara bahasa
memiliki arti tempat atau wadah dari suatu data. Secara istilah basis data memiliki arti yaitu kumpulan informasi yang saling berkaitan dan disimpan di dalam komputer secara sistematik untuk memperoleh informasi dari basis data tersebut. Istilah “basis data” berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika. Catatan
20
yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis. Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya atau disebut dengan skema. Skema menggambarkan objek yang diwakili suatu basis data, dan hubungan di antara objek tersebut. Ada banyak cara untuk mengorganisasi skema atau memodelkan struktur basis data yang dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah yaitu mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom. Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Prinsip utama basis data adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan pada saat pengambilan data kembali. Adapun ciri-ciri basis data diantaranya adalah sebagai berikut: 1. Efisiensi meliputi kecepatan, ukuran, dan ketepatan 2. Data dalam jumlah besar. 3. Berbagi Pakai (dipakai bersama sama/Sharebility). 4. Mengurangi bahkan menghilangkan terjadinya duplikasi dan ketidakkonsistenan data.
21
2.3.1 Entity Relationship Diagram (ERD) Entity Relationship Diagram (ERD) adalah salah satu teknik permodelan data yang dimulai dengan mengidentifikasikan data-data terpenting yang terdapat dalam satu entity dan hubungan antar entity Tahap-tahap dalam pembuatan E.R. modeling, yaitu:
•
Mempelajari input yang akan dipakai
•
Merancang model konseptual
•
Mempresentasikan model tersebut dengan menggunakan diagram yang memakai notasi ER modeling. ERD dalam bentuk yang sederhana memiliki komponen-komponen
sebagai berikut:
•
Entity (entitas)
•
Relationship
•
Attribute (atribut)
•
Entity Identifier (key)
•
Type Relationship Pertama kali yang dilakukan adalah membagi basis data menjadi beberapa
table yang disebut objek atau entity (entitas) dan digambarkan dalam bentuk persegi empat. Masing-masing entitas ini mempunyai beberapa atribut. Atribut merupakan bagian dari entitas yang berupa informasi tentang entitas tersebut. Relationship digunakan untuk menggambarkan hubungan antar entitas dengan
22
entitas yang lain digunakan entity identifier (key), yaitu suatu atribut tertentu atau sekelompok atribut tertentu yang bersifat unik, sehingga dapat digunakan untuk membedakan suatu anggota entitas dengan anggota lain dari entitas yang sama. Selain itu harus ada pula yang disebut relationship key, yaitu suatu relationship yang digunakan untuk menyatakan hubungan antar entity identifier (key). Macam-macam hubungan antar entitas, yaitu:
•
One to one relationship One to one relationship merupakan suatu hubungan dimana satu anggota entitas mempunyai hubungan dengan satu anggota entitas dari entitas yang berbeda. Terdapat 2 hubungan, yaitu obligatory dan non-obligatory. Obligatory adalah semua anggota dari suatu entitas harus berpartisipasi atau mempunyai hubungan dengan entitas yang lain. Sedangkan non-obligatory adalah keblikan dari obligatory. Contohnya yaitu satu orang mahasiswa harus memiliki satu nomor induk mahasiswa (NIM) dan satu nomor induk mahasiswa tersebut hanya dimiliki oleh satu orang mahasiswa.
Gambar 2.2. One to one relationship
•
One to many relationship One to many relationship merupakan suatu hubungan antar suatu anggota entitas yang satu dengan beberapa anggota entitas pada entitas yang berbeda. Contohnya yaitu seorang mahasiswa dapat mempunyai beberapa nomor
23
telepon akan tetapi setiap nomor telepon hanya dapat dipunyai oleh mahasiswa tersebut.
Gambar 2.3. One to many relationship
•
Many to many relationship Many to many relationship merupakan hubungan antara beberapa anggota entitas yang satu dengan beberapa anggota entitas pada entitas yang lain. Jadi kedua belah pihak bias mempunyai hubungan lebih dari satu dengan beberapa anggota entitas. Contohnya yaitu satu mahasiswa mempunyai mata kuliah yang lebih dari satu dan mata kuliah dapat diikuti oleh lebih dari satu mahasiswa.
Gambar 2.4. Many to many relationship Mandatory adalah suatu entitas yang bergantung pada entitas lain, tetapi tidak bergantung sepenuhnya. Pada umumnya kedua table ini adalah table master, seperti terlihat pada gambar dibawah ini.
Gambar 2.5. Mandatory relationship
24
Sedangkan apabila salah satu entitas bergantung sepenuhnya pada entitas yang lain disebut dengan dependency. Seperti terlihat pada gambar dibawah ini.
Gambar 2.6. Dependency relationship
2.3.2 Database Management System (DBMS) Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (DBMS). Beberapa definisi DMBS menurut para ahli:
•
C.J. Date : DBMS adalah merupakan perangkat lunak yang menghandel seluruh akses pada basis data untuk melayani kebutuhan user.
•
S, Attre : DBMS adalah perangkat lunak, perangkat keras, firmware dan prosedur yang mengatur basis data. Firmware adalah perangkat lunak yang telah menjadi modul yang tertanam pada perangkat keras (ROM).
•
Gordon C. Everest : DBMS adalah manajemen yang efektif untuk mengorganisasi sumber daya data. DBMS (DataBase Management Sistem) adalah sistem yang secara khusus
dibuat untuk memudahkan pemakai dalam mengelola basis data. Sistem ini dibuat untuk mengatasi kelemahan sistem pemrosesan yang berbasis berkas. Jadi DBMS merupakan semua peralatan komputer (perangkat keras + perangkat lunak +
25
firmware). DBMS dilengkapi dengan bahasa yang berorientasi pada data (High level data langauage) yang sering disebut juga sebagai bahasa generasi ke 4 (fourth generation language). Ada puluhan bahkan mungkin ratusan perangkat lunak yang tersedia. Masing-masing memiliki spesifikasinya sendiri-sendiri. Mulai dari yang sangat sederhana sampai yang paling kompleks. Beberapa contoh DBMS yaitu Microsoft Access, MySQL, Microsoft SQL Server, PosgreSQL, dan Oracle.
2.3.3 MySQL DBMS yang akan digunakan dalam penulisan ini yaitu MySQL. MySQL adalah SQL-DBMS yang bersifat multi-user dan multi-threaded. MySQL berjalan sebagai server yang melayani banyak pengguna untuk mengakses sejumlah basis data. DBMS ini sangat populer di dunia aplikasi berbasis web sebagai komponen basis data. Selain karena tersedia dalam versi gratis, popularitas MySQL juga sangat dipengaruhi oleh populernya web server Apache dan bahasa pemrograman PHP. Istilah-istilah seperti LAMP (Linux-Apache-MySQL-PHP/Perl/Python), MAMP (Mac-Apache-MySQL-PHP/Perl/Python) dan WAMP (Windows-ApacheMySQL-PHP/Perl/Python) menjadi sangat terkenal. Banyak sekali aplikasi berbasis web yang dibangun dengan menggunakan kombinasi perangkat lunak tersebut. WordPress, Drupal, Mambo, Wikipedia, PHP-Nuke, merupakan beberapa contoh aplikasi berbasis web yang menggunakan kombinasi ini. Tidak seperti Microsoft Access, default instalasi MySQL tidak menyediakan GUI bagi pengguna untuk berinteraksi dengan basis data. Pengguna
26
dapat berinteraksi dengan client yang menggunakan perintahperintah berbasis teks. Namun saat ini telah banyak GUI yang dikembangkan untuk mempermudah interaksi dengan basis data, baik itu berupa aplikasi stand-alone (misalnya MySQL-Front, MySQL-GUI, dan lain-lain) atau yang berbasis web (misalnya, phpMyAdmin). Bahkan dengan menggunakan komponen MyODBC, MySQL dapat diakses dengan GUI dari Microsoft Access seperti halnya basis data yang kompatibel dengan ODBC lainnya.
2.4
World Wide Web (WWW) Perkembangan internet tidak terlepas dari partisipasi web atau world wide
web, atau yang lebih sering disingkat dengan WWW. Web merupakan sumber informasi yang terdapat dalam internet dan memberikan kemudahan bagi end user untuk mengakses tanpa dibatasi oleh ruang dan waktu. Namun, perlu diingat bahwa world wide web bukanlah internet, dan internet bukanlah web. Ide dan konsep tentang world wide web pertama kali dikemukakan oleh Tim Berners-Lee, seorang peneliti pada CERN (Consel Europeen Recherce Nucleaire) Particle Physics Lab di Jenewa, Swiss pada tahun 1989. Konsep awalnya adalah agar para fisikawan dan ilmuwan dapat berbagi dan bertukar informasi lewat multimedia. Untuk mewujudkannya, kemudian diciptakan informasi yang disebut HTTP (Hypertext Transfer Protocol) yang dijalankan dengan menggunakan TCP/IP. Adanya konsep WWW ini membuat jumlah host yang sebelumnya berjumlah 100.000 menjadi 1000.000. Konsep ini juga melahirkan Mosaic, sebuah web browser grafis yang pertama pada tahun 1993.
27
Lahirnya browser ini membuat pertumbuhan internet semakin pesat dengan kenaikan 314% dan terus berkembang hingga saat ini. World wide web didasarkan pada konsep hypertext, istilah yang dikenalkan oleh Ted Welson pada akhir tahun 1960. Hypertext sangat mirip dengan text biasa, namun memiliki fungsi menghubungkan kata dan frasa dalam satu dokumen ke dokumen lainnya. Hal ini dirasakan penting untuk memudahkan navigasi internet. Bahasa hypertext ini kemudian sekarang lebih dikenal dengan HTML (Hypertext Markup Language)
2.4.1 Client-Side dan Server-Side Pada dasarnya bahasa-bahasa yang digunakan untuk membangun suatu web dapat dibagi menjadi dua, yaitu client-side dan server-side. Client-side memiliki arti bahwa informasi yang disampaikan akan dieksekusi di client atau di browser. Contoh bahasa yang bersifat client-side adalah HTML dan javascript. Sedangkan pada bahasa server-side yaitu proses pengerjaan informasi akan dikirim dan diproses di server dari website tersebut. Contoh bahasa yang serverside adalah PHP (Hypertext Preprocessor), Perl dan JSP (Java Server Pages). Antara client-side dan server-side bersifat saling melengkapi sehingga sangat sulit untuk menentukan mana yang lebih baik diantara keduanya. Sebagai contoh, bila kita ingin mendapatkan inforamasi tentang pengunjung, maka kita memerlukan form yang dapat dibuat dengan HTML, dan untuk memprosesnya kita dapat menggunakan PHP. Sedangkan jika kita ingin membuat verifikasi form, maka kita dapat menggunakan JavaScript. JavaScript merupakan bahasa yang
28
bersifat client-side sehingga akan memperingan kerja server dan mempercepat proses.
2.4.2 PHP PHP Hypertext PreProcessor adalah suatu skrip yang bersifat server-side yang memungkinkan developer untuk mengerjakan proses dalam server. PHP bersifat browser independent, yang berarti bahwa aplikasi web dapat dijalankan oleh browser manapun serta memiliki kemampuan untuk dikombinasikan dengan teks, HTML dan komponen-komponen lain untuk membuat halaman web yang lebih menarik, dinamis dan interaktif. Menurut dokumen resmi PHP, PHP singkatan dari PHP Hypertext PreProcessor atau bisa juga Personal Home Page karena penulis bahasa ini sendiri menyebut demikian. Ia merupakan bahasa yang berbentuk skrip yang ditempatkan dalam server dan diproses didalam server juga. Hasilnyalah yang akan dikirimkan ke client, tempat pemakai menggunakan browser. Secara khusus PHP dirancang untuk membentuk web yang dinamis. Artinya ia dapat membentuk suatu tampilan berdasarkan permintaan terkini. Missal, anda bisa menampilkan isi basis data ke halaman web. Pada prinsipnya, PHP mempunyai fungsi yang sama dengan skrip-skrip seperti ASP (Active Server Pages), Cold Fusion, maupun Pearl. Kelahiran PHP bermula saat Rasmus Lerdorf membuat sejumlah tools yang membantunya mengelola sebuah situs web kecil, yakni pada tahun 1994. Pada saat yang bersamaan dia bekerja membuat suatu proyek situs web di
29
University of Toronto yang membutuhkan suatu tools yang memungkinkan untuk mengakses basis data dari berbagai sumber yang bermacam-macam. Pada tahun 1995 lahirlah PHP versi 2. Pada pertengahan 1997 PHP tumbuh sedemikian pesatnya karena banyak orang yang membantu pengembangannya secara sukarela, dan 2 orang yang sangat membantu melahirkan dasar dari PHP versi 3 yaitu Zeev Suraski dan Andi Gutmans (Zend Technologies). PHP 3 yang dirilis pada tahun 1998 sudah mendukung banyak koneksi basis data termasuk ODBC. PHP pun berkembang menjadi bahasa pembangun situs web yang penting. Pada tahun 2000 dirilislah PHP versi 4 yang arsitektur bahasanya sudah sama sekali berubah. PHP versi 4 menjadi alat yang berjalan secara independent pada server dan terpisah sama sekali dari system arsitektur dari server itu sendiri. Sampai tugas akhir ini saya tulis PHP sudah mencapai versi 5. Pada saat ini, PHP cukup populer sebagai piranti pemprograman web, terutama dilingkungan Linux. Walaupun demikian, PHP sebenarnya juga dapat berfungsi pada server-server berbasis UNIX, Windows NT dan Macintosh. Pada awalnya PHP dirancang untuk diintegrasikan dengan web server seperti PWS (Personal Web Server), IIS (Internet Information Server) dan Xitami. PHP memiliki beberapa kelebihan dalam pembuatan aplikasi dinamis, antara lain: •
Tidak ada proses compiling dan linking.
•
Merupakan bahasa
skrip yang berorientasi pada objek dan dapat
dikembangkan lebih jauh.
30
•
Sintak-sintak dari PHP relatif mudah untuk dipelajari karena tidak mengenal adanya pendeklarasian variabel atau akses-akses tingkat rendah lainnya.
•
Kode program dapat berdiri sendiri atau terintegrasi dengan script HTML sehingga dapat memudahkan dalam proses desain tampilan.
•
Mendukung penggunaan bahasa SQL (Structured Query Language) yang merupakan bahasa standar untuk pengolahan basis data.