modul 1-kbd

13
Praktikum Konsep Dasar Basis Data MODUL Basis data merupakan pusat data (data adalah kumpulan fakta menurut KBBI). Data yang berupa tulisan numeric maupun string. Contoh mudah adalah sebuah buku laporan keuangan pada sebuah perusahaan disana berisi banyak data-data keuangan dari perusahaan. Menurut Fathansyah (1999) basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti 1. Himpunan kelompok dan (arsip) yang saling berhubungan yang diorganisasi sedemikian hingga rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik. Bahasa Basis Data Bahasa basis data dibagi menjadi 2 yaitu: 1. Data Definition Language (DDL) Struktur/skema basis data yang menggambarkan atau mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut Data Definition Language(DDL). Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary). 2. Data Manipulation Language (DML) Merupakan bentuk Bahasa Basis Data yang berguna untuk melakukan manipulasi dan mengambil data pada suatu basis data manipulasi data dapat berupa: a) Penyisipan/penambahan data baru ke suatu basis data. b) Penghapusan data dari suatu basis data. c) Pengubahan data di suatu basis data. Index Index digunakan untuk menemukan baris dengan nilai spesifik dengan cepat. Tanpa index, MySQL harus memulai dengan baris pertama dan membaca terhadap seluruh table untuk menemukan baris yang relevan. Tabel yang besar, memiliki biaya yang besar juga. Jika tabel memiliki index untuk kolom dalam suatu persoalan. MySQL dengan cepat mencari posisi untuk mencari dalam pertengahan file data tanpa melihat semua data. Jika sebuah table memiliki 1000 baris, menggunakan 100 waktu lebih cepat dari pembacaan data yang urut. Jika kita membutuhkan mengakses banyak baris, ini lebih cepat untuk dibaca secara urut, karena meminimalkan mencari di disk.

Upload: febri-zaryanto

Post on 27-Sep-2015

227 views

Category:

Documents


2 download

DESCRIPTION

KULIAH

