10 Modul Desain Pengelolaan Database

December 14, 2017 | Author: muhsoleh17 | Category: N/A
Share Embed Donate


Short Description

Download 10 Modul Desain Pengelolaan Database...

Description

Program Reguler & Inhouse

Desain dan Pengelolaan Database

DAFTAR ISI Proses Informasi...................................................................................................................................1 Manajemen Data...................................................................................................................................4 2.1 Pendahuluan...............................................................................................................................4 2.2 Manajemen Data Individual.......................................................................................................4 2.3 Manajemen Data Organisasi......................................................................................................6 2.4 Lingkaran Sistem Informasi.......................................................................................................6 2.5 Atribut-atribut Data....................................................................................................................7 2.5.1 Dapat di dibagi-bagi (shareable).......................................................................................7 2.5.2 Dapat di pindahkan (Transportable)...................................................................................7 2.5.3 Aman (Secure)....................................................................................................................7 2.5.4 Akurat (Accurate)...............................................................................................................7 2.5.5 Terkini ( Timely)................................................................................................................8 2.5.6 Relefan (Relevant).............................................................................................................8 2.6 Komponen dari Memori Organisasi...........................................................................................8 2.6.1 Anggota dalam Organisasi ( People)..................................................................................9 2.6.2 Tabel-Tabel.......................................................................................................................10 2.6.3 Dokumen..........................................................................................................................11 2.6.4 Multimedia.......................................................................................................................11 2.6.5 Model...............................................................................................................................12 2.6.6 Knowledge.......................................................................................................................12 2.6.7 Keputusan.........................................................................................................................12 2.7 Permasalahan dengan Data Sistem Manajemen......................................................................12 2.7.1 Duplikasi Data .................................................................................................................12 2.7.2 Kurangnya Kontrol Terhadap Data..................................................................................12 2.7.3 Kurangnya antar muka akses data....................................................................................13 2.7.4 Respon yang Lama...........................................................................................................13 2.7.5 Tidak Dapat menjawab permasalahan di dunia nyata......................................................13 2.7.6 Kurangnya Integrasi Data................................................................................................13 2.8 Data, Informasi dan Knowledge..............................................................................................14 2.9 Kesimpulan..............................................................................................................................15 Informasi.............................................................................................................................................16 3.1 Pandangan Sejarah...................................................................................................................16 3.1.1 Sejarah Sistem Informasi.................................................................................................17 3.1.2 Kelas Informasi................................................................................................................18 3.1.3 Informasi dan Perubahan Organisasi...............................................................................19 3.1.4 Penentuan Target Informasi.............................................................................................19 Sistem Database..................................................................................................................................21 4.1 Pendahuluan.............................................................................................................................21 4.2 Aplikasi-aplikasi sistem database............................................................................................21 4.3 Sistem Database vs Sistem File...............................................................................................22 4.4 Keunggulan DBMS..................................................................................................................23 4.5 Bahasa Pengolah Database......................................................................................................23 4.5.1 Data Definition Language (DDL)....................................................................................24 4.5.2 Data Manipulation Language (DML)..............................................................................24 4.6 Akses database dari Aplikasi Program.....................................................................................24 LP3T Nurul Fikri

i

Program Reguler & Inhouse

Desain dan Pengelolaan Database

4.7 Pengguna Database..................................................................................................................24 4.7.1 User database dan Antar muka.........................................................................................24 4.7.2 Administrator database ....................................................................................................25 4.8 Struktur Sistem Database.........................................................................................................25 4.8.1 Storage Manager .............................................................................................................25 4.8.2 Query Processor...............................................................................................................27 4.9 Arsitektur Aplikasi...................................................................................................................28 4.10 Sejarah sistem database.........................................................................................................28 Model Entity Relationship (E-R)........................................................................................................30 5.1 Pengenalan Desain Database...................................................................................................30 5.2 Entitas dan Atribut ..................................................................................................................31 5.2.1 Primary Key.....................................................................................................................31 5.3 Relasi antar Entitas..................................................................................................................31 5.4 Fitur-fitur lain dari Model E-R................................................................................................33 5.4.1 Key Constraints................................................................................................................34 5.4.2 Partisipasi konstrain.........................................................................................................34 5.4.3 Weak Entity......................................................................................................................35 5.4.4 Entity vs Atribut...............................................................................................................35 SQL dan Model Relasional Data........................................................................................................38 6.1 Pendahuluan.............................................................................................................................38 6.2 Structured Query Language (SQL)..........................................................................................38 6.2.1 Data Definition Language................................................................................................39 6.2.2 Data Manipulation Language...........................................................................................39 6.2.3 Embedded and Dynamic SQL..........................................................................................39 6.2.4 Trigger .............................................................................................................................39 6.3 Konstruksi Model Relasional...................................................................................................39 6.4 Perintah SQL............................................................................................................................40 6.4.1 Mendefinisikan Table.......................................................................................................40 6.4.2 Memasukan data kedalam table.......................................................................................41 6.4.3 Menampilkan data dari table............................................................................................41 6.4.4 Lebih Jauh dengan penggunaan klausa WHERE.............................................................43 6.4.5 Menghasilkan data dari kolom yang ada pada table (derived data).................................45 6.4.6 Klausa LIMIT dan OFFSET............................................................................................45 6.4.7 Fungsi Aggregate.............................................................................................................46 6.4.8 Sub Query........................................................................................................................47 6.4.9 Klausa LIKE dan DISTINCT..........................................................................................47 6.4.10 Menghapus baris data.....................................................................................................48 6.4.11 Mengubah baris data......................................................................................................48 Relasi dan Query antara Table............................................................................................................50 7.1 Relasi antara table....................................................................................................................50 7.1.1 Relasi One To Many.........................................................................................................50 7.1.2 Relasi Many To Many......................................................................................................51 7.1.3 Relasi One To One...........................................................................................................53 7.1.4 Relasi Rekursif.................................................................................................................54 7.2 Query Join Table......................................................................................................................54 7.2.1 Join dua table..................................................................................................................54 7.2.1.1 Inner Join..................................................................................................................54 7.2.1.2 LEFT JOIN...............................................................................................................55 LP3T Nurul Fikri

ii

Program Reguler & Inhouse

Desain dan Pengelolaan Database

7.2.1.3 RIGHT JOIN............................................................................................................56 7.2.1.4 Klausa Group By dan HAVING...............................................................................56 7.2.2 JOIN lebih dari 2 table.....................................................................................................57 Normalisasi.........................................................................................................................................59 8.1 Normalisasi Bentuk Pertama (1NF).........................................................................................59 8.2 Normalisasi Bentuk Kedua (2NF)...........................................................................................60 8.3 Normalisasi Bentuk Ketiga (3NF)...........................................................................................61 8.3.1 Normalisasi Bentuk Keempat (4NF)................................................................................62 RDBMS dengan MySQL database.....................................................................................................64 8.4 Fitur MySQL Database............................................................................................................64 8.4.1 Penyesuaian dengan standard-standard SQL...................................................................64 8.4.2 Program-program klien MySQL......................................................................................64 8.4.2.1 Program klien mysql................................................................................................64 8.4.2.2 Program klien mysqlimport......................................................................................66 8.4.2.3 Program klien mysqldump.......................................................................................66 8.4.2.4 Program klien mysqlcheck dan myisamchk.............................................................67 8.4.3 Storage Engine dan Tipe-tipe tabel..................................................................................67 8.5 Tipe-tipe kolom........................................................................................................................68 8.5.1 NUMERIK (BILANGAN)..............................................................................................69 8.5.1.1 INT/INTEGER.........................................................................................................69 8.5.1.2 TINYINT..................................................................................................................69 8.5.1.3 MEDIUMINT...........................................................................................................69 8.5.1.4 BIGINT....................................................................................................................69 8.5.1.5 SMALLINT..............................................................................................................70 8.5.1.6 FLOAT......................................................................................................................70 8.5.1.7 DOUBLE..................................................................................................................70 8.5.1.8 DECIMAL................................................................................................................70 8.5.2 String................................................................................................................................70 8.5.2.1 BLOB.......................................................................................................................70 8.5.2.2 CHAR.......................................................................................................................71 8.5.2.3 LONGBLOB............................................................................................................71 8.5.2.4 LONGTEXT.............................................................................................................71 8.5.2.5 MEDIUMBLOB.......................................................................................................71 8.5.2.6 MEDIUMTEXT.......................................................................................................71 8.5.2.7 TEXT........................................................................................................................71 8.5.2.8 TINYBLOB..............................................................................................................71 8.5.2.9 TINYTEXT..............................................................................................................71 8.5.2.10 VARCHAR.............................................................................................................72 8.5.3 Date..................................................................................................................................72 8.5.3.1 DATE........................................................................................................................72 8.5.3.2 DATETIME..............................................................................................................72 8.5.3.3 TIME........................................................................................................................72 8.5.3.4 TIMESTAMP...........................................................................................................72 8.5.3.5 YEAR.......................................................................................................................73 8.5.4 Tipe data Komplek..........................................................................................................73 8.5.4.1 ENUM......................................................................................................................73 8.5.4.2 SET...........................................................................................................................73 8.5.5 Opsi-opsi Kolom..............................................................................................................73 LP3T Nurul Fikri

iii

Program Reguler & Inhouse

Desain dan Pengelolaan Database

8.5.6 Operator...........................................................................................................................74 8.5.6.1 Operator Preceding...................................................................................................74 8.5.6.2 Operator Arithmatic..................................................................................................74 8.5.6.3 Operator Comparison...............................................................................................75 8.5.6.4 Operator Logical.......................................................................................................75 8.5.7 Koneksi ke Server MySQL.............................................................................................76 8.5.8 Login ke prompt mysql....................................................................................................76 8.5.8.1 Keluar dari prompt mysql.........................................................................................76 8.5.9 Membuat dan menggunakan database.............................................................................77 8.5.9.1 Membuat database....................................................................................................77 8.5.9.2 Membuat user pemilik database...............................................................................78 8.5.10 Manipulasi tabel.............................................................................................................78 8.5.10.1 Membuat tabel........................................................................................................78 8.5.10.2 Menghapus tabel.....................................................................................................79 8.5.10.3 Merubah tabel.........................................................................................................79 8.5.11 Index...............................................................................................................................80 8.5.11.1 Non-unique Index...................................................................................................81 8.5.11.2 Unique Index..........................................................................................................81 8.5.11.3 Primary Key Index.................................................................................................81 Daftar Pustaka....................................................................................................................................83

LP3T Nurul Fikri

iv

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 1 Proses Informasi Tujuan Pembelanjaran : Setelah menamatkan bab ini, diharapkan Siswa : ● ●

Dapat memahami akan pentingnya manajemen informasi. Dapat memahami model alur informasi pada manusia dan organisasi.

Organisasi atau perusahaan dapat dikatakan sebagai pengumpul terbesar dari data. Hal ini terjadi karena implementasi teknologi (contohnya: penggunaan bar code, scanner) yang membuat mudah dan murah dalam mengumpulkan data. Dunia data di estimasikan akan berlipat ganda setiap 20 bulan, dan saat ini banyak perusahan secara rutin melakukan manajemen data dalam jumlah terabytes (1012 bytes). Manajemen data menjadi fungsi kunci dari banyak organisasi. Sebelum memahami bagaimana manajemen data dan informasi dalam suatu organisasi, pertama kita pahami terlebih dahulu proses informasi yang terjadi pada diri manusia, berdasarkan model Newell-Simon yang menggambarkan bagaimana manusia menerima input, memprosesnya, dan menghasilkan output. Sebuah alur proses dikerjakan oleh processor yang terhubung ke sebuah memory yang terbagi atas data dan proses. Processor mengambil kedua data dan proses dari memori. Untuk memahami model ini, misalkan ada seseorang “kita beri nama Alissa” mendapatkan pesan untuk menelpon temannya. Pesan adalah input untuk diproses oleh sistem informasi Manusia, Alissa mendapatkan nomor telpon temannya dari memori dan juga mendapatkan sebuah proses atau instruksi untuk menelpon (angkat gagang telpon, tekan nomor, dan seterusnya). Alissa sekarang melakukan percakapan melalui telpon dengan teman, menelpon teman adalah output (Gambar 1.1). Kadang proses seperti ini sudah menyatu dalam diri kita, kita tidak pernah berfikir untuk mengambil data dan proses, semua kita lakukan secara otomatis.

Gambar 1.1. Model Newell-Simon dari Alur proses informasi pada manusia

Informasi sistem yang dimiliki manusia adalah mudah untuk “overload” hingga mengakibatkan lupa, memori kita terbatas dan kemampuan kita untuk memproses data adalah juga terbatas, karenanya kita butuh tool eksternal untuk bisa melakukan semua ini. Buku telpon adalah contoh data eksternal dari memori. Resep makanan dan penjelasan tata cara memasaknya adalah contoh dari proses eksternal dari memori. Kalkulator dan Komputer adalah contoh www.nurulfikri.com ☎ 7874223 / 24

1

Program Reguler & Inhouse

Desain dan Pengelolaan Database

eksternal memori yang kita gunakan untuk mengatasi keterbatasan kita. Model asli dari proses sistem informasi manusia dapat dikembangkan dengan menambahkan eksternal memori untuk menyimpan data dan proses (instruksi-instruksi) dan eksternal processor untuk mengeksekusi proses (Gambar 1.2) .

Gambar 1.2. Sebuah Pengembangan dari model sistem informasi manusia.

Model pada proses sistem informasi manusia dapat juga diterapkan dalam proses sistem informasi organisasi. Sebuah organisasi (misal: perusahaan) mendapatkan input-input dari lingkungannya: riset pasar, komplain dari pelanggan, dan aksi dari kompetitor. Perusahaan memproses data ini dan menghasilkan output-output: kampanye penjualan, produk-produk baru, perubahan harga dan sebagainya. Bisa dilihat pada Gambar 1.3 bagaimana sebuah organisasi memproses data.

www.nurulfikri.com ☎ 7874223 / 24

2

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 1.3. Proses Sistem Informasi Organisasi

www.nurulfikri.com ☎ 7874223 / 24

3

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 2 Manajemen Data Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ● ● ●

2.1

Mengerti konsep dari manajemen data Mengenal komponen-komponen dari memori organisasi Memahami masalah dengan keberadaan sistem manajemen data Menyadari bahwa kesuksesan dari manajemen data membutuhkan pemahaman terintegrasi dari perilaku organisasi dan teknologi informasi.

Pendahuluan

Bayangkan bagaimana apabila terjadi pada bank yang lupa siapa yang telah meminjam uang, pada sebuah majalah yang kehilangan nama dan alamat dari pelanggannya. Kedua contoh tadi adalah masalah sangat serius, karenanya jika terjadi bisnis tidak akan bisa berjalan. Organisasi memiliki sistem manajemen data untuk mencatat milyaran detail data transaksi bisnis dan membuat beberapa keputusan. Manajemen dari organisasi data, secara umum dikenal sebagai manajemen data, membutuhkan skill dalam desain, menggunakan, mengatur sistem memori dari suatu organisasi modern. Manager yang bertanggung jawab atas data harus melihat organisasi sebagai sebuah sistem sosial dan memahami teknologi manajemen data. Integrasi dari keduanya (sosial dan teknologi) adalah persyaratan dari suksesnya sebuah organisasi.

2.2

Manajemen Data Individual

Sebagai manusia, kita menyadari bahwa kita mempunyai keterbatasan dalam kapasitas mengingat sesuatu hal. Otak kita sebagai memori internal, dapat saja overload dengan terlalu banyak mengingat hal detil, seiring waktu memori atau daya ingat akan mengalami penurunan. Kita menyimpan sesuatu hal dalam internal memori : nomor telpon rumah atau kantor, dimana kita parkir terakhir kendaraan kita, dan bagaiman raut muka orang-orang yang kita temui terakhir kali. Kita dapat menggunakan memori eksternal untuk tetap mengingat banyak hal yang seharusnya kita selalu ingat. Memori eksternal terdapat dalam banyak macam bentuk. Kita gunakan kalendar kegiatan untuk tetap mengingat akan kegiatan sehari-hari yang kita lakukan, rapat, catatan pekerjaan, janji dengan seseorang. Kita gunakan catatan kegiatan seharihari / pekanan untuk tetap mengingat apa yang harus kita kerjakan hari ini, esok atau lusa.

7.20

19 Juli 2007 Antar Rosa Sekolah

9.00

Meeting dengan Client

www.nurulfikri.com ☎ 7874223 / 24

4

Program Reguler & Inhouse

Desain dan Pengelolaan Database

10.30 Ke Bank 12.00 Makan Siang di Margonda 13.00 Cek Email 13.20 Ngoprek Cake PHP 16.00 Buat Laporan Rihlah 17.00 Buat Soal UAS PHP PPST 18.30 Ujian PPST 21.00 Sampe Rumah 22.30 Buat Modul Basis Data

Gambar 2.1: Kalendar Kegiatan

Gambar 2.2: Lembaran Buku Alamat

Pada dua contoh dari sistem memori individual yaitu, Kalendar kegiatan dan Buku Alamat mengilustrasikan fitur yang dimiliki dari sebuah sistem manajemen data : Terdapat media penyimpan : Data ditulis pada lembaran kertas. Terdapat struktur dalam penyimpanan data ( Data nama ditempatkan pada label Name, dan alamat ditempatkan pada label address ). ● Penyimpanan data terorganisir dalam tiap baris datanya. (Data kalendar kegiatan terurut sesuai urutan waktu, sehingga data dapat ditemukan dengan mudah dan cepat). ● ●

www.nurulfikri.com ☎ 7874223 / 24

5

Program Reguler & Inhouse

2.3

Desain dan Pengelolaan Database

Manajemen Data Organisasi

Organisasi, sebagaimana orang, membutuhkan daya ingat akan segala sesuatu hal, jika anda perhatikan di sekeliling sebuah kantor akan anda temui alat-alat dari memori organisasi: karyawan, filling cabinet, aturan kerja atau kebijakan kantor, papan tulis beirisi rencana kerja dan komputer-komputer. Dalam komputer terdapat media penyimpanan (Hardisk). Disket, flash disk, CD dapat digunakan untuk menyimpan file atau data. Hal yang sama ditemukan pada memori individual terjadi pula pada memori organisasi. Sebuah tabel biasaya dibuat untuk menyimpan struktur data, sebagai contoh jika kita ingin menyimpan data pelanggan, kita dapat membuat tabel dimana tiap kolom mewakili informasi tertentu dari pelanggan. Semua informasi tersimpan dalam media penyimpanan, media penyimpanan harus tertata dengan rapi, terorganisir dengan baik dan dapat dengan mudah mendapatkan informasi yang dicari. Pelanggan ingin cepat dilayani dalam mendapatkan informasi dan proses yang cepat dari transaksi yang dilaksanakan. Kecepatan akses data menjadi kunci dari seluruh sistem manajemen data, pada akhirnya dibutuhkan biaya atau harga untuk merealisasikannya. Kecepatan akses memori berarti menambah biaya. Tabel 2.1 : Tipe dari sistem informasi

Tipe dari sistem informasi

Tujuan sistem

Transaction Processing System (TPS)

Mengumpulkan dan menyimpan data dari rutinitas transaksi

Management Information System (MIS) Mengubah data dari sebuah TPS menjadi informasi untuk perencanaan, kontrol, dan manajemen organisasi. Decision Support System (DSS)

Mendukung manager pengambil keputusan dalam menyediakan model-model untuk memproses dan analisa data

Executive Information System (EIS)

Menyediakan manajemen senior dengan informasi yang relefan untuk memonitor performance dari organisasi dan mengembangkan dan mengimplementasikan strategi-strategi

Online Analytical Processing (OLAP)

Menampilkan sebuah tampilan multi dimensi dan logika dari data

Data Mining

Digunakan untuk analisa statistik dan teknik artificial intelligence untuk mengidentifikasi relasi yang tersembunyi dari data

2.4

Lingkaran Sistem Informasi

Bermacam sistem dan teknologi ditemukan dalam sebuah organisasi dan terhubung dalam sebuah lingkaran (Gambar 1.6 ). Rutinitas bisnis yang berjalan dari sebuah organisasi di proses dengan TPS, sistem ini meng-handle data terkini (present). Koleksi data pada TPS disimpan dalam database, menyimpan data-data masa lalu (the past), sejarah organisasi dan interaksi yang terjadi didalamnya dalam menjalankan roda bisnis. Data-data ini dikonversi menjadi informasi dengan berbagai macam software analisis (DSS). Teknologi-teknologi ini digunakan oleh organisasi untuk menyiapkan masa depan (future). Sebuah sistem bisnis diciptakan untuk menyiapkan bagaimana transaksi pada perusahaan akan diproses dan bagaimana data dikumpulkan. Dan proses berulang dan berlanjut.

www.nurulfikri.com ☎ 7874223 / 24

6

Program Reguler & Inhouse

2.5 2.5.1

Desain dan Pengelolaan Database

Atribut-atribut Data Dapat di dibagi-bagi (shareable)

Dalam suatu organisasi mungkin terdapat banyak individu pengambil keputusan, dalam suatu saat mungkin terjadi seseorang mengambil / mengakses data yang sama dalam waktu yang sama. Sebagai contoh dalam suatu bank adalah kejadian biasa pada saat bersamaan customer secara simultan mengakses informasi mengenai suku bunga deposito.

2.5.2

Dapat di pindahkan (Transportable)

Data harus bisa dipindahkan dari media penyimpanan kepada pengambil keputusan. Telepon, mesin fax, email, komputer sharing adalah salah satu cara memindahkan data dari satu lokasi ke lokasi lain atau dari satu personal ke personal lain. Pada intinya pengambil keputusan harus dapat mengakses data manakala dibutuhkan pada saat pengambilan keputusan.

2.5.3

Aman (Secure)

Dalam era industri saat ini, data menjadi barang yang sangat berharga pada suatu organisasi / perusahaan. Sebagaimana kita pelajari sebelumnya bahwa data men-support bisnis transaksi dari hari ke hari, karena pentingnya data maka perusahaan melindungi/memproteksi dari akses yang tidak diinginkan. Terdapat beberapa cara untuk melindungi data dari kehilangan, sabotase atau pencurian. Biasanya data di copy dan disimpan dalam lokasi yang berbeda, teknik ini populer dengan menyimpan data ke dalam sistem komputer (aplikasi program), dimana akses data kadang dibatasi secara fisik dengan harus memasukan nama user dan password.

2.5.4

Akurat (Accurate)

