9
BAB II LANDASAN TEORI
II.1
Konsep Dasar Sistem
Kata sistem mempunyai beberapa pengertian, tergantung dari sudut pandang mana kata tersebut didefinisikan. Secara garis besar ada dua kelompok pendekatan sistem, yaitu : 1. Pendekatan sistem yang lebih menekankan
pada elemen-elemen atau
kelompoknya didefinisikan sebagai “Suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau menyelesaikan suatu aturan tertentu”. 2. Pendekatan sistem sebagai jaringan kerja dari prosedur, yang lebih menekankan urutan operasi didalam sistem. didefinisikan sebagai “urutan operasi kerja (tulismenulis), yang biasanya melibatkan beberapa orang di dalam satu atau lebih departemen, yang diterapkan untuk menjamin penanganan yang seragam dari transaksi bisnis yang terjadi”. Suatu sistem mempunyai karakteristik atau sifat-sifat yang tertentu, yaitu mempunyai komponen sistem (component), batasan sistem (boundary), lingkungan luar sistem (environment), penghubung sistem (interface), masukan sistem (input), keluaran sistem (output), pengolahan sistem (process) dan sasaran (objective) atau tujuan (goal).
10
II.2
Konsep Dasar Informasi Informasi (information) dapat didefinisikan sebagai berikut. Informasi adalah
data yang sudah diolah menjadi sebuah bentuk yang lebih berguna 5 dan lebih berarti bagi yang menerimanya atau pengguna. Sumber dari informasi adalah data. Data merupakan bentuk jamak dari bentuk tunggal datum atau item-item. Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian-kejadian (event) adalah sesuatu yang terjadi pada saat yang tertentu. Informasi yang berkualitas memiliki 3 kriteria, yaitu : 1.
Akurat (accurate) Informasi harus bebas dari kesalahan, tidak bias ataupun menyesatkan. Akurat juga berarti bahwa informasi itu harus dapat dengan jelas mencerminkan maksudnya.
2.
Tepat pada waktunya (timeliness) Informasi yang datang pada penerima tidak boleh terlambat. Di dalam pengambilan keputusan, informasi yang sudah usang tidak lagi bernilai. Bila informasi datang terlambat sehingga pengambilan keputusan terlambat dilakukan, hal itu dapat berakibat fatal bagi perusahaan.
3.
Relevan (relevance)
Informasi yang disampaikan harus mempunyai keterkaitan dengan masalah yang akan dibahas dengan informasi tersebut. Informasi harus bermanfaat bagi
11
pemakainya. Di samping karakteristik, nilai informasi (value of information) ditentukan oleh dua hal, yaitu manfaat dan biaya untuk mendapatkannya. Suatu informasi dikatakan bernilai bila manfaatnya lebih besar dibanding biaya untuk mendapatkannya. II.3
Jaringan Komputer
Jaringan komputer (andrew fiade-modul jaringan komputer1, komunikasi pribadi) adalah sebuah kumpulan komputer, printer dan peralatan lainnya yang terhubung. Informasi dan data bergerak melalui kabel-kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data, mencetak pada printer yang sama dan bersama sama menggunakan hardware/software yang terhubung dengan jaringan.
Tiap komputer, printer atau periperal yang terhubung dengan
jaringan disebut node.
Sebuah jaringan komputer dapat memiliki dua, puluhan,
ribuan atau bahkan jutaan node. Sebuah jaringan biasanya terdiri dari 2 atau lebih komputer yang saling berhubungan diantara satu dengan yang lain, dan saling berbagi sumber daya misalnya CDROM, printer, pertukaran file, atau memungkinkan untuk saling berkomunikasi secara elektronik. Komputer yang terhubung tersebut, dimungkinkan berhubungan dengan media kabel, saluran telepon, gelombang radio, satelit, atau sinar infra merah.
12
II.3.1
Persyaratan Membangun Jaringan Untuk membangun sebuah jaringan, terdapat 3 syarat yang harus dipenuhi
diantaranaya adalah : 1. Physical connection berhubungan dengan koneksi kartu adapter, seperti modem ataupun NIC, yang digunakan dari PC untuk terhubung ke jaringan. Physical connection digunakan untuk mentransfer signal antara PC dengan jaringan LAN (Local Area Network) atau juga menghubungkan dengan jaringan yang lebih jauh, contoh internet. 2. Logical connection menggunakan standarisasi, umumnya disebut protocols. Protokol adalah aturan-aturan main yang mengatur komunikasi diantara beberapa komputer di dalam sebuah jaringan, aturan itu termasuk di dalamnya petunjuk yang berlaku bagi cara-cara atau metode mengakses sebuah jaringan, topologi fisik, tipe-tipe kabel dan kecepatan transfer data. The Transmission Control Protocol/Internet Protocol (TCP/IP) adalah protocol utama yang harus ada dalam setiap jaringan. TCP/IP digunakan disetiap sistem operasi baik windows, unix maupun machintoch ataupun sun solaris. 3. Bagian terakhir untuk membangun jaringan adalah sebuah applications, atau software programs. Application menggunakan protokol untuk mengirim dan menerima data melalui jaringan baik LAN maupun internet. Contoh yang lebih umum adalah Web browser menampilkan HTML sebagai halaman Web. Contoh Web browsers adalah Internet Explorer, Netscape, Firefox dan Opera.
13
File Transfer Protocol (FTP) digunakan untuk mendownload file dan program dari internet, maupun upload yang digunakan untuk mentransfer data dari PC ke rd
internet Web browsers juga menggunakan fitur aplikasi plug-in (aplikasi 3 / pihak lain) seperti untuk menampikan data tertentu, contoh animasi flash. II.3.2
NIC ( Network Iterface Card )
NIC atau LAN adapter (andrew fiade-modul jaringan komputer1, komunikasi pribadi) adalah perangkat yang menyediakan media untuk menghubungkan antara komputer. Jika digambarkan, NIC seperti papan printed circuit yang dipasang di salah satu slot motherboard. Slot adalah sambungan atau celah yang terdapat pada motherboard, dipakai untuk memasang peralatan tambahan misalnya card atau board. Pemasangan peralatan tambahan akan meningkatkan kemampuan komputer dalam menjalankan tugas tertentu. Terdapat dua tipe slot ekspansi yaitu tipe PCI dan ISA. PCI atau Peripheral Component Interconnect merupakan slot yang dirancang berdasarkan standar PCI standard Interest Group. Sementara ISA atau Industry Standard Architecture merupakan slot yang pertama kali dikembangkan oleh IBM-AT. Hal-hal penting yang perlu diperhatikan dalam pemilihan NIC, adalah sebagai berikut: 1. Protocols – Ethernet, Token Ring, atau FDDI; 2. Types of media – Twisted-pair, coaxial, wireless, atau fiber-optic; dan 3. Type of system bus – PCI atau ISA.
14
II.3.3
Ping
Ping adalah program basic yang digunakan untuk menguji koneksi jaringan dengan mengirimkan suatu paket data kepada host dan menghitung waktu lamanya waktu yang dibutuhkan untuk proses pengiriman tersebut. Ping kepanjangan dari Packet Internet or Inter-Network Groper. Perintah ping menggunakan pengiriman dengan packet Internet Protocol (IP), yang lebih dikenal dengan protocol ICMP Internet Control Message Protocol dengan pengiriman paket Echo Request datagrams. Setiap paket yang dikirmkan menunggu jawaban dari destination (tujuan).
Hasil output dari ping berisikan lama waktu
tanggapan dan ratio kesuksesan ke tujuan.
Dari informasi ini dapat diputuskan
apakah terdapat hubungan dengan tujuan. II.3.4
Web Browser and Plugin
Sebuah Web browser adalah perangkat lunak yang menampilkan HTML, dimana HTML adalah salah satu bahasa yang digunakan untuk menampilkan isi halaman web. Banyak
file atau type yang tidak bisa ditampilkan oleh web browser,
untuk
mendukung hal itu maka digunakan aplikasi plug-in, contoh dari aplikasi plug-in adalah, sebagai berikut: 1. Flash – Plays multimedia files created by Macromedia Flash; 2. Quicktime – Plays video files created by Apple;dan 3. Real Player – Plays audio files.
15
II.4 Bitnami WAPPSTACK, PHP dan PostgreSQL II.4.1 Bitnami WAPPSTACK Bitnami WAPPSTACK merupakan salah satu paket instalasi Apache, PHP dan PostgreSQL instan yang dapat digunakan untuk membantu proses instalasi ketiga produk tersebut dalam sekali proses instalasi. Dalam Bitnami WAPPSTACK versi 1.2-0 paket instalasi yang disertakan adalah sebagai berikut : 1. Apache 2.2.13; 2. PostgreSQL 8.4.0-1; 3. PHP 5.2.10; dan 4. PHPPgAdmin 4.2.2. Sedangkan spesifikaasi sistem yang dibutuhkan untuk paket instalasi Bitnami WAPPSTACK versi 1.2-0 adalah sebagai berikut : 1. Intel x86 or compatible processor ; 2. Minimum of 256 MB RAM ; 3. Minimum of 150 MB hard drive space ; 4. An x86 Windows operating system ; dan 5. TCP/IP protocol support.
16
II.4.2 PHP PHP
(Hypertext
Preprocessor)
menurut
sidik
(2006)
adalah
bahasa
pemrograman yang berfungsi untuk membuat website dinamis maupun aplikasi web. Berbeda dengan HTML yang hanya bisa menampilkan konten statis, PHP bisa berinteraksi dengan database, file dan folder, sehingga membuat PHP bisa menampilkan konten yang dinamis dari sebuah website. Blog, Toko Online, CMS, Forum, dan Website Social Networking adalah contoh aplikasi web yang bisa dibuat oleh PHP. PHP adalah bahasa scripting, bukan bahasa tag-based seperti HTML. PHP termasuk bahasa yang cross-platform, ini artinya PHP bisa berjalan pada sistem operasi yang berbeda-beda (Windows, Linux, ataupun Mac). Program PHP ditulis dalam file plain text (teks biasa) dan mempunyai akhiran “.php”.
PHP
membutuhkan web server, yang bertugas untuk memproses file-file php dan mengirimkan hasil pemrosesan untuk ditampilkan di browser client. Oleh karena itu, PHP termasuk server-side scripting (script yang diproses di sisi server). Web server sendiri adalah software yang diinstall pada komputer lokal ataupun komputer lain yang berada di jaringan intranet / internet yang berfungsi untuk melayani permintaan-permintaan web dari client. Web server yang paling banyak digunakan saat ini untuk PHP adalah “Apache”.
Selain Apache, PHP juga
memerlukan PHP binary yang bisa dikonfigurasikan sebagai modul Apache atau pun sebagai aplikasi CGI. Untuk media penyimpanan datanya, PHP biasa menggunakan ”PostgreSQL”.
Untuk menginstall dan mengkonfigurasi ketiga software tersebut
(Apache, PostgreSQL, PHP) agar dapat berjalan dan saling terhubung, memang
17
cukup sulit.
Maka dari itu dibuatlah paket software Bitnami WAPPSTACK yang
sudah dikonfigurasi untuk keperluan lingkungan pengembangan aplikasi web. Aturan penulisan script PHP adalah: 1. Semua script PHP harus diapit oleh tanda: a.
, atau
b.
<script language='php'> dan , atau
c.
, atau
d.
<% dan %>
2. Tetapi tanda yang resmi dan paling banyak digunakan adalah yang pertama, yaitu 3. Pada setiap akhir perintah, diakhiri dengan tanda titik koma ( ; ). Secara umum penulisan syntact dalam PHP adalah sebagai berikut:
“deklarasi title” ; echo ' <deklarasi dan pernyataan> '; ?>
18
4. Class PHPExcelReader Class PHPExcelReader merupakan class yang dibuat oleh Vadim Tkachenko untuk membaca variabel-variabel yang ada pada file MS.Excel. Kode program ini sebenarnya hanya diperuntukan untuk membaca file MS.Excel saja, tetapi dengan sedikit perubahan kode program ini dapat dibuat untuk mengunggah file MS.Excel. Class ini hanya bisa membaca file MS.Excel 2003 ke bawah. Class PHPExcelReader dapat diunduh di http://code.google.com/p/php-excel-reader/. II.4.3 PostgreSQL PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah database besar yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi. Penggunaannya begitu meluas di berbagai platform dan didukung oleh banyak bahasa pemrograman. Bagi masyarakat TI (teknologi informasi) di Indonesia, Postgres sudah digunakan untuk berbagai aplikasi seperti web, billing system, dan sistem informasi besar lainnya. Ada banyak hal unik yang bisa kita temui dari database yang satu ini. Niatan awal para programmer-nya adalah membuat suatu database yang kaya akan feature dengan keluwesan yang tinggi. Prioritas ini sempat membuat Postgres dianggap sebagai database SQL yang tidak sesuai dengan standar ANSI-SQL92 sebagaimana yang lazim ditemui pada database berskala besar. Namun kini - secara perlahan tapi pasti - Postgres telah menjawab tantangan tersebut. ANSI-SQL92 memang sebuah standar, dan Postgres menawarkan standar yang lebih baik.
19
Dibalik masalah teknis tersebut, Postgres tersedia dalam bentuk source code dan dapat di-download tanpa pembebanan biaya. Tidak heran kalau Linux Award sempat menobatkan Postgres sebagai database pilihan yang diikuti Oracle sebagai runner-upnya. SQL di Postgres tidaklah seperti yang kita temui pada RDBMS umumnya. Perbedaan penting antara Postgres dengan sistem relasional standar adalah arsitektur Postgres yang memungkinkan user untuk mendefinisikan sendiri SQL-nya, terutama pada pembuatan function atau biasa disebut sebagai stored procedure. Hal ini dimungkinkan karena informasi yang disimpan oleh Postgres bukan hanya tabel dan kolom, melainkan tipe, fungsi, metode akses, dan banyak lagi yang terkait dengan tabel dan kolom tersebut. Semuanya terhimpun dalam bentuk class yang bisa diubah user. Arsitektur yang menggunakan class ini lazim disebut sebagai object oriented. Karena Postgres bekerja dengan class, berarti Postgres lebih mudah dikembangkan di tingkat user, dan Anda bisa mendefinisikan sebuah tabel sebagai turunan dari tabel lain. Sebagai perbandingan bahwa sistem database konvensional hanya dapat diperluas dengan mengubah source code-nya, atau menggunakan modul tambahan yang ditulis khusus oleh vendor, maka dengan Postgres memungkinkan user untuk membuat sendiri object file atau shared library yang dapat diterapkan untuk mendefinisikan tipe data, fungsi, bahkan bahasa yang baru. Dengan demikian Postgres memiliki dua kekuatan besar: source code dan arsitektur yang luwes, tentunya disamping feature penting lainnya seperti dokumentasi yang lengkap, dsb. Disamping itu Postgres juga didukung oleh banyak antarmuka2 ke
20
berbagai bahasa pemrograman seperti C++, Java, Perl, PHP, Python, dan Tcl. ODBC dan JDBC juga tersedia yang membuat Postgres lebih terbuka dan dapat diterapkan secara meluas. 1. Structured Query Language (SQL) Structure Query Language (SQL) merupakan bahasa yang banyak digunakan dalam berbagai produk basis data. Fungsi dasar SQL adalah untuk menampilkan data dari basis data (Amri, 2005). Data tersebut selanjutnya bisa difilter dan dimanipulasi sesuai dengan kebutuhan aplikasi. Perintah-perintah dalam SQL dapat dibedakan menjadi 2 kelompok besar, yaitu: a. Data definition language Data definition language adalah perintah SQL untuk menampilkan data. Struktur dasar dari data definition language terdiri dari 3 statement utama (kort & silberschatz, 1986), yaitu: • Statement SELECT, yaitu perintah untuk memilih dan menampilkan atribut – atribut yang diinginkan sebagai hasil pencarian. • Statement FROM, yaitu perintah untuk menampilkan sebuah daftar dari relasi yang akan dicari dalam sebuah pernyataan. • Statement WHERE, yaitu perintah yang digunakan untuk menentukan kreteria record yang akan ditampilkan.
21
b. Data manipulation language Data manipulation language adalah perintah SQL untuk memanipulasi data. Perintah manipulasi data sangat sering dilakukan dalam aplikasi database dan mungkin bias dikatakan menjadi inti dari sebuah aplikasi database.
Proses ini
meliputi:. • Statement INSERT, yaitu perintah untuk mengisikan data kedalam suatu table data. • Statement DELETE, yaitu perintah untuk menghapus data yang terdapat pada suatu table. 2. Normalisasi Database Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang dikandung normalisasi
akan
sangat
membantu
dalam
sebuah
database,
proses
dalam menghemat ruang yang digunakan
oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data. Berikut ini dipaparkan metodologi logis sederhana untuk menormalkan model data dalam sebuah database, diiringi contoh pembuatan database untuk tugas-tugas matakuliah dalam sebuah fakultas (fiktif) dengan atribut yang disederhanakan. Proses normalisasi model data dapat diringkas sebagai berikut: a. Temukan entitas-entitas utama dalam model data; b. Temukan hubungan antara setiap entitas; dan c. Tentukan atribut yang dimiliki masing-masing entitas.
22
Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara berturutan
• Langkah-Langkah Normalisasi 1.
Bentuk Normal Pertama (1NF) Sebuah model data dikatakan memenuhi bentuk normal pertama apabila
setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri. Entitas utama untuk database tugas matakuliah tentu saja Tugas Matakuliah. Sebagian atribut yang dimiliki entitas ini tertera dalam Gambar 1.
Gambar 2.1 Entitas utama dalam contoh model data untuk database tugas matakuliah
Atribut Nama Kelas mencantumkan kelas-kelas di mana tugas tersebut berlaku. Apabila pendaftar untuk sebuah matakuliah melebihi kapasitas ruangan yang dimiliki fakultas, kebijakan yang umum diambil Kepala Program Studi adalah membagi kegiatan perkuliahan untuk matakuliah tersebut menjadi beberapa kelas. Karenanya atribut ini rentan memiliki nilai jamak, dan lebih sesuai menjadi entitas baru atau atribut dari entitas lain. Untuk sementara kita membuat entitas baru,
23
Kelas, dimana sebagian atributnya berasal dari Tugas Matakuliah yang secara logis lebih sesuai menjadi atribut entitas ini. Sementara itu, hampir semua atribut entitas Tugas Matakuliah selain Nama Kelas memiliki nilai tunggal (dengan asumsi setiap matakuliah diampu oleh satu dosen saja). •
Relasi Antar-Entitas dan Identifier
Masalah yang kita hadapi sekarang adalah menghubungkan Tugas Matakuliah dengan Kelas. Satu tugas dapat diberikan pada beberapa kelas yang berbeda; dalam terminologi pemodelan data, ini berarti antara entitas Tugas Matakuliah dan entitas Kelas terdapat relasi 1:N (atau 1-N) untuk nilai N lebih dari satu. Cara paling intuitif untuk menghubungkan kedua entitas tersebut adalah menyertakan identitas satu entitas sebagai atribut entitas lain. Identitas sebuah entitas haruslah unik untuk menghindarkan ambiguitas saat akan merujuk pada satu objek khusus dari entitas tersebut. Entitas Tugas Matakuliah akan menggunakan pengidentifikasi arbitrer berupa angka yang berbeda antara satu objek Tugas Matakuliah dengan objek Tugas Matakuliah lain. Entitas Kelas dapat diidentifikasi dengan matakuliah dan kode kelas
yang
bersangkutan, sehingga
kita
cukup
menambahkan
atribut
pengidentifikasi (identifier) dalam kedua entitas. Entitas ini beserta semua atribut baru dan hubungannya dengan Tugas Matakuliah diperlihatkan dalam Gambar 2, dengan menggunakan notasi relasi crows foot (dengan simbol “kaki gagak” menunjuk pada entitas jamak)
24
Gambar 2.2 Hubungan antara tugas matakuliah dan entitas baru, Kelas.
Sejauh ini tidak ada atribut entitas yang memiliki nilai lebih dari satu, sehingga rasanya cukup aman mengatakan bahwa model ini memenuhi bentuk normal pertama. 2.
Bentuk Normal Kedua (2NF) Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia
memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut. Apabila kita perhatikan kembali model data yang telah kita hasilkan di atas, segera terlihat bahwa atribut dari entitas Kelas tidak sepenuhnya bergantung pada identitas unik Kelas tersebut. Seorang dosen akan tetap ada meskipun kelas matakuliah yang ia ampu sudah tidak ada lagi. Dalam hal ini, dosen adalah entitas tersendiri (yang nantinya dapat dilekatkan pada entitas Fakultas atau Universitas bilamana kedua entitas tersebut dirasa perlu ada, tergantung pada kebutuhan pemodelan data kita). •
Sekali Lagi, Tentang Identifier Dalam dunia nyata, anggapan yang umum adalah seseorang (“individu”) dapat
diidentifikasi secara unik dengan namanya. Tentu saja anggapan ini tidak sepenuhnya benar, karena bisa saja sebuah nama (bahkan satu rangkaian nama
25
lengkap) dimiliki oleh lebih dari satu orang; pemodelan data yang melibatkan informasi tentang individu jarang menggunakan nama individu tersebut sebagai satu-satunya pengidentifikasi. Implementasi RDBMS tertentu juga akan lebih cepat memproses query atas suatu tabel apabila tabel tersebut diindeks oleh nilai integer unik daripada bila menggunakan indeks karakter (rangkaian karakter masih harus diumpankan ke fungsi hash agar dapat digunakan sebagai indeks tabel, sementara untuk integer unik tidak harus). Karena beberapa alasan tersebut, entitas Dosen pada model data kita akan menggunakan pengidentifikasi
arbitrer
berupa
Nomor
Induk
Pegawai
sebagaimana diperlihatkan dalam Gambar 3. Dalam notasi crows foot, relasi nonidentifying digambarkan dengan garis putusputus atau tersamar.
Gambar 2.3 Ketiga entitas utama dalam model data dan hubungan antar masing-masing entitas.
Setelah atribut-atribut dari semua entitas dalam sebuah model data hanya bergantung pada seluruh pengidentifikasi entitas yang memilikinya, model data tersebut dikatakan memenuhi bentuk normal kedua.
26
3.
Bentuk Normal Ketiga (3NF) Sebuah model data dikatakan memenuhi bentuk normal ketiga apabila ia
memenuhi bentuk normal kedua dan tidak ada satupun atribut non-identifying (bukan pengidentifikasi unik) yang bergantung pada atribut non-identifying lain. Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut. Dalam model data sederhana yang kita gunakan di sini, tidak ada satupun atribut non-identifying (seperti Deskripsi Tugas Matakuliah, atau Nama Dosen) yang bergantung pada atribut non- identifying lain. Namun demi adanya contoh, kita misalkan entitas Dosen memiliki atribut informasi Alamat Rumah dan Nomor Telepon Rumah. Keduanya tidak dapat secara unik mengidentifikasi
objek
tertentu dari entitas Dosen, namun keduanya saling bergantung. Sebagaimana
dalam dua langkah normalisasi sebelumnya, jenis kebergantungan seperti ini dapat dihilangkan dengan membuat entitas baru lagi (yang tidak akan diciptakan karena tiga entitas sudah cukup banyak untuk satu artikel). Model terakhir yang kita dapat ini telah memenuhi bentuk normal ketiga (third normal form) dan siap dikonversi menjadi tabel. Namun sebelumnya, kita perlu membahas berbagai jenis relasi yang kerap ditemui dalam pemodelan data, termasuk yang kita temui dalam contoh model data kali ini.
27
•
Jenis-jenis Relasi Antar-Entitas
1. Relasi 1-1. Relasi ini jarang ditemui dalam model data yang benar, sehingga saat Anda menemukannya, kemungkinan besar hal itu berarti masih ada yang belum sempurna dari model data Anda; relasi 1-1 sering berarti kedua entitas tersebut sebenarnya adalah kesatuan, satu entitas tunggal. Kemungkinan lain adalah relasi 1-1 ini adalah relasi turunan atau relasi non-identifying (identitas unik satu entitas tidak bergantung pada identitas unik entitas lain) namun jenis relasi kedua ini jarang ditemui. 2. Relasi 1-N. Relasi ini yang paling umum ditemui dalam model data. 3. Relasi M-N. Relasi ini juga sering ditemui dalam model data, dan sering pula dapat dinormalkan lebih jauh lagi. Langkah yang dapat ditempuh untuk menormalkan relasi M-N: Buat sebuah entitas baru sebagai penghubung antara kedua entitas dengan relasi M- N tersebut. Entitas penghubung ini akan memiliki hubungan 1-M dengan masing- masing
entitas awal. Identifier entitas penghubung dapat dibuat
tersendiri, atau dengan
cara
mewarisi
identifier
kedua
entitas
awal
dan
membuat keduanya identifier unik entitas penghubung ini. Sering kali akan ada atribut lain yang dimiliki oleh entitas penghubung tersebut. Entitas Kelas dalam contoh model data kita dapat menjadi contoh
entitas penghubung. Apabila
tidak ada entitas penghubung yang dapat diciptakan, relasi M-N tetap harus diubah
untuk menghindari kesulitan dalam konversi model data menjadi skema
database fisik.
28
II.5
Metode Waterfall
Nama model ini sebenarnya adalah “Linear “Linear Sequential Model”. Model” Model ini sering disebut dengan “classic classic life cycle cycle” atau model waterfall.. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai ddari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance.. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh cont tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
Gambar 2.4 Metode Waterfall (Roger S. Pressman, 1992)
Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman (1992: 24) memecah model ini menjadi 6 tahapan meskipun secara garis
29
besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Roger S. Pressman (1992: 24):
1.
System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
2.
Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
3.
Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan di atas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
4.
Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini
30
merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer. 5.
Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
6.
Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
Model ini sangat populer karena pengaplikasian menggunakan model ini mudah, kelebihan dari model ini adalah ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan benar di awal project, maka SE dapat berjalan dengan baik dan tanpa masalah. Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap selanjutnya. Meskipun demikian, karena model ini melakukan pendekatan secara urut / sequential, maka ketika suatu tahap terhambat, tahap selanjutnya tidak dapat dikerjakan dengan baik dan itu menjadi salah satu kekurangan dari model ini. Selain
31
itu, ada beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai berikut:
1.
Ketika problem muncul, maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE.
2.
Karena pendekatannya secara sequential, maka setiap tahap harus menunggu hasil dari tahap sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama pengerjaannya.
3.
Pada setiap tahap proses tentunya dipekerjakan sesuai spesialisasinya masingmasing. Oleh karena itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini dibutuhkan seseorang yang “multi-skilled”, sehingga minimal dapat membantu pengerjaan untuk tahapan berikutnya.
Tahapan-tahapan model ini sudah cukup baik dalam artian minimal untuk melakukan SE, maka harus ada tahapan-tahapan ini. Tahapan-tahapan ini jugalah yang digunakan oleh model-model yang lain pada umumnya. Ada filosofi yang mengatakan sesuatu yang sukses diciptakan pertama kali, maka akan terus dipakai di dalam pengembangannya. Hal ini juga berlaku pada waterfall model ini. Mungkin
32
dapat dikatakan bahwa inilah standar untuk melakukan SE.
Akan tetapi, yang
mungkin menjadi banyak pertimbangan mengenai penggunaan dari model ini adalah metode sequential-nya. Mungkin untuk awal-awal software diciptakan, hal ini tidak menjadi masalah, karena dengan berjalan secara berurutan, maka model ini menjadi mudah dilakukan. Sesuatu yang mudah biasanya hasilnya bagus. Oleh karena itu model ini sangat populer. Akan tetapi, seiring perkembangan software, model ini tentu tidak bisa mengikutinya. Yang menjadi kelemahan adalah pada pengerjaan secara berurutan tadi, seperti yang sudah saya utarakan sebelumnya. Kelemahankelemahan yang lain juga sudah saya utarakan di atas, atau bahkan masih ada yang lainnya.
II.6
Data Flow Diagram (DFD) Data Flow Diagram adalah sebuah teknik untuk menggambarkan aliran informasi
dan perubahan yang terjadi sewaktu data berpindah dari form input ke output (Roger S. Pressman, 1992, p.209). DFD ini sering disebut juga dengan nama Bubble chart, Bubble diagram, model proses, diagram alur kerja, atau model fungsi. DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi sistem. DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun
33
rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program. Kompronen Data Flow Diagram
II.6.1
Tabel 2.1 Komponen Data Flow Diagram (Roger S. Pressman, 1992, p.210) Versi Yourdan dan Nama Simbol
Versi Gene dan Serson DeMarco
Terminator
Proses
Data Flow (arus data)
Data Store
1. Komponen Terminator (entitas luar) Terminator mewakili entitas eksternal yang berkomunikasi dengan sistem yang sedang dikembangkan. Biasanya terminator dikenal dengan entitas luar.
34
Terdapat dua jenis terminator: a. Terminator sumber (source) adalah terminator yang menjadi sumber; dan b. Terminator tujuan (sink) adalah terminator yang menjadi tujuan data/informasi sistem.
Terminator Sumber
Terminator Tujuan
Terminator Tujuan dan Sumber
Terminator dapat berupa orang, sekelompok orang, organisasi, departemen di dalam organisasi, atau perusahaan yang sama tetapi di luar kendali sistem yang sedang dibuat modelnya. Ada (3) hal penting yang harus diingat tentang terminator: a. Terminator
merupakan
bagian/lingkungan
luar
sistem.
Alur
data
yang
menghubungkan terminator dengan berbagai proses sistem, menghubungkan sistem dengan dunia luar; b. Profesional sistem tidak berhak mengubah isi atau cara kerja organisasi atau prosedur yang berkaitan dengan terminator; dan c. Hubungan yang ada antar terminator yang satu dengan yang lain tidak digambarkan pada DFD. 2. Komponen Proses
35
Komponen proses menggambarkan bagian dari sistem yang mentransformasikan input menjadi output. Ada empat kemungkinan yang terjadi dalam proses sehubungan dengan input dan output:
1 input dan 1 output
1 input dan banyak output
Banyak input dan 1 output
Banyak input dan banyak output
Ada beberapa hal yang perlu diperhatikan dalam proses: a. Proses harus memiliki input dan output ; b. Proses dihubungkan dengan komponen terminator, data store atau proses melalui alur data; dan c. Sistem,bagian, devisi, departemen yang sedang dianalis oleh professional sistem digambarkan dengan komponen proses. Umumnya kesalahan proses di DFD adalah: a. Proses mempunyai input tapi tidak menghasilkan output. Kesalahan ini disebut dengan black hole (lubang hitam), karena data masuk di dalam proses dan lenyap
36
tidak berbekas seperti dimasukkan dalam lubang hitam. b. Proses menghasilkan output tetapi tidak pernah menerima input. Kesalahan ini disebut dengan miracle (ajaib), karena ajaib dihasilkan output tanpa pernah menerima input. 3. Komponen Data Flow (Alur data). Suatu data flow (arus data) digambarkan dengan anak panah, yang menunjukkan arah menuju dan keluar dari proses. Alur data ini digunakan untuk menerangkan perpindahan data atau paket data/informasi dari bagian sistem ke bagian yang lainnya. Selain menunjukkan arah, alur data pada model yang dibuat oleh profesional sistem dapat merepresentasikan bit, karakter, pesan, formulir, bilangan real dan macam-macam informasi yang berkaitan dengan komputer. Alur data perlu diberi nama sesuai dengan data/informasi yang dimaksud, biasanya pemberian nama pad alur data dilakukan dengan menggunakan kata benda, contohnya Laporan Penjualan. Data store ini biasanya berkaitan dengan penyimpani namaan-penyimpanan seperti file atau database yang berkaitan dengan penyimpanan secara komputerisasi misalnya disket, harddisk, file pita magnetik. Data store juga berkaitan dengan penyimpanan secara manual seperti buku, alamat, file folder dan agenda. Suatu data store dihubungkan dengan alur data hanya pada komponen proses, tidak dengan komponen DFD lainnya.
37
4. Komponen Data Store Komponen ini digunakan untuk membuat model sekumpulan paket data dan diberi nama dengan kata benda jamak, misalhnya mahasiswa. Data store ini biasanya berkaitan dengan penyimpanan-penyimpanan seperti file atau database yang berkaitan dengan penyimpanan secara komputerisasi misalnya disket, harddisk, file pita magnetik. Data store juga berkaitan dengan penyimpanan secara manual seperti buku, alamat, file folder dan agenda. Suatu data store dihubungkan dengan alur data hanya pada komponen proses, tidak dengan komponen DFD lainnya. II.6.2
Syarat-syarat Pembuatan Data Flow Diagram (DFD)
Syarat pembuatan DFD ini akan menolong profesional sistem untuk menghindari pembentukkan DFD yang salah atau DFD yang tidak lengkap atau tidak konsisten secara logika. Beberapa syarat pembutan DFD dapat menolong profesional sistem untuk membentuk DFD yang benar, menyenangkan untuk dilihat dan mudah dibaca oleh pemakai. Syarat-syarat pembuatan DFD ini adalah: 1. Pemberian nama untuk tiap komponen DFD. 2. Pemberian nomor pada komponen proses. 3. Penggambaran DFD sesering mungkin agar enak dilihat. 4. Penghindaran penggambaran DFD yang rumit.
38
5. Pemastian DFD yang dibentuk itu konsiten secara logika. 6. Pemberian nama untuk tiap komponen DFD Seperti yang telah dijelaskan sebelumnya, komponen terminator mewakili lingkungan luar dari sistem, tetapi mempunyai pengaruh terhadap sistem yang sedang dikembangkan ini. Maka agar pemakai mengetahui dengan lungkungan mana saja sistem mereka berhubungan, komponen terminator ini harus diberi nama sesuai dengan lingkungan luar yang mempengaruhi sistem ini. Biasanya komponen terminator diberi nama dengan kata benda. Selanjutnya adalah komponen proses. Komponen proses ini mewakili fungsi sistem yang akan dilaksanakan atau menunjukkan bagaimana fungsi sistem dilaksanakan oleh seseorang, sekelompok orang atau mesin. Maka sangatlah jelas bahwa komponen ini perlu diberi nama yang tepat, agar siapa yang membaca DFD khususnya pemakai akan merasa yakin bahwa DFD yang dibuat adalah model yang akurat. Pemberian nama untuk komponen data store menggunakan kata benda, karena data store munjukkan data apa yang disimpan untuk kebutuhan sistem dalam melaksanakan tugasnya. Jika sistem sewaktu-waktu membutuhkan data tersebut untuk melaksanakan tugasnya, maka data tersebut tetap ada, karena sistem penyimpanannya. Begitu pula komponen alur data, namanya lebih baik diberikan dengan menggunakan kata benda, karena alur data ini menunjukkan data data dan informasi
39
yang dibutuhkan dan yang dikeluarkan oleh sistem dalam pelaksanaan tugasnya. 6.
Pemberian nomor pada komponen DFD Biasanya professional sistem memberikan nomor dengan bilangan terurut pada
komponen proses sebagai referensi. Tidak jadi masalah bagaimana nomor-nomor proses ini diberikan. Nomor proses ini dapat diberikan dari kiri ke kanan atau dari atas ke bawah atau dapat pula dilakukan dengan pola-pola tertentu selama pemberian nomor ini tetap konsisten pada nomor yang dipergunakan. Nomor-nomor proses yang diberikan tehadap komponen proses ini tidak dimaksudkan bahwa proses tersebut dilaksanakan secara berurutan. Pemberian nomor ini dimaksudkan agar pembacaan suatu proses dalam suatu diskusi akan lebih mudah dengan hanya menyebutkan prosesnya saja jika dibandingkan dengan menyebutkan nama prosesnya, khususnya jika nama prosesya panjang dan sulit.
7.
Penggambaran DFD sesering mungkin Penggambaran DFD dapat dilakukan berkali-kali sampai secara teknik DFD itu
benar, dapat diterima oleh pemakai dan sudah cukup rapih sehingga profesional sistem tidak merasa malu untuk menunjukkan DFD itu kepada atasannya atau pemakai. Dengan kata lain, penggambaran DFD ini dilakukan sampai terbentuk DFD yang enak dilihat, dan mudah dibaca oleh pemakai dan profesional sistem lainnya. Keindahan penggambaran DFD tergantung pada standar-standar yang diminta oleh organisasi tempat profesional sistem itu bekerja dan perangkat lunak yang dipakai oleh profesional sistem dalam membuat DFD.
40
8.
Penghindaran penggambaran DFD yang rumit Tujuan DFD adalah untuk membuat model fungsi yang harus dilaksanakan oleh
suatu sistem dan interaksi antar fungsi. Tujuan lainnya adalah agar model yang dibuat itu mudah dibaca dan dimengerti tidak hanya oleh profesional sistem yang membuat DFD, tetapi juga oleh pemakai lainnya. Hal ini berarti DFD harus mudh dimengerti, dibaca dan menyenangkan untuk dilihat. Pada banyak masalah, DFD yang dibuat tidak memiliki terlalu banyak proses (maksimal enam proses) dengan data store, alur data, dan terminator yang berrkaitan dengan proses tersebut dalam satu diagram. Bila terlalu banyak proses, terminator, data store, dan alur data digambarkan dalam satu DFD, maka ada kemungkinan terjadi banyak persilangan alur data dalam DFD tersebut. Persilangan alur data ini menyebabkan pemakai akan sulit membaca dan mengerti DFD yang terbentu. Jadi semakin sedikit adanya persilangan data pada DFD, maka makin baik DFD yang dibentuk oleh profesional sistem. Persilangan alur data ini dapat dihindari dengan menggambarkan DFD secara bertingkat-tingkat (levelisasi DFD), atau dengan menggunakan pemakaian duplikat terhadap komponen DFD. Komponen DFD yang dapat menggunakan duplikat hanya komponen store dan terminator. Pemberian duplikat ini juga tidak dapat diberikan sesuka profesional sistem yang membuat DFD, tetapi makin sedikit pemakaian duplikat, makin baik DFD yang terbentuk.
41
9.
Penggambaran DFD yang konsisten Penggambaran DFD harus konsisten terhadap kelompok DFD lainnya. Profesional
sistem menggambarkan DFD berdasarkan tingkatan DFD dengan tujuan agar DFD yang dibuatnya itu mudah dibaca dan dimengerti oleh pemakai sistem. Hal ini sesuai dengan salah satu tujuan atau syarat membuat DFD. II.6.3
Penggambaran DFD
Tidak ada aturan baku untuk menggambarkan DFD. Tapi dari berbagai referensi yang ada, secara garis besar langkah untuk membuat DFD adalah : 1. Identifikasi terlebih dahulu semua entitas luar yang terlibat di sistem 2. Identifikasi semua input dan output yang terlibat dengan entitas luar 3. Buat Diagram Konteks (diagram context) Diagram ini adalah diagram level tertinggi dari DFD yang menggambarkan hubungan sistem dengan lingkungan luarnya. Caranya : a. Tentukan nama sistemnya; b. Tentukan batasan sistemnya; c. Tentukan terminator apa saja yang ada dalam sistem; d. Tentukan apa yang diterima/diberikan terminator dari/ke sistem; dan e. Gambarkan diagram konteks. 4. Buat Diagram Level Zero Diagram ini adalah dekomposisi dari diagram konteks. Caranya :
42
1. Tentukan proses utama yang ada pada sistem. 2. Tentukan apa yang diberikan/diterima masing-masing proses ke/dari sistem sambil memperhatikan konsep keseimbangan (alur data yang keluar/masuk dari suatu level harus sama dengan alur data yang masuk/keluar pada level berikutnya). 3. Apabila diperlukan, munculkan data store (master) sebagai sumber maupun tujuan alur data. 4. Gambarkan diagram level zero a. Hindari berpotongan arus data. b. Beri nomor pada proses utama (nomor tidak menunjukkan urutan proses). 5. Buat Diagram Level Zero Diagram ini adalah dekomposisi dari diagram konteks. Caranya : a. Tentukan proses yang lebih kecil (sub-proses) dari proses utama yang ada pada level zero; b. Tentukan apa yang diberikan/diterima masing-masing sub-proses ke/dari sistem dan perhatikan konsep keseimbangan; dan c. Apabila diperlukan, munculkan data store (master) sebagai sumber maupun tujuan alur data. 5. Gambarkan diagram level satu a. Hindari berpotongan arus data; dan b. Beri nomor pada masing-masing sub-proses yang menunjukkan dekomposisi dari proses sebelumnya contoh: 1.1, 1.2, 2.1.