TRANSCRIPT

  • Praktikum Konsep Dasar Basis Data

    MODUL

    Basis data merupakan pusat data (data adalah kumpulan fakta menurut KBBI). Data yang berupa tulisan numeric maupun string. Contoh mudah adalah sebuah buku laporan keuangan pada sebuah perusahaan disana berisi banyak data-data keuangan dari perusahaan. Menurut Fathansyah (1999) basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti 1. Himpunan kelompok dan (arsip) yang saling berhubungan yang diorganisasi sedemikian

    hingga rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa

    dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

    3. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.

    Bahasa Basis Data Bahasa basis data dibagi menjadi 2 yaitu: 1. Data Definition Language (DDL)

    Struktur/skema basis data yang menggambarkan atau mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut Data Definition Language(DDL). Dengan bahasa inilah kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary).

    2. Data Manipulation Language (DML) Merupakan bentuk Bahasa Basis Data yang berguna untuk melakukan manipulasi dan mengambil data pada suatu basis data manipulasi data dapat berupa: a) Penyisipan/penambahan data baru ke suatu basis data. b) Penghapusan data dari suatu basis data. c) Pengubahan data di suatu basis data.

    Index Index digunakan untuk menemukan baris dengan nilai spesifik dengan cepat. Tanpa index, MySQL harus memulai dengan baris pertama dan membaca terhadap seluruh table untuk menemukan baris yang relevan. Tabel yang besar, memiliki biaya yang besar juga. Jika tabel memiliki index untuk kolom dalam suatu persoalan. MySQL dengan cepat mencari posisi untuk mencari dalam pertengahan file data tanpa melihat semua data. Jika sebuah table memiliki 1000 baris, menggunakan 100 waktu lebih cepat dari pembacaan data yang urut. Jika kita membutuhkan mengakses banyak baris, ini lebih cepat untuk dibaca secara urut, karena meminimalkan mencari di disk.

  • Praktikum Konsep Dasar Basis Data Jenis index di MySQL a) Primary Key b) Unique c) Index d) Fulltext KEY Kita harus memiliki cara untuk menspesifikasi bagaimana entitas dengan diberikan kumpulan entitas yang dibedakan. Konsepnya, individu entitas adalah berbeda; dari sudut pandang database. Sebaliknya perbedaan antara mereka harus diekspresikan dalam batas dari atributnya. Oleh karena itu, nilai dari nilai atribut atribut dari entitas harus menjadikan mereka dapat diidentifikasikan dengan unik. Dalam kata lain tidak ada dua entitas dalam kumpulan entitas dibolehkan untuk memiliki nilai yang sama untuk semua atribut. Sebuah key memungkinkan kita untuk identifikasi kumpulan atribut yang cukup untuk membedakan entitas disetiap yang lain. Key juga membantu identifikasi relasi dan perbedaan relasi dengan yang lain. Beberapa jenis key 1. Superkey.

    Superkey adalah kumpulan satu atau lebih atribut yang secara kolektif memperbolehkan kita untuk mengidentifikasi secara unik entitas dalam kumpulan entitas.

    2. Kandidat key. Kandidat key adalah minimal superkey.

    3. Primary key. Primary key adalah menunjukkan sebuah kandidat key yang dipilih oleh pembuat desain database ketika arti prinsibnya mengidentifikasi entitas dengan kumpulan entitas.

    4. Foreign key. Foeign key adalah sebuah kolom dalam tabel anak yang mengacu primary key dalam tabel ayah.

    Field dan record Field adalah kolom dalam tabel yang didesain untuk mengelola informasi spesifik tentang setiap record dalam tabel. Record adalah, juga disebut row dari data, adalah entry di setiap individu yang eksis dalam table. Record dan field dapat digambarkan sebagai berikut:

  • Praktikum Konsep Dasar Basis Data MySQL Database Management System yang digunakan dalam proses praktikum adalah MySQL versi 5 ke atas karena sudah mendukung pembuatan store procedure dan store function. Instalasi MySQL di Windows dan Linux berbeda. Di Windows MySQL dapat diinstall dari file setup. Untuk mendapatkan software MySQL dapat mendownload melalui www.mysql.org secara gratis. Jangan lupa untuk memilih versi 5 atau di atasnya dan install MySQL server yang paling penting. A. Storage Engine MySQL 5 mendukung beberapa engine penyimpanan yang berfungsi untuk menangani tipetipe tabel yang berbeda. Mysql menyimpan engine penyimpanan yang menangani table transaction-safe dan meng-handle tabel non-transaction-safe. MyISAM

    Menangani tabel yang non-transactional. Tipe tabel ini menyediakan penyimpanan dan retrieval berkecepatan tinggi, dan juga kemampuan pencarian fulltext. MyISAM didukung di semua konfigurasi MySQL dan merupakan engine penyimpanan default kecuali anda telah melakukan konfigurasi MySQL untuk menggunakan tipe lain sebagai defaultnya.

    MEMORY Tipe ini menyediakan tabel memory dalam (in-memory). Engine penyimpanan MERGE mengijinkan koleksi dari tabel MyISAM yang serupa untuk di-handle sebagai tabel tunggal. Seperti MyISAM, engine penyimpanan MEMORY dan MERGE meng-handle non-transactional tabel, keduanya juga termasuk dalam defaultnya MySQL

    B. Menjalankan MySQL Pertama kali menggunakan program MySQL maka perlu melakukan langkah-langkah persiapan. Langkah-langkah persiapan tersebut adalah sebagai berikut: 1) Untuk masuk pada program database MySQL menggunakan perintah: mysql -u root -p 2) Untuk melihat list database yang telah terlihat menggunakan perintah: show databases 3) Untuk membuat database: create database 4) Untuk menggunakan database yang telah dibuat use 5) menampilkan table show tables 6) mengetahui struktur table DESCRIBE 7) untuk ekspor database mysqldump -u root -p > 8) untuk impor database mysql -u root -p <

  • Praktikum Konsep Dasar Basis Data C. Perintah Dasar MySQL help (\h) Mengeluarkan help untuk perintah-perintah dasar Mysql ? (\?) Sinonim dari `help'. clear (\c) Menghilangkan baris perinta yang telah ditulis Connect (\r) Melakukan koneksi kembali ke server dengan argument opsional database dan nama host ego (\G) Mengirim perintah ke server dan menampilkan hasilnya secara vertical exit (\q) Keluar dari MySQL console go (\g) Mengirim perintah ke server MySQL notee (\t) Tidak menuliskan hasil ke outfile print (\p) Print perintah yang baru saja dituliskan prompt (\R) Mengganti prompt MySQL quit (\q) Keluar dari MySQL rehash (\#) Membangun kembali hashing source (\.) Mengeksekusi SQL dari file, dengan argumen path dari file status (\s) Mendapatkan status dari server tee (\T) Membuat outfile, semua keluaran disimpan dalam outfile use (\u) Menggunakan database, dengan argumen nama database delimiter (\d) Mengaktifkan delimiter DATA DEFINITION LANGUAGE (DDL) Data definition language (DDL) merupakan perintah SQL yang digunakan untuk mendefinisikan atau mendeklarasikan objek-objek database. Yang termasuk dalam DDL adalah 1. Create Digunakan untuk membuat database dan objek-objek database 2. Alter Digunakan untuk mengubah database dan objek-objek database 3. Drop Digunakan untuk menghapus database dan objek-objek database Ruang lingkup DDL adalah pembuatan tabel. Perintah membuat tabel adalah

    create table ( , );

    Berikut contoh cara pembuatan tabel. CREATE TABLE mahasiswa ( nim varchar(8) NOT NULL, nama varchar(30) DEFAULT NULL, mahasiswa_kelas tinyint(1) NOT NULL, sex enum('L','P') NOT NULL,

  • Praktikum Konsep Dasar Basis Data

    tempat_lahir varchar(50) DEFAULT NULL, tanggal_lahir date DEFAULT NULL, alamat text, no_hp int(11) DEFAULT NULL, nama_ayah varchar(30) DEFAULT NULL, nama_ibu varchar(30) DEFAULT NULL, PRIMARY KEY (nim));

    Catatan: sebelum membuat tabel maka anda harus mengaktifkan database yang akan dibuatkan tabelnya dengan menggunakan perintah USE dan setiap perintah harus diakhiri dengan titik koma (;). use Type Data pada MySQL Tipe data adalah suatu bentuk pemodelan data yang dideklarasikan pada saat melakukan pembuatan tabel. Tipe data ini akan mempengaruhi setiap data yang akan dimasukkan ke dalam sebuah tabel. Data yang akan dimasukkan harus sesuai dengan tipe data yang dideklarasikan. Berbagai type data pada MySQL dapat dilihat pada tabel berikut :

  • Praktikum Konsep Dasar Basis Data

    Menciptakan Database Database adalah sebuah media utama yang harus dibuat dalam membangun sebuah basis data agar nantinya dapat kita letakkan beberapa tabel dengan field-fieldnya. Perintah yang digunakan untuk menciptakan database pada MySQL dengan Syntax berikut : CREATE DATABASE nama_database; Contoh : create database pendaftaran; Pada contoh diatas, query OK menyatakan bahwa pembuatan database dengan nama pendaftaran berhasil dibuat, untuk melihat database yang ada pada MySQl dapat menggunakan SIntax SHOW DATABASES;

  • Praktikum Konsep Dasar Basis Data Menghapus Database Untuk menghapus Database yang telah dibuat dapat menggunakan query SQL berikut : DROP DATABASE nama_database; Drop berarti menghapus. Query SQL ini berfungsi untuk menghapus sebuah database, seperti contoh berikut : drop database pendaftaran; Menciptakan Tabel Tabel adalah obyek utama yang harus ada pada sebuah basis data karena di dalamnya semua data akan disimpan. Tabel terletak pada sebuah database, sehingga pembuatan tabel dilakukan setelah sebuah database telah dibuat. Dalam tabel terdapat baris dan kolom. Baris diistilahkan dengan recordset dan kolom dengan field. Untuk membuat sebuah tabel atau lebih, database harus diaktifkan dulu karena tabel akan dimasukkan ke dalam database yang akan diaktifkan. Sintax untuk mengaktifkan Database adalah : USE nama_database; Contoh : use pendaftaran; Setelah masuk ke dalam database anda dapat membuat sebuah tabel atau lebih. Untuk membuat tabel dapat menggunakan sintax dibawah ini : CREATE TABLE nama_tabel ( field-1 type(length), field-2 type(length), field-3 type(length), .(.)); Contoh : create table data_diri ( no int(3), nama varchar(35), alamat varchar(60), email varchar(40), no_telepon varchar(15), sex char(1)); Pada contoh diatas, query OK menyatakan bahwa pembuatan tabel dengan nama data_diri berhasil dibuat, untuk melihat tabel yang ada pada database dapat menggunakan SIntax SHOW TABLES;

  • Praktikum Konsep Dasar Basis Data Melihat Struktur Tabel Setelah tabel dibuat, anda dapat melihat tipe data dan panjang recordset dengan cara menampilkan struktur tabel. Perintah yang digunakan untuk menampilkan struktur tabel adalah : DESC nama_tabel; Atau DESCRIBE nama_tabel; Menghapus Tabel Untuk menghapus Tabel yang telah dibuat dapat menggunakan query SQL berikut : DROP TABLE nama_tabel; Drop berarti menghapus. Query SQL ini berfungsi untuk menghapus sebuah Tabel, seperti contoh berikut : drop table data_diri; Constraint Constraint adalah batasan atau aturasn pada tabel. Beberapa constraint yang disediakan oleh MySQL:

    1. NOT NULL Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi data NULL (kosong). Kolom yang diset sebagai Primary Key otomatis tidak boleh NULL.

    2. UNIQUE Mendefinisikan suatu kolom menjadi bersifat unik, artinya antara satu data dengan data lainnya namanya tidak boleh sama, misal alamat email. Tidak mengijinkan datanya kembar, apabila dalam proses input terdapat data kembar, maka proses tersebut akan digagalkan atau ditolak basis data. Create table pribadi ( kd_pribadi CHAR(3), panggilan char(4), nama varchar(35), email varchar(50), sex char(1), UNIQUE (kd_pribadi,panggilan));

    3. PRIMARY KEY Membentuk key yang unik tiap tabel. Contoh:

    create table data_diri ( no int(3), nama varchar(35), alamat varchar(60), email varchar(40), no_telepon varchar(15),

    sex char(1), PRIMARY KEY (no));

  • Praktikum Konsep Dasar Basis Data

    4. FOREIGN KEY Foreign Key didefinisikan pada suatu kolom yang ada pada suatu tabel, dimana kolom tersebut juga dimiliki oleh tabel lain sebagai Primary Key, biasa dipakai untuk menghubungkan antara 2 tabel. Cara mendefinisikan foreign key ada bermacam-macam tergantung kasus. Berikut contoh-contoh pendefinisian foreign key. create table skripsi ( nim char (8) references mahasiswa(nim), judul text not null, pembimbing char (8)); pembuatan tabel di atas akan mempengaruhi insertion data ke dalam tabel. Secara otomatis setiap kali kita mengisikan record ke tabel akan dicek pada kolom nim, apakah nim yang dimasukkan ke tabel skripsi ada di kolom nim tabel mahasiswa. Atau juga dengan sintax:

    CREATE TABLE mahasiswa ( nim varchar(8) NOT NULL, nama varchar(30) DEFAULT NULL, mahasiswa_kelas tinyint(1) NOT NULL, sex enum('L','P') NOT NULL, tempat_lahir varchar(50) DEFAULT NULL, tanggal_lahir date DEFAULT NULL, alamat text, no_hp int(11) DEFAULT NULL, nama_ayah varchar(30) DEFAULT NULL, nama_ibu varchar(30) DEFAULT NULL, PRIMARY KEY (nim), FOREIGN KEY (mahasiswa_kelas) REFERENCES kelas (kelas_id) );

    Biasanya pendefinisian foreign key diikuti dengan aksi yang akan berlaku untuk tabel yang direferensi maupun yang mereferensi. Aksi yang didukung oleh MySQL antara lain 1. On Delete Restrict : kolom terkait pada tabel yang direferensi tidak dapat dihapus. 2. On Delete No Action : sama seperti On Delete Restrict. 3. On Delete Cascade : jika kolom pada tabel yang direferensi dihapus maka data pada

    kolom yang mereferensi juga turut dihapus. 4. On Delete Set Null : Jika kolom pada tabel yang direferensi dihapus maka data pada

    kolom yang mereferensi diubah menjadi null. 5. On Update Restrict : update pada kolom yang masih direferensi suatu tabel tidak

    diperbolehkan 6. On Update Cascade : jika kolom pada tabel yang direferensi diupdate maka data

    kolom tabel yang mereferensi juga turut diupdate. 7. On Update Set Null : jika kolom pada tabel yang direferensi diupdate maka data

    kolom tabel yang mereferensi akan diubah menjadi null.

    Peletakan action pada definisi foreign key terlihat seperti contoh berikut:

  • Praktikum Konsep Dasar Basis Data create table skripsi ( nim char (8) references mahasiswa(nim) on update cascade, judul text not null, pembimbing char (8) references dosen(nip) on update set null); Manipulasi Tabel Perubahan tabel yang telah dibuat akan selalu dilakukan mengingat perkembangan database, termasuk diantaranya menambahkan beberapa field pada tabel, mengganti nama field maupun tabel. 1. Mengganti nama tabel

    Query SQL untuk merubah nama tabel dengan menggunakan RENAME, Sintax seperti berikut : RENAME TABLE tabel_lama TO tabel_baru; Contoh : rename table pribadi to data_pribadi;

    2. Menambah Field pada Tabel Menambah kolom dapat diartikan sebagai langkah untuk menyisipkan field baru pada sebuah tabel. Untuk melakukan penambahan Field maka ALTER spesifikasi yang digunakan adalah ADD. Sintax yang digunakan adalah : ALTER TABLE nama_tabel ADD nama_field Type_data(length); Contoh : alter table data_diri add gol_darah char(1);

    3. Mengubah Tipe Data/Lebar Field pada Tabel Mengubah tipe data ataupun lebar field/kolom pada tabel yang sudah terlanjur dibuat masih bisa dilakukan. Sintax yang digunakan: ALTER TABLE nama_tabel MODIFY COLUMN nama_field type_data (length); Contoh: alter table data_diri modify column gol_darah char(2);

    4. Mengubah Nama Field Perubahan nama field/kolom pada suatu tabel bisa dilakukan dengan sintax: ALTER TABLE nama_tabel CHANGE COLUMN nama_field_lama nama_field_baru type_data(length); Contoh: alter table data_diri change column gol_darah gol_dar char(2);

    5. Menghapus Field pada Tabel Pada pembuatan database pasti terdapat kesalahan seperti pada field tabel yang berlebihan dan lain-lain. Untuk melakukan Penghapusan Field maka ALTER spesifikasi yang digunakan adalah DROP. Sintax yang digunakan adalah : ALTER TABLE nama_tabel DROP COLUMN nama_field; Contoh : alter table data_diri drop column gol_darah;

  • Praktikum Konsep Dasar Basis Data

    6. Menambah Primary key

    Jika pada pembuatan sebuat tabel belum didefinisikan primary key-nya, maka penambahan primary key masih bisa dilakukan dengan sintax: ALTER TABLE nama_tabel ADD PRIMARY KEY (nama_kolom); atau dengan menggunakan constraint: ALTER TABLE nama_tabel ADD CONSTRAINT nama_constraint PRIMARY KEY (nama_kolom); Contoh: Tambahkanlah primary key pada tabel data_pribadi!

    7. Menghapus Primary Key ALTER TABLE nama_tabel DROP PRIMARY KEY;

    PRAKTIK Membuat Database

    Menampilkan database show databases;

    Membuat database create database pjual; create database barang; create database xpjual;

    Menghapus database drop database barang;

    Memilih database use pjual;

    Membuat Tabel

    Menampilkan tabel show tables; show tables from xpjual;

    Membuat tabel create table detrans(no_fak varchar(3), ko_brg varchar(3), jlh_brg int(3)); create table barang(kode varchar(3) not null primary key, nama varchar(20), harga decimal(9,0), stok int(3));

  • Praktikum Konsep Dasar Basis Data

    create table pelanggan(kode varchar(3) not null primary key, nama varchar(20), alamat varchar(30), telepon varchar(13)); create table transaksi(no_fak varchar(3) not null, tanggal date, ko_plgn varchar(3), primary key(no_fak)); create table pdetrans(no_id int unsigned auto_increment not null, nopel int, no_fak varchar(3), ko_brg varchar(3), jlh_brg int(3) default 0, primary key(no_id), unique nopeluni(nopel), index kobrgdx(ko_brg));

    Membuat tabel pada database non aktif create table xpjual.detrans(no_fak varchar(3), ko_brg varchar(3), jlh_brg int(3));

    Menampilkan struktur tabel describe detrans; desc barang; desc transaksi;

    Mengcopy tabel create table xbarang select * from barang; create table xdetrans select * from detrans; create table xtransaksi select * from transaksi;

    Mengcopy tabel ke database non aktif create table xpjual.barang select * from barang;

    Mengcopy tabel dari database non aktif create table pbarang select * from xpjual.barang;

    Merubah nama tabel alter table xtransaksi rename jualbrg;

    Menghapus tabel drop table jualbrg;

    Menambah field (kolom) alter table xbarang add jenis varchar(20); alter table xbarang add id varchar(5) not null after kode; alter table xdetrans add id_no int unsigned auto_increment not null primary key first;

    Merubah nama field (kolom)

  • Praktikum Konsep Dasar Basis Data

    alter table xbarang change jenis kategori varchar(20); Menghapus field (kolom)

    alter table xbarang drop kategori;

    Merubah tipe data alter table xbarang modify harga int(8);

    Merubah ukuran field (kolom) mysql> alter table xbarang modify harga int(10);

    Merubah NULL menjadi NOT NULL dan sebaliknya alter table xbarang modify nama varchar(20) not null; alter table xbarang modify nama varchar(20);

    Membuat Primary Key alter table xbarang add primary key (kode);

    Menghapus Primary Key alter table xbarang drop primary key;

    Membuat Index alter table xdetrans add index kobrg_ndx(ko_brg); atau create index kobrg_ndx on xdetrans(ko_brg);

    Menghapus Index alter table xdetrans drop index kobrg_ndx;

    Membuat Unique alter table xbarang add unique id_uni(id);

    Menghapus Unique alter table xbarang drop index id_uni;