Anda pasti memahami bahwa mahasiswa lulus dalam ujian salah satunya adalah karena mempunyai daya ingat (memori) yang baik. Hal yang sama juga berlaku pada organisasi, organisasi yang mempunyai memori yang akurat akan bekerja lebih baik dari pada kompetitor yang mempunyai banyak informasi namun tidak akurat. Sebagai contoh perusahaan penerbangan harus mengetahui secara akurat data untuk memprediksi permintaan (jumlah penumpang) dalam tiap tujuan penerbangan setiap tahunnya. Konsekwensi dari ketidak akuratan data akan mengakibatkan pengeluaran atau biaya operasional yang tinggi, pelayanan yang tidak baik (delivery delays). Karena data yang akurat sangatlah penting, organisasi perlu memperhatikan dalam mendapatkan data, data harus dipilah dan dianalisasi sehingga didapat data yang akurat, dan tidak didapatkan data yang rentan atau tidak jelas (vulnerable).

2.5.5

Terkini ( Timely)

Nilai dari kumpulan data terkadang didefinisikan dari usia data, anda bisa berimaginasi seandainya anda mengetahui bahwa nilai suatu saham besok akan naik atau dollar akan menguat secara significant. Dengan mengetahui data lebih awal (real time data) maka manager operasional dapat melakukan pengambilan keputusan dan melakukan proses transaksi bisnis lebih cepat dari pada pesaing. Berbeda dengan manager perencanaan strategis, dalam mengambil Ia akan menganalisa data dari bulan-bulan lalu karena lebih cenderung mendeteksi bagaimana bentuk tren jangka panjang dari data.

www.nurulfikri.com ☎ 7874223 / 24

7

Program Reguler & Inhouse 2.5.6

Desain dan Pengelolaan Database

Relefan (Relevant)

Organisasi harus menjaga agar data selalu relefan terhadap proses transaksi dan pengambilan keputusan. Ketika memproses pengajuan aplikasi kredit seorang nasabah, perusahaan harus mengetahui sejarah calon nasabah bagaimana kondisi keuangan (pemasukan dan pengeluaran) bulanan, apakah data nasabah relefan sehingga dapat disetujui aplikasinya. Ketika manager penjualan ingin mengetahui apakah suatu produk sukses di pasaran, maka manager harus mendapatkan data yang relefan tentang produk bagaimana laporan penjualan yang terjadi dalam suatu daerah tertentu. Data yang relefan adalah kunci dari men-desain sistem manajemen data. User harus memutuskan apakah data harus disimpan saat ini atau ditunda, karena belum relefan atau belum sesuai aturan. Relefansi data juga penting pada saat mengambil atau memproses data dari sebuah sistem manajemen data.

2.6

Komponen dari Memori Organisasi

Memori-memori organisasi tersedia dalam bermacam-macam bentuk media dan berbagai macam cara, yaitu bisa dalam bentuk personal dalam organisasi (people), SOP (Standard Operation Procedures), aturan-aturan, kultur organisasi, peralatan penyimpanan secara fisik dan perangkat elektronik. Untuk lebih memahami bermacam memori organisasi yang terdapat dalam suatu organisasi, berikut adalah komponen dari memori organisasi.

Gambar 2.4: Komponen Memori Organisasi www.nurulfikri.com ☎ 7874223 / 24

8

Program Reguler & Inhouse 2.6.1

Desain dan Pengelolaan Database

Anggota dalam Organisasi ( People)

Anggota dalam organisasi merupakan komponen utama dari memori organisasi karena mereka mengetahui bagaimana menggunakan semua komponen memori organisasi, mereka mengambil keputusan dan melakukan aksi-aksi bisnis, mereka membuat, me-maintain, melakukan perubahan dan menggunakan sistem manajemen data. Anggota dalam organisasi (people) mengumpulkan data dari beraneka komponen memori organisasi untuk mendapatkan sebuah gambaran yang jelas dari situasi yang terjadi. Setiap personal dalam organisasi memiliki peran (role) dan posisi (position) dalam struktur hirarki organisasi. Peran dan posisi adalah dua alat untuk mengingat bagaimana fungsi-fungsi organisasi berjalan dan bagaimana data diproses. Budaya organisasi (culture) adalah kepercayaan, nilai-nilai, perilaku-perilaku dan normanorma yang mempengaruhi tingkah laku dan harapan-harapan dari tiap personal dalam organisasi. Pengalaman, kestabilan sistem memori, budaya atau perilaku dari ketentuan-ketentuan yang diterima dan pengaruh dari pengambilan keputusan. Jaringan sosial (social network), terkadang dibutuhkan waktu lama untuk membentuknya : adalah digunakan untuk membuat segala sesuatu berjalan dan bagaimana mempelajari tentang lingkungan bisnis. Biasanya anggota jaringan sosial terdokumentasi dengan baik, paling tidak tercatat dalam buku alamat. Standard operating procedures (SOP) ada pada banyak tugas kerja organisasi. Sebagai contoh, memproses penerimaan pendaftaran, persiapan penyelenggaran suatu kelas, proses penerimaan karyawan baru dan proses pengajuan aplikasi kredit, semuanya adalah prosedurprosedur yang telah jelas didefinisikan oleh banyak organisasi. SOP di uraikan dalam manual / aturan kantor, program komputer dan rincian kerja (job description). SOP adalah cara sebuah organisasi mengingat akan rutinitas dan aktifitas bekerja dengan baik.

2.6.2

Tabel-Tabel

Tabel adalah format umum yang digunakan untuk mengorganisasikan data. Tabel 2.2 menggambarkan sebuah list harga dalam format tabular, biasanya baris pertama mendefinisikan arti dari baris-baris data dibawahnya. Tabel 2.2: list harga

Produk

Harga

Bubur Kacang Ijo

3500

Bubur Ayam

5000

Mie Baso

4500

Mie Ayam

4500

Mie Ayam + Baso

6000

Sebuah tabel adalah bentuk keseluruhan dimana mendiskripsikan bermacam struktur yang digunakan untuk menyimpan data. Struktur file pada komputer adalah tabel, hal yang sama untuk spreadsheet , general ledgers dan worksheet adalah tabel. Pada sistem akuntansi sering menggunakan tabel. Kartu order produk dapat ditransformasikan kedalam bentuk tabel.

www.nurulfikri.com ☎ 7874223 / 24

9

Program Reguler & Inhouse

Produk

Kode Produk

...

...

Desain dan Pengelolaan Database

No.Order

Jumlah Order

Supplier

Kode Supplier

... ... ... ... Gambar 2.5: Tranformasi sebuah kartu file menjadi format tabel.

Data tersimpan dalam sebuah tabel mempunyai karakteristik : Data dalam satu kolom adalah bertipe sama. Sebagai contoh, setiap cell dalam coloum dengan header harga adalah sebuah angka. ● Data dibatasi dengan panjang dari alokasi tempat. Sebagai contoh, data dengan header nama dibatasi dengan maksimum 50 karakter. ●

Keuntungan dari penggunaan tabel adalah kecepatan dalam pencarian data, jika data diurutkan dengan harga produk anda akan cepat menemukan harga dari setiap produk. Tabel adalah bentuk umum dari organisasi penyimpanan data karena strukturnya mudah dibaca dan dimengerti.

2.6.3

Dokumen

Dokumen –laporan,aturan-aturan tertulis, brosur dan catatan– adalah secara umum digunakan untuk menyimpan data organisasi. Sebagian besar dokumen-dokumen saat ini tersimpan secara elektronik, file text . Hypertext, adalah dokumen yang digunakan dalam teknologi web. Sebuah dokumen hypertext dapat terhubung ke dokumen lain melalui link sebuah text, sehingga pembaca bisa berpindah-pindah dalam menelusuri dokumen yang dibacanya dengan cepat.

2.6.4

Multimedia

Mulai dikenalkannya era web, telah mendorong penyimpanan media kedalam bentuk objek multimedia, seperti suara (sound) dan klip vidio (video clips). Sebuah perusahaan yang bergerak dalam industri otomotif menggunakan klip vidio tentang produk mobil yang dipasarkan, toko musik menyimpan lagu terbaru dalam bentuk suara dan sebuah toko elektronik menampilkan gambargambar produk yang dijual didalam websitenya. Menjaga website dengan data berbentuk multimedia menjadi salah satu masalah tersendiri dalam mengorganisasikan data. www.nurulfikri.com ☎ 7874223 / 24

10

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Format data dari multimedia diantaranya : Images, adalah data visual: foto, sketsa. Media images digunakan untuk menyimpan data dengan berbagai macam alasan : 1. Images digunakan untuk data identifikasi dan keamanan. Contohnya gambar sidik jari digunakan pada kepolisian. 2. Images digunakan sebagai barang bukti. Contohnya foto berlian digunakan sebagai barang bukti pada persidangan. 3. Images digunakan sebagai alat iklan dan alat promosi. 4. Images digunakan sebagai komoditas untuk dijual, clipart dan foto banyak ditemukan di internet dan dijual. Graphics, peta dan gambar mesin adalah salah satu contoh data yang tersimpan dalam bentuk graphics. Sebuah organisasi memiliki data peta dari area bagian penjualan dan pelanggannya. Perusahaan manufaktur telah mengumpulkan data graphics dalam perpustakan untuk menyimpan data gambar desain teknik (mesin, arsitektur). Graphics berbeda dengan images, graphics memiliki detail dan dimensi gambar yang lebih eksplisit. Saat ini telah terdapat sistem informasi geographic (GISs) untuk menyimpan data geographic, yang berisi peta daerah atau wilayah, jalan dan tempat pada suatu area. Audio, format multimedia ini biasnya digunakan pada industri musik. Format audio juga digunakan untuk menyimpan percakapan bisnis atau deal transaksi melalui pesawat telpon. Video, Sebuah klip vidio bisa menjadi alat yang sangat potensial dalam mendapatkan customer, calon customer akan lebih tertarik melihat vidio tentang produk yang akan dibeli dan akan mendapatkan informasi atau gambar real dari produk.

2.6.5

Model

Organisasi (Perusahaan) membuat model matematika dalam mendiskripsikan bisnis mereka. Model-model matematika - ini dikategorikan dalam DSS – digunakan untuk menganalisa masalah terkini dan ramalan akan kondisi bisnis kedepan. Model matematika seringkali mendatangkan keuntungan dan manfaat bagi organisasi.

2.6.6

Knowledge

Organisasi dapat membuat sistem untuk menangkap knowledge dari pengalaman para pengambil keputusan dan masalah-masalah yang terselesaikan. Knowledge adalah satu satu bentuk dari memori organisasi.

2.6.7

Keputusan

Pengambilan keputusan adalah pusat kegiatan dari organisasi yang modern. Beberapa organisasi bahkan telah memiliki suatu sistem untuk mencatat keputusan-keputusan yang telah diambil.

2.7

Permasalahan dengan Data Sistem Manajemen

Terdapat bermacam masalah yang terjadi pada manajemen data di hampir semua perusahaan : www.nurulfikri.com ☎ 7874223 / 24

11

Program Reguler & Inhouse 2.7.1

Desain dan Pengelolaan Database

Duplikasi Data

Dalam banyak kasus, data pada sistem manajemen berkembang dengan pesatnya. Karenanya, seringkali terjadi data yang sama di simpan lebih dari satu kali pada alamat memori yang berbeda. Contoh kasus, misalnya sebuah alamat customer mungkin saja tersimpan dalam sistem pelaporan sales, sistem akuntansi pembayaran dan buku telpon sales. Bahayanya adalah ketika customer telah berpindah alamat, pencatatan perubahan tidak terjadi pada semua sistem. Duplikasi data menyebabkan pekerjaan tambahan, karena item yang sama harus di masukan beberapa kali. Duplikasi data juga menyebabkan kebingungan mengapa item yang sebenarnya sama memiliki nilai yang berbeda.

2.7.2

Kurangnya Kontrol Terhadap Data

Terjadinya duplikasi data menyebabkan masalah pada kontrol terhadap data. Walaupun data adalah sumber yang sangat penting bagi organisasi, seringkali terjadi data tersebar dan tersimpan dalam beberapa tempat dalam organisasi ( data tersimpan dalam tiap komputer pegawai), karenanya terjadi kurangnya kontrol terhadap data.

2.7.3

Kurangnya antar muka akses data

Sering terjadi pula, user dari data sistem manajemen dihadapi pada antar muka (user interface) yang tidak user friendly. User susah dalam mengakses penyimpanan data. User menjadi frustasi bahkan menyerah karena permintaan data selalu ditolak dan terjadi pesan error yang tidak diperhitungkan, Untungnya seiring perkembangan teknologi, dengan mengadopsi teknologi web browser yang digunakan sebagai antar muka untuk banyak aplikasi, masalah kurangnya antar muka (UI) terpecahkan.

2.7.4

Respon yang Lama

Globalisasi dan teknologi mempercepat perubahan bisnis yang tejadi dewasa ini, seorang manajer harus banyak mengambil keputusan dengan cepat. Para manajer tidak perlu menunggu programmer membuat program untuk mendapatkan data dan format laporan. Mereka berharap pertanyaan yang diajukan dapat segera dijawab dengan cepat, kurang dari sehari bahkan lebih cepat. Manajer dan tim support memerlukan bahasa query yang menyediakan kecepatan akses ke dalam data sesuai dengan yang dibutuhkan, dalam format yang diinginkan.

2.7.5

Tidak Dapat menjawab permasalahan di dunia nyata

Media penyimpanan data organisasi harus merefleksikan realitas dan kompleksitas dalam dunia nyata. Sebagai contoh, data manajemen sistem dari kampus/sekolah menyimpan data mahasiswa, matakuliah yang diikuti beserta, jadwal matakuliah yang diikuti, nilai matakuliah, pembayaran kuliah. Ketika ada permintaan untuk data keseluruhan aktifitas seorang mahasiswa dalam hanya sekali input (atau sekali dilakukan query), maka seringkali terjadi kasus, karena data manajemen sistem tidak selalu menggambarkan realitas sebenarnya. Pada contoh ini, data mahasiswa,matakuliahi,jadwal matakuliahi,nilai matakuliah dan data pembayaran kuliah tidak saling terhubung (tidak ada relationship antar data), karenanya tidak mungkin dengan sekali query atau query yang sederhana akan didapatkan keselurahan data. Data sistem manajemen harus sesuai dengan pengambilan kebijakan yang dibutuhkan oleh manajer. Agar berjalan secara efektif maka data manajemen sistem harus merefleksikan keadaan

www.nurulfikri.com ☎ 7874223 / 24

12

Program Reguler & Inhouse

Desain dan Pengelolaan Database

dalam dunia nyata, data secara jelas didefinisikan keterhubungannya dengan data data lainnya.

2.7.6

Kurangnya Integrasi Data

Sering terjadi kurangnya integrasi data dalam banyak organisasi. Data tidak hanya tersebar dan tersimpan dalam beberapa format bentuk memori organisasi, bahkan didalam satu media penyimpanan terjadi kurangnya integrasi. Sebagai contoh data mahasiswa yang tersimpan dalam sistem penilaian tidak terhubung dengan data yang tersimpan dalam sistem pembayaran. Hal ini terjadi karena, pertama, komputer yang menyimpan data tidak saling terhubung dikarenakan hambatan dan ketersediaan teknologi. Dimana organisasi hanya membuat sistem yang sederhana untuk satu fungsi saja. Kedua, Integrasi data adalah tujuan jangka panjang. Sebuah sistem baru dikembangkan dan sistem lama dibuat ulang, karenanya diperlukan waktu yang lama untuk mengintegrasikan beberapa sistem dan memerlukan biaya yang cukup tinggi untuk memecahkan masalah integrasi dalam sekali jalan.

2.8

Data, Informasi dan Knowledge

Seringkali ditemukan penggunaan kata data dan informasi saling bergantian, sesungguhnya memiliki arti yang berbeda. Data adalah suatu berita yang bersipat kasar, belum disarikan dan belum dianalisasi fakta-faktanya. Sedangkan Informasi adalah data yang telah diproses menjadi sesuatu bentuk yang berarti. List angka-angka yang tercatat pada rapor sekolah adalah data bukan informasi, karena terlalu detail untuk digunakan untuk menyatakan seorang siswa berprestasi. Kesimpulan yang didapat dari nilai-nilai berupa indeks prestasi atau tentang kelulusan siswa adalah informasi. Data adalah selalu data, tapi satu informasi yang dimiliki seseorang dapat menjadi data bagi seseorang lainnya (bukan informasi bagi dirinya). Informasi yang sangat berarti bagi seseorang dapat menjadi sesuatu yang terlalu detail bagi orang lain (orang lain hanya menganggap sebagai data saja). Ketika suatu masalah teridentifikasi manajer membutuhkan detail data untuk mengambil keputusan, pada saat itu data berubah menjadi informasi karena data dibutuhkan atau membantu dalam pengambilan keputusan. Ketika masalah telah terselesaikan, informasi berubah menjadi data. Karenanya dibutuhkan sistem informasi yang dapat membantu manajer dalam memproses data sehingga selalu didapat informasi yang dibutuhkan manakala akan diambil suatu keputusan. Knowledge adalah kapasitas untuk menggunakan informasi. Pendidikan dan pengalaman yang manajer miliki membuat menjadi begitu tanggap dan cermat akan informasi yang diterima. Knowledge disini berarti bahwa manajer dapat meng-interprestasikan informasi dan digunakan sebagai pengambilan keputusan, atau dengan kata lain Knowledge adalah kapasitas untuk mengetahui apakah informasi akan berguna untuk membuat keputusan. Seorang wali murid atau orang tua ketika membaca nilai-nilai rapor anaknya akan mendapatkan informasi bahwa anaknya sebaiknya ia akan sekolahkan ke jurusan IPA karena telah mendapatkan informasi bahwa anaknya pandai dalam mata pelajaran IPA.

www.nurulfikri.com ☎ 7874223 / 24

13

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 2.6: Hubungan antara data, informasi dan knowledge

Knowledge yang dimiliki seseorang akan meminta informasi untuk mendukung pengambilan keputusan. Sebagai hasilnya, data dikonversi menjadi informasi. Knowledge yang dimiliki seseorang (personal knowledge) adalah kemudian digunakan untuk menginterprestasikan informasi yang didapat dan kemudian didapatkan kesimpulan. Sudah tentu alur ini dapat terjadi berulang-ulang jika informasi diperlukan sebelum keputusan diambil.

2.9

Kesimpulan

Organisasi harus menjaga (me-maintain) memori untuk memproses transaksi-transaksi dan membuat keputusan-keputusan. Pengorganisasian data haruslah dapat di bagi-bagikan, dapat dipindah-pindahkan, aman dan akurat, selalu terkini, data relefan. Komponen-komponen esensial dari Organisasi adalah yang terpenting adalah people (anggota organisasi), text, model-model dan knowledge. Aneka dan bermacam teknologi dapat digunakan untuk memanajemen data. Memori eksternal memperbesar jangkauan dari ketersedian data untuk sebuah organisasi. Data manajemen sistem sering menghadapi berbagai masalah: duplikasi data, kurangnya kontrol data, kurang baiknya antar muka, lambat dalam merespon query, ketidak mampuan menjawab pertanyaan yang dilakukan oleh manajer, dan kurangnya integrasi data. Data adalah fakta-fakta kasar, informasi adalah data yang telah diproses menjadi sesuatu bentuk yang berarti. Knowledge adalah kapasitas untuk menggunakan informasi.

www.nurulfikri.com ☎ 7874223 / 24

14

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 3 Informasi Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ● ●

3.1

Mengerti pentingnya akan informasi bagi masyarakat dan organisasi Mampu menjelaskan bermacam peran informasi pada organisasi Mengetahui bagaimana pengambil keputusan (manager) menggunakan informasi

Pandangan Sejarah

Ada tiga fase sejarah telah diidentifikasi dalam peradaban manusia, dan saat ini memasuki fase ke empat. Fase pertama, Masyarakat Pertanian (Agriculture), era sekitar 3000 SM Dikenal dengan penggunaan besi dan alat-alat pertanian, tercatat output yang dihasilkan adalah alat timbangan (takaran) yang digunakan untuk mengukur hasil panen. Pelopor dari jaman ini adalah bangsa Cina dan Mesir. Fase kedua, Masyarakat Industri, Fase ini dimulai dengan revolusi industri di daratan inggris pada abad 18, dengan hasil pemanfaat energi, diawali dengan adanya mesin uap atau yang dikenal sebagai energi pembakaran. Fase ketiga, Masyarakat Informasi, Fase ini dipelopori oleh Amerika Serikat pada awal kemunculan abad 20, dimana keberadaan jalur komunikasi terintegrasi sebagai pengerak masyarakat, dengan berbasis komputer dan teknologi informasi dalam manipulasi dan pengiriman data. Kata kunci dari masyarakat informasi adalah data. Diperkirakan bahwa abad 21 akan menjadi saksi perkembangan dari masyarakat berdasarkan kreasi. Kata kunci pada pada abad ini adalah gagasan atau ide. Teknologi akan menjadi ide rancang bangun (idea engineering) dan produktivitas akan diukur dalam bentuk keluaran / output kreatifitas, dan saat kita berada dalam fase ini. Gambar 3.1 Awal mulai sistem penulisan

Dari sejarah yang telah berjalan ini yang patut diperhatikan adalah perkembangan memori organisasi. Alat tulis dan kertas berkembang pada saat yang sama pada era masyarakat pertanian. Awal mula sistem penulisan (limited writing system) muncul pada 30.000 tahun yang lalu, kemudian berevolusi menjadi sistem penulisan yang penuh (full writing system) pada 5.000 tahun yang lalu, yang memungkinkan terjadi transfer teknologi pada umat manusia dari kehidupan berburu dan berkelompok menjadi kehidupan menetap dan bercocok tanam (pertanian). Menulis

www.nurulfikri.com ☎ 7874223 / 24

15

Program Reguler & Inhouse

Desain dan Pengelolaan Database

memungkinkan pencatatan knowledge, dan informasi dapat di akumulasi dari satu generasi ke generasi berikutnya. Sebelum era menulis, knowledge hanya terkungkung/tersimpan dalam memori manusia yang terbatas. Dibutuhkan teknologi untuk menyimpan suatu knowledge untuk bisa bertahan dalam selang waktu tertentu dan mendukung pengiriman informasi yang tertulis. Media penyimpanan mulai dari batu atau gerabah tanah liat (4.000 SM) hingga dalam bentuk lontar (3.500) dan kertas perkamen (2.000 SM) dan kertas (100 M). Teknologi penulisan membawa hasil dengan daya dorong besar dari gutenberg, dengan penemuan sistem pencetakan meliputi media metal alat cetak, tinta, kertas dan pencetakan. Dalam kurun waktu 50 tahun teknologi pencetakan berkembang melalui eropa. Pada akhir abad, media penyimpan baru muncul seperti photographic, magnetic dan optical. Memori organisasi berkembang terus sesuai dengan perkembangan organisasi di pemerintahan, militer, perusahaan dagang dan organisasi lainnya. Pertumbuhan dari organisasi pada jaman revolusi industri terlihat mempercepat kenaikan baik berupa angka atau ukuran dari memori organisasi. Teknologi web memungkinkan kita hidup tanpa batas negara. Disana tersedia informasi yang didapat di peroleh dengan cuma-cuma, aliran investasi dan industri telah melewati batas. Pelanggan telah bisa mengindahkan batas negara untuk bertransaksi jasa maupun barang. Pada batas akhir era informasi, telah tercipta hasil karya yang berharga berupa intelegensi, marketing, jangkauan global dan pendidikan. Table 3.1: Hasil Karya Cipta

