BAB II LANDASAN TEORI 2.1
Pengertian Basis data (database) Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa,
konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubungan maka dikenal dengan istilah basis data (database) [Ramez2000]. Sedangkan menurut George Tsu-der Chou basis data merupakan kumpulan informasi bermanfaat yang diorganisasikan ke dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang [Abdul1999]. Menurut Encyclopedia of Computer Science and Engineer, para ilmuwan di bidang informasi menerima definisi standar informasi yaitu data yang digunakan dalam pengambilan keputusan. Definisi lain dari basis data menurut Fabbri dan Schwab adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan duplikasi data. Menurut Ramez Elmasri mendefinisikan basis data lebih dibatasi pada arti implisit yang khusus, yaitu: a. Basis data merupakan penyajian suatu aspek dari dunia nyata (real world). b. Basis data merupakan kumpulan data dari berbagai sumber yang secara logika mempunyai arti implisit. Sehingga data yang terkumpul secara acak dan tanpa mempunyai arti, tidak dapat disebut basis data.
9
c. Basis data perlu dirancang, dibangun dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa user dan beberapa aplikasi yang sesuai dengan kepentingan user. Dari beberapa definisi-definisi tersebut, dapat dikatakan bahwa basis data memounyai berbagai sumber data dalam pengumpulan data, bervariasi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa user untuk berbagai kepentingan [Waliyanto2000]. Data Base Management System (DBMS)/Sistem Manajemen Basis Data (SMB) DBMS dapat diartikan sebagai program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memodifikasi dan memperoleh data/informasi dengan praktis dan efisien. Kelebihan dari DBMS antara lain adalah: • Kepraktisan. DBMS menyediakan media penyimpan permanen yang berukuran kecil namun banyak menyimpan data jika dibandingkan dengan menggunakan kertas. • Kecepatan. Komputer dapat mencari dan menampilkan informasi yang dibutuhkan dengan cepat. • Mengurangi kejemuan. Pekerjaan yang berulang-ulang dapat menimbulkan kebosanan bagi manusia, sedangkan mesin tidak merasakannya. • Update to date. Informasi yang tersedia selalu berubah dan akurat setiap. [Waliyanto2000] Keuntungan-keuntungan dalam penggunaan DBMS antara lain adalah: a. Pemusatan kontrol data. Dengan satu DBMS di bawah kontrol satu orang atau kelkompok dapat menjamin terpeliharanya standar kualitas data dan keamanan batas penggunaannya serta dapat menetralkan konflik yang terjadi dalam persyaratan data dan integritas data dapat terjaga.
10
b. Pemakaian data bersama (Shared Data). Informasi yang ada dalam basis data dapat digunakan lebih efektif dengan pemakaian beberapa user dengan kontrol data yang terjaga. c. Data yang bebas (independent). Program aplikasi terpisah dengan data yang disimpan dalam komputer. d. Kemudahan dalam pembuatan program aplikasi baru. e. Pemakaian secara langsung. DBMS menyediakan interface yang memudahkan pengguna dalam mengolah data. Haidar Dzacko. 2007. Basis Data (Database). f. Data yang berlebihan dapat dikontrol. Data yang dimasukkan dapat terjadi kerangkapan (redudant), untuk itu DBMS berfungsi untuk menurunkan tingkat redudancy dan pengelolaan proses pembaruan data. g. Pandangan user (user view). Ada kemungkinan basis data yang diakses adalah sama, maka DBMS mampu mengatur interface yang berbeda dan disesuaikan dengan pemahaman tiap user terhadap basis data menurut kebutuhan. Kelemahan-kelemahan DBMS antara lain: a. Biaya. Kebutuhan untuk medapatkan perangkat lunak dan perangkat keras yang tepat cukup mahal, termasuk biaya pemeliharaan dan sumber daya manusia yang mengelola basis data tersebut. b. Sangat kompleks. Sistem basis data lebih kompleks dibandingkan dengan proses berkas, sehingga dapat mudah terjadinya kesalahan dan semakin sulit dalam pemeliharaan data. c. Resiko data yang terpusat. Data yang terpusat dalam satu lokasi dapat beresiko kehilangan data selama proses aplikasi.
11
Model Data Model data dapat dikelompokkan berdasarkan konsep pembuatan deskripsi struktur basis data, yaitu: a. Model data konsepsual (high level) menyajikan konsep tentang bagaiman user memandang atau memperlakukan data. Dalam model ini dikenalkan tiga konsep penyajian data yaitu: • Entity (entitas) merupakan penyajian obyek, kejadian atau konsep dunia nyata yang keberadaannya secara eksplisit didefinisikan dan disimpan dalam basis data, contohnya Mahasiswa, Matakuliah, Dosen, Nilai dan lain sebagainya. • Atribute (atribut) adalah keterangan-keterangan yang menjelaskan karakteristik dari suatu entitas seperti NIM, Nama, Fakultas, Jurusan untuk entitas Mahasiswa. • Relationship (hubungan) merupakan hubungan atau interaksi antara satu entitas dengan yang lainnya, misalnya entitas pelanggan berhubungan dengan entitas barang yang dibelinya. b. Model data fiskal (low level) merupakan konsep bagaimana deskripsi detail data disimpan ke dalam komputer dengan menyajikan informasi tentang format rekaman, urutan rekaman, dan jalur pengaksesan data yang dapat membuat pemcarian rekaman data lebih efisien. c. Model data implementasi (representational) merupakan konsep deskripsi data disimpan dalam komputer dengan menyembunyikan sebagian detail deskripsi data sehingga para user mendapat gambaran global bagaimana data disimpan dalam komputer. Model ini merupakan konsep model data yang digunakan oleh model hirarki, jaringan dan relasional.
12
Skema dan Instan Basis Data Skema basis data merupakan deskripsi dari basis data yang spesifikasinya ditentukan dalam tahap perancangan namun tidak terlalu diharapkan diubah setiap saat. Penggambaran skema umumnya hanya berisi sebagian dari deatil deskripsi basis data. NIM NAMA FAKULTAS JURUSAN MAHASISWA KD_MK MATA KULIAH SKS MATA KULIAH KD_DOSEN NAMA ALAMAT TELEPON DOSEN ID_KUL NIM KD_MK KD_DOSEN SEMESTER TAHUN NILAI KULIAH Sekelompok data yang tersusun dalam satu baris rekaman (record/tuple) dan tersimpan dalam basis data disebut dengan instansi (instance) atau kejadian (occurences). 2.1.1 Siklus Hidup Pengembangan Sistem a. Perencanaan Sistem Perencanaan sistem dilakukan saat suatu kegiatan akan berjalan. Perencanaan sistem mengidentifikasikan sistem informasi penting yang strategis dalam organisasi. Tujuannya untuk melihat kesempatan memanfaatkan teknologi informasi dan membangun proyek sistem yang mendukung tujuan bisnis. Sebelum suatu sistem informasi dikembangkan, umumnya dimulai dengan adanya suatu kebijakan dan perencanaan untuk mengembangkan sistem itu. Tanpa adanya kebijakan pengembangan
13
sistem oleh manajemen puncak maka pengembangan sistem tidak adan mendapat dukungan dari manajemen puncak. b. Analisis Sistem Analisis sistem (system analysis) dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam bagian - bagian komponen dengan maksud untuk
mengidentifikasikan
dan
mengevaluasi
permasalahan-permasalahan,
kesempatan-kesempatan, hambatan - hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan-perbaikannya. [Jog – 99] Hasilnya analisis di dokumentasikan
dan dilakukan evaluasi dengan cara
membandingkan antara Sistem yang sedang berjalan dengan Sistem yang ideal. Ada beberapa proses analis sistem yang ada diantaranya: a. Usecase diagram •
Menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”.
•
Menggambarkan kebutuhan system dari sudut pandang user
•
Mengfokuskan pada proses komputerisasi (automated processes)
•
Menggambarkan hubungan antara use case dan actor
•
Use case menggambarkan proses system (kebutuhan system dari sudut pandang user)
•
•
Secara umum use case adalah: –
Pola perilaku system
–
Urutan transaksi yang berhubungan yang dilakukan oleh satu actor
Use case diagram terdiri dari
14
–
Use case
–
Actors
–
Relationship
–
System boundary boxes (optional)
–
Packages (optional)
b. activity diagram •
Menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses
•
Dipakai pada business modeling untuk memperlihatkan urutan aktifitas proses bisnis
•
Struktur diagram ini mirip flowchart atau Data Flow Diagram pada perancangan terstruktur
•
Sangat bermanfaat apabila kita membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan
•
Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram
c. class diagram •
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek.
•
Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).
15
•
Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.
•
•
Class memiliki tiga area pokok : –
1. Nama (dan stereotype)
–
2. Atribut
–
3. Metoda
Atribut dan metoda dapat memiliki salah satu sifat berikut : –
Private, tidak dapat dipanggil dari luar class yang bersangkutan
–
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anakanak yang mewarisinya
–
Public, dapat dipanggil oleh siapa saja
d. squence diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).
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
16
c. Desain Sistem Desain sistem dapat diartikan sebagai berikut : 1. Tahap setelah analisis dari siklus pengembangan sistem 2. Pendefinisian dari kebutuhan-kebutuhan fungsional 3. Persiapan untuk rancang bangun implemantasi 4. Menggambarkan bagaimana suatu sistem dibentuk 5. Yang dapat berupa gambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam satu kesatuan yang utuh dan berfungsi 6. Termasuk menyangkut mengkonfigurasi dari komponen-komponen perangkat lunak dan perangkat keras dari suatu Sistem
d. Evaluasi
Evaluasi dilakukan untuk menilai Sistem yang dibangun, apakah sudah dapat memenuhi kebutuhan dari suatu organisasi atau perusahaan.
Jika belum dapat memenuhi semua kebutuhan maka dilakukan perbaikan.
Kegiatan yang dilakukan dalam evaluasi Sistem adalah pengetesan program secara menyeluruh, dengan memasukan data sesungguhnya dalam jangka waktu tertentu.
17
e. Implementasi Kegiatan implementasi dilakukan dengan dasar kegiatan yang telah direncanakan dalam rencana
implementasi.
Kegiatan-kegiatan
yang
dapat
dilakukan
dalam
tahap
implementasi ini adalah sebagai berikut ini.
Pemilihan dan Pelatihan Personil
Pemilihan Tempat dan Instalasi Perangkat Keras dan Perangkat Lunak
Pemograman dan Pengetesan Program
Pengetesan Sistem
f. Perawatan Tahap dilakukan pada waktu Sistem sedang berjalan, operasi dan perawatan dilakukan terhadap perangkat lunak dan perangkat keras. Perawatan terhadap perangkat lunak adalah dengan melakukan proses scan (dari ancaman Virus terhadap data maupun kerusakan dari data) dan melakukan back up data secara berkala 2.2
Konsep Dasar Basis data (database) Database merupakan sekumpulan informasi yang saling berkaitan pada suatu
subjek tertentu pada tujuan tertentu pula.
Database adalah susunan record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi dengan menggunakan metode tertentu dalam komputer sehingga mampu memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna
18
Banyak sekali kegiatan manusia yang menggunakan komputer sebagai sarana pengolahan data, sehingga diperlukan suatu perangkat lunak database. Jika dikaji lebih mendasar tentang batasan suatu database, maka dapat disebutkan bahwa segala bentuk koleksi data adalah suatu database. Mulai dari kelompok data pegawai, sampai dengan kelompok file, merupakan database.
Definisi dasar struktur database :
Data : sekumpulan fakta mengenai objek tertentu, orang dan lain-lain yang dinyatakan dengan angka, huruf, gambar, film, suara dan sebagainya yang relevan dan belum mempunyai arti.
Informasi : hasil pengolahan data yang konkrit dan sudah mempunyai arti untuk mencapai suatu tujuan tertentu.
Tabel : merupakan hal yang paling mendasar dalam hal penyimpanan data yang terdiri dari field dan record.
Field (kolom) : merupakan elemen dari tabel yang berisikan informasi tertentu yang spesifik tentang subjudul tabel pada sebuah item data.
Syarat-syarat pembentukan Field Name pada tabel :
a. Harus Unik atau Spesifik
b. Boleh disingkat
19
c. Pemisah sebagai pengganti spasi dalam pembentuk field adalah tanda lambang "_"
Contoh :
Kode Barang menjadi KdBarang, KodeBrg, Kd_Brg, Kd_Barang, Kode_Brg Tanggal Lahir menjadi TglLahir, Tgl_Lahir, Tgl_Lhr
Record (baris) : merupakan sekumpulan data yang saling berkaitan tentang sebuah subjek tertentu, misalnya data seorang siswa akan disimpan dalam record yang terdiri dari beberapa kolom/field
2.3
Pengertian MySQL MySQL adalah perangkat lunak database server atau sebut saja Database Smart.
Database ini semakin lama semakin populer. Dengan menggunakan database ini, data semakin aman dan berdaya guna. Database ini juga banyak dipakai pada web database sehingga data semakin terintegrasi antara database dekstop dengan database web. Untuk menggunakan database MySQL harus menginstalasinya dahulu ke komputer. Ada dua alasan utama mengapa kita tetap harus menggunakan MySQL yaitu:
Website yang kita miliki sering memasukkan data ke basis data. Apabila kita sering melakukan perubahan terhadap basis data dengan perintah Insert into dan Update, maka jika misalnya kita memiliki situs dimana 100 orang secara konstan melakukan logging, mengirim pesan, dan kegiatan lainnya, penggunaan SQLite akan terasa lambat. Hal ini dikarenakan basis data SQLite tampil sebagai file tunggal dan ketika terjadi perubahan SQLite akan menutup atau mengunci seluruh
20
basis data sehingga orang lain yang ingin memasukkan data pada waktu yang sama harus menunggu. Adapun MySQL dapat menulis ke basis data secara terusmenerus dan dalam waktu bersamaan.
Website memerlukan keamanan dengan tingkat tinggi (high security). Jika keamanan merupakan hal utama bagi kita (misal menyimpan Login dan password di basis data) maka SQLite mungkin bukan pilihan yang tepat. MySQL secara default akan meminta akses khusus bagi orang yang akan mengakses databasenya, sedangkan SQLite mengizinkan semua orang melakukan akses terhadap databasenya. Orang yang mengakses MySQL hanya tertentu sehingga keamanan login dan password dapat terjaga. Sementara itu SQLite membiarkan semua orang mengakses databasenya termasuk nomor login dan password.
2.3.1 Fitur MySQL Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi. Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial. Seri 4.x. Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key
21
constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler. 2.3.2 Keunggulan MySQL Penyebab utama MySQL begitu populer di kalangan web adalah karena ia memang cocok bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki Access, misalnya—padahal Access sangat populer di platform Windows. Banyak server web berbasiskan Unix, ini menjadikan Access otomatis tidak dapat dipakai karena ia pun tidak memiliki kemampuan client-server/networking. Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak dibutuhkan dalam aplikasi web. Misalnya, klausa LIMIT SQL-nya, praktis untuk melakukan paging. Atau jenis indeks field FULLTEXT, untuk full text searching. Atau sebutlah kekayaan fungsi-fungsi builtinnya, mulai dari memformat dan memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs. Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skrip akan melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka
22
dengan load beberapa request per detik saja server web/database mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini. Dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler. Definisi RPL RPL adalah pembentukan dari penggunaan fungsi-fungsi engineering yang baik untuk mendapatkan perangkat lunak yang ekonomis, andal dan bekerja efisien pada mesin yang nyata. Dan RPL juga merupakan studi tentang proses dan teknologi yang sistematik dan efektf untuk pengembangan dan pemeliharaan perangkat lunak. RPL mempunyai 3 elemen kunci , yaitu : 1. Metode, untuk memberikan teknik dalam pengembangan PL 2. Tools, untuk memberikan dukungan terhadap metode. 3. Procedure, untuk menghubungkan antara metode dan tools. 2.3.3. Metodologi Pengembangan PL Waterfall/ The Classic Life Cycle/ Metode Air Terjun Requirement sistem Analisis Design Coding Testing Maintenance
Gambar 2.1 Tahapan Metodologi Waterfall
23
Waterfall merupakan suatu pendekatan yang sistematis dan sekuansial terhadap pengembanngan RPL. Dimana metode waterfall ini mempunyai ciriciri sebagai berikut : 1. membutuhkan
pendekatan
yang
sistematis
dan
sekuensial
dalam
pengembangan PL. 2. dimulai dari tingkat system (pembentukan kebutuhan-kebutuhan elemen sistem). 3. dilanjutkan kemajuan melalui aktivitas : analisis, desain , coding, testing, dan pemeliharaan. 2.3.4. Pandangan Umum Tentang Rekayasa Perangkat Lunak Usaha yang berhubungan dengan RPL (Rkayasa Perangkat Lunak) dapat dikategorikan ke dalam 3 fase umum dengan tanpa mempedulikan area aplikasi, ukuran proyek, atau kompleksitasnya. Fase-fase tersebut adalah sebagai berikut : 1. Fase definisi (Definition phase), berfokus pada “apa” (What) dimana : pada definisi ini pengembang perangkat lunak harus mendefinisikan informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku system seperti apa
yang diharapkan, interface apa yang akan dibangun,
batasan desain apa yang ada, dan criteria validasi apa yang dibutuhkan untuk mendefinisikan system yang sukses, kebutuhan kunci dari system dan perangkat lunak yang didefinisikan. 2. Fase pengembangan (Development phase), berfokus pada “bagaimana” (how), yaitu dimana selama masa pembangunan perangkat lunak, teknisi harus mendefinisikan bagaimana data dikontruksikan, bagaimana fungsi-fungsi
24
diimplemantasikan sebuah arsitektur perangkat lunak, bagaimana detail prosedur
akan
di
implementasikan,
bagaimana
interface
ditandai
(dikarakterisasi), bagaimana rancangan akan diterjemaahkan kedalam bahasa pemrograman (atau bahasa non procedural), serta bagaimana pengujian akan dilakukan. 3. Fase pemeliharaan (Maintenance phase), berfokus pada perubahan (change), yang dihubungkan dengankoreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkenbang, serta perubahan sehubungan dengan perkembangan yang disebabkan kebutuhan pelanggan. Ada 4 tipe perubahan yang terjadi selama masa fase pengembangan, yaitu koreksi, adaptasi, pengembangan, dan pencegahan. 2.4.
Pemograman Pemograman merupakan tahapan pembangunan (pembuatan) sistem yang berfungsi membangun perangkat lunak yang diperlukan untuk mendukung sistem dan melakukan testing secara akurat. Melakukan instalasi dan testing terhadap perangkat keras dan mengoperasikan perangkat lunak, [Jogiyanto, 1999].
25