Modul 2 Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop
Disusun oleh
Sri Siska Wirdaniyati
JURUSAN STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS ISLAM INDONESIA YOGYAKARTA
2013
1
BAB I PENDAHULUAN 1.1
Kunci Primer
Dalam membuat sebuah database pasti akan menemui sebuah record yang datanya tidak boleh sama dengan record yang lain. Agar data tidak kembar dapat membuat kolom yang dideklarasikan sebagai kunci primer atau primary key. Untuk membuat sebuah kuncir primer hanya boleh membuatnya sekali. Kunci primer sebenarnya diciptakan untuk menjadi kolom utama sebuah tabel. Dengan demikian data pada kolom kunci utama tidak mungkin kembar. Hal ini terjadi karena ketika memasukkan data yang sama, proses tersebut akan ditolak oleh database. Kondisi adanya data kembar dikenal dengan istilah redudansi data. Syarat utama untuk menciptakan kunci primer adalah kolom tersebut tidak boleh kosong atau diset dengan nilai NOT NULL. Syntax penulisan perintah menciptakan kunci utama/primer adalah : CREATE TABLE nama_tabel ( Kolom_primer type (lenght) NOT NULL, Kolom_2 type (lenght), ......................., PRIMARY KEY (kolom_primer)); Atau dapat ditulis dengan : CREATE TABLE nama_tabel ( Kolom_primer type (lenght) NOT NULL PRIMARY KEY,
1.2
Kolom_2 type (lenght), ......................., ); Kolom/ Field Unik
Kolom unik adalah sebuah bentuk kolom yang tidak mengizinkan adanya data kembar, apabila pada proses input didapati data kembar, proses tersebut akan dinyatakan gagal atau ditolak oleh database. Kolom unik sebenarnya memiliki prinsip serupa dengan primary key, yaitu data kembar. Selain itu, dalam satu tabel dapat dibentuk lebih dari satu kunci, baik kunci primer maupun kunci unik. Yang menjadi perbedaan adalah banhwa kunci primer akan selalu menjadi kunci utama, sedangkan kunci unik tidak demikian. Pada kunci unik, kolom harus didefinisikan dengan NOT NULL. Untuk membentuk kolom unik dapat menggunakan perintah UNIQUE. Berikut adalah syntax dasarnya : 2
Create table nama_tabel ( Kolom _uniq type (lenght) not null, Kolom_2 type (lenght), ........................., Unique (kolom_uniq)); Pada syntax di atas untuk menciptakan lebih dari satu kolom yang bernilai unik, ketika pendeklarasian tuliskan nama kolom apa saja yang akan dijadikan kunci unik, yaitu dengan menggunakan tanda koma sebagai penghubung, sehingga bentuk perintahnya akan seperti berikut: UNIQUE (kolom_uniq-1, kolom_uniq-2) 1.3 Kolom/ Field Penambahan Otomatis Kolom dengan kemampuan yang dapat merekam dan tak harus memasukkan data namun dapat muncul sendiri secara otomatis diciptakan dengan metode Auto Increment. Dari istilah Auto Increment penambahan automatis yang dilakukan adalah penambahan yang sifatnya berurutan dari kecil menjadi besar. Auto Increment hanya dapat dibuat apabila data berupa angka atau integer (termasu Long Int dan Tiny Int). Metode penambahan automatis seperti ini biasanya digunakan untuk mendefinisikan sebuah kode berupa kunci utama seperti nomor record atau nomor urut pada baris tabel. Untuk membuat kolom kunci semacam itu digunakan AUTO_INCREMENT. Penggunaan bentuk Auto Increment memiliki syarat-syarat khusus yaitu data harus berupa data integer dan kunci primer atau primary key. Selain itu hanya diijinkan untuk membentuk sebuah kunci dengan kemampuan Auto Increment dalam satu tabel. Untuk membuat sebuah kolom Auto Increment dapat menggunakan perintah seperti berikut : CREATE TABLE nama_tabel ( Kolom_primer type (lenght) NOT NULL AUTO_INCREMENT, Kolom_2 type (lenght), ............................, PRIMARY KEY (kolom_primer)); Pada syntax di atas penentuan Auto Increment harus didefinisikan terlebih dahulu sebelum bentuk kuncinya. Syarat yang mungkin harus dipenuhi adalah kolom tersebut harus berupa data integer dan dipasang sebagai kunci utama bukan unik. 1.4 Perubahan Kolom/ Field tabel MySQL memungkinkan melakukan perubahan struktur tabel tanpa mempengaruhi isi database tersebut. Untuk melakukan perubahan field tabel, query yang digunakan adalah ALTER TABLE, dengan syntax adalah : 3
ALTER TABLE nama_tabel alter_spesifikasi kondisi; Perubahan bentuk tabel dapat berkaitan degan ADD sebagai penambah kolom/field. Menambahkan kolom dapat diartikan sebagai langkah untuk menyisipkan sebuah field atau kolom baru ke dalam sebuah tabel untuk melakukan penambahan jumlah kolom ke dalam tabel yang telah dibuat, maka alter spesifikasi yang digunakan adalah ADD dengan syntax adalah: ALTER TABEL nama_tabel ADD nama_field type (lenght); 1.5 Penghapusan Kolom/Field Apabila ada penambahan kolom, tentunya juga ada penghapusannya. Penghapusan ini sebenarnya jarang digunakan karena sudah barang tentu seorang pencipta database akan merancang sistem tabelnay sesempurna mungkin. Akan tetapi apabila terdapat kesalahan, misalnya field tersebut tidak digunakan lagi, maka sebaiknya dihilangkan saja, karena berpengaruh pada kapasitas tabel yang terbentuk. Seperti biasanya, penghapusan di dalam MySQL pastilah menggunakan query DROP. Syntax yang digunakan adalah : ALTER TABLE nama_tabel DROP nama_field;
4
BAB II DESKRIPSI KERJA Sebelum menciptakan database dengan penambahan kunci primer, kolom unik, auto increment, perubahan kolom dan penghapusan kolom, praktikan harus mengetahui terlebih dahulu langkah-langkah kerja. Langkah pertama adalah memastikan bahwa software MySQL ( appache2triad 5.4) telah terinstal dengan sukses. Langkah selanjutnya adalah membuka aplikasi MySQL dan menggunakan perintah primary key, unique, auto increment, alter dengan add dan alter dengan drop. Adapun cara membuka dan menggunakan perintah primary key, unique, auto increment, alter dan drop sebagai berikut : 1.
Klik Windows Explorer kemudian kilk Local Disk (C;)
2.
Pilih Folder apache2triad.
3.
Pilih folder mysql – folder bin.
4.
Klik aplikasi mysql sehingga akan tampil seperti pada gambar 2.1 di bawah ini.
Gambar 2.1 mysql.exe
Gambar 2.1 mysql.exe
5
5.
Buatlah basis data baru dengan nama basis data seperti perintah: mysql> create database tes_online; kemudian tampilkan seluruh basis data yang telah di ciptakan dengan perintah: mysql> show databases;, dan aktifkan basis data dengan perintah: mysql> use tes_online;.
6.
Buatlah tabel dari basis data tes_online dengan isi kolom seperti perintah di bawah ini : mysql> -> -> -> -> -> -> -> ->
create table peserta( user_id int (3) not null auto_increment, password int (6) not null, nama varchar (20), gender varchar (10), email varchar (30) not null, no_hp varchar (15), primary key (user_id), unique (password, email));
7. Tampilkan kolom yang telah diciptakan dengan perintah : mysql> desc peserta;, kemudian isilah data kolom dengan perintah dan contoh seperti di bawah ini :
7.
mysql> insert into peserta ->(user_id, password, nama, gender, email, no_hp) values ->('220','123456','Amanda','perempuan','amand
[email protected]', '085356576890'); Tampilkan isian kolom dengan perintah : select*from peserta;.
8.
Tambahkan satu kolom pada tabel dengan dengan perintah dan contoh seperti di bawah ini :
9.
mysql> alter table peserta -> add tanggal_akses varchar (20); Hapuslah salah satu kolom pada tabel dengan perintah dan contoh seperti di bawah ini : mysql> alter table peserta -> drop no_hp;
10. Setelah pengetikan perintah-perintah telah selesai, langkah terakhir adalah menampilkan tabel untuk memastikan bahwa basis data yang diciptakan sesuai dengan penambahan kunci primer, kolom unik, auto increment, perubahan (penambahan) kolom dan penghapusan kolom. 6
BAB III PEMBAHASAN Dalam Bab III tentang pembahasan ini praktikan akan menjelaskan basis data yang telah diciptakan dari sebuah kasus. Untuk penyelesaian praktikum kali ini praktikan mengambil kasus pendataan peserta tes online. Dalam pendataan ini praktikan menggunakan basis data dengan nama ‘tes_online’ dan sebuah tabel dengan nama ‘peserta’. Ada beberapa faktor pendukung yang menyebabkan praktikan mengambil kasus pendataan peserta tes online sebagai berikut : 1.
Pada zaman modern sekarang banyak para pemuda-pemudi khusunya pelajar ingin mengetahui intelegensi otaknya dengan pengerjaan soal. Salah satu media yang digunakan adalah pengerjaan soal secara online.
2.
Data-data peserta pengerjaan soal tidak disusun secara teratur dan baik sehingga banyak data peserta yang ganda atau tidak diketahui siapa yang menjawab soalnya.
Berdasarkan faktor tersebut, pendataan peserta tes online memiliki tujuan dan fungsi sebagai berikut : 1. Untuk mengetahui berapa banyak peserta ikut andil dalam pengerjaan soal secara online. 2.
Untuk dijadikan sebagai referensi pendataan basis data bagi para pembaca.
Untuk penjelasan kasus basis data peserta tes online kali ini, praktikan mempergunakan printscreen MySQL dari basis data yang telah diciptakan seperti pada gambar 3.1 di bawah ini.
SYNTAX CREATE DATABASE SYNTAX SHOW DATABASES
7
SYNTAX USE SYNTAX CREATE TABLE SYNTAX AUTO_INCREMENT TYPE (LENGHT) NOT NULL SYNTAX KUNCI PRIMER DAN KOLOM UNIK
PENANDA KOLOM SEBAGAI KUNCI UTAMA DAN KOLOM UNIK
SYNTAX INSERT INTO
SYNTAX SELECT*FROM
TIDAK ADA FIELD USER_ID
FUNGSI AUTO_INCREMENT BEKERJA
8
SYNTAX ALTER-ADD
SYNTAX ALTER-DROP
Gambar 3.1 mysql.exe basis data peserta tes online Pertama kali MySQL terbuka, praktikan akan menemukan kalimat ‘Welcome to the MySQL monitor dan beberapa fungsi help MySQL. Fungsi help di dalam MySQL adalah fasilitas bantuan yang berkenaan dengan pengaturan server sendiri. Cara pengaksesannya dilakukan dengan mengetik perintah help. Selain itu, praktikan juga akan menemukan output ‘mysql >’ yang merupakan, prompt standar yang menandakan siap menerima perintah baru dari praktikan. Untuk menyelesaikan kasus, praktikan harus menciptakan basis data baru dengan menggunakan perintah create database. Create merupakan bahasa SQL dari bentuk query DDL (Data Definition Languange). Create database digunakan dalam penciptaan basis data baru yang akan digunakan praktikan ataupun programmer. Dalam penciptaan basis data baru ini, praktikan menggunakan nama basis data dengan kartu_anggota. Dalam penulisan create database kartu_anggota diakhiri tanda titik koma (;). Pada umumnya perintah MySQL memang selalu diakhiri dengan tanda titik koma (;). Pada penamaan nama basis data tidak boleh mengandung spasi karena akan menyebabkan syntax SQL mengalami error. Pesan error berguna untuk menidentifikasi kesalahan dari praktikan. Apabila penciptaan basis data berhasil, server akan mengeluarkan output ‘Query OK, 1 row affected (0,05 sec)’. Output itu menyatakan bahwa penciptaan basis data dengan nama tes_online dinyatakan berhasil sehingga apabila melihat
9
direktori data pada server MySQL dapat ditemukan sebuah direktori baru dengan nama tes_online, atau praktikan dapat juga melihat melalui perintah show. Show databases merupakan query untuk menampilkan basis data yang ada pada direktori data. Pengikutan huruf ‘s’ pada kata databases menunjukkan jumlah basis data di dalam direktori lebih dari satu, dengan kata lain show databases memiliki arti akan menampilkan semua basis data yang ada pada direktori server MySQL. Show databases akan menampilkan sebuah tabel dengan field Database yang meliputi minimal mysql, information_scema, dan basis data yang telah diciptakan. Bila telah ditentukan basis data yang akan digunakan, praktikan harus mengaktifkan basis data dengan menggunakan perintah use. Syntax use berarti menggunakan atau membuka yang bermakna bahwa praktikan telah masuk ke dalam sebuah basis data dan siap untuk menyelesaikan kasus. Perintah use dinyatakan berhasil jika server mengeluarkan output ‘Database changed’ yang berarti basis data yang digunakan telah diaktifkan. Apabila sudah masuk ke dalam basis data tes_online, praktikan telah diizinkan melakukan operasi pembuatan tabel dan isinya. Perintah untuk menciptakan tabel hampir sama dengan menciptakan basis data baru dengan menggunakan perintah create. Pada penciptaan basis data baru menggunakan perintah create database, maka penciptaan tabel menggunakan perintah create table. Create table adalah bahasa SQL dari bentuk query DDL (Data Definition Languange) yang berguna untuk melakukan penciptaan tabel. Dalam penyelesaian kasus ini, praktikan menciptakan tabel dengan nama ‘peserta’. Apabila pengetikan create table peserta telah selesai, praktikan harus menambahkan tanda kurung terbuka sebagai tanda awal dari penciptaan isi tabel. Maka secara otomatis bila tombol Enter ditekan akan ada output tanda panah (-->) yang menyatakan bahwa perintah MySQL tersebut dianggap belum selesai. Untuk penghubung nama-nama kolom digunakan tanda baca koma (,), sedangkan untuk mengakhiri perintah digunakan tanda baca titik koma (;). Pada tabel terdapat baris (recordset) dan kolom (field). Pada pembuatan field harus menggunakan Type (tipe data) dan Lenght (panjang record). Penggunaan tipe data dan panjang record merupakan batas ukuran data yang dapat di simpan di dalamnya. Dalam penyelesaian kasus ini, praktikan menggunakan field berisi user_id dengan tipe data int dan panjang record maksimal 3 digit, password dengan tipe data int dan panjang record maksimal 6 digit, nama dengan tipe data varchar dan panjang record maksimal 20 digit, gender dengan tipe data varchar dan panjang record maksimal 10 digit, email dengan tipe data varchar dan panjang record 10
maksimal 30 digit, dan no_hp dengan tipe data varchar dan panjang record maksimal 15 digit. Pada field user_id, password dan email diikuti dengan tulisan not null. Hal ini menyatakan bahwa kolom yang diisi tidak boleh kosong, sedangkan istilah boleh kosong di sebut dengan null atau null yes. Pada penyelesaian praktikum kali ini, praktikan menggunakan kunci primer (primary key) dan kolom unik (unique). Kunci primer dan kolom unik digunakan untuk mencegah data yang kembar dan dalam satu tabel dapat dibentuk lebih dari satu, atau dengan kata lain apabila diproses dan didapati data kembar maka dinyatakan gagal atau ditolak oleh basis data. Syarat untuk menciptakan kunci primer dan kolom unik adalah isian kolom tersebut tidak boleh kosong (not null). Perbedaaanya kalau kunci primer akan selalu menjadi kunci utama, sedangkan kolok unik tidak demikian. Dalam penyelesaian kali ini, kunci primer pada field user_id dan kolom unik pada field password dan email. Selain menggunakan kunci primer dan kolom unik, praktikan juga menggunakan auto_increment (penambahan otomatis) pada field user_id. Apabila praktikan lupa memasukkan user_id, maka secara otomatis field user_id akan terisi. Metode penambahan ini digunakan untuk mendefinisikan sebuah kode berupa kunci utama seperti nomor record atau nomor urut baris tabel. Berdasarkan hal tersebut bahwa auto_increment hanya dapat berfungsi pada data berupa angka (integer) dan kunci primer (primary key). Untuk melihat deskripsi tabel yang telah diciptakan, praktikan dapat menggunakan perintah desc peserta atau describe peserta sehingga server akan menampilkan sebuah tabel yang terdiri dari field, type, null, key, default dan extra. Field berisi nama kolom isian dan type berisi tipe data dan panjang record dari kolom isian. Sedangkan null berisi tulisan yes atau no. Yes menandakan bahwa kolom isian boleh kosong (null) dan no menandakan bahwa kolom isian tidak boleh kosong (not null). Pendeskirpsian kunci primer dan kolom unik terletak pada key. Apabila kolom key bertuliskan ‘PRI’ maka kolom isian mengandung kunci primer dan ‘MUL’ maka kolom isian mengandung kolom unik. Sedangkan default biasanya dapat digunakan pada hampir semua tipe data. Default berfungsi untuk menyediakan nilai bawaan untuk kolom seandainya tidak ada data yang diinput kepada kolom tersebut. Dengan kata lain, kolom default jika bertuliskan null berarti kalau tidak mengisikan data pada saat input data, maka secara otomatis akan kosong. Sementara Extra berfungsi untuk menentukan apakah nilai field merupakan auto increment atau tidak. Untuk memasukkan data atau entry data dapat digunakan perintah insert. Insert merupakan bahasa SQL dari bentuk query DML (Data Manipulation Language) yang berfungsi untuk melakukan pemanipulasian basis data yang telah
11
ada atau telah diciptakan sebelumnya. Peng-input-an data dengan insert into selalu diikuti kata values yang menyatakan urutan data yang akan di-input-kan. Apabila saat peng-input-an data pada user_id berupa data yang sama (kembar), maka server akan mengeluarkan output ‘ERROR 1062 (23000): Duplicate entry ‘220’ for key 1. Pesan error ini menyatakan bahwa data user_id yang di-input telah ada dan pesan ini berguna untuk mengidentifikasi kesalahan dari praktikan. Sedangkan apabila peng-input-an data tanpa menyebutkan field user_id seperti pada gambar 3.1 di atas, maka server akan secara otomatis akan menambahkan user_id secara urut. Pada saat proses penambahan inilah auto increment berfungsi. Apabila pemasukkan data telah selesai, praktikan bisa menampilkan hasil dari peng-input-an data. Hal ini sangat penting karena praktikan dapat melihat dan menyeleksi suatu data dalam tabel yang tidak berguna atau kurang. Perintah yang digunakan untuk menampilkan hasil dari peng-input-an data dapat menggunakan query select. Sama seperti halnya dengan insert, select juga merupakan bahasa SQL dari bentuk DML. Pada syntax select terdapat tanda bintang (*) yang berarti semua. Dengan adanya tanda bintang menyatakan bahwa server menampilkan secara keseluruhan data input di dalam tabel peserta. Dalam penyelesaian kasus kali ini, praktikan harus menambahkan dan menghapus satu kolom. Untuk menambahkan kolom menggunakan perintah alter dengan alter spesifikasi yang digunakan adalah add. Dalam penyelesaian kasus ini, praktikan menambahkan satu kolom dengan nama ‘tanggal_akses’. Sedangkan untuk menghapus kolom menggunakan perintah alter dengan spesifikasi drop. Dalam penyelesaian kasus ini, praktikan menghapus kolom dengan nama ‘no_hp’. Apabila proses alter dengan spefikiasi add dan drop selesai dan ditampilkan, maka hanya akan ada kolom dengan nama ‘user_id, password, nama, gender, email dan tanggal_akses’.
12
BAB IV PENUTUP Berdasarkan praktikum dengan menggunakan kunci primer (primary key), kolom unik (unique), auto increment, alter-add dan alter drop dengan kasus pendataan peserta tes online dapat disimpulkan bahwa : 1.
Penginputa data peserta tes online dalam basis data tidak akan ditemukan data user id yang kembar dan selalu berurut.
2.
Pengelolaan basis data peserta tes online dengan MySQL sangat membantu pendataan tersusun secara teratur dan sistematis.
13
DAFTAR PUSTAKA Hakim, Fajriya. 2011. Modul Praktikum. Yogyakarta : Jurusan Statistika Fakultas Matematika dan ilmu pengetahuan Alam Universitas Islam Indonesia Sidik, Betha. 2005. MySQL Untuk Pengguna, Administrator, dan Pengembangan Aplikasi Web. Bandung : Penerbit Informatika
14