3.1.1

Masa lampau

Masa Kini

Kekuatan Militer

Intelegen

Hasil Alam

Pemasaran

Penduduk

Jangkauang global

Industri

Pendidikan

Sejarah Sistem Informasi

Sistem informasi dibagi atas 3 era. Era pertama, Kerja informasi telah ditransformasikan kedalam komputer. Sebagai contoh, ketika terjadi transaksi pembayaran dengan menggunakan credit card, informasi terkirim ke pusat komputer, informasi diolah dan diproses dan menghasilkan output fisik berupa printout hasil transaksi.

Table 3.2 : Era sistem informasi Era

Fokus

Periode

Teknologi

Jaringan

1

Informasi dikerjakan oleh komputer

1950 s/d mid 1970

Batch

Data terbatas pada jaringan

2

Informasi dikerjakan oleh pegawai Mid 1970 s/d mid 1990

Host/terminal Client/Server

menyebar dan dalam jaringan internal

3

Informasi dikerjakan oleh customer dan orang lain yang berkepentingan

Browser/Server

Jaringan publik (internet)

www.nurulfikri.com ☎ 7874223 / 24

Mid 1990 s/d sekarang

16

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Era kedua, jaringan internal digunakan untuk kerja informasi oleh pegawai. Sharing informasi terjadi antara server dengan client (Host/Terminal). Departemen Sistem Informasi bertanggung jawab membuat sistem untuk digunakan oleh pegawai pada organisasi/perusahaan untuk berinteraksi dengan customer (sistem pemesanan hotel ketika calon customer memesan kamar lewat telpon) atau pegawai dari perusahaan lain untuk berinteraksi bisnis (pegawai rumah sakit ketika order obat kepada supplier). Era ketiga, diawali dengan diketemukan (diciptakannya) web browser pada pertengahan tahun 1990. Browser dapat digunakan dalam era internet yang mengglobal, layanan-layanan yang disediakan oleh perusahaan untuk kerja informasi dapat dilakukan oleh customer langsung maupun oleh individu yang berkepentingan. Sekarang customer mengerjakan sendiri proses yang sebelumnya dilakukan oleh pegawai perusahaan, contohnya pemesanan tiket pesawat online lewat internet, customer langsung berinteraksi dengan sistem yang dimiliki oleh perusahaan pada saat mengisi form pemesanan tiket. Pada era ini, Web dan Email digunakan oleh individu yang berkepentingan pada perusahaan untuk alat komunikasi dalam mengelola informasi, sehingga kerja informasi benar-benar telah menggunakan jaringan internet global.

3.1.2

Kelas Informasi Informasi dapat dikelompokan kedalam empat kelas: content, form, behavior, dan action. Table 3.3 Kelas-kelas Informasi Class

Description

Content (isi)

Kuantitas, lokasi dan tipe dari item

Form

Bentuk dan komposisi dari sebuah objek

Behavior (perilaku)

Simulasi dari sebuah objek secara fisik

Action (aksi)

Hasil kreasi dari aksi

Content Information (isi informasi) merekam detaik kuantitas, lokasi dan tipe-tipe dari item didalamnya. Kecenderungan sejarah dalam dunia nyata kelas-kelas informasi dikumpulkan dan di simpan oleh organisasi. Konten informasi dari sebuah mobil mendeskripsikan nomor model, warna, harga, chasis dan sebagainya. Ribuan byte data mungkin diperlukan untuk menyimpan secara lengkap konten informasi dari sebuah mobil. Form Information (format informasi) menjelaskan Bentuk dan komposisi dari sebuah objek, sebagai contoh bentuk informasi dari sebuah mobil mendefinisikan dimensi dan komposisi setiap komponen dari mobil. Jutaan byte data mungkin diperlukan untuk menyimpan bentukbentuk dari mobil. Behavior Information (perilaku informasi) digunakan untuk memprediksi perilaku objek secara fisik dengan menggunakan teknik-teknik simulasi, dimana membutuhkan format informasi sebagai inputan. Dalam jumlah besar perhitungan setiap detiknya dibutuhkan untuk simulasi perilaku informasi. Contohnya simulasi penerbangan sebuah pesawat rancangan baru membutuhkan milayaran perhitungan komputasi. Perilaku Informasi biasanya disajikan dalam bentuk visual karena data milyaran hasil simulasi dalam bentuk angka yang dihasilkan tidak begitu mudah di akses oleh manusia. Action Information (aksi informasi) memungkinkan sebuah instan hasil kreasi dihasilkan oleh teknologi yang canggih. Robot-robot pada Industri menggunakan aksi informasi dalam www.nurulfikri.com ☎ 7874223 / 24

17

Program Reguler & Inhouse

Desain dan Pengelolaan Database

membuat komponen produk industri.

3.1.3

Informasi dan Perubahan Organisasi

Dalam organisasi pencapaian tujuan atau target diarahkan. Organisasi berjalan dan mengalami perubahan dengan menggunakan sumber daya yang dimiliki, anggota organisasi (pegawai perusahaan), teknologi dan aset-aset keuangan untuk mencapai masa depan yang diinginkan. Target biasanya telah ditetapkan, seperti target keuntungan 500 juta, memenangkan kompetisi sepak bola, atau mengurangi defisit keuangan dari lembaga pemerintah sampai 25 persen dalam waktu 5 tahun. Terkadang target tidak mudah untuk dicapai, walaupun demikian organisasi secara kontinu mencari informasi yang dapat men-support pencapaian target. Informasi yang dicari terbagi atas tiga kategori : penentuan sasaran, kesenjangan dan perubahan.

Gambar 3.2: Pengorganisasian Kategori Informasi

3.1.4

Penentuan Target Informasi

Organisasi menentukan target-target atau level dari kinerja yang diinginkan. Manager selaku pengambil keputusan membutuhkan informasi untuk mencapai target-target yang menantang dan realistik. Sebagai contoh sebuah perusahaan yang telah mencapai 15% nilai kembali dari hasil investasi (ROI) mungkin akan men-set target baru pada 17% ROI. Teknik ini dinamakan “anchoring an adjusting”. Perencanaan / Planning Perencanaan adalah tugas penting untuk seorang pengambil keputusan. Untuk men-set arah perusahaan, pengambil keputusan memerlukan informasi tentang apa yang diinginkan oleh customer, keadaan sosial, ekonomi, hal-hal teknik dan kondisi politik. Mereka menggunakan informasi untuk menghadapi peluang dan ancaman pada organisasi, sehingga dapat diambil keuntungan dari peluang dan menghindari ancaman. Benchmarking / Membandingkan Benchmarking digunakan oleh organisasi sebagai alat untuk mencapai penentuan target informasi. Benchmarking akan menentukan keberhasilan target berdasarkan praktek di industri. Benchmarking ditemukan pada konsep Jepang yaitu dantotsu, berjuang untuk menjadi yang terbaik dari yang terbaik (best of the best). Benchmarking dijalankan dengan menggunakan metode pembelajaran, dokumentasi dan selalu menggunakan setingan / target dan selalu mendesain ulang praktek yang dilakukan saat ini dibandingkan dengan kinerja yang diharapkan.

www.nurulfikri.com ☎ 7874223 / 24

18

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Organisasi membutuhkan informasi untuk mengidentifikasi segala yang mungkin, motivasi dan perubahan target. Pada saat target sudah tercapai, organisasi memerlukan informasi untuk mendefinisikan ulang target-target yang akan dicapai selanjutnya.

www.nurulfikri.com ☎ 7874223 / 24

19

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 4 Sistem Database Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ● ● ● ● ●

4.1

Dapat memahami konsep sistem database. Dapat menyebutkan penerapan sistem aplikasi database. Dapat mengerti keunggulan dan pemanfaatan dari DBMS. Dapat mengenal konsep bahasa pengolah database (SQL). Dapat memahami struktur sistem database. Dapat mengenal arsitektur aplikasi program menggunakan database.

Pendahuluan

Pada saat ini, kesuksesan sebuah organisasi (perusahaan) bergantung pada kemapuan untuk mengumpulkan data yang akurat dan terkini serta bagaimana cara mengoperasikannya, kemampuan untuk mengatur (management) data secara efektif, dan kemampuan untuk menggunakan data serta sebagai panduan untuk melakukan aktivitas bisnis. Sebuah database adalah kumpulan data, secara khusus menggambarkan aktifitas-aktifitas satu atau lebih yang berhubungan dengan organisasi atau menggambarkan informasi yang terjadi pada organisasi. Sebagai contoh database perguruan tinggi mungkin saja mengandung beberapa informasi sebagai berikut : ● ●

Entitas seperti siswa, jurusan, matakuliah, dosen, kelas Relasi diantara entitas seperti, siswa mengambil matakuliah tertentu, dosen mengajar matakuliah dalam suatu kelas tertentu.

Sistem Manajemen Database (database-management system) atau dikenal dengan DBMS adalah kumpulan dari data yang saling berhubungan dan sebuah kumpulan dari program-program yang digunakan untuk mengakses data-data tersebut. Tujuan utama dari DBMS adalah untuk menyediakan sebuah cara menyimpan data dan mengambil informasi database dimana kedua hal tersebut dilakukan dengan baik sekali dan efisien. Sistem-sistem database didesain untuk me-manajemen informasi dalam skala besar. Manajemen dari data meliputi dua hal yaitu bagaimana mendefinisikan struktur untuk menyimpan informasi dan menyediakan mekanisme untuk memanipulasi informasi. Tambahan lagi, sistem database haruslah menjamin keamanan atas informasi yang tersimpan, meskipun terjadi crash pada sistem atau ada usaha yang tidak berkepentingan untuk meng-akses sistem. Jika data digunakan untuk saling berbagi oleh beberapa user, sistem harus memastikan tidak terjadi kemungkinan anomali atau pembiasan dari data yang dihasilkan.

4.2

Aplikasi-aplikasi sistem database

Database telah banyak digunakan oleh berbagai organisasi, berikut contoh aplikasi yang telah menggunakan database : www.nurulfikri.com ☎ 7874223 / 24

20

Program Reguler & Inhouse ● ●

● ● ●

● ● ● ●

Desain dan Pengelolaan Database

Banking (Perbankan) : Digunakan untuk informasi customer, account, peminjaman dan transaksi perbankan. Airlines (Penerbangan) : Digunakan untuk reservasi dan informasi jadwal penerbangan. Penerbangan adalah salah satu diantara yang pertama kali menggunakan database yang terdistribusi secara geografis, Terminal-terminal di berbagai belahan dunia mengakses satu pusat sistem database melalui jaringan kabel telpon secara online dan lewat jaringan data lainnya. Universities (Perguruan Tinggi) : Digunakan untuk informasi siswa, pendaftaran dan penilaian Credit Card Transaction (Transaksi kartu kredit) : Digunakan untuk pembayaran kartu kredit dan membuat pencatatan transaksi bulanan. Telecommunication (Telekomunikasi) : Digunakan untuk menyimpan percakapan yang terjadi, menghasilkan tagihan bulanan, dan menyimpan informasi tentang jaringan komunikasi. Finance (Keuangan) : Digunakan untuk menyimpan data kepemilikan perusahaan, penjualan, pembayaran instrumen-instrumen keuangan seperti saham dan obligasi. Sales (Penjualan) : Digunakan untuk menyimpan data customer, produk-produk dan informasi pembayaran Manufacturing (Manufaktur) : Digunakan untuk manajemen pengadaan dan melacak suatu produk dari suatu pabrik, pergudangan dan order suatu item produk Human Resources (Personalia) : Digunakan untuk pencatatan tentang pegawai, gaji, pembayaran pajak, keuntungan.

Penggunaan database semakin berkembang di era abad 21, dengan adanya revolusi internet pada akhir tahun 1990 mempertajam kenaikan user yang mengakses database secara langsung. Organisasi mengubah aplikasi mereka yang semula menggunakan telepon dalam bertransaksi menjadi menggunakan web sebagai antar muka aplikasi. Sebagai contoh ketika anda mengakses sebuah toko buku online lewat internet, ketika itu anda telah terhubung ke database dalam mendapatkan katalog dan informasi buku-buku yang akan dibeli.

4.3

Sistem Database vs Sistem File

Dalam memahami kebutuhan akan DBMS, berikut diilustrasikan sebuah skenario: Sebuah perusahaan mempunyai koleksi data (diasumsikan besar data 500 GB) dari pegawai, departemen, produk-produk dan penjualan dan data lainnya. Data ini diakses oleh oleh beberapa pegawai. Pertanyaannya, sistem harus merespon/memberikan jawaban yang cepat, perubahan data oleh beberapa orang pegawai harus tetap konsisten pada saat penggunaan dan akses untuk data tertentu (misal gaji) harus dibatasi. Dari skenario diatas, ketika dicoba untuk me-manajemen data dimana data disimpan dalam sistem operasi file. Diketemukan beberapa kelemahan diantaranya adalah hal berikut ini : Tidak diketemukan memori dengan kapasitas 500 GB untuk menyimpan seluruh data, karenanya diperlukan penyimpan data (storage device) seperti media disk atau tape dan terhubung ke memori utama untuk melakukan proses yang diperlukan. ● Walaupun kita memiliki memori utama 500 GB, dan sistem komputer 32 bit, kita tidak dapat mengacu secara langsung untuk data yang lebih dari 4 GB, kita harus membuat sebuah program untuk mengidentifikasikan seluruh item data. ● Kita harus membuat program spesial untuk mendapatkan jawaban dari apa yang user inginkan dari data. Program diperkirakan akan kompleks karena volume data yang besar untuk pencarian. ● Kita harus memproteksi data dari perubahan tidak konsisten yang dilakukan oleh user ●

www.nurulfikri.com ☎ 7874223 / 24

21

Program Reguler & Inhouse

Desain dan Pengelolaan Database

berbeda ketika akses dalam waktu bersamaan. ● Kita harus memastikan data tersimpan ulang konsistensi manaka sistem crash, dan telah terjadi perubahan data. ● Sistem operasi hanya mempunyai sistem user dan password dalam mekanisme keamanan sistem. Hal ini tidak cukup fleksibel dalam kebijakan keamanan ketika user yang berbeda mempunyai izin akses berbagai macam bagian data. DBMS adalah sebuah piranti lunak (software) yang didesain untuk melakukan tugas-tugas yang disebutkan diatas menjadi lebih mudah. Dengan menyimpan data dalam DBMS dibandingkan dengan menyimpan sistem operasi file, kita dapat menggunakan fitur-fitur DBMS untuk manajemen data dengan baik dan efisien. Seiring dengan bertambahnya volume data dan jumlah user –ribuan gegabyte data dan ribuan user adalah hal biasa pada database perusahaan– support DBMS menjadi sangat diperlukan.

4.4

Keunggulan DBMS Menggunakan DBMS dalam manajemen data mempunyai beberapa keuntungan :













4.5

Independensi data : Program aplikasi seharusnya berdiri sendiri (independen) tidak tercampur dengan detail data yang diwakili oleh media penyimpanan data. DBMS dapat digunakan sebagai lapisan abstract untuk menampilkan data dan terisolasi dengan aplikasi yang diwakili oleh kode program. Efisiensi dalam akses data: Utilitas DBMS mempunyai banyak cara / teknik dalam menyimpan dan mengambil data secara efisien. Fitur ini sangatlah penting manakala data disimpan dalam media penyimpanan eksternal. Integritas dan Keamanan data: Jika data selalu diakses melalui DBMS, DBMS dapat menjaga integritas data. Sebagai contoh, sebelum memasukan informasi gaji seorang karyawan, DBMS dapat mengecek/memastikan budget masih tersedia. Dan juga DBMS dapat memaksa suatu akses kontrol terhadap data, sehingga data hanya bisa diakses oleh user tertentu. Administrasi data: Ketika beberapa user saling membagi data, administrasi yang terpusat dari data sangat diperlukan. Data yang terpusat membuat tidak terjadi duplikasi data, sebagai contoh data pegawai yang diakses oleh bagian keuangan dan personalia adalah data yang sama. Dan hal ini memudahkan dalam proses tuning database agar data dapat diakses dengan efisien. Akses bersamaan dan Recovery data : DBMS menjadwal akses bersamaan terhadap data sehingga database bisa tetap reliable untuk diakses banyak user. Penjadwalan proses backup bisa direncanakan, sehingga proses recovery data jika terjadi hal yang membuat database tidak berjalan dengan semestinya bisa berjalan, dan database akan pulih seperti kondisi semula. Mereduksi waktu pengembangan aplikasi: DBMS juga dapat mempercepat proses pembuatan aplikasi program, dimana proses bisnis sebagian bisa ditangani oleh database dengan menggunakan fitur trigger dan function.

Bahasa Pengolah Database

Sebuah sistem database memiliki cara bagaimana skema dari data didefinisikan (data definition language / DDL) dan cara bagaimana memanipulasi data (data manipulation language / DML) untuk melakukan query dan perubahan data. Dalam prakteknya DDL dan DML bukanlah dua bahasa yang terpisah, melainkan adalah satu yaitu Structure Query Language (SQL).

www.nurulfikri.com ☎ 7874223 / 24

22

Program Reguler & Inhouse 4.5.1

Desain dan Pengelolaan Database

Data Definition Language (DDL)

Skema database di definisikan dengan bahasa yang disebut Data Definition Language (DDL), perintah SQL yang termasuk DDL diantaranya : CREATE : Digunakan untuk mendefinisikan skema database, seperti nama database, nama table, constrain ● DROP : Digunakan untuk menghapus skema database yang telah didefinisikan ● ALTER : Digunakan untuk mengedit skema database ●

4.5.2

Data Manipulation Language (DML)

Perintah diantaranya : ● ● ● ●

4.6

SQL

yang

digunakan

untuk

manipulasi

data/informasi

pada

database

SELECT : Digunakan untuk mengambil informasi yang tersimpan dalam database INSERT : Digunakan untuk menambahkan informasi baru ke dalam database DELETE : Digunakan untuk menghapus informasi dari database UPDATE : Digunakan untuk mengubah informasi yang tersimpan dalam database

Akses database dari Aplikasi Program

Aplikasi program adalah sekumpulan program yang digunakan untuk berinteraksi dengan database. Aplikasi program biasanya ditulis dengan menggunakan bahasa pemrograman seperti Cobol, C, C++ atau Java. Untuk mengakses database pada aplikasi, perintah DML harus dieksekusi dengan bahasa pemrograman. Ada dua cara untuk melakukan hal ini : 1. Dengan menyediakan sebuah antar muka yang berisi kumpulan procedures yang dapat digunakan untuk mengirim perintah DML dan DDL ke database, dan menangkap hasil perintah. ● ODBC (Open Database Connectivity) adalah standar yang telah ditetapkan oleh Microsoft yang digunakan sebagai program antar muka akses database (Application Program Interface / API). ● JDBC (Java Database Connectivity) API yang disediakan oleh bahasa pemrograman Java. 2. Dengan menggunakan vendor bahasa pemrograman dan menyatu dengan perintah DML, dan nanti dipanggil oleh bahasa pemrograman .

4.7

Pengguna Database

Tujuan utama sistem database adalah untuk mengambil informasi dan menyimpan informasi ke dalam database. Orang yang bekerja dengan database dapat dikategorikan sebagai user database atau administrator database.

4.7.1

User database dan Antar muka

Terdapat beberapa user dari sistem database, dibedakan oleh cara bagaiman berinteraksi dengan sistem database. 1. User biasa (naive user) : user yang berinteraksi dengan sistem database dengan cara mengakses sebuah aplikasi yang terhubung ke sistem database. Sebagai contoh ketika kita mengakses situs berita melalui internet, dimana data / berita yang kita baca tersimpan www.nurulfikri.com ☎ 7874223 / 24

23

Program Reguler & Inhouse

Desain dan Pengelolaan Database

dalam database, kita adalah naive user. 2. Programmer Aplikasi : adalah seorang yang bekerja membuat program aplikasi. Seorang programmer dapat memilih tools yang tersedia untuk membuat antarmuka aplikasi ke database, Tools aplikasi disebut RAD (Rapid Application Development), dimana tools ini dapat menghasilkan aplikasi seperti form-form atau list berbentuk tabel yang terhubung ke database, contoh RAD: NetBeans, Visual Basic. 3. User berpengalaman : user yang langsung berinteraksi dengan sistem database tanpa menulis program. User ini langsung menggunakan perintah SQL dalam berkomunikasi dengan database.

4.7.2

Administrator database

Salah satu alasan menggunakan DBMS adalah sentralisasi data atau data terpusat dan mudah dalam me-maintan data. Sistem database terpisah dari aplikasi program yang mengaksesnya. Seseorang yang bertanggung jawab terhadap kontrol dari sistem database di sebut database administrator (DBA). Fungsi dari seorang DBA diantaranya : Schema Definition. DBA membuat skema database dengan menggunakan perintah DDL Database Tuning. DBA bertanggung jawab dalam memodifikasi database, khususnya dalam konsep skema sehingga performa database dapat ditingkatkan. ● Recovery from Failure. DBA mampu dan memastikan sistem database berjalan sedia kala manakala terjadi kerusakan pada server. Backup database harus dilakukan oleh DBA, dan menentukan proses backup yang tepat untuk database. ● Autorisasi hak akses user. DBA menentukan user-user yang berhak untuk mengakses database, dan menentukan privilege dari user dalam akses ke table-table dalam database. Biasanya DBA bekerjasama dengan Programmer untuk menentukan hak akses dan peran (role) dari seorang user aplikasi. ● ●

4.8

Struktur Sistem Database

Sebuah sistem database terbagi atas beberapa modul (unit kerja) yang tiap bagiannya bertanggung jawab atas keseluruhan sistem. Komponen fungsional dari database dapat dibagi menjadi yang bertanggung jawab terhadap penyimpan data “storage manager” dan komponen query yang dilakukan oleh processor (query processor).

4.8.1

Storage Manager

Storage manager adalah modul program yang menyediakan antar muka antara level rendah pada penyimpanan data pada database dengan program aplikasi dan query yang dikirim ke sistem. Storage manager bertanggung jawab untuk interaksi dengan file manager. Data tersimpan dalam media disk menggunakan sistem file, yang disediakan oleh Sistem Operasi. Manager storage menterjemahkan berbagai perintah DML kedalam level rendah dari perintah sistem file. Karenanya storage manager bertanggung jawab untuk penyimpanan, pengambilan dan pengubahan data dalam database.

Komponen storage manager diantaranya : Manager autorisasi dan Integritas, bertugas menguji keabsahan dari integeritas data terhadap constrain dan autoritas user mengakses data. ● Manager Transaksi , bertugas untuk memastikan bahwa database tetap konsisten atau benar ketika terjadi kesalahan pada sistem. Dan bertanggung jawab terhadap proses ●

www.nurulfikri.com ☎ 7874223 / 24

24

Program Reguler & Inhouse

Desain dan Pengelolaan Database

transaksi tanpa terjad konflik/permasalahan. ● Manager file, bertugas mengatur alokasi ruang yang tersedia pada media penyimpan (disk) dan struktur data yang digunakan mewakili informasi tersimpan dalam media disk. ● Manager Buffer, bertanggung jawab pada saat pengambilan data dari media penyimpanan ke dalam memori utama, dan memutuskan data mana yang akan di cache dalam memori utama. Manager Buffer adalah bagian kritikal dari sistem database, dikarenakan database memungkinkan memuat sejumlah ukuran data dimana ukuran data lebih besar dari ukuran memori utama. Manager storage mengimplementasikan beberapa struktur data bagian dari implementasi fisik dari sistem : Data files, dimana database disimpan Data dictionary, dimana metadata disimpan yang meliputi struktur dari database khususnya skema database ● Indices, yang menyediakan kecepatan akses item data yang menyimpan nilai. ● ●

www.nurulfikri.com ☎ 7874223 / 24

25

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 2.1: Struktur sistem database

4.8.2

Query Processor Komponen query processor adalah :

DDL interpreter, yang menginterprestasikan perintah DDL dan difinisi record dalam data dictionary. ● DML compiler, yang menterjemahkan perintah DML dalam perintah query dan mengevaluasi sesuai menjadi kumpulan perintah-perintah low-level yang akan dievaluasi oleh mesin. DML compiler dapat melakukan optimasi perintah query, yaitu proses memilih biaya yang terendah dalam eksekusi query diantara alternatif query lainnya. ●

www.nurulfikri.com ☎ 7874223 / 24

26

Program Reguler & Inhouse ●

4.9

Desain dan Pengelolaan Database

Query Evaluation Engine, yang mengeksekusi perintah-perintah low-level yang dihasilkan oleh DML.

Arsitektur Aplikasi

Sebagian pengguna sistem database saat ini tidak langsung berada dalam sistem database, melainkan terkoneksi melalui jaringan. Karenanya kita dapat bedakan menjadi komputer client, dimana user mengakses sistem database secara jarak jauh (remote), komputer server dimana sistem database berjalan. Gambar 2.2: Arsitektur two-tier

Gambar 2.3: Arsitektur three-tier

Dalam arsitektur two-tier, aplikasi terbagi atas komponen yang berada di komputer client, yang akan berhubungan dengan fungsionalitas sistem database di server database melalui perintah query (SQL). Antar muka program aplikasi (API) seperti ODBC dan JDBC digunakan sebagai antar muka interaksi antara client dengan server.

Berlainan dengan, arsitektur three-tier, komputer client berlaku sebagaimana antarmuka yang tidak langsung terhubung ke database, melainkan client akan berkomunikasi dengan server aplikasi (application server), biasanya melewati antar muka form. Server aplikasi berkomunikasi dengan sistem database untuk mengakses data. Logika bisnis dari aplikasi menyatu dalam server aplikasi. Arsitektur three-tier cocok untuk aplikasi dengan skala besar dan aplikasi yang berjalan di web (WWW).

4.10

Sejarah sistem database

Proses data berkembang melalui komputer, dari awal dikenalnya komputer hingga era komersialisasi komputer. Kartu tekan (dianalogikan sebagai scanner pada saat ini), diketemukan oleh Hollerith digunakan pertama kali pada awal abad ke duapuluh untuk mencatat sensus data di amerika serikat, dan sistem mekanik digunakan untuk memproses kartu dan menghasilkan tabulasi data. Kartu tekan sekarang digunakan luas sebagai alat untuk memasukan data ke dalam komputer. www.nurulfikri.com ☎ 7874223 / 24

27

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Teknik untuk menyimpan data dan memproses data berevolusi dari tahun ke tahun : ●





● ●

1950 an dan awal 1960 an : Tape magnetik dikembangkan untuk menyimpan data. Tugastugas pemrosesan data seperti otomatisasi pembayaran dengan data tersimpan kedalam tape. Data juga bisa diinput melalui kartu tekan dan output dari printer.Tape hanya bisa dibaca secara sequensial dan ukuran data lebih besar dari pada memori utama. Akhir 1960an dan 1970an : Penggunaan secara meluas hard disk diakhir 1960an merubah skenario dalam memproses data lebih baik, dikarenakan hard disk memungkinkan untuk mengakses data secara langsung. Di era ini pula muncul tulisan Codd (1970) yang memperkenalkan difinisi model relasi dan procedure untuk melakukan query pada model relasi, dan terlahirlah model relasional. Kemudahan model relasi dan kemampuan dalam menyembunyikan implementasi yang rumit dari programmmer yang menggunakannya. Codd memenangkan penghargaan yang prestisius dari Association of Computing Machinery Turing Award dari hasil kerjanya. 1980an : Walaupun ketertarikan para akademisi pada model relasional, Model relasional tidak digunakan pada dunia praktis, karena kurangnya performa yang bagus pada jaringan dan database secara hirarki. Penelititan pada perusahaan IBM mengembangkan teknik dan konstruksi yang lebih efisien relational pada sistem database. Prototipe sistem R dikembangkan oleh IBM untuk menghasilkan produk database. Produk database komersial seperti IBM DB2, Oracle, Ingres dan DEC Rdb menggunakan teknik-teknik terbaru yang lebih efisen dalam melakukan query. Pada awal tahun 1980an, database relasional telah dapat bekerja dengan baik pada jaringan dan hirarki sistem database. Pada awal 1980an juga dimulai penelitian pada penggunaan database pararel dan terdistribusi dan juga penelitian object-oriented database. Awal 1990an : bahasa SQL didesain dengan tujuan utama sebagai bahasa pendukung pada pengembangan aplikasi. Akhir 1990am : Kejadian terbesar adalah diperkenalkannya era dunia web. Database telah digunakan secara ekstensif dan meluas dari pada sebelumnya. Sistem database saat ini telah mampu men-support transaksi dengan rata-rata yang tinggi. Sistem database juga telah mendukung antar muka untuk aplikasi web.

www.nurulfikri.com ☎ 7874223 / 24

28

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 5 Model Entity Relationship (E-R) Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ● ● ●

Dapat mengerti proses desain database. Dapat mengerti konsep entitas dan atribut. Mampu menjelaskan relasi antara entitas. Dapat memahami diagram E-R.

Model data adalah kumpulan dari alat konseptual untuk mendeskrispsikan data, relasi antar data, dan simantik data dan konstrain. Model Entity-Relationship (E-R) adalah model yang berdasarkan persepsi-persepsi di dunia nyata yang didalamnya termasuk koleksi dari object-object yang disebut entity dan relasi diantara object-object.

5.1

Pengenalan Desain Database Proses desain database dapat dibagi menjadi 6 tahapan :

1. Analisa Kebutuhan (Requirements Analysis) : Step pertama dalam men-desain aplikasi database adalah untuk mengerti data apa yang akan di simpan ke dalam database, apa yang harus aplikasi lakukan terhadap data, dan apa yang user inginkan terhadap data. Biasanya informasi yang dikumpulkan menyangkut proses bisnis yang akan diterjemahkan kedalam aplikasi database. 2. Desain konseptual database (Conceptual Database Design): Informasi yang telah dikumpulkan kemudian di analisa untuk dikembangkan menjadi diskripsi high-level untuk disimpan ke database, bersamaan dengan konstrain yang telah diketahui dari keseluruhan database. Pendefinisian dapat dilakukan dengan model E-R. 3. Desain logikal database (Logical Database Design): Kita harus memilih sebuah DBMS untuk mengimplementasikan desain database kita, dan mengubah desain konseptual database menjadi skema database dalam data model dari DBMS yang kita pilih. 4. Penyempurnaan Skema (Schema Refinement): Step ini menganalisa koleksi dari relasi yang terdapat dalam skema database dan mengidentifikasi masalah-masalah potensial dan membetulkannya. Salah satu cara menyempurnakan skema database adalah dengan teori Normalisasi. 5. Desain fisik database (Physical Database Design) : dalam tahap ini diperhatikan beban kerja dari database yang digunakan, database harus men-support dan dapat dikoreksi desain database dan pastikan sesuai dengan keinginan. Dalam tahap ini diantaranya adalah proses index dari beberapa tabel untuk mempercepat proses query, bahkan dalam proses ini desain dapat dibuat ulang untuk mendapatkan desain database yang sempurna 6. Desain keamanan database (Security Design): Dalam step ini diidentifikasi grup user dan role-role yang dimainkan oleh bermacam user. Untuk setiap role dan grup user kita harus meng-identifikasi bagian database mana yang boleh diakses dan tidak boleh diakses www.nurulfikri.com ☎ 7874223 / 24

29

Program Reguler & Inhouse

Desain dan Pengelolaan Database

atau dilakukan perubahan

5.2

Entitas dan Atribut

Sebuah entitas adalah menggambarkan objek, konsep dalam dunia nyata yang terlibat dalam suatu proses binis (proses kerja) tertentu. Contoh proses bisnis dalam suatu sistem universitas adalah siswa mengikuti matakuliah, dosen mengajar kelas. Atau customer memesan produk pada sistem aplikasi penjualan. Entitas dilambangkan dengan

contoh entitas dalam database universitas adalah : mahasiwa, matakuliah, dosen, kelas. Pada entitas terdapat kumpulan dari atribut yang melekat pada entitas. Atribut dilambangkan dengan :

Contoh atribut yang dimiliki oleh mahasiswa adalah : nama, nim, gender,alamat.

Gambar 5.1: Entitas Mahasiswa

5.2.1

Primary Key

Primary Key : adalah atribut yang berisi data unik/data yang tidak boleh sama. Analogi pada manusia, primary key manusia adalah sidik jari atau DNA. Pada contoh Gambar 5.1, atribut kunci dari entitas manusia adalah Nomor Induk Siswa (NIM), pada entitas pegawai NIP atau nomor account bank pada entitas account.

5.3

Relasi antar Entitas Relasi menggambarkan hubungan antara dua entitas atau lebih. Berikut contoh diagram E-R antara pegawai dengan departemen.

www.nurulfikri.com ☎ 7874223 / 24

30

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 2.5: Relasi antara entitas pegawai dan departemen

Gambar 5.2: Himpunan relasi bekerja pada

Misalkan pada perusahan yang mempunyai banyak cabang, pegawai dirotasi dalam bekerja dalam waktu tertentu ke cabang-cabang. Relasi ini disebut dengan relasi ternary karena ada tiga relasi antara tiga entitas pegawai, departemen dan cabang.

www.nurulfikri.com ☎ 7874223 / 24

31

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 5.3: Relasi ternary

Terkadang relasi terjadi melibatkan entitas yang sama. Sebagai contoh, pegawai mempunyai atasan (supervisor) dimana sebagai bawahan (subordinate), pegawai melaporkan pekerjaan ke atasan. Berikut contoh gambar model E-R relasi yang terjadi antara pegawai dengan atasan.

Gambar 5.4: relasi antar supervisor dan subordinate

5.4

Fitur-fitur lain dari Model E-R

Sekarang kita lihat beberapa fitur penulisan model E-R berhubungan dengan kasus di dalam dunia nyata.

www.nurulfikri.com ☎ 7874223 / 24

32

Program Reguler & Inhouse 5.4.1

Desain dan Pengelolaan Database

Key Constraints

Misalkan kita definisikan relasi lain, kita sebut relasi memimpin antara pegawai dengan departemen, dengan aturan sebuah departemen paling tidak memiliki satu orang pegawai yang memimpin sebagai manager, dimana seorang pegawai diperkenankan memimpin lebih dari satu departemen. Pembatasan bahwa sebuah departemen paling tidak harus memiliki seorang pegawai yang memimpin disebut key constraints. Dan ini mengimplikasikan bahwa setiap entitas departemen akan memiliki paling satu relasi ke manager (pegawai). Pembatasan ini dalam diagram E-R digambarkan dengan tanda panah yang mengarah dari entitas departemen ke relasi memimpin.

Gambar 5.5: relasi memimpin entitas pegawai terhadap entitas departemen

Relasi memimpin antara entitas departemen dan entitas pegawai disebut juga relasi oneto-many. Yang mengidentifikasikan bahwa seorang pegawai dapat diasosiakan ke banyak departemen dalam kapasitasnya sebagai seorang manager.

Gambar 5.6: Himpunan relasi memimpin

Sedangkan relasi bekerja_pada antara entitas pegawai dengan entitas departemen adalah many-to-many, dimana relasi menggambarkan seorang pegawai bisa bekerja pada banyak departeman dimana dalam rentang waktu yang tertentu hanya bekerja pada satu departemen saja.

5.4.2

Partisipasi konstrain Konstrain pada relasi memimpin mengatakan pada kita bahwa sebuah departemen paling

www.nurulfikri.com ☎ 7874223 / 24

33

Program Reguler & Inhouse

Desain dan Pengelolaan Database

tidak dipimpin oleh seorang pegawai (manager). Pernyataan yang mengatakan bahwa setiap departemen memerlukan seorang manager, adalah contoh dari partisipasi konstrain (participation constraints). Pada himpunan entity departemen diharuskan memiliki relasi memimpin (departemen memiliki minimal seorang pemimpin), dikatakan relasi memimpin adalah total partisipasi (total participation). Partisipasi yang tidak total disebut partisipasi parsial, sebagai contoh himpunan dari entity pegawai dalam memimpin sebuah departemen adalah partisipasi parsial, dikarenankan tidak semua pegawai memimpin sebuah departemen.

5.4.3

Weak Entity

Weak entity adalah entity yang keberadaannya tergantung keberadaan entity lain, dan weak entity muncul dikarenakan ada relasi yang terjadi pada suatu entity, sebagai contoh entity anak adalah weak entity, entity ini keberadaannya muncul dikarenakan keberadaan entity pegawai. Dalam hal ini entity anak ada dikarenakan ada suatu relasi tunjangan yang harus diberikan kepada anak.

Gambar 5.7: Weak Entity

5.4.4

Entity vs Atribut

Ketika mengidentifikasi sebuah atribut, terkadang belum jelas benar apakah properti menunjuk sebagai model yang dianggap sebagai atribut atau sebuah entity. Sebagai contoh ketika mengidentifikasi informasi alamat pada entitas pegawai. Pilihan pertama adalah alamat dianggap sebagai suatu atribut, dalam hal ini dianggap pegawai hanya memiliki satu alamat saja. Pilihan kedua adalah alamat sebagai entitas, berarti terdapat relasi antara entity pegawai dengan entity alamat, misalnya relasi beralamat, dalam pilihan kedua ini dimungkinkan seorang pegawai memiliki beberapa alamat.

www.nurulfikri.com ☎ 7874223 / 24

34

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 5.8: Alamat sebagai atribut

Gambar 5.9 : Alamat sebagai entity

www.nurulfikri.com ☎ 7874223 / 24

35

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Notasi dan simbol diagram E-R

www.nurulfikri.com ☎ 7874223 / 24

36

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 6 SQL dan Model Relasional Data Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ●

6.1

Dapat menyebutkan jenis-jenis SQL. Dapat mengerti dan menggunakan perintah dasar SQL.

Pendahuluan

Codd (1970), memperkenalkan model relasional data, pada saat itu sebagian besar sistem database berdasarkan dua model data hirarki (hierarchical model) dan model jaringan (network model). Prototipe sistem database model relasional dikembangkan di IBM dan di UC-Berkeley pada pertengahan tahun 1970, dan beberapa vendor menawarkan menggunakan model relasional setelahnya. Saat ini model relasional digunakan sebagai besar sistem database, dan digunakan sebagai dasar produk-produk DBMS, seperti IBM DB2, Oracle, Sybase, Microsoft Access dan SQL Server, MySQL, PostgreSQL, FoxBase dan Paradox. Model relasional database adalah simpel dan elegan; database adalah kumpulan dari satu atau lebih dari relasi, dimana setiap relasi adalah berupa tabel, kolom dan baris. Tampilan data yang tabular (berbentuk tabel) memudahkan user untuk mengerti isi dari database dan memungkinkan penggunaan yang simpel dari suatu query untuk menampilkan data. Keuntungan yang terbesar dibandingkan model data terdahulu adalah kesederhanaan dalam menampilkan data walaupun dengan query yang rumit dan komplek sekalipun.

6.2

Structured Query Language (SQL)

SQL adalah suatu bahasa query yang dikembangkan oleh IBM pada projek DBMS relasional system -R. Selama beberapa tahun SQL menjadi bahasa query yang digunakan untuk melakukan pendefinisian skema (CREATE), manipulasi dan query pada DBMS relasional. Dikarenakan banyak vendor yang menggunakan SQL sebagai bahasa query pada produk DBMS relasional, maka dibutuhkan standar penulisan SQL. Dengan adanya standard SQL diharapkan penggunaan SQL oleh vendor-vendor pada suatu produk RDBMS mengacu pada suatu standar yang ditetapkan sehingga tidak ada perbedaan perintah SQL pada produk yang dikeluarkan. Standard SQL yang pertama kali dikeluarkan adalah yang dikeluarkan oleh American National Standards Institute (ANSI) pada tahun 1986, dikenal sebagai SQL-86. Terjadi perubahan atau revisi minor SQL pada tahun 1989, dikenal dengan SQL-89, dan perubahan besar pada tahun 1992, dikenal dengan SQL-92. Badan ISO (International Standards Organization) bekerja sama dengan ANSI mengembangkan versi SQL-92, dimana sebagain besar sistem database RDBMS telah mensupport versi SQL-92. Hinga saat ini telah dikeluarkan versi SQL-99 dan versi SQL2003.

www.nurulfikri.com ☎ 7874223 / 24

37

Program Reguler & Inhouse 6.2.1

Desain dan Pengelolaan Database

Data Definition Language

Query DDL adalah bagian dari SQL yang digunakan untuk membuat, mengubah dan menghapus difinisi dari table dan view. Konstrain dapat didefinisikan juga pada table, baik pada saat membuat table atau setelahnya. DDL juga digunakan untuk membuat dan mengatur hak akses (privilege) dari user dalam berinteraksi dengan table atau view. Dibeberapa RDBMS DDL digunakan juga untuk perintah membuat, menghapus index. Berikut diantar perintah SQL DDL : CREATE, DROP, ALTER, GRANT, REVOKE

6.2.2

Data Manipulation Language

Data Manipulation Language adalah perintah SQL yang digunakan untuk melakukan penambahan (INSERT), pengubahan (UPDATE) dan penghapusan (DELETE) dari suatu baris data.

6.2.3

Embedded and Dynamic SQL

Embedded SQL memungkinkan perintah SQL dapat dipanggil oleh bahasa pemrograman lain, seperti C atau Cobol. Fitur Dynamic SQL memungkin perintah SQL dijalankan pada saat program berjalan (run-time).

6.2.4

Trigger

Fitur trigger diperkenalkan pada versi SQL-99, yaitu suatu aksi yang dilakukan oleh DBMS manakala terjadi perubahan database disesuaikan dengan kondisi spesifik yang didefinisikan pada trigger.

6.3

Konstruksi Model Relasional

Konstruksi utama dari data pada model relasional adalah sebuah relasi. Relasi terdiri dari skema relasi dan instan dari relasi yang disebut tabel. Skema menggambarkan nama field (coloumn atau atribut) sebagai domain dari setiap fieldnya. Domain berasosiasi dengan nilai (value).

www.nurulfikri.com ☎ 7874223 / 24

38

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 6.1: Tabel Siswa

Dalam sebuah instan dari relasi (tabel) terdapat kumpulan dari tuple-tuple atau disebut record, dimana pada setiap record memiliki jumlah kolom/field yang sama sesuai dengan skema table. Kolom / Field : Satu jenis informasi yang mempunyai tipe data (meta data) yang sama. Baris / Record : Satu kesatuan informasi yang terdiri dari satu kolom atau lebih Tabel / Table : Satu kumpulan dari baris-baris dan kolom-kolom yang setiap field dalam tiap baris spesifik .

6.4 6.4.1

Perintah SQL Mendefinisikan Table Perintah CREATE digunakan untuk mendefinisikan sebuah table : CREATE TABLE produk ( kode CHAR(4), nama VARCHAR(30) NOT NULL, harga DECIMAL(8), stok INT(11), min_stok INT(11), PRIMARY KEY (kode));

Perintah pada baris pertama menyatakan nama table yang akan dibuat, pada baris berikutnya, komponen pertama nama dari kolom (field), komponen kedua adalah tipe data dari kolom (contohnya CHAR,INT,DECIMAL) dan komponen ke tiga adalah panjang dari tipe data. Pada contoh diatas kolom kode mempunyai tipe data karakter dengan panjang kolom 4 yang artinya kolom/field kode maksimum hanya dapat menampung 4 karakter. Pada baris ke 3 terdapat komponen NOT NULL yang menyatakan bahwa data dari nama tidak boleh null (harus diisi), komponen ini optional. Pada akhir baris perintah CREATE didefinisikan kode sebagai primary key sebagai kunci dari data yang bersipat unik (tidak boleh sama).

www.nurulfikri.com ☎ 7874223 / 24

39

Program Reguler & Inhouse

Desain dan Pengelolaan Database Gambar 6.2: Table dibuat dengan Ms Access

Perintah SQL dapat ditulis dengan gabungan huruf besar atau kecil, untuk memudahkan dalam mempelajari perintah SQL, dalam modul ini digunakan aturan sebagai berikut : 1. Kata kunci SQL menggunakan huruf besar. 2. Nama table dan nama kolom menggunakan huruf kecil. Berikut beberapa tipe data yang di bisa digunakan : Numeric

String

Data/time

6.4.2

smallint

15 bit

integer

31 bit

float(p)

format angka dengan p digit precession

decimal(p,q)

paket nilai desimal dengan p total panjang digit dan q panjang desimal disebelah kanan nilai

char(n)

karakter dengan n panjang tertentu / fix

varchar(n)

panjang variabel karakter string hingga mencapai n

long varchar

variabel karakter string

date

tanggal dengan format yyyymmdd

time

waktu dengan format hhmmss

timestamp

Kombinasi dari tanggal dan waktu

Memasukan data kedalam table

Barisan (row) pada sebuah table menyimpan sebuah instan dari entitas. Perintah SQL INSERT digunakan untuk menambahkan sebuah baris ke dalam table. Berikut perintah untuk menambahkan satu baris ke dalam table produk. INSERT INTO produk (kode,nama,harga,stok,min_stok) VALUES ('TV21','Televisi 21 inch',1250000,16,4);

Pada perintah SQL diatas terdapat hubungan satu-satu antara sebuah nama kolom pada baris kedua dengan nilai pada baris ketiga. Kolom kode mempunyai nilai “TV21”, kolom nama mempunyai nilai “Televisi 21 inch” dan seterusnya. www.nurulfikri.com ☎ 7874223 / 24

