Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
1
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
2
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,
Kolom_2 type (lenght),
.......................,
);
1.2 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 :
3
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 :
4
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;
5
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
6
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 :
mysql> insert into peserta
->(user_id, password, nama, gender, email,
no_hp) values
->('220','123456','Amanda','perempuan','amand
[email protected]', '085356576890');
7. Tampilkan isian kolom dengan perintah : select*from peserta;.
8. Tambahkan satu kolom pada tabel dengan dengan perintah dan contoh seperti
di bawah ini :
mysql> alter table peserta
-> add tanggal_akses varchar (20);
9. 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.
7
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
8
SYNTAX USE SYNTAX CREATE TABLE
NOT NULL
TYPE (LENGHT)
SYNTAX KUNCI PRIMER DAN KOLOM UNIK
SYNTAX AUTO_INCREMENT
PENANDA KOLOM SEBAGAI KUNCI
UTAMA DAN KOLOM UNIK
SYNTAX INSERT INTO
SYNTAX SELECT*FROM
TIDAK ADA FIELD USER_ID
FUNGSI AUTO_INCREMENT BEKERJA
9
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
SYNTAX ALTER-ADD
SYNTAX ALTER-DROP
10
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
11
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 di-
input 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
12
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’.
13
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.
14
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