40

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Pada perintah menambahkan satu baris data kedalam table nama-nama kolom bisa tidak dituliskan asalkan semua nilai kolom pada table diisi semua, berikut contohnya: INSERT INTO produk VALUES ('TV21','Televisi 21 inch',1250000,16,4);

6.4.3

Menampilkan data dari table

Semua data dalam table dapat dimunculkan dengan perintah SELECT, dalam SQL kata semua (all) diartikan dengan bintang (*). ●

Tampilkan seluruh data dalam table. SELECT * FROM produk; +------+--------------------+---------+--------+----------+ | kode | nama | harga | stok | min_stok | +------+--------------------+---------+--------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | | STR8 | Stereo Tape | 675000 | 7 | 10 | | JAM2 | Jam Tangan Digital | 375000 | 100 | 14 | | MAG6 | Magic Jar | 185000 | 230 | 30 | +------+--------------------+---------+--------+----------+



Memilih kolom tertentu SELECT kode,nama,harga FROM produk; +------+--------------------+---------+ | kode | nama | harga | +------+--------------------+---------+ | TV21 | Televisi 21 inch | 1250000 | | KU02 | Kulkas 2 Pintu | 1675000 | | STR8 | Stereo Tape | 675000 | | JAM2 | Jam Tangan Digital | 375000 | | MAG6 | Magic Jar | 185000 | +------+--------------------+---------+



Memilih baris tertentu Tampilkan data produk yang mempunyai stok kurang dari 40 SELECT * FROM produk WHERE stok < 40; +------+------------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+------------------+---------+------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | | STR8 | Stereo Tape | 675000 | 7 | 10 | +------+------------------+---------+------+----------+

Dalam contoh, terdapat kondisi lebih kecil ( < ) untuk klausa WHERE. Berikut operator perbandingan yang mungkin digunakan. Operator Perbandingan

Arti

`=

Sama dengan

<

Lebih kecil dari



Lebih besar dari

>=

Lebih besar dari atau sama dengan



Tidak sama dengan

Bisa juga digunakan perintah BETWEEN dengan ketentuan berikut : BETWEEN x AND y adalah sama dengan a >=x AND a 1000000 AND stok < 30; +------+------------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+------------------+---------+------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 |

Kekuatan dari primary key Tujuan dari primary key adalah untuk menggaransi bahwa sembarang baris pada table dapat dinyatakan unik. Pada contoh ini, digunakan kolom kode untuk menampilkan satu baris data dikarenakan kode adalah unik untuk setiap instan dari produk. ●

Tampilkan data produk yang mempunyai kode STR8 SELECT * FROM produk WHERE kode='STR8'; +------+-------------+--------+------+----------+ | kode | nama | harga | stok | min_stok | +------+-------------+--------+------+----------+ | STR8 | Stereo Tape | 675000 | 7 | 10 |

www.nurulfikri.com ☎ 7874223 / 24

42

Program Reguler & Inhouse

Desain dan Pengelolaan Database

+------+-------------+--------+------+----------+

Query berdasarkan dengan kolom non primary key tidak menjamin untuk mendapatkan satu baris data, berikut contohnya : ●

Tampilkan data produk yang mempunyai minimum stok 4 SELECT * FROM produk WHERE min_stok=4; +------+------------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+------------------+---------+------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | +------+------------------+---------+------+----------+

Klausa IN dan NOT IN Klausa IN digunakan untuk menampilkan data berdasarkan himpunan dari suatu nilai. Keyword IN selalu digunakan bersamaan dengan nama kolom. Semua baris yang mempunyai nilai yang sesuai dengan himpunan nilai yang dipilih akan ditampilkan. ●

Tampilkan data produk yang mempunyai kode produk KU02,STR8 atau MAG6 SELECT * FROM produk WHERE kode IN ('KU02','STR8','MAG6'); +------+----------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+----------------+---------+------+----------+ | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | | STR8 | Stereo Tape | 675000 | 7 | 10 | | MAG6 | Magic Jar | 185000 | 230 | 30 |

Klausa NOT IN digunakan untuk menampilkan data yang tidak termasuk dalam list himpunan nilai. SELECT * FROM produk WHERE kode NOT IN ('KU02','MAG6'); +------+--------------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+--------------------+---------+------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | STR8 | Stereo Tape | 675000 | 7 | 10 | | JAM2 | Jam Tangan Digital | 375000 | 100 | 14 | +------+--------------------+---------+------+----------+

Mengurutkan Kolom Urutan kolom dalam perintah SQL adalah urutan kolom yang akan ditampilkan dalam hasil perintah SQL. SELECT kode,nama FROM produk WHERE min_stok =4; +------+------------------+ | kode | nama | +------+------------------+ | TV21 | Televisi 21 inch | | KU02 | Kulkas 2 Pintu |

www.nurulfikri.com ☎ 7874223 / 24

43

Program Reguler & Inhouse

Desain dan Pengelolaan Database

SELECT nama,kode FROM produk WHERE min_stok =4; +------------------+------+ | nama | kode | +------------------+------+ | Televisi 21 inch | TV21 | | Kulkas 2 Pintu | KU02 | +------------------+------+

Mengurutkan Baris Gunakan klausa ORDER BY untuk mengurutkan data secara terurut dalam sebuah laporan. Secara default urutan perintah ORDER BY adalah ascending atau dari terkecil hingga terbesar (A sebelum B, 1 sebelum 2). Sedangan untuk mengurutkan dari besar terkecil tambahkan klausa DESC setelah nama kolom yang akan diurutkan. ●

Urutkan data produk berdasarkan min_stok secara descending dimana harga produk diatas 500000 dan urutkan nama secara alpabet. SELECT * from produk WHERE harga > 500000 ORDER BY min_stok , nama; +------+------------------+---------+------+----------+ | kode | nama | harga | stok | min_stok | +------+------------------+---------+------+----------+ | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | | STR8 | Stereo Tape | 675000 | 7 | 10 | +------+------------------+---------+------+----------+

6.4.5

Menghasilkan data dari kolom yang ada pada table (derived data)

Salah satu prinsip yang penting dari desain database adalah meniadakan redundancy. Salah satu bentuk redundancy data adalah membuat sebuah kolom dalam table yang sesungguhnya bisa dihasilkan/diturunkan dari table yang sudah ada. ●

Tampilkan nama, harga, stok dan asset produk saat ini (harga dikalikan stok) SELECT nama,harga,stok, harga * stok AS asset FROM produk; +--------------------+---------+------+----------+ | nama | harga | stok | asset | +--------------------+---------+------+----------+ | Televisi 21 inch | 1250000 | 16 | 20000000 | | Kulkas 2 Pintu | 1675000 | 20 | 33500000 | | Stereo Tape | 675000 | 7 | 4725000 | | Jam Tangan Digital | 375000 | 100 | 37500000 | | Magic Jar | 185000 | 230 | 42550000 |

6.4.6

Klausa LIMIT dan OFFSET

Klausa LIMIT digunakan untuk menampilkan jumlah baris data yang diinginkan, dan OFFSET digunakan untuk memilih awal mulai baris data ditampilkan dengan data pada baris pertama dimulai dari 0. ●

Tampilkan seluruh data pegawai

www.nurulfikri.com ☎ 7874223 / 24

44

Program Reguler & Inhouse

Desain dan Pengelolaan Database

SELECT id,nip,nama,tgl_lahir,telpon FROM pegawai; +----+------------+--------------------+------------+-------------+ | id | nip | nama | tgl_lahir | telpon | +----+------------+--------------------+------------+-------------+ | 1 | N060100012 | Alissa Shafwah | 2005-11-16 | 021-7874224 | | 2 | N060100002 | Rosalie Naurah | 2003-03-08 | 021-7975235 | | 3 | N060100032 | Defghi Muhammad | 2001-07-10 | 021-7891011 | | 4 | N060100010 | Rahmi Maulida | 2006-01-12 | 021-7943336 | | 5 | N060100005 | Iffa Cahya Nisrina | 2004-08-24 | 021-7874225 | +----+------------+--------------------+------------+-------------+ ●

Tampilkan 2 baris pertama data pegawai SELECT id,nip,nama,tgl_lahir,telpon FROM pegawai LIMIT 2; +----+------------+----------------+------------+-------------+ | id | nip | nama | tgl_lahir | telpon | +----+------------+----------------+------------+-------------+ | 1 | N060100012 | Alissa Shafwah | 2005-11-16 | 021-7874224 | | 2 | N060100002 | Rosalie Naurah | 2003-03-08 | 021-7975235 |



Tampilkan 2 baris data mulai dari data ke 4 ( baris data dimulai dari 0) SELECT id,nip,nama,tgl_lahir,telpon FROM pegawai LIMIT 2 OFFSET 3; +----+------------+--------------------+------------+-------------+ | id | nip | nama | tgl_lahir | telpon | +----+------------+--------------------+------------+-------------+ | 4 | N060100010 | Rahmi Maulida | 2006-01-12 | 021-7943336 | | 5 | N060100005 | Iffa Cahya Nisrina | 2004-08-24 | 021-7874225 | +----+------------+--------------------+------------+-------------+

6.4.7

Fungsi Aggregate

SQL mempunyai fungsi built-in yang dapat digunakan untuk menampilkan total data dari kolom tertentu. Berikut diantaranya fungsi-fungsi aggregate : AVG,SUM,MIN,MAX dan COUNT. Menghitung Jumlah COUNT digunakan untuk menghitung jumlah baris dalam suatu table. Jumlah baris dihitung walaupun mengandung nilai null. COUNT dapat digunakan dengan klausa WHERE untuk menampilkan data yang spesifik. ●

Berapa jumlah produk yang ada ? SELECT COUNT(*) AS jumlah_produk FROM produk; +---------------+ | jumlah_produk | +---------------+ | 5 | +---------------+



Berapa jumlah produk yang harganya dibawah 1juta ? SELECT COUNT(*) AS jumlah_produk FROM produk WHERE harga > 1000000; +---------------+ | jumlah_produk | +---------------+ | 2 | +---------------+

www.nurulfikri.com ☎ 7874223 / 24

45

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Menghitung rata-rata Fungsi aggregate AVG digunakan untuk menghitung rata-rata dari suatuk kolom dalam table. Nilai null pada kolom tidak termasuk yang dihitung. ●

Berapa rata-rata harga produk ? SELECT AVG(harga) AS harga_rata2 FROM produk; +-------------+ | harga_rata2 | +-------------+ | 832000.0000 |

Penggunaan fungsi aggregate SUM,MIN dan MAX sama dengan penggunaan fungsi AVG, dimana nilai NULL pada suatu kolom tidak termasuk dalam perhitungan. Fungsi aggregate SUM digunakan untuk mendapatkan total jumlah nilai pada kolom, MIN digunakan untuk menemukan nilai terkecil dari kolom dan MAX menemukan nilai terbesar.

6.4.8

Sub Query

Terkadang kita perlu menjawab query lain sebelum kita menuliskan query yang kita inginkan, contohnya kita ingin menampilkan kode,nama dan harga produk yang harganya berada diatas harga rata-rata produk yang ada. Kita perlu mendefinisikan query dalam dua tahapan. 1. SELECT AVG(harga) FROM produk 2. SELECT kode,nama,harga FROM produk WHERE harga > x

dimana x adalah hasil dari query pertama. Hasil penggabungan dua query dapat dituliskan sebagai berikut : SELECT kode,nama,harga FROM produk WHERE harga > (SELECT AVG(harga) FROM produk); +------+------------------+---------+ | kode | nama | harga | +------+------------------+---------+ | TV21 | Televisi 21 inch | 1250000 | | KU02 | Kulkas 2 Pintu | 1675000 |

6.4.9

Klausa LIKE dan DISTINCT

Klausa LIKE digunakan untuk pencarian data dengan pola kata kunci pencarian yang diinginkan. Klausa LIKE menggunakan dua simbol untuk menentukan pola pencarian : 1. Tanda persen (%) adalah simbol untuk sembarang karakter atau bukan karakter. 2. Tanda garis bawah ( _ ) adalah simbol untuk satu karakter. Berikut contoh penggunaan LIKE ●

Mencari nama produk yang mempunyai nama awalan huruf K SELECT nama FROM produk WHERE nama LIKE 'K%'; +----------------+

www.nurulfikri.com ☎ 7874223 / 24

46

Program Reguler & Inhouse

Desain dan Pengelolaan Database

| nama | +----------------+ | Kulkas 2 Pintu | ●

Mencari nama produk yang mengandung tulisan TA SELECT nama FROM produk WHERE nama LIKE '%TA%'; +--------------------+ | nama | +--------------------+ | Stereo Tape | | Jam Tangan Digital |



Tampilkan nama produk yang karakter ke tiga adalah huruf L SELECT nama FROM produk WHERE nama LIKE '__L%'; +------------------+ | nama | +------------------+ | Televisi 21 inch | | Kulkas 2 Pintu |



Tampilkan nama produk yang tidak mengandung huruf S SELECT nama FROM produk WHERE nama NOT LIKE '%S%' ; +--------------------+ | nama | +--------------------+ | Jam Tangan Digital | | Magic Jar |

Klausa DISTINCT digunakan untuk meniadakan duplikasi baris data. Klausa DISTINCT dapat digunakan sebelum nama kolom, ketika menggunakan nama kolom akan meniadakan duplikasi nilai yang ditampilkan. ●

Tampilkan nilai mininum produk yang berbeda. SELECT DISTINCT min_stok FROM produk; +----------+ | min_stok | +----------+ | 4 | | 10 | | 14 | | 30 |



Cari jumlah dari produk yang mempunyai minimum stok yang berbeda.

SELECT COUNT(DISTINCT min_stok) AS 'Jumlah data Minimum Stok yang Berbeda' FROM produk; +---------------------------------------+ | Jumlah data Minimum Stok yang Berbeda | +---------------------------------------+ | 4 | +---------------------------------------+

www.nurulfikri.com ☎ 7874223 / 24

47

Program Reguler & Inhouse 6.4.10

Desain dan Pengelolaan Database

Menghapus baris data

Baris data dalam table dapat dihapus dengan menggunakan klausa DELETE dalam perintah SQL. Klausa DELETE biasanya digunakan bersamaan dengan klausa WHERE, jika tidak ada klausa WHERE maka seluruh baris data dalam table akan terhapus. Hapus data produk yang mempunyai kode JAM2



DELETE FROM produk WHERE kode='JAM2';

6.4.11

Mengubah baris data

Baris data dalam table dapat diubah dengan klausa UPDATE yang biasanya juga menggunakan klausa WHERE untuk menentukan spesifik baris data yang akan diubah. ●

Ubahlah harga produk yang mempunyai kode 'JAM2' dengan harga 410000 UPDATE produk SET harga=410000 WHERE kode='JAM2'



Naikan harga produk yang mempunyai harga diatas 1 juta sebesar 10% dari harga semula UPDATE produk SET harga=harga*1.1 WHERE harga > 1000000;

www.nurulfikri.com ☎ 7874223 / 24

48

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 7 Relasi dan Query antara Table Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ● ●

7.1 7.1.1

Dapat mengerti dan membuat relasi antara table. Dapat mengerti perintah query dengan menggunakan lebih dari satu table. Dapat mengerti penggunaan perintah query JOIN.

Relasi antara table Relasi One To Many

Relasi disebut relasi satu ke banyak (one to many) apabila satu nilai pada sebuah kolom merujuk ke dua atau lebih kolom pada tabel yang lain. Tabel A : Produk +------+---------------------+---------+------+----------+----------+ | kode | nama | harga | stok | min_stok | id_jenis | +------+---------------------+---------+------+----------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | 1 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | 1 | | STR8 | Stereo Tape | 675000 | 7 | 10 | 1 | | JAM2 | Jam Tangan Digital | 375000 | 100 | 14 | 1 | | MAG6 | Magic Jar | 185000 | 230 | 30 | 1 | | LEM7 | Lemari Anak | 425000 | 9 | 1 | 2 | | MMK6 | Meja Makan | 625000 | 12 | 1 | 2 | | ROT1 | Roti Tawar | 625000 | 6250 | 5 | 3 | | COK3 | Cokelat Batangan | 18250 | 53 | 12 | 3 | | AIR7 | Air Mineral Kemasan | 2100 | 42 | 12 | 4 | +------+---------------------+---------+------+----------+----------+

Tabel B : Jenis Produk +----+-------------+ | id | nama | +----+-------------+ | 1 | Elektronika | | 2 | Furniture | | 3 | Makanan | | 4 | Minuman |

Perhatikan bahwa id_jenis pada tabel Produk merujuk pada id pada tabel jenis_produk untuk mengetahui atau memperoleh nama jenis produk (nama). Jadi relasi antar tabel jenis_produk dengan tabel produk adalah relasi one to many.

www.nurulfikri.com ☎ 7874223 / 24

49

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Beriktu perintah SQL untuk membuat table yang mempunyai relasi one to many : CREATE TABLE jenis_produk ( id INT(11), nama VARCHAR(32) NOT NULL, PRIMARY KEY(id)); CREATE TABLE produk ( kode VARCHAR(4), nama VARCHAR(32), harga DECIMAL(8), stok INT(11), min_stok INT(11), id_jenis INT(11), PRIMARY KEY KEY (kode), CONSTRAINT fk_id_jenis FOREIGN KEY(id_jenis) REFERENCES jenis_produk(id) ON DELETE RESTRICT);

Klausa CONSTRAINT mendefinisikan kolom dalam table yang akan dijadikan FOREIGN KEY yang akan mereferensi (REFERENCES) ke table lain. Definisi FOREIGN KEY sendiri adalah kolom yang menjadi duta / wakil dari kolom lain. Dalam contoh diatas kolom id_jenis pada table produk adalah kolom foreign key yang menjadi duta dari table jenis_produk. Klausa ON DELETE secara spesifik akan melakukan suatu proses jika terjadi penghapusan baris data pada table jenis_produk. Dalam kasus ini penghapusan tidak diizinkan (DELETE RESTRICT) jika data primary key pada table produk (id) masih digunakan atau direferensi oleh table produk.

Gambar 7.1 : Relasi One To Many di MS Access

7.1.2

Relasi Many To Many

Relasi banyak-ke-banyak (many to many) terjadi bila beberapa baris pada sebuah tabel berelasi ke beberapa baris pada tabel yang lain. Jika terjadi kasus seperti ini maka harus dibuat tabel baru untuk dapat merepresentasikan relasi ini.

www.nurulfikri.com ☎ 7874223 / 24

50

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Tabel A : produk +------+---------------------+---------+------+----------+----------+ | kode | nama | harga | stok | min_stok | id_jenis | +------+---------------------+---------+------+----------+----------+ | TV21 | Televisi 21 inch | 1250000 | 16 | 4 | 1 | | KU02 | Kulkas 2 Pintu | 1675000 | 20 | 4 | 1 | | STR8 | Stereo Tape | 675000 | 7 | 10 | 1 | | JAM2 | Jam Tangan Digital | 375000 | 100 | 14 | 1 | | MAG6 | Magic Jar | 185000 | 230 | 30 | 1 | | LEM7 | Lemari Anak | 425000 | 9 | 1 | 2 | | MMK6 | Meja Makan | 625000 | 12 | 1 | 2 | | ROT1 | Roti Tawar | 6000 | 35 | 5 | 3 | | COK3 | Cokelat Batangan | 18250 | 53 | 12 | 3 | | AIR7 | Air Mineral Kemasan | 2100 | 42 | 12 | 4 |

Tabel B : sales +----+--------+------------+---------+------------+ | id | kode | idcustomer | total | tanggal | +----+--------+------------+---------+------------+ | 1 | S00001 | 1 | 2870000 | 2007-10-01 | | 2 | S00002 | 1 | 1350000 | 2007-10-01 | | 3 | S00003 | 1 | 202500 | 2007-10-02 | | 4 | S00004 | 1 | 1120000 | 2007-10-02 | | 5 | S00005 | 1 | 3350000 | 2007-10-04 | +----+--------+------------+---------+------------+

Tabel C : sales_item +----+---------+-------------+------+---------+ | id | idsales | kode_produk | qty | harga | +----+---------+-------------+------+---------+ | 1 | 1 | TV21 | 1 | 1250000 | | 2 | 1 | MAG6 | 1 | 185000 | | 3 | 2 | STR8 | 2 | 675000 | | 4 | 3 | ROT1 | 10 | 6000 | | 5 | 3 | AIR7 | 15 | 2100 | | 6 | 4 | JAM2 | 1 | 375000 | | 7 | 4 | MAG6 | 1 | 185000 | | 8 | 5 | TV21 | 1 | 1250000 | | 9 | 5 | LEM7 | 1 | 425000 | +----+---------+-------------+------+---------+

Relasi antara tabel produk dengan tabel sales/penjualan dihubungkan oleh satu tabel bernama sales_item yang berfungsi mencatat transaksi detail penjualan produk. Relasi antara tabel produk dengan sales adalah many to many artinya setiap penjualan terdiri atas banyak produk yang ditransaksikan dan setiap produk bisa beberapa kali dilakukan penjualan.

www.nurulfikri.com ☎ 7874223 / 24

51

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 7.2: Relasi many to many antara tabel sales dengan tabel produk.

7.1.3

Relasi One To One

Relasi satu ke satu (one to one) sebenarnya bisa dijadikan satu table saja, namun dikarenakan alasan tertentu (misalnya kerahasian / privilege akses data) maka satu atau benerapa kolom dipisahkan ke table lain (dibuat table baru), namun primary key table pertama dan table kedua mempunyai nilai yang sama. Sebagai contoh dalam table pegawai terdapat kolom gaji_pokok dan tunjangan, karena kerahasian data atau data mengenai gaji hanya untuk diketahui oleh bagian keuangan atau personalia saja maka dibuatlah table baru yaitu table gaji, primary key pada table gaji mengaju ke table pegawai dan sebaliknya juga karena seorang pegawai dalam suatu perusahaan hanya mempunyai satu gaji. Tabel A : pegawai +----+------------+--------------------+------------+-----------+ | id | nip | nama | tgl_lahir | tmp_lahir | +----+------------+--------------------+------------+-----------+ | 1 | N060100012 | Alissa Shafwah | 2005-11-16 | Jakarta | | 2 | N060100002 | Rosalie Naurah | 2003-03-08 | Jakarta | | 3 | N060100032 | Defghi Muhammad | 2001-07-10 | Kebumen | | 4 | N060100010 | Rahmi Maulida | 2006-01-12 | Jakarta | | 5 | N060100005 | Iffa Cahya Nisrina | 2004-08-24 | Kebumen | +----+------------+--------------------+------------+-----------+

Tabel B : gaji +-----------+------------+-----------+ | idpegawai | gaji_pokok | tunjangan | +-----------+------------+-----------+ | 1 | 4750000 | 1200000 | | 2 | 6750000 | 2000000 | | 3 | 8200000 | 2600000 | | 4 | 2700000 | 1000000 | | 5 | 3500000 | 1100000 | +-----------+------------+-----------+

www.nurulfikri.com ☎ 7874223 / 24

52

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Gambar 7.3: Relasi One To One di Ms Access

7.1.4

Relasi Rekursif

Relasi rekursif terjadi ketika kolom foreign key pada suatu table mengacu ke kolom primary key table yang sama. Contoh kasus relasi rekursif adalah relasi antara pegawai dengan atasan, dimana data pegawai dan data atasan adalah table yang sama.

Gambar 7.4: Relasi Rekursif

Perintah query relasi rekursif pada kasus pegawai dengan atasan dituliskan sebagai berikut: CREATE TABLE pegawai ( id INT(11), nip VARCHAR(10), nama VARCHAR(32) NOT NULL, gaji DECIMAL(8), id_atasan INT(4), PRIMARY KEY(id), CONSTRAINT fk_atasan FOREIGN KEY (id_atasan) REFERENCES karyawan(id) );

www.nurulfikri.com ☎ 7874223 / 24

53

Program Reguler & Inhouse

7.2

Desain dan Pengelolaan Database

Query Join Table

Klausa Join sangat berguna dan sering digunakan dalam perintah query, membuat laporan terkadang harus melibatkan lebih dari satu table untuk mendapatkan data yang informatif.

7.2.1

Join dua table

7.2.1.1

Inner Join

Mengaitkan dua table yang saling berhubungan dapat menggunakan klausa WHERE dengan kondisi pada klausa where biasanya adalah kolom yang saling terhubung antara dua table atau kolom foreign key. Pada kasus table produk dengan table jenis produk kolom yang menghubungkan adalah kolom foreign key id_jenis pada table produk. ●

Tampilkan data kode,nama,harga dari produk beserta nama jenis produknya. SELECT produk.kode,produk.nama,jenis_produk.nama AS jenis FROM produk,jenis_produk WHERE produk.id_jenis=jenis_produk.id; +------+---------------------+-------------+ | kode | nama | jenis | +------+---------------------+-------------+ | TV21 | Televisi 21 inch | Elektronika | | KU02 | Kulkas 2 Pintu | Elektronika | | STR8 | Stereo Tape | Elektronika | | JAM2 | Jam Tangan Digital | Elektronika | | MAG6 | Magic Jar | Elektronika | | LEM7 | Lemari Anak | Furniture | | MMK6 | Meja Makan | Furniture | | ROT1 | Roti Tawar | Makanan | | COK3 | Cokelat Batangan | Makanan | | AIR7 | Air Mineral Kemasan | Minuman | +------+---------------------+-------------+

Cara lain mengekspresikan JOIN antara dua table adalah dengan menggunakan klausa INNER, seperti dibawah ini : SELECT produk.kode,produk.nama,jenis_produk.nama AS jenis FROM produk INNER JOIN jenis_produk ON produk.id_jenis=jenis_produk.id;

Antara klausa INNER JOIN adalah dua table yang saling terhubung dengan kolom yang terhubung disebutkan setelah klausa ON. Data yang ditampilkan dari query INNER JOIN adalah seluruh data yang terhubung saja atau data yang saling beririsan saja.

7.2.1.2

LEFT JOIN

Klausa LEFT JOIN digunakan untuk menampilkan seluruh baris data pada table disisi sebelah kiri dari klausa, walaupun ada baris data disisi sebelah kiri yang tidak beririsan atau terhubung dengan kolom yang dihubungkan setelah klausa ON.

www.nurulfikri.com ☎ 7874223 / 24

54

Program Reguler & Inhouse ●

Desain dan Pengelolaan Database

Tampilkan idsales dari penjualan, kode,nama dari produk dan jumlah quantitas produk yang terjual. SELECT sales_item.idsales,produk.kode,produk.nama,sales_item.qty FROM sales_item LEFT JOIN produk ON sales_item.kode_produk=produk.kode; +---------+------+---------------------+------+ | idsales | kode | nama | qty | +---------+------+---------------------+------+ | 1 | TV21 | Televisi 21 inch | 1 | | 1 | MAG6 | Magic Jar | 1 | | 2 | STR8 | Stereo Tape | 2 | | 3 | ROT1 | Roti Tawar | 10 | | 3 | AIR7 | Air Mineral Kemasan | 15 | | 4 | JAM2 | Jam Tangan Digital | 1 | | 4 | MAG6 | Magic Jar | 1 | | 5 | TV21 | Televisi 21 inch | 1 | | 5 | LEM7 | Lemari Anak | 1 | +---------+------+---------------------+------+

7.2.1.3

RIGHT JOIN

Kebalikan dari klausa LEFT JOIN, pada klausa RIGHT JOIN akan menampilkan seluruh baris data pada table disisi sebelah kanan dari klausa, walaupun ada baris data disisi sebelah kanan yang tidak beririsan/terhubung dengan kolom yang dihubungkan setelah klausa ON. ●

Tampilkan data kode,nama dari produk yang terjual maupun tidak terjual beserta informasi quantitas penjualannya. SELECT produk.kode,produk.nama,sales_item.qty FROM sales_item RIGHT JOIN produk ON sales_item.kode_produk=produk.kode; +------+---------------------+------+ | kode | nama | qty | +------+---------------------+------+ | TV21 | Televisi 21 inch | 1 | | TV21 | Televisi 21 inch | 1 | | KU02 | Kulkas 2 Pintu | NULL | | STR8 | Stereo Tape | 2 | | JAM2 | Jam Tangan Digital | 1 | | MAG6 | Magic Jar | 1 | | MAG6 | Magic Jar | 1 | | LEM7 | Lemari Anak | 1 | | MMK6 | Meja Makan | NULL | | ROT1 | Roti Tawar | 10 | | COK3 | Cokelat Batangan | NULL | +------+---------------------+------+

7.2.1.4

Klausa Group By dan HAVING

Agar laporan yang dihasilkan dari query tidak berulang data bisa dikelompokan berdasarkan kolom tertentu dengan menggunakan klausa GROUP BY. ●

Tampilkan nama kota-kota tempat kelahiran pegawai SELECT tmp_lahir AS 'kota kelahiran',count(*) AS jumlah

www.nurulfikri.com ☎ 7874223 / 24

55

Program Reguler & Inhouse

Desain dan Pengelolaan Database

FROM pegawai GROUP BY tmp_lahir ; +----------------+--------+ | kota kelahiran | jumlah | +----------------+--------+ | Jakarta | 3 | | Kebumen | 2 | +----------------+--------+

Klausa GROUP BY biasanya diikuti dengan penggunaan fungsi aggregate untuk menampilkan informasi dari kolom yang ingin ditampilkan misalnya total dan rata-rata suatu kolom. ●

Tampilkan data kode,nama dari produk yang terjual maupun tidak terjual beserta informasi quantitas penjualannya dan kelompokan berdasarkan kode produk. SELECT produk.kode,produk.nama,SUM(sales_item.qty) AS total FROM sales_item RIGHT JOIN produk ON sales_item.kode_produk=produk.kode GROUP BY produk.kode; +------+---------------------+-------+ | kode | nama | total | +------+---------------------+-------+ | AIR7 | Air Mineral Kemasan | 15 | | COK3 | Cokelat Batangan | NULL | | JAM2 | Jam Tangan Digital | 1 | | KU02 | Kulkas 2 Pintu | NULL | | LEM7 | Lemari Anak | 1 | | MAG6 | Magic Jar | 2 | | MMK6 | Meja Makan | NULL | | ROT1 | Roti Tawar | 10 | | STR8 | Stereo Tape | 2 | | TV21 | Televisi 21 inch | 2 | +------+---------------------+-------+

Klausa GROUP BY bisa juga diikuti dengan penggunaan klausa HAVING yang digunakan untuk menunjuk kesuatu nilai dan biasanya diikuti dengan penggunaan fungsi aggregate. ●

Tampilkan nama kota-kota tempat kelahiran pegawai berikut jumlahnya SELECT tmp_lahir AS 'kota kelahiran',count(*) AS jumlah FROM pegawai GROUP BY tmp_lahir HAVING tmp_lahir='Jakarta'; +----------------+--------+ | kota kelahiran | jumlah | +----------------+--------+ | Jakarta | 3 | +----------------+--------+

7.2.2

JOIN lebih dari 2 table

Laporan yang dibutuhkan oleh pengambil keputusan biasanya mempunyai informasi yang lengkap. Laporan yang lengkap biasanya dihasilkan oleh lebih dari dua table yang saling berrelasi. Dalam contoh kasus ini adalah menampilkan hasil laporan penjualan produk. ●

Tampilkan data kode,nama dari produk, quantitas penjualan serta tanggal dan kode penjualan. SELECT

www.nurulfikri.com ☎ 7874223 / 24

56

Program Reguler & Inhouse

Desain dan Pengelolaan Database

sales.kode,sales.tanggal,produk.kode,produk.nama,sales_item.qty FROM produk,sales,sales_item WHERE produk.kode=sales_item.kode_produk AND sales.id=sales_item.idsales; +--------+------------+------+---------------------+------+ | kode | tanggal | kode | nama | qty | +--------+------------+------+---------------------+------+ | S00001 | 2007-10-01 | TV21 | Televisi 21 inch | 1 | | S00001 | 2007-10-01 | MAG6 | Magic Jar | 1 | | S00002 | 2007-10-01 | STR8 | Stereo Tape | 2 | | S00003 | 2007-10-02 | ROT1 | Roti Tawar | 10 | | S00003 | 2007-10-02 | AIR7 | Air Mineral Kemasan | 15 | | S00004 | 2007-10-02 | JAM2 | Jam Tangan Digital | 1 | | S00004 | 2007-10-02 | MAG6 | Magic Jar | 1 | | S00005 | 2007-10-04 | TV21 | Televisi 21 inch | 1 | | S00005 | 2007-10-04 | LEM7 | Lemari Anak | 1 |

Menggunakan alias nama table Dalam memudahkan penulisan query bisa digunakan alias dari nama table sehingga penulisan query lebih pendek. Dalam contoh query diatas table produk dialiaskan dengan huruf p, sales dengan s dan sales_item t. Pendefinisian alias dari nama table diletakan setelah klausa FROM didepan nama table, sehingga setiap kolom yang akan ditampilkan cukup dengan menyebutkan inisial dari nama table tanda titik dan nama kolomnya. SELECT s.kode,s.tanggal,p.kode,p.nama,t.qty FROM produk s,sales s,sales_item t WHERE p.kode=t.kode_produk AND s.id=t.idsales;

www.nurulfikri.com ☎ 7874223 / 24

57

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Bab 8 Normalisasi Tujuan Pembelanjaran Setelah menamatkan bab ini, diharapkan Siswa : ● ●

Dapat mengerti konsep normalisasi. Dapat mengerti bentuk-bentuk normalisasi.

Jika bekerja dengan database, maka akan diketemukan istilah “normalisasi”. Mungkin orang sering bertanya kepada Anda, “apakah databasenya sudah dinormalisasi ?” atau, “apakah databasenya dalam BCNF ?” . Namun dengan mengetahui prinsip-prinsip dari normalisasi, dan dengan menerapkannya pada tugas-tugas desain database Anda maka semuanya itu bukanlah hal yang sulit, dan dapat meningkatkan performa DBMS Anda. Normalisasi adalah suatu metoda untuk meningkatkan kualitas dari desain database didalamnya terdapat proses mengefisiensikan peng-organisasian data dalam database. Tujuan dari proses normalisasi: Mengeliminasi atau menghilangkan duplikasi data (menyimpan data yang sama kedalam lebih dari satu tabel). ● Menjamin bahwa ketergantungan data dapat dimengerti atau masuk akal (hanya menyimpan data yang berhubungan dalam suatu tabel). ● Menjamin tidak terjadinya anomali-anomali : ○ Anomali penambahan data : Penambahan data mengharuskan duplikasi data nilai atribut tertentu. ●

○ Anomali penghapusan data : penghapusan record mengakibatkan hilangnya nilai atribut yang hanya terdapat pada record tersebut (yang mungkin masih dibutuhkan) ○ Anomali modifikasi data : Pengubahan nilai atribut suatu record mengharuskan pengubahan atribut yang sama pada banyak record-record lain.

Dengan melakukan normalisasi diharapkan akan mengurangi jumlah konsumsi space database, dan menjamin bahwa data secara logika disimpan. Komunitas database telah mengembangkan serangkain petunjuk untuk menjamin bahwa database dinormalisasi. Itu semua diacu sebagai bentuk-bentuk normal atau Nornal Forms (NF) dan serangkain petunjuk tersebut diberi nomor dari nomor satu (bentuk normalisasi yang paling rendah) sampai nomor lima (bentuk normal kelima atau 5NF). Dalam aplikasi-aplikasi praktis, Anda ditemui 1NF, 2Nf, dan 3NF kadang bersama dengan 4 NF. Bentuk normal kelima sangat jarang ditemukan.

8.1

Normalisasi Bentuk Pertama (1NF)

Dalam normalisasi bentuk pertama relasi didefinisikan jika dan hanya jika semua kolom adalah mempunyai nilai tunggal. Dengan kata lain setiap atribut pada entitas mempunyai satu nilai tidak ada group nilai. www.nurulfikri.com ☎ 7874223 / 24

58

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Tabel 8.1 berisi contoh table yang belum memenuhi Normalisasi Bentuk Pertama (1NF). Dalam contoh table ini masih ada atribut yang mempunyai ganda. NIP

Nama

Departemen

KURSUS DESKRIPSI

NILAI

TGL_LULUS

202

Rosalie Naurah

Personalia

LIN1

Linux Fundamental

80

1/10/200x

204

Alissa Shafwah

IT

PHP1 PHP2

PHP & MySQL PHP Lanjutan

86 75

4/7/200x 29/8/200x

207

Defghi Muhammad

Keuangan

JAV1

Java Fundamental

89

3/10/200x

208

Rahmi Maulida

Personalia

HTM1

HTML

90

12/11/200x

209

Iffa Cahya Nisrina

Marketing

LIN1 PHP1

Linux Fundamental PHP & MySQL

79 84

16/11/200x 24/2/200x

210

Naufal Sagufta

IT

PHP2

PHP Lanjutan

60

2/11/200x

Tabel 8.1 diubah menjadi Tabel 8.2 yang telah memehuhi Normalisasi Bentuk Pertama (1NF). NIP

Nama

Departemen

Kursus

DESKRIPSI

NILAI

TGL_LULUS

202

Rosalie Naurah

Personalia

LIN1

Linux Fundamental

80

1/10/200x

204

Alissa Shafwah

IT

PHP1

PHP & MySQL

86

4/7/200x

204

Alissa Shafwah

IT

PHP1

PHP Lanjutan

75

29/8/200x

207

Defghi Muhammad

Keuangan

JAV1

Java Fundamental

89

3/10/200x

208

Rahmi Maulida

Personalia

HTM1

HTML

90

12/11/200x

209

Iffa Cahya Nisrina

Marketing

LIN1

Linux Fundamental

79

16/11/200x

209

Iffa Cahya Nisrina

Marketing

PHP1

PHP & MySQL

84

24/2/200x

210

Naufal Sagufta

IT

PHP2

PHP Lanjutan

60

2/11/200x

8.2

Normalisasi Bentuk Kedua (2NF) Bentuk normalisasi pertama (1NF) mungkin saja masih mengandung masalah :

1. Redundancy data (data sama muncul berulang). 2. Kemungkinan terjadi anomali-anomali : ○ Anomali penambahan data : Pada contoh Tabel 8.2, tidak dapat menambah kode kursus baru. ○ Anomali penghapusan data : Pada contoh Tabel 8.2, tidak dapat menghapus data yang mempunyai NIP 208 (mengakibatkan informasi kursus HTML hilang). ○ Anomali modifikasi data : Pada contoh Tabel 8.2, mengubah data kode kursus PHP1 harus mengubah dua baris data.

Bentuk normalisasi kedua terjadi jika : 1. Memenuhi 1NF, dan setiap atribut non-key secara fungsional bergantung penuh pada kepada semua primary key.

www.nurulfikri.com ☎ 7874223 / 24

59

Program Reguler & Inhouse

Desain dan Pengelolaan Database

2. Tidak ada defendensi fungsional parsial. Nilai dari setiap atribut non-key harus ditentukan oleh atribut-atribut key secara keseluruhan, bukan hanya sebagian dari atributatribut key tersebut. Ketergantungan pada seluruh primary key NIP

Kursus

DESKRIPSI

Nama

Departemen

NILAI

TGL_LULUS

Ketergantungan pada sebagian dari primary key

NIP, Kursus,Nilai ---> TGL_LULUS Nama, Departemen ---> NIP Deskripsi ----> Kursus Berikut hasil normalisasi bentuk ke 2 (2NF). NIP

Nama

Departemen

NIP

Kursus

NILAI

TGL_LULUS

202

Rosalie Naurah

Personalia

202

LIN1

80

1/10/200x

204

Alissa Shafwah

IT

204

PHP1

86

4/7/200x

207

Defghi Muhammad

Keuangan

204

PHP1

75

29/8/200x

208

Rahmi Maulida

Personalia

207

JAV1

89

3/10/200x

209

Iffa Cahya Nisrina

Marketing

208

HTM1

90

12/11/200x

210

Naufal Sagufta

IT

209

LIN1

79

16/11/200x

209

PHP1

84

24/2/200x

210

PHP2

60

2/11/200x

NIP

Nama

LIN1

Linux Fundamental

PHP1

PHP Lanjutan

JAV1

Java Fundamental

HTM1

HTML

PHP2

PHP & MySQL

8.3

Normalisasi Bentuk Ketiga (3NF) Bentuk normal ketiga (3NF) melakukan satu langkah besar selanjutnya:

1. Menemukan semua syarat-syarat bentuk normal kedua (2NF). 2. Menghilangkan kolom-kolom yang tidak secara langsung tergantung pada primary key. Berikut contoh tabel sales : KODE_PELANGGAN

Nama

Salesman

Wilayah

1221

Agung Sedayu

Bob Wilson

Jakarta Timur

3232

Rara Wulan

Unggul Sagena

Jakarta Selatan

www.nurulfikri.com ☎ 7874223 / 24

60

Program Reguler & Inhouse

Desain dan Pengelolaan Database

9734

Sambung Sari

Yatno

Jakarta Barat

1220

Glagah Putih

Bob Wilson

Jakarta Timur

4221

Pandan Wangi

Yatno

Jakarta Barat

5322

Swandaru Geni

Bayu

Jakarta Pusat

Catatan : Setiap salesman hanya melayani satu wilayah

KODE_PELANGGAN

Nama

Kode Pelanggan -> Nama Kode Pelanggan -> Salesman Kode Pelanggan -> Wilayah

Salesman

Wilayah

Sudah memenuhi 2NF

Tetapi Kode Pelanggan -> Salesman -> Wilayah. Masih bergantung secara tidak langsung.

Berikut hasil normalisasi menjadi bentuk ke 3NF. Salesman

Wilayah

Bob Wilson

Jakarta Timur

Unggul Sagena

Jakarta Selatan

Yatno

Jakarta Barat

Bayu

Jakarta Pusat

KODE_PELANGGAN

Nama

Salesman

1221

Agung Sedayu

Bob Wilson

3232

Rara Wulan

Unggul Sagena

9734

Sambung Sari

Yatno

1220

Glagah Putih

Bob Wilson

4221

Pandan Wangi

Yatno

5322

Swandaru Geni

Bayu

8.3.1

Normalisasi Bentuk Keempat (4NF) Bentuk normal keempat (4NF) memiliki satu syarat tambahan:

1. Menemukan semua syarat-syarat bentuk normal ketiga (3NF). 2. Suatu relasi adalah dalam bentuk normal keempat (4NF) jika relasi itu tidak memiliki ketergantungan banyak nilai (value). Pada Tabel 8.4 : Relasi tentang pegawai yang mengerjakan suatu proyek sesuai dengan keahlian sudah memenuhi 3NF, tetapi belum memenuhi 4NF karena kolom proyek dan keahlian masih tergantung pada kolom NIP. www.nurulfikri.com ☎ 7874223 / 24

61

Program Reguler & Inhouse

Desain dan Pengelolaan Database

NIP

Keahlian

Proyek

202

PHP

P001

202

PHP

P002

204

HTML

P001

207

JAVA

P003

208

PHP

P002

208

JAVA

P003

Berikut hasil normalisasi ke dalam bentuk 4NF. NIP

Keahlian

202

PHP

NIP

Proyek

204

HTML

202

P001

207

JAVA

202

P002

208

PHP

204

P001

208

JAVA

207

P003

208

P002

208

P003

www.nurulfikri.com ☎ 7874223 / 24

62

Program Reguler & Inhouse

Desain dan Pengelolaan Database

RDBMS dengan MySQL database 8.4

Fitur MySQL Database

MySQL merupakan Database Management System SQL open source yang paling populer, yang dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah sebuah perusahaan komersial, yang didirikan oleh para pengembang MySQL. MySQL AB adalah perusahaan open source generasi kedua yang menyatukan nilai-nilai dan metodologi open source dengan suatu model bisnis yang sukses. Berikut ini fitur-fitur utama MySQL: 1. 2. 3. 4.

MySQL adalah relational database management system Software MySQL adalah open source Database server MySQL sangat cepat, reliable, dan mudah digunakan Database server MySQL bekerja dalam client/server atau embedded system

8.4.1

Penyesuaian dengan standard-standard SQL

MySQL mendukung entry-level SQL-92. Entry-level berisi serangkaian keistimewaankeistimewaan yang mendefinisikan dasar-dasar pemenuhan SQL-92. Oracle menyesuaikan dengan SQL-89, yang mana adalah suatu sub-set dari tipe SQL-92 dengan tambahan tipe-tipe spesifik. Beberapa tipe SQL-92 dipetakan kedalam tipe-tipe oracle. PostgreSQL menggunakan suatu sub-set dari bahasa SQL92-99 yang diperluas dan bahasa SQL 3. Sintak tipe-tipe data SQL-92 dipetakan langsung kedalam tipe asli postgreSQL.

8.4.2

Program-program klien MySQL

Program-program klien MySQL dapat dipanggil atau dijalankan dari command-line, seperti dari sebuah console prompt Windows, atau dari sebuah UNIX prompt shell. Ketika Anda menjalankan suatu program klien, Anda dapat menentukan opsi-opsi untuk mengontrol tindak tanduk dari program klien. Beberapa opsi menjelaskan kepada program klien tentang bagaimana menghubungi server MySQL. Beberapa opsi lainnya menjelaskan kepada program klien aksi yang manakah yang harus dilakukan.

8.4.2.1

Program klien mysql

Program klien mysql memungkinkan Anda mengirimkan permintaan-permintaan (query) ke server MySQL, dan menerima hasilnya. Untuk menentukan opsi-opsi yang didukung oleh program mysql, jalankan perintah dengan opsi –help. Sebagai contoh, untuk mencari tahu bagaimana menggunakan mysql , ketiklah perintah berikut ini: shell> mysql –help [rojul@nebula ~]$ mysql --help mysql Ver 14.12 Distrib 5.0.37, for redhat-linux-gnu (i686) using readline 5.0 Copyright (C) 2002 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software,

www.nurulfikri.com ☎ 7874223 / 24

63

Program Reguler & Inhouse

Desain dan Pengelolaan Database

and you are welcome to modify and redistribute it under the GPL license Usage: mysql [OPTIONS] [database] -?, --help Display this help and exit. -I, --help Synonym for -? --auto-rehash Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time.

Untuk mengetahui versi dari program mysql, gunakan opsi –version: shell> mysql –version [rojul@nebula ~]$ mysql --version mysql Ver 14.12 Distrib 5.0.37, for redhat-linux-gnu (i686) using readline 5.0

Untuk terhubung ke server dengan menggunakan program klien, klien harus mengetahui alamat komputer yang menjalankan server MySQL. Sebuah koneksi atau hubungan bisa dilakukan secara lokal pada suatu server MySQL dengan kata lain server MySQL dan program klien mysql berjalan pada komputer yang sama, atau dapat dilakukan secara jarak jauh (remote) ke suatu server MySQL yang berjalan pada komputer yang berbeda dengan komputer yang sedang menjalankan program klien mysql, Anda tentunya harus memiliki user account (username dan password) yang terdaftar pada server MySQL tersebut untuk dapat melakukan koneksi ke server. Dua buah opsi yang menunjukkan kepada klien dimanakah server MySQL berjalan, begitu juga tipe koneksi yang dilakukan. --host=nama_komputer

atau -h nama_komputer

Opsi ini menentukan pada komputer yang manakah server MySQL aktif atau berjalan. Nilai dari opsi ini dapat berupa nama komputer atau nomor IP. Nilai default adalah localhost. --port=nomor_port

atau -p nomor_port

Opsi ini menunjukkan nomor port yang manakah yang dapat dihubungi pada komputer server, ini hanya diterapkan untuk koneksi TCP/IP. Default nomor port MySQL adalah 3306. Dua buah opsi yang menyediakan informasi indentifikasi, yaitu username dan password atau user account yang Anda akan gunakan untuk dapat mengakses server. --user=username

atau -u username

Opsi ini menentukan username untuk account MySQL Anda. --password=password www.nurulfikri.com ☎ 7874223 / 24

64

Program Reguler & Inhouse

Desain dan Pengelolaan Database

atau -p password

Opsi ini menentukan password untuk account MySQL Anda. Berikut ini contoh-contoh bagaimana menggunakan opsi-opsi program klien mysql untuk melakukan koneksi: ● Koneksi ke server menggunakan default nama komputer dan default username tanpa password: shell> mysql ● Koneksi ke server pada komputer lokal dengan nama user 'naufal', dan meminta mysql untuk menanyakan password Anda: shell> mysql --host=localhost --password --user=rosa ● Koneksi ke server dengan opsi yang sama dengan contoh sebelumnya, tetapi menggunakan bentuk opsi singkat: shell> mysql -h localhost -p -u rosa ● Koneksi ke server dengan IP address yang spesifik, dengan nama user 'naufal' dan password 'rahasia': shell> mysql --host=192.168.1.33 --password=rahasia --user=rosa ● Koneksi ke server pada localhost dengan default username dan password dan dengan mengkompress paket data yang lewat atau melintas antara klien dan server: shell> mysql --host=localhost --compress

8.4.2.2

Program klien mysqlimport

mysqlimport adalah program klien yang memuat file-file data kedalam tabel-tabel. Program ini menyediakan antar muka command-line dengan pernyataan LOAD DATA INFILE. Hal ini berarti mysqlimport memeriksa opsi -opsi yang diberikan pada command-line dan membuat suatu pernyataan LOAD DATA INFILE yang berhubungan dengan aksi yang disebutkan oleh opsi-opsi tersebut. Kemudian melakukan koneksi ke server dan untuk setiap file input, menghasilkan pernyataan LOAD DATA INFILE yang memuat file tersebut dengan benar kedalam tabel yang sesuai. Cara menjalankan perintah mysqlimport pada command-line seperti berikut ini:

shell> mysqlimport options nama_database file_input

nama_database adalah nama dari database yang berisi tabel tabel yang akan diisi data, dan file_input adalah nama file yang berisi data yang akan dimuat ke tabel. Setiap tabel yang akan diisi oleh mysqlimport harus sudah ada dalam database, dan setiap file input seharusnya hanya mengandung nilai-nilai data. mysqlimport tidak dimasudkan untuk memproses file-file input yang mengandung perintah-perintah SQL (yaitu seperti yang dibuat dengan program mysqldump).

8.4.2.3

Program klien mysqldump

Program klien mysqldump mengekspor isi dari tabel-tabel yang ada dalam suatu database ke suatu file. Program ini sangat berguna untul membackup database, atau untuk mentransfer isi dari database ke server lain. mysqldump dapat menghasilkan file-file hasil dump berfornat SQL yang mengandung perintah-perintah CREATE TABLE dan INSERT untuk membuat ulang file-file dump, atau dapat menghasilkan file-file data dengan delimiter tabulasi.

www.nurulfikri.com ☎ 7874223 / 24

65

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Secara default mysqldump menginterpretasi argumen pertama yang bukan option sebagai nama database dan akan mengekspor seluruh tabel-tabel yang ada dalam database tersebut. ●

Perintah berikut ini akan mengekspor seluruh isi tabel -tabel dalam database sekolah kedalam suatu file dengan nama file 'sekolah.sql': shell> mysqldump sekolah > sekolah.sql



Perintah mysqldump berikut ini disertai dengan 3 argumen yang bukan option, argumen pertama adalah nama database dan argumen ke duan dan ketiga adalah nama-nama tabel dalam database, hasil dump disimpan kedalam file dengan nama pelajar_guru.sql: shell> mysqldump sekolah pelajar guru > pelajar_guru.sql

Langkah memuat ulang sebuah file dump berformat SQL yang dihasilkan oleh mysqldump, gunakan program klien mysql. Guna membuat salinan tabel pelajar dari database sekolah kedalam database kampus, sebagai contoh, Anda dapat menjalankan perintah berikut ini: shell> mysqldump --opt sekolah pelajar > shell> mysql kampus < pelajar.sql

pelajar.sql

mysql dapat membaca dari sebuah pipe, sehingga Anda dapat mengkombinasikan dengan penggunaan perintah mysqldump dan mysql menjadi sebuah perintah tunggal. Contoh sebelumnya dapat ditulis menjadi berikut ini: shell> mysqldump --opt sekolah pelajar | mysql kampus

8.4.2.4

Program klien mysqlcheck dan myisamchk

Program klien mysqlcheck dan myisamchk digunakan untuk memeriksa dan memperbaiki tabel-tabel (khususnya tabel tabel MyISAM). Program-program klien tersebut dapat membantu menjaga tabel-tabel Anda terbebas dari masalah-masalah, atau memeperbaiki tabel-tabel Anda jika terjadi masalah sebagai contoh tabel-tabel MyISAM menderita kerusakan akibat server crash. mysqlcheck dan myisamchk memiliki fungsi yang sama, tetapi mereka memiliki beberapa perbedaan. Berikut ini perbandingan antara kedua program tersebut: Kedua program dapat memeriksa, memperbaiki dan menganalisa tabel-tabel MyISAM. Mysqlcheck dapat juga mengoptimasi tabel-tabel MyISAM, begitu juga tabel-tabel InnoDB dan menganalisa tabel-tabel BDB. Ada operasi-operasi tertentu yang hanya dapat dilakukan oleh myisamchk sedangkan mysqlcheck tidak, yaitu men-disable atau mengenable pengindekan(indexes).

8.4.3

Storage Engine dan Tipe-tipe tabel

MySQL mendukung beberapa storage engine yang bertindak sebagai pengatur untuk berbagai tipe tabel yang berbeda. Storage engine MySQL mencakup keduanya yang mengatur tabel-tabel yang transaksinya aman (transaction-safe), dan yang mengatur tabel-tabel yang transaksinya tidak aman (non-transaction-safe): ●

Storage engine asli adalah ISAM, yang menangani tabel-tabel non-transaksi (nontransactional). Storage engine ISAM telah digantikan dengan MyISAM dan sudah lama

www.nurulfikri.com ☎ 7874223 / 24

66

Program Reguler & Inhouse

Desain dan Pengelolaan Database

tidak digunakan lagi. Pada MySQL 4.1 storage engine ini sudah kuno, bahkan pada MySQL 5.0 dihilangkan. ● Storage engine MyISAM diperkenalkan pada MySQL 3.23.0. MyISAM merupakan peningkatan untuk menggantikan ISAM. MyISAM menangani tabel-tabel non-transaksi (non-transactional). MyISAM memberikan kecepatan dalam proses penyimpanan dan pengambilan, begitu juga kemampuan-kemampuan pencarian keseluruhan teks (full-text). MyISAM didukung dalam seluruh konfigurasi MySQL, dan secara default MyISAM menjadi storage engine yang digunakan dalam MySQL, kecuali jika Anda mengkonfigurasi MySQL menggunakan storage engien yang lainnya. ● Storage engine MEMORY menyediakan tabel-tabel in-memory. Storage engine MERGE ditambahkan kedalam MySQL 3.23.25. Storage engine ini memungkinkan sekumpulan tabel-tabel MyISAM yang identik untuk dikelola sebagai suatu tabel tunggal. Seperti MyISAM, Storage engine MEMORY dan MERGE menangani tabel-tabel non-transasksi ( non-transactional), dan keduanya juga disertakan secara default dalam MySQL. Catatan: Storage engine MEMORY pertama kali dikenal sebagai HEAP engine. ● Storage engine InnoDB dan BDB yang menangani tabel-tabel transasction-safe diperkenalkan dalam versi MySQL 3.23 selanjutnya.BDB disertakan dalam distribusi binari MySQL-Max pada sistem operasi – sistem operasi yang mendukungnya. InnoDB juga disertakan dalam distribusi binari MySQL-Max untuk MySQL 3.23. Mulai dengan MySQL 4.0, InnoDB telah disertakan secara default dalam seluruh distribusi binari MySQL. Dalam distribusi-distribusi source, Anda dapat meng-enable atau men-disable storage engine storage engine tersebut dengan mengkonfigurasi MySQL sesuai dengan kebutuhan Anda.  NDB cluster adalah storage engine yang digunakan oleh MySQL cluster untuk implementasi tabel-tabel yang terpisah di beberapa komputer. Engine ini tersedia dalam distribusi source MySQL 4.1.2 dan distribusi binari MySQL-Max 4.1.3. Storage engine ini saat ini didukung hana di Linux, Solaris, dan Mac OS X . MySQL berniat untuk mendukung engine ini pada platform sistem operasi lainnya seperti MS Windows, dan dalam rilis MySQL mendatang.  Storage engine EXAMPLE adalah suatu sub engine yang tidak menangani apapun. Anda dapat membuat tabel-tabel dengan engine ini, tetapi tidak ada data yang dapat disimpan atau diambil dalam tabel tersebut. Engine EXAMPLE ini disediakan sebagai contoh dalam kode sumber MySQL yang menggambarkan bagaimana memulai membuat storage engine baru. Ini umumnya untuk yang tertarik atau untuk para pengembang.  Storage engine ARCHIVE digunakan untuk penyimpanan sejumlah besar data tanpa pengindekan dengan sebuah footprint yang sangat kecil.  Storage engine CSV menyimpan data dalam file teks dengan menggunakan tanda koma sebagai format pemisah antar nilai-nilai dalam file teks tersebut.  Storage engine BLACKHOLE menerima tetapi tidak menyimpan data, selalu mengembalikan atau menampilkan sesuatu yang kosong.  Storage engine FEDERATED menyimpan data dalam remote database. Dalam MySQL 5.1, storage engine ini hanya bekerja dengan MySQL, dengan menggunakan MySQL C client API. Dalam rilis masa depan, dimaksudkan untuk memungkinkannya untuk terkoneksi dengan sumber data lainnya dengan menggunakan driver-driver atau metode-metode koneksi klien yang lainnya.

8.5

Tipe-tipe kolom

Untuk setiap tipe data, sintak yang ditampilkan menggunakan tanda kurung siku (square brackets) ([ ]) adalah untuk menunjukkan bagian dari sintak yang bersifat opsional. Contoh berikut ini menunjukkan bagaimana BIGINT dijelaskan dalam bab ini: BIGINT[(display_size)]

www.nurulfikri.com ☎ 7874223 / 24

67

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Sebagai tambahan terhadap tipe BIGINT, banyak jenis tipe data MySQL lainnya yang mendukung spesifikasi dari ukuran. Kecuali jika tidak dispesifikasikan, nilai tersebut harus berupa sebuah bilangan integer atau bilangan bulat antara 1 dan 255.

8.5.1

NUMERIK (BILANGAN)

MySQL mendukung semua tipe data standar numerik(bilangan) SQL .Jenis ini meliputi tipe data bilangan bulat (INTEGER, SMALLINT, DESIMAL, dan NUMERIC), seperti halnya tipe data bilangan desimal (FLOAT, REAL, dan DOUBLE PRECISION). Keyword INT adalah suatu sinonim untuk BILANGAN BULAT (INTEGER), dan keyword DEC adalah satu sinonim untuk bilangan DESIMAL. Terhitung sejak MySQL 5.0.3, tipe data BIT tersedia untuk menyimpan nilai-nilai kolom bit. (Sebelum 5.0.3, MySQL menginterpretasikan BIT seperti TINYINT (1)). Pada versi MySQL 5.0.3, BIT didukung hanya untuk MyISAM. MySQL 5.0.5 memperluas dukungan BIT pada MEMORY, InnoDB, dan BDB. Sebagai satu ekstensi ke SQL standar, MySQL juga mendukung jenis bilangan bulat TINYINT, MEDIUMINT, dan BIGINT. Untuk tipe-tipe bilangan bulat selalu disediakan atribut auto_increment, signed dan unsigned. Signed berarti nilai negatif ikut dalam deklarasi tersebut sedang unsigned hanya nilai positif. Jika unsigned tidak dideklarasikan maka nilai default adalah signed.

8.5.1.1

INT/INTEGER

Deklarasi : INT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 4 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 4294967295 jika unsigned. – 2147483648 sampai dengan 214797647 jika signed.

8.5.1.2

TINYINT

Deklarasi : TINYINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 1 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 255 jika unsigned. -128 sampai dengan 127 jika signed.

8.5.1.3

MEDIUMINT

Deklarasi : MEDIUMINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 3 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 16777215 jika unsigned. -83888608 sampai dengan 82888607 jika signed.

8.5.1.4

BIGINT

Deklarasi : BIGINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 8 byte Nilai yang dapat disimpan adalah integer 0 sampai dengan 18446744073709551615 jika unsigned. –9223372036854775807 sampai dengan 922337203685477580787 jika signed.

www.nurulfikri.com ☎ 7874223 / 24

68

Program Reguler & Inhouse 8.5.1.5

Desain dan Pengelolaan Database

SMALLINT

Deklarasi : SMALLINT [(display_size)] [auto_increment] [unsigned] [zerofill] Penyimpanan: 2 byte Nilai yang dapat disimpan dengan jangkauan mulai dari 0 sampai dengan 65535 jika unsigned dan -32768 sampai 32767 jika signed.

8.5.1.6

FLOAT

Deklarasi : FLOAT [(display_size,digits)] [zerofill] Penyimpanan: 4 byte Float menyimpan bilangan real dan tidak dapat bersifat unsigned. Nilai presisi tunggal yang dapat disimpan adalah –3,402823466E+38 sampai dengan – 1,1175494351E-38,0, dan 1,1175494351E-38 sampai dengan 3,402823466E+38.

8.5.1.7

DOUBLE

Deklarasi : DOUBLE [(M,D)] [zerofill] Penyimpanan: 8 byte Double menyimpan bilangan real dengan presisi ganda. Nilai yang boleh adalah –1,7976931348623167E+308 sampai dengan –2.2250738585072014E308,0, dan 2.2250738585072014E-308 sampai dengan 1,7976931348623167E+308. Nilai M merupakan maksimal panjang tampilan. Nilai D merupakan nilai desimal.

8.5.1.8

DECIMAL

Deklarasi : DECIMAL [(precision [,scale])] [zerofill] Penyimpanan: precision + 2 byte Menyimpan bilangan floating point dimana ketepatan adalah kritis, seperti untuk nilai mata uang. Tipe DECIMAL memerlukan Anda untuk menspesifikasikan precision dan scale. Precision adalah jumlah nilai digit yang berarti. Scale adalah jumlah digit yang mengikuti tanda desimal. Sebagai contoh, sebuah kolom BALANCE dideklarasikan sebagai DECIMAL(9,2) yang akan menyimpan sejumlah 9 digit berarti, dengan dua digit diantaranya berada disebelah kanan tanda desimal. Range nilai dari contoh deklarasi kolom BALANCE tersebut adalah mulai -9,999,999.99 sampai 9,999,999.99.

8.5.2

String

Tipe data string menyimpan bermacam-macam jenis data teks. Terdapat sejumlah tipe-tipe data teks yang diakomodasi dengan beragam ukuran. Untuk masing-masing ukuran, ada suatu tipe yang menyusun dan membandingkan data secara case-sensitive, sesuai dengan susunan karakter baku. Sutau tipe binari melakukan penyusunan dan perbandingan sederhana byte demi byte. Dengan kata lain, nilai binari adalah case-sensitive. Untuk CHAR dan VARCHAR, tipe-tipe binari dideklarasikan dengan menggunakan atribut BINARY . Tipe-tipe TEXT, bagaimanapun juga, memiliki hubungan dengan tipe-tipe BLOB.

8.5.2.1

BLOB

Deklarasi: BLOB Bentuk binari dari TEXT.

www.nurulfikri.com ☎ 7874223 / 24

69

Program Reguler & Inhouse 8.5.2.2

Desain dan Pengelolaan Database

CHAR

Deklarasi: CHAR(size) [BINARY] ukuran: ditetapkan oleh nilai ukuran dengan jangkauan sampai dengan 255 Penyimpanan: size byte Suatu kolom dengan nilai teks yang panjangnya tetap. Nilai string dengan jumlah karakter lebih sedikit dari ukuran kolom maka akan diisi dengan spasi. Spasi yang diisikan tersebut ketika diambil dari database akan dihilangkan.

8.5.2.3

LONGBLOB

Deklarasi: LONGBLOB Bentuk binari dari LONGTEXT

8.5.2.4

LONGTEXT

Deklarasi: LONGTEXT ukuran: 0 samapai 4294967295 Penyimpanan: panjang nilai + 4 byte Menyimpan nilai teks yang besar. Secara teori batas ukuran dari teks yang dapat disimpan dalam sebuah kolom LONGTEXT melampaui 4 GB, pada prakteknya kurang. Ini sehubungan dengan batasan dari protokol komunikasi MySQL, dan jumlah memori yang tersedia terhadap komunikasi antara klien dan server.

8.5.2.5

MEDIUMBLOB

Deklarasi: MEDIUMBLOB bentuk dari MEDIUMTEXT

8.5.2.6

MEDIUMTEXT

Deklarasi: MEDIUMTEXT ukuran: 0 sampai 16777215 Penyimpanan: panjang nilai + 3 byte Menyimpan nilai teks dengan ukuran menengah.

8.5.2.7

TEXT

Deklarasi: TEXT ukuran: 0 sampai 65535 Penyimpanan: panjang nilai + 2 byte Penyimpanan untuk sebagian besar teks.

8.5.2.8

TINYBLOB

Deklarasi: TINYBLOB bentuk binari dari TINYTEXT

8.5.2.9

TINYTEXT

Deklarasi: TINYTEXT ukuran: 0 sampai 255 Penyimpanan: panjang nilai + 1 byte Menyimpan nilai teks yang pendek

www.nurulfikri.com ☎ 7874223 / 24

70

Program Reguler & Inhouse 8.5.2.10

Desain dan Pengelolaan Database

VARCHAR

Deklarasi: VARCHAR(size) [BINARY] ukuran: ditetapkan oleh nilai ukuran dalam suatu jangkauan sampai 255. Penyimpanan: panjang nilai + 1 byte Menyimpan nilai teks yang panjangnya bervariasi.

8.5.3

Date

Tipe-tipe data date MySQL adalah perangkat yang fleksibel untuk menyimpan informasi tanggal dan waktu. Untuk memvalidasi nilai tanggal dan waktu, itu diserahkan pada aplikasi bukan database. MySQL hanya akan memeriksa bulan yang memiliki jangkauan 0 sampai 12, dan tanggal dari 0 smapai 31. February 31, 2006 adalah suatu contoh informasi tanggal MySQL yang sah. February 0, 2006 adalah informasi tanggal yang juga sah bagi MySQL. Dengan kata lain, Anda dapat menggunakan 0 untuk menandakan tanggal yang Anda tidak ketahui pasti. MySQL secara otomatis akan mengkonversi nilai-nilai tanggal dan waktu menjadi bilngan integer ketika digunakan dalam suatu konteks bilangan integer.

8.5.3.1

DATE

Deklarasi: DATE Format: YYYY-MM-DD (2006-01-01) Penyimpanan: 3 byte Menyimpan tanggal dalam jangkauan dari 1 januari 1000 ('1000-01-01') sampai dengan 31 Desember 9999 ('9999-12-31') dalam almanak Gregorian.

8.5.3.2

DATETIME

Deklarasi: DATETIME Format: YYYY-MM-DD hh:mm:ss (2006-01-01 01:00:00) Penyimpanan: 8 byte Menyimpan informasi waktu yang spesifik dalam jangkauan dari 1 Januari 1000 12:00:00 AM ('1000-01-01 00:00:00') sampai 31 Desember 9999 11:59:59 PM ('9999-12-31 23:59:59') dalam almanak Gregorian.

8.5.3.3

TIME

Deklarasi: TIME Format: hh:mm:ss (06:00:00) Penyimpanan: 3 byte Menyimpan nilai waktu dalam jangkauan mulai dari tengah malam ('00:00:00') sampai 1 detik sebelum waktu tengah malam ('23:59:59').

8.5.3.4

TIMESTAMP

Deklarasi: TIMESTAMP[(display_size)] Format: YYYYMMDDhhmmss(20010101060000) Penyimpanan: 4 byte Sebuah representasi dari sebuah penunjukan waktu ke detik dalam jangkauan dari tengah malam pada 1 januari 1970, sampai pada satu menit sebelum tengah malam pada 31 Desember 2037. Kegunaan utama adalah menjaga jejak dari perubahan-perubahan tabel. Ketika Anda memasukkan suatu nilai NULL kedalam suatu kolom TIMESTAMP, maka tanggal dan waktu saat ini yang akan di masukkan. Jika Anda merubah beberapa nilai dari sebuah baris dengan suatu kolom TIMESTAMP, maka kolom TIMESTAMP yang pertama akan diupdate secara otomatis www.nurulfikri.com ☎ 7874223 / 24

71

Program Reguler & Inhouse

Desain dan Pengelolaan Database

dengan tanggal dan waktu saat ini.

8.5.3.5

YEAR

Deklarasi: YEAR[(size)] Format: YYYY(2006) Penyimpanan: 1 byte Menyimpan suatu informasi tahun dari alamanak Gregorian. Parameter size memungkinkan Anda untuk menyimpan tahun dengan menggunakan 2 digit dari 4 digit tahun. Jangkauan untuk suatu YEAR(4) adalah mulai 1900 sampai 2155, sedangkan YEAR(2) dari 1970 sampai 2069. Nilai size baku adalah YEAR(4).

8.5.4

Tipe data Komplek

Tipe data komplek MySQL yaitu ENUM dan SET adalah tipe string yang khusus. Mereka didaftarkan secara terpisah karena mereka secara konsep lebih komplek, dan merepresentasikan suatu bawaan tipe data SQL 3 yang didukung MySQL di masa datang.

8.5.4.1

ENUM

Deklarasi: ENUM(nilai1, nilai2, .....) Penyimpanan: 1-255 anggota nilai: 1 byte / 256-65535 anggota nilai: 2 byte Menyimpan satu nilai dari suatu daftar nilai-nilai teks yang mungkin yang sebelumnya sudah didefinisikan. Ketika Anda membuat sebuah kolom ENUM, Anda menyediakan suatu daftar dari seluruh nilai-nilai yang mungkin. Nilai-nilai yang dapat ditambahkan dan dirubah pada suatu kolom ENUM hanya yang terdfatar dalam daftar nilai-nilai teks yang mungkin tersebut. Jika Anda mencoba memasukkan suatu nilai yang tidak terdapat dalam daftar atau bukan bagian dari daftar maka akan menyebabkan sebuah string kosong yang akan disimpan.

8.5.4.2

SET

Deklarasi: SET(nilai1, nilai2, ....) Penyimpanan: 1 sampai 8 anggota nilai: 1 byte 9 sampai 16 anggota nilai: 2 byte 17 sampai 24 anggota nilai: 3 byte 25 sampai 32 anggota nilai: 4 byte 33 sampai 64 anggota nilai: 8 byte Sebuah daftar nilai-nilai yang diambil dari sekumpulan nilai-nilai yang sudah didefinisikan sebelumnya. Sebuah kolom dapat menyimpan beberapa atau tidak sama sekali nilai-nilai teks yang telah didefinisikan dalam pernyataan SET. SET pada dasarnya adalah sebuah ENUM yang memungkinkan setiap kolom untuk menyimpan lebih dari satu nilai. SET tidak menyimpan sesuai dengan indek, tetapi seperti suatu bitmap yang komplek

8.5.5

Opsi-opsi Kolom

Dalam MySQL, pada waktu pertama membuat tabel, atau dikemudaian waktu, Anda dapat menambah, merubah opsi-opsi kolom tabel. Opsi-opsi kolom membatasi data untuk dimasukkan sesuai dengan opsi yang telah ditetapkan.   

UNSIGNED, membuat kolom tidak boleh memiliki nilai negatif ZEROFILL, mengisi lebar data yang ditampilkan dengan nol AUTO_INCREMENT, diterapkan pada kolom-kolom integer. Digunakan untuk

www.nurulfikri.com ☎ 7874223 / 24

72

Program Reguler & Inhouse

Desain dan Pengelolaan Database

menghasilkan integer dengan urutan nilai yang unik. Kolom demikian dalam suatu tabel hanya ada satu. BINARY, diterapkan pada CHAR dan VARCHAR NULL dan NOT NULL, dapat diterapkan pada semua kolom DEFAULT, menyediakan suatu nilai baku dalam kasus tidak ada nilai yang diberikan. PRIMARY KEY dan UNIQUE

   

8.5.6

Operator MySQL menawarkan tiga jenis operator: arithmatic, compparison, dan logical.

8.5.6.1

Operator Preceding

Ketika SQL mengandung pernyataan yang komplek, sub pernyataan dievaluasi berdasarkan ketentuan aturan MySQL yang lebih tinggi. Anda dapat megesampingkan ketentuan aturan MySQL yang lebih tinggi dengan mengurung suatu pernyataan dalam tanda kurung: Prioritas hak yang lebih tinggi

Operator-operator

1

BINARY

2

NOT

3

^

4

- (unary minus)

5

*/%

6

+-

7

>

8

&

9

|

10

= = IN IS LIKE REGEXP

11

BETWEEN CASE

12

AND

13

OR XOR

8.5.6.2

Operator Arithmatic

Operator-operator arithmatic melakukan operasi aritmatika dasar antara dua buah nilai: Operator

Deskripsi

+

Menambahkan dua buah nilai bilangan

-

Mengurangi dua buah nilai bilangan

*

Mengalikan dua buah nilai bilangan

/

Membagi dua buah nilai bilangan

%

Memberikan sisa hasil bagi dua buah nilai bilangan

|

Melakukan operasi OR secara bit antara dua buah nilai bilangan bulat

^

Melakukan operasi eksklusif OR secara bit antara dua buah nilai bilangan bulat

www.nurulfikri.com ☎ 7874223 / 24

73

Program Reguler & Inhouse

Desain dan Pengelolaan Database

&

Melakukan operasi AND secara bit antara dua buah nilai bilangan bulat

>

Melakukan operasi geser kekanan secara bit pada sebuah nilai bilangan bulat

8.5.6.3

Operator Comparison

Operator comparison membandingkan nilai-nilai dan mengembalikan 1 jika perbandingan adalah benar (true), dan 0 (false) jika sebaliknya. Kecuali untuk operator , nilai NULL mengakibatkan suatu operator comparison mengevaluasinya ke NULL. Operator-operator

Deskripsi

atau !=

Mencocokkan baris jika kedua nilai tidak sama atau tidak sebanding

=

Mencocokkan baris jika nilai sebelah kiri lebih besar atau sama dengan nilai sebelah kanan

>

Mencocokkan baris jika nilai sebelah kiri lebih besar dari nilai sebelah kanan

nilai BETWEEN nilai1 AND nilai2

Mencocokkan baris jika nilai adalah antara nailai1 dan nilai2, atau sama dengan nilai1 atau nilai2

nilai IN (nilai1, nilai2,....)

Mencocokkan baris jika nilai termasuk dalam daftar nilai

nilai NOT IN (nilai1, nilai2,....)

Mencocokkan baris jika nilai tidak termasuk dalam daftar nilai

nilai1 LIKE nilai2

Membandingkan nilai1 dan nilai2 dan mencocokkan baris jika mereka sesuai. Nilai disebelah kanan dapat berupa karakter wildcard '%', yang cocok dengan semua karakter (termasuk nol karakter), dan '_', yang mencocokkan tepat ke satu karakter. Penggunaan yang sering adalah membandingkan suatu nilai kolom dengan satu string yang mengandung wildcard (contoh: SELECT name FROM pegawai WHERE name LIKE 'B%').

nilai1 NOT LIKE nilai2

Membandingkan nilai1 dan nilai2 dan mencocokkan baris jika mereka berbeda. Ini identik dengan NOT (nilai1 LIKE nilai2)

nilai1 REGEXP/RLIKE nilai2

Membandingkan nilai1 dan nilai2 dengan menggunakan extended reguler expression dan mencocokkan baris jika kedua nilai sesuai. Nilai sebelah kanan dapat mengandung penuh konsep wildcard reguler expression UNIX (contoh: SELECT name FROM pegawai WHERE name RLIKE '^B.*'

nilai1 NOT REGEXP nilai2

Membandingkan nilai1 dan nilai2 dengan menggunakan extended reguler expression dan mencocokkan baris jika kedua nilai berbeda. Ini identik dengan NOT (nilai1 REGEXP nilai2).

8.5.6.4

Operator Logical

Operator logical memeriksa nilai kebenaran dari satu atau lebih pernyataan. Dalam istilah SQL, suatu operator logical memeriksa apakah operand-operand nya adalah 0, nonzero, atau NULL. Suatu nilai 0 berarti salah (false), nonzero berarti benar(true) dan NULL berarti tak bernilai. Operator-operator

Deskripsi

www.nurulfikri.com ☎ 7874223 / 24

74

Program Reguler & Inhouse

Desain dan Pengelolaan Database

NOT atau !

Melakukan suatu logika not(mengembalikan '1' jika nilai adalah 0, NULL jika nilai adalah NULL, jika tidak mengembalikan '0')

OR atau ||

Melakukan suatu operasi logika or (mengembalikan '1' jika salah satu argumen atau nilai bukan non-zero atau bukan NULL, NULL jika salah satu argumen atau nilainya NULL, jika tidak mengembalikan '0')

XOR

Melakukan suatu operasi logika eksklusif or (mengembalikan '1' jika satu dan hanya satu argumen yang bukan 0 dan bukan NULL, NULL jika salah satu adalah NULL, jika tidak mengembalikan '0')

AND atau &&

Melakukan operasi logika and (mengembalikan '0' jika salah satu dari argumen adalah 0, NULL jika salah satu argumen adalah NULL, jika tidak mengembalikan '1')

8.5.7

Koneksi ke Server MySQL

Untuk koneksi ke database server, Anda biasanya perlu memberikan nama user MySQL dan password nya ketika menjalankan program klien mysql. Jika server berjalan pada komputer yang berbeda , Anda juga perlu memberikan nama komouter atau nomor IP komputer server database tersebut. Pembahasan lebih detil tentang program klien mysql telah dibahas dalam pembahasan sebelumnya.

8.5.8

Login ke prompt mysql

Begitu Anda mengetahui parameter-parameter yang diperlukan, maka Anda dapat melakukan koneksi ke database server MySQL, seperti berikut ini: [rojul@nebula ~]$ mysql -u root -p Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.0.37 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

Tanda prompt mysql> menjelaskan bahwa mysql telah siap menerima perintah (command). Beberapa instalasi MySQL memungkinkan untuk koneksi ke database server sebagai anonymous user (user tak bernama) pada komputer lokal (localhost).

8.5.8.1

Keluar dari prompt mysql

Untuk mengakhiri koneksi dari database server , ketikkan perimtah quit, exit , atau (\q), seperti berikut ini: mysql> quit

atau mysql> exit

atau

www.nurulfikri.com ☎ 7874223 / 24

75

Program Reguler & Inhouse

Desain dan Pengelolaan Database

mysql> \q

Berikut ini tabel yang menampilkan kondisi setiap prompt yang akan Anda lihat, dan kesimpulan mengenai apa yang terjadi dengan kondisi prompt seperti itu di dalam mysql: Prompt

kesimpulan

mysql>

Siap menerima perintah baru

->

Menunggu baris perintah berikutnya dari suatu perintah terdiri dari banyak baris

'>

Menunggu baris perintah berikutnya, dengan mengelompokkan sebuah string yang diawali dengan tanda kutip tunggal (')

“>

Menunggu baris perintah berikutnya, dengan mengelompokkan sebuah string yang diawali dengan tanda kutip ganda(“)

`>

Menunggu baris perintah berikutnya, dengan mengelompokkan sebuah identifier diawali dengan tanda back-tick (`)

8.5.9

Membuat dan menggunakan database

Sebelum Anda dapat membuat sebuah tabel Anda harus terlebih dahulu membuat Database. Perintah SQL dapat Anda ketikkan dengan huruf besar maupun kecil. Hanya saja di sini kita menggunakan huruf besar agar Anda lebih mudah membedakan antara perintah SQL dengan objek-objek lainnya. Perlu diingat, setelah selesai mengetaikkan perintah SQL pada prompt MySQL, Anda wajib memberikan tanda titik koma yang menandakan akhir dari perintah SQL.

8.5.9.1

Membuat database

Sintak penulisan perintah untuk membuat database seperti berikut ini : mysql> CREATE DATABASE database_name;

Hal yang harus diperhatikan dalam penamaan database adalah nama tidak boleh menggunakan kata-kata yang menjadi kosakata SQL seperti select karena hal itu akan membuat rancu. Perlu juga diperhatikan huruf besar atau huruf kecil sebuah nama database karena pada sistem UNIX huruf besar dan huruf kecil dibedakan. Pada contoh dibawah ini akan dibuat database dengan nama latihan. mysql> CREATE DATABASE latihan;

Sesudah Anda membuat suatu database, selanjutnya jika Anda ingin 'latihan' menjadi database yang Anda akses saat ini maka Anda dapat mengakses database tersebut dengan perintah sebagai berikut : mysql>USE latihan;

Atau Anda dapat juga mengakses database latihan melalui command-line sebagai berikut: [rojul@nebula ~]$ mysql -u root latihan -p

Perintah untuk menghapus database latihan mysql>DROP DATABASE latihan;

www.nurulfikri.com ☎ 7874223 / 24

76

Program Reguler & Inhouse 8.5.9.2

Desain dan Pengelolaan Database

Membuat user pemilik database

Super user database mysql atau root dapat membuat user pemilik dari database atau memberi privileges (hak) kepada user server database mysql, berikut perintah membuat user rojul pemilik database latihan. mysql> GRANT ALL PRIVILEGES ON latihan.* TO rojul@localhost IDENTIFIED BY 'rojul';

Setelah klausa IDENTIFIED BY masukan password dari user. Untuk login dengan menggunakan user yang telah dibuat jalankan perintah berikut dari command-line. [rojul@nebula ~]$ mysql -u rojul latihan -p

8.5.10

Manipulasi tabel

Tabel-tabel dapat dibuat dan dimodifikasi jika diperlukan. Jika Anda sudah memilih atau mengakses database maka Anda dapat membuat tabel sebagai berikut.

8.5.10.1

Membuat tabel

Setelah Anda memilih database barulah Anda dapat membuat sebuah tabel, Sintak penulisan perintah membuat tabel sebagai berikut: mysql> CREATE TABLE nama_tabel( kolom1 tipe_data opsi_kolom, kolom2 tipe_data opsi_kolom, ..........................., kolomN tipe_data opsi_kolom, PRIMARY KEY(nama_kolom), INDEX (nama_kolom) ) type=tipe_tabel

Dalam penggunaan klausa CREATE TABLE akan menemukan 2 opsi yang biasanya menyertai deklarasi definisi kolom yaitu 1. null/ not null 2. default Null/not null mengindikasikan apakah suatu kolom dapat menerima nilai null (nilai tiada). Jika dinyatakan null berarti null dapat terjadi dikolom tersebut sebaliknya bila diberi atribut not null maka nilai null tidak boleh pada kolom tersebut. Default menyatakan nilai baku yang akan dipakai jika dalam suatu proses pemasukan nilai ke kolom tersebut tidak diberi nilai. Contoh berikut akan membuat tabel dengan nama customer: mysql> CREATE TABLE customer ( id INT(4) AUTO_INCREMENT, nama VARCHAR(32), alamat LONG VARCHAR, PRIMARY KEY (id) ) TYPE=MyISAM;

Gunakan klausa SHOW TABLES untuk menampilkan informasi table-table yang telah ada www.nurulfikri.com ☎ 7874223 / 24

77

Program Reguler & Inhouse

Desain dan Pengelolaan Database

dalam database. mysql> SHOW TABLES; +-------------------+ | Tables_in_latihan | +-------------------+ | customer |

Untuk memeriksa skema tabel yang telah dibuat gunakan perintah DESCRIBE atau DESC. mysql> DESC customer; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nama | varchar(32) | YES | | NULL | | | alamat | mediumtext | YES | | NULL | | +-------------+-------------+------+-----+---------+----------------+

8.5.10.2

Menghapus tabel

Untuk menghapus tabel gunakan perintah berikut ini: mysql> DROP TABLE cutomer;

atau mysql> DROP TABLE IF

8.5.10.3

EXISTS customer;

Merubah tabel

Klausa ALTER TABLE digunakan untuk merubah struktur tabel yang ada, klausa ini digunakan diantaranya untuk : 1. 2. 3. 4. 5.

Menambah atau menghapus kolom Merubah nama atau definisi kolom Menambah atau menghapus index Menerapkan suatu susunan berbeda pada baris-baris Merubah nama tabel

ALTER TABLE bekerja dengan cara membuat salinan tabel dari tabel yang asli yang bersifat sementara (temporer). Proses perubahan tabel dilakukan pada tabel salinan, kemudian tabel asli dihapus, dan yang baru dirubah namanya. Ketika perintah ALTER TABLE sedang dieksekusi, tabel asli masih dapat dibaca oleh klien-klien. Proses perubahan dan penulisan terhadap tabel dihentikan sampai tabel yang baru siap, dan kemudian secara otomatis diarahkan ke tabel baru tanpa kegagalan dalam proses perubahan. Contoh berikut adalah perubahan tabel dengan menambah kolom. mysql> ALTER TABLE customer ADD telpon VARCHAR(20);

Gunakan klausa MODIFY atau CHANGE untuk melakukan perubahan tipe data kolom. MODIFY dan CHANGE memiliki fungsi yang sama yaitu merubah tipe data kolom, hanya saja dengan CHANGE memungkinkan nama kolom juga dapat dirubah.

www.nurulfikri.com ☎ 7874223 / 24

78

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Merubah nama tabel Klausa RENAME digunakan untuk merubah nama tabel, dan juga bekerja dalam perintah ALTER TABLE: mysql> ALTER TABLE customer RENAME TO anggota; Query OK, 0 rows affected (0.06 sec) mysql> RENAME TABLE anggota TO customer; Query OK, 0 rows affected (0.09 sec)

Merubah beberapa nama tabel sekaligus dapat dilakukan dengan satu perintah saja dimana tabel-tabel dipisahakan dengan tanda koma, seperti berikut: mysql> RENAME TABLE anggota TO customer, produk TO barang; Query OK, 0 rows affected (0.09 sec)

Merubah tipe dan opsi kolom tabel dapat dilakukan juga bersamaan dengan merubah nama tabel dalam satu perintah seperti berikut ini: mysql> ALTER TABLE jenis_produk RENAME TO jenis, MODIFY id INT(4) auto_increment PRIMARY KEY; Query OK, 4 rows affected (0.00 sec)

8.5.11

Index

Ketika data dalam tabel bertambah besar jumlahnya, proses pembacaan data akan menjadi lambat. Index memungkinkan nilai-nilai kolom dapat ditemukan dengan lebih cepat, pengambilan atau pembacaan data berdasarkan index relatif lebih cepat. Agar performa query Anda terjaga secara, sangatlah penting mengindekskan (indexes) tabel-tabel Anda. Index dapat melakukan pengunikkan (unique) untuk mencegah duplikasi. MySQL mendukung empat tipe index: 1. 2. 3. 4.

Non-unique simple indexes UNIQUE index, setiap nilai adalah berbeda dari yang lainnya. PRIMARY KEY adalah suatu UNIQUE key yang tidak membolehkan nilai NULL. FULLTEXT dioptimasi untuk pencarian teks.

Index dapat didefinisikan ketika tabel dibuat. Ini meliputi definisi index dalam perintah CREATE TABLE, bersama dengan pendefinisian kolom. Suatu definisi index terdiri dari suatu kata kunci yang menunjukkan tipe index, diikuti oleh suatu daftar nama-nama kolom yang akan dijadikan index didalam tanda kurung. Dengan mengasumsikan bahwa definisi tabel produk tanpa index tampak seperti berikut : +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | kode | char(4) | NO | PRI | | | | nama | varchar(32) | NO | | | | | harga | decimal(8,0) | YES | | NULL | | | stok | int(11) | YES | | NULL | | | min_stok | int(11) | YES | | NULL | | | id_jenis | int(11) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+ www.nurulfikri.com ☎ 7874223 / 24

79

Program Reguler & Inhouse

8.5.11.1

Desain dan Pengelolaan Database

Non-unique Index

Untuk membuat tabel dengan dengan kolom-kolom yang sama seperti tabel produk sebelumnya, tetapi dengan suatu Non-unique index pada kolom 'nama' , klausa INDEX disertakan dalam perintah CREATE TABLE berikut ini: CREATE TABLE produk ( kode VARCHAR(4), nama VARCHAR(32), harga DECIMAL(8), stok INT(4), min_stok INT(4), id_jenis INT(4), INDEX(nama))type=MyISAM; Query OK, 0 rows affected (0.00 sec)

8.5.11.2

Unique Index

Unique melakukan pengunikkan kolom dan mencegah duplikasi. Ini bermanfaat khususnya ketika menetapkan nilai-nilai untuk proses lookup, seperti kode. CREATE TABLE produk ( kode VARCHAR(4), nama VARCHAR(32), harga DECIMAL(8), stok INT(4), min_stok INT(4), id_jenis INT(4), UNIQUE(kode))type=MyISAM; Query OK, 0 rows affected (0.00 sec)

8.5.11.3

Primary Key Index

Dalam sebuah tabel hanya ada satu buah primary key. Primary key adalah suatu UNIQUE index yang tidak mengijinkan nilai NULL. CREATE TABLE produk ( kode VARCHAR(4), nama VARCHAR(32), harga DECIMAL(8), stok INT(4), min_stok INT(4), id_jenis INT(4), PRIMARY KEY(kode))type=MyISAM; Query OK, 0 rows affected (0.00 sec)

Index dapat ditambahkan pada suatu tabel. Sebagai tambahan, proses penambahan index dapat dilakukan dengan menggunakan perintah ALTER TABLE, seperti berikut: mysql> ALTER TABLE produk ADD PRIMARY KEY (kode)

Menghapus Index Suatu index dapat dihapus dengan dengan perintah DROP INDEX atau ALTER TABLE, www.nurulfikri.com ☎ 7874223 / 24

80

Program Reguler & Inhouse

Desain dan Pengelolaan Database

seperti berikut: mysql> DROP INDEX nama ON produk; mysql> ALTER TABLE produk DROP INDEX nama; mysql> ALTER TABLE produk DROP PRIMARY KEY;

Primary key index hanya dapat dihapus jika kolom yang merupakan index tersebut tidak memiliki atribut atau opsi auto_increment.

www.nurulfikri.com ☎ 7874223 / 24

81

Program Reguler & Inhouse

Desain dan Pengelolaan Database

Daftar Pustaka Watson, Richard Thomas, Data Management: Database and Organizations, Fourth Edition. John Wiley & Sons, 2004 ● Silberschatz, Abraham, Database system concepts, Fourth Edition. McGraw-Hill, 2002. ● Gruber, Martin, Understanding SQL,SYBEX Inc, 1990. ● Ramakrishnan, Raghu & Gehrke Johannes,Database Management System,2nd Edition, 2002. ●

www.nurulfikri.com ☎ 7874223 / 24

82

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF