A. Dasar Teori
Create table namatabel (namakolom1 tipedata keterangan, namakolom2 tipedata keterangan);
Syntax di atas untuk 2 kolom.
Jika kita ingin menambah lagi kita tinggal menambahkannya setelah tanda koma.Untuk mengapus tabel, berikut ini adalah perintah querynya.
Drop table namatabel;
C. Tugas di Rumah
2. Lalu saya akan membuat tabel Film beserta struktur tabelnya dengan primary key dari tabel film adalah id_film. Seperti terlihat di bawah ini.
MySQL = grant all on
baiti13650070.identitasnim to ‘baiti’@’localhost’;
MySQL = revoke select on baiti13650070.identitasnim from ‘baiti’@’localhost’;
Pada
post kali ini saya akan membahas tentang pembuatan dan pengelolaan tabel. Dalam sebuah database terdapat tabel-tabel
yang menyediakan sebuah struktur untuk menyimpan dan mengamankan data. Semua
data berada di dalam struktur tabel, dan semua tabel berada dalam struktur
database. Tabel merupakan kumpulan data (nilai) yang diorganisasikan ke dalam
baris (record) dan kolom (field). Masing-masing kolom memiliki nama yang
spesifik dan unik.Tabel disebut juga kumpulan baris(row) dan kolom (column),
dimana jumlah dan nama kolom harus didefinisikan terlebih dahulu di awal.
Nah hal ini akan dijelaskan lebih lanjut nantinya. Baris merupakan sebuah
variable yang dapat diisi data kapanpun sehingga jumlahnya bisa berubah.
Sedangkan kolom dalam tabel memiliki tipe data yang membatasi jenis data apa
yang dapat dimasukkan.
Dalam
sebuah tabel, biasanya terdapat primary key yaitu terdapat sekelompok kolom (field)
yang menyebabkan setiap baris (record) dalam tabel tersebut tidak sama
dan juga digunakan untuk mempercepat dalam pencarian. Deklarasi primary key
tidak boleh kosong (null), jadi kita harus mendeklarasikan sebagai not
null. Namun secara default PostgreSQL menganggapnya sebagai nullable (boleh
kosong), jika waktu pengisian tidak menyebutkan null atau not null.Kita
dapat mengelola tabel serta memanipulasinya.
Kita dapat membuat, menghapus
serta mendefinisikan kerangaka tabelnya. Hal ini disebut Data Definition
Language atau DDL. Dalam post ini, saya akan membahas pengelolaan tabel
dengan dua DBMS (Database Management System) yaitu PostgreSQL dan MySQL
1. Membuat
dan Menghapus Tabel
Untuk
membuat tabel terlebih dulu kita harus masuk ke database mana yang akan kita
tambahkan tabel. Berikut ini adalah struktur query untuk membuat tabel. Create table namatabel (namakolom1 tipedata keterangan, namakolom2 tipedata keterangan);
Syntax di atas untuk 2 kolom.
Jika kita ingin menambah lagi kita tinggal menambahkannya setelah tanda koma.Untuk mengapus tabel, berikut ini adalah perintah querynya.
Drop table namatabel;
2.
Memanipulasi
Tabel atau Mengubah Struktur Tabel
Dalam
pembuatan database, kita harus memperhatikan struktur tabel-tabel yang ada
dalam database. Perintah dasar untuk mengubah struktur tabel adalah alter
table. Kita dapat mengahpus kolom, menambah kolom, mengubah nama tabel,
mengubah nama kolom, mengubah tipe data serta menambahkan primary key.
Secara
umum, berikut ini adalah perintah query untuk alter
Alter
table namatabel alter_option;
Yang
dimaksud alter_option di atas adalah perintah pilihan apa yang akan
digunakan untuk mengubah struktur tabel. Contoh alter option adalah drop, add,
rename dan lain-lain. Contoh penerapannya akan saya bahas di bagian
selanjutnya.
Dalam
pembuatan database, kita harus memperhatikan struktur tabel-tabel yang ada
dalam database. Perintah dasar untuk mengubah struktur tabel adalah alter
table. Kita dapat mengahpus kolom, menambah kolom, mengubah nama tabel,
mengubah nama kolom, mengubah tipe data serta menambahkan primary key.
Secara
umum, berikut ini adalah perintah query untuk alter
Alter
table namatabel alter_option;
Yang
dimaksud alter_option di atas adalah perintah pilihan apa yang akan
digunakan untuk mengubah struktur tabel. Contoh alter option adalah drop, add,
rename dan lain-lain. Contoh penerapannya akan saya bahas di bagian
selanjutnya.
3. Membuat
Temporary Tabel
Temporary
tabel adalah tabel yang sifatnya hanya sementara artinya akan aktif hanya
ketika kita sedang berada atau login ke database namun ketika kita logout
dari database maka secara otomatis temporary tabel akan terhapus.
Berikut
ini adalah perintah query untuk membuat temporary tabel untuk 2 kolom.
Create
temporary table namatabel (namakolom1 tipedata keterangan, namakolom2 tipedata
keterangan);
4. Mengatur
Hak Akses dalam Database
Untuk alasan keamanan, biasanya sebuah tabel
atau database hanya bisa dibuka oleh user tertentu. Hal tersebut dapat diatur
dalam hak akses atau privileges. Hak akses tersebut dapat diatur dengan
perintah Grant dan Revoke. Perintah Revoke digunakan untuk mencabut hak akses,
sedangkan perintah Grant digunakan untuk mengembalikan hak akses. Hak akses yang
dimaksud dapat hak akses untuk seluruh
fungsi tabel maupun hak akses untuk salah satu fungsi misalnya select,
update dan lain-lain. Contoh penerapannya akan saya bahas di bagian
selanjutnya.
5. Inheritance
Inheritence
dipergunakan jika ingin membuat sebuah tabel baru yang berhubungan dengan tabel
yang ada, dengan kata lain tabel tersebut merupakan turunan tabel pertama.
Berikut ini adalah perintah query Inheritence :
Create
temporary table namatabel (namakolom1 tipedata keterangan , namakolom2 tipedata
keterangan) inherits (namatabelinduk);
Sumber
: http://achmatim.net
B. Hasil Praktikum
Dalam
bagian ini, saya akan menjawab soal praktikum di kelas praktikum saya di
praktikum desain basis data.
Berikut
ini adalah tugas praktikum saya.
1. Buatlah
sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya
Nama
|
Tipe Data
|
Keterangan
|
Id_idn
|
Integer
|
Not Null
|
namaDepan_idn
|
Varchar(10)
|
|
namaBelakang_idn
|
Varchar(10)
|
|
Tgl_lahir_idn
|
Date
|
|
Status_idn
|
Boolean
|
|
Alamat_idn
|
Text
|
2.
Buatlah sebuah tabel lagi dengan nama pegawai
dan nama field sama dengan tabel identitas.
3.
Hapus kolom “alamat_idn” dan tampilkan struktur
dari tabel pegawai tadi.
4.
Tambahkan kolom “pekerjaan_idn” dengan type
data varchar dan tampilkan struktur tabel pegawai.
5.
Ubah nama tabel pegawai menjadi pekerjaNIM
kemudian ubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.
6.
Berikan Primary key pada tabel pekerjaNIM dan
ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan
struktur tabel.
7.
Hapus tabel pekerjaNIM.
8.
Buat temporary tabel dengan nama mahasiswa_sementara
dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau
strukturnya.
9.
Hapus semua hak akses tabel tertentu kepada
salah satu user yang telah dibuat dan lakukan pengecekan. Kemudian berikan
semua hak akses kembali dan lakukan pengecekan kembali. Hapus hak akses SELECT
tabel tertentu kepada salah satu user dan lakukan pengecekan.
10. Buat
tabel baru dengan nama Gaji, dengan catatan pembuatan tabel berasal dari
turunan tabel number 1 dan tambahkan kolom gaji kotor, pajak, dan gaji bersih.
Kemudian tampilkan strukturnya.
Untuk
menyelesaikan tugas di atas saya akan menggunakan 2 DBMS yaitu dengan SQL Shell
dari PostgreSQL dan Xampp Shell dari MySQL.
- Menggunakan SQL Shell dari PostgreSQL
Setelah CREATE
TABLE sukses, selanjutnya ketikkan \z untuk mengecek daftar tabel. Untuk
melihat struktur tabelnya, ketikkan \d identitasNIM seperti gambar di
atas.
2. Untuk membuat tabel pegawai, gunakan perintah create
table pegawai (id_idn integer not null, namaDepan_idn varchar(10),
namaBelakang_idn varchar(10), tgl_lahir_idn date, status_idn boolean,
Alamat_idn text); seperti di bawah
ini.
Setelah
muncul CREATE TABLE berarti pembuatan tabel pegawai sukses.
3. Untuk
menghapus kolom alamat_idn, kita gunakan perintah alter table pegawai drop
column “alamat_idn”; seperti di bawah ini.
Setelah
itu, untuk mengecek apakah kolom alamat_idn sudah terhapus dari tabel pegawai,
gunakan perintah \d pegawai seperti di atas.
4.
Untuk menambahkan kolom di tabel pegawai
ketikkan perintah alter table pegawai add column “pekerjaan_idn”
varchar(10);
Setelah itu, untuk mengecek struktur tabel
pegawai setelah ditambah kolomnya, gunakan perintah \d pegawai seperti
di atas.
5.
Untuk mengubah nama tabel pegawai menjadi tabel
pekerjaNIM gunakan perintah alter table pegawai rename to pekerjaNIM; seperti
di bawah ini. Kemudian untuk mengubah nama kolom pekerjaan_idn menjadi
alamat_idn gunakan perintah alter table pekerjaNIM rename column
“pekerjaan_idn” to “alamat_idn”; seperti di bawah ini.
Lalu untuk menampilkan struktur tabelnya,
gunakan perintah \d pekerjaNIM seperti di atas.
6.
Untuk meambah primary key pada tabel
pekerjaNIM, kita dapat menggunakan kolom id_idn sebagai primary key nya karena
id biasanya memiliki cirri yang unik dan cocok digunakan sebagai primary key.
Gunakan perintah alter table pekerjaNIM add primary key (id_idn); seperti
di bawah ini.
Kemudian
untuk mengubah tipe data alamat_idn menjadi text gunakan perintah alter
table pekerjaNIM alter column alamat_idn type text; seperti di atas.
Kemudian untuk menampilkan struktur tabelnya
ketikkan perintah \d pekerjaNIM.
7.
Untuk menghapus tabel pekerjaNIM gunakan
perintah drop table pekerjaNIM;
Kemudian cek di daftar tabel dengan perintah \z
sehingga akan muncul daftar tabel dan tabel pekerjaNIM sudah terhapus.
8.
Untuk membuat temporary tabel
mahasiswa_sementara gunakan perintah create temporary table
mahasiswa_sementara (id integer, nama varchar(25),
tanggal_lahir date); seperti di bawah ini.
Kemudian menampilkan struktur tabelnya dengan
perintah \d mahasiswa_sementara seperti di atas.
9.
Untuk menghapus hak akses pada salah satu user
misalnya baiti gunakan perintah revoke
all on table identitasNIM from baiti; seperti di bawah ini,.
Kemudian cek dengan membuka psql baru dan masuk
sebagai user baiti. Lalu gunakan perintah select *from identitasNIM; dan
akan muncul pesan error karena user tidak memiliki hak akses.
Kemudian pasang kembali hak akses untuk user baiti
dengan perintah grant all on table identitasNIM to baiti; di psql
dengan user pertama seperti di bawah ini.
Lalu cek kembali di psql user baiti seperti
di bawah ini.
Setelah mengetikkan perintah yang sama seperti
sebelumnya, sekarang user bisa membuka struktur tabel identitasNIM.
Untuk mencabut salah satu hak akses misalnya
select dari user gunakan perintah revoke select on table identitasNIM from
baiti; seperti di bawah ini.
Lalu cek kembali di user baiti dengan
perintah seperti sebelumnya.
Sehingga muncul pesan error seperti di atas.
10.
Untuk membuat tabel gaji dari turunan tabel
pertama gunakan perintah create table Gaji (gaji_kotor integer, pajak
integer, gaji_bersih integer) inherits (identitasNIM); seperti di bawah
ini.
Kemudian gunakan perintah \d gaji untuk,elihat
struktur tabelnya.
- Menggunakan XAMPP Shell dari MySQL
1.
Pertama, kita harus masuk ke XAMPP Shell
terlebih dahulu. Lalu gunakan database baiti13650070. Kemudian ketikkan perintah query create
table identitasNIM (id_idn integer not null, namaDepan_idn varchar(10),
namaBelakang_idn varchar(10), tgl_lahir_idn date, status_idn boolean,
Alamat_idn text); seperti di bawah ini.
Untuk menampilkan daftar tabel guanakan
perintah show tables; dan untuk melihat struktur tabelnya gunakan
perintah desc identitasnim; seperti dibawah ini.
2. Untuk
membuat tabel pegawai, gunakan perintah create table pegawai (id_idn
integer not null, namaDepan_idn varchar(10), namaBelakang_idn varchar(10),
tgl_lahir_idn date, status_idn boolean, Alamat_idn text); seperti di bawah ini.
3. Untuk menghapus kolom alamat_idn, kita gunakan
perintah alter table pegawai drop alamat_idn; seperti di bawah ini.
Setelah
itu, untuk mengecek apakah kolom alamat_idn sudah terhapus dari tabel pegawai,
gunakan perintah desc pegawai; seperti di atas.
4. Untuk
menambahkan kolom di tabel pegawai ketikkan perintah alter table pegawai add
pekerjaan_idn varchar(10);
Setelah itu, untuk mengecek struktur tabel
pegawai setelah ditambah kolomnya, gunakan perintah desc pegawai; seperti
di atas.
5. Untuk mengubah nama tabel pegawai menjadi tabel
pekerjaNIM gunakan perintah alter table pegawai rename to pekerjaNIM; seperti
di bawah ini. Kemudian untuk mengubah nama kolom pekerjaan_idn menjadi
alamat_idn gunakan perintah alter table pekerjaNIM change pekerjaan_idn
alamat_idn varchar(10); seperti di bawah ini.
Lalu untuk menampilkan struktur tabelnya,
gunakan perintah desc pekerjaNIM; seperti di atas.
6.
Untuk menambah primary key pada tabel
pekerjaNIM, kita dapat menggunakan kolom id_idn sebagai primary key nya karena
id biasanya memiliki cirri yang unik dan cocok digunakan sebagai primary key.
Gunakan perintah alter table pekerjaNIM add primary key (id_idn); seperti
di bawah ini. Kemudian untuk mengubah tipe data alamat_idn menjadi text gunakan
perintah alter table pekerjaNIM modify alamat_idn type text; seperti di
bawah ini.
Kemudian untuk menampilkan struktur tabelnya
ketikkan perintah desc pekerjaNIM; seperti di atas.
7.
Untuk menghapus tabel pekerjaNIM gunakan
perintah drop table pekerjaNIM;
Kemudian cek di daftar tabel dengan perintah show
tables; sehingga akan muncul daftar tabel dan tabel pekerjaNIM sudah
terhapus.
8.
Untuk membuat temporary tabel
mahasiswa_sementara gunakan perintah create temporary table
mahasiswa_sementara (id integer, nama varchar(
25), tanggal_lahir date); seperti
di bawah ini.
Kemudian menampilkan struktur tabelnya dengan
perintah desc mahasiswa_sementara; seperti di atas.
9.
Untuk menghapus hak akses pada salah satu user
misalnya baiti gunakan perintah revoke
all on baiti13650070.identitasNIM from ‘baiti’@’localhost’; seperti di
bawah ini.
Kemudian cek dengan membuka xampp shell baru
dan masuk sebagai user baiti. Lalu gunakan perintah select *from
identitasNIM; dan akan muncul pesan error karena user tidak memiliki hak
akses.
Kemudian pasang kembali hak akses untuk user baiti
dengan perintah grant all on baiti13650070.identitasNIM to
‘baiti’@’localhost’;; di psql dengan user pertama seperti di bawah ini.
Lalu cek kembali di xampp shell user baiti seperti
di bawah ini.
Setelah mengetikkan perintah yang sama seperti
sebelumnya, sekarang user bisa membuka struktur tabel identitasNIM.
Untuk mencabut salah satu hak akses misalnya
select dari user gunakan perintah revoke select on
baiti13650070.identitasNIM from ‘baiti’@’localhost’; seperti di bawah ini.
Lalu cek kembali di user baiti dengan
perintah seperti sebelumnya.
Sehingga muncul pesan error seperti di atas.
10.
Untuk membuat tabel baru yang berasal dari
turunan tabel nomor 1, MySQL tidak mempunyai fasilitas inheritance seperti yang
dimiliki oleh PostgreSQL.
Jadi, untuk membuat tabel gaji sepert yang
dimaksudkan soal, kita harus membuat tabel seperti membuat tabel biasa. Lalu
kita bisa menggunakan tabel 1 sebagai tabel referensinya.
Struktur querynya yaitu create table gaji
(id_idn integer not null, namaDepan_idn varchar(10), namBelakang_idn
varchar(10), tgl_lahir_idn date, status_idn Boolean, alamat_idn text,
gaji_kotor integer, pajak integer, gaji_bersih integer);
Kemudian
kita dapat menampilkan struktur tabelnya dengan desc gaji;
Membuat database dan tabel sistem pada
pertemuan 1 menggunakan query dan dilengkapi dengan tampilan strukturnya.
Judul Sistem Informasi : Movie Rental
“Fiction”
Berikut
ini adalah rancangan tabel system informasi yang saya buat minggu lalu.
Untuk membuat database ini, saya akan
menggunakan XAMPP Shell dari MySQL
1. Saya
akan menggunakan user root dan membuat database baru dengan nama fiction.2. Lalu saya akan membuat tabel Film beserta struktur tabelnya dengan primary key dari tabel film adalah id_film. Seperti terlihat di bawah ini.
3.
Kemudian saya akan membuat tabel Anggota dengan
primary key id_anggota. Berikut ini adalah struktur tabelnya.
4. Tabel ketiga yaitu tabel Pegawai dengan
primary key id_pegawai. Berikut ini adalah struktur tabelnya.
5.
Selanjutnya, saya akan membuat tabel transaksi Penyewaan.
Berikut ini adalah struktur tabelnya.
6. Tabel yang terakhir yaitu tabel transaksi Pengembalian.
Berikut ini adalah struktur tabelnya.
D.
Evaluasi
Perbandingan DBMS MySQL dan DBMS PostgreSQL
Setelah mengerjakan tugas praktikum di atas
dengan dua DBMS yaitu PostgreSQL dan MySQL, saya akan mencoba menjabarkan
perbandingan di antara keduanya. Dalam hal struktur query terkadang diantara
keduanya memiliki persamaan secara umum. Namun terkadang terdapat beberapa
perbedaan pada struktur query nya.
Berikut ini adalah beberapa perbedaan struktur
query nya.
1.
Pada soal nomor 1 yaitu membuat tabel
identitasNIM terdapat perbedaan dalam menampilkan tabelnya setelah tabel
tersebut dibuat. Meskipun dengan struktur query berbeda, fungsi keduanya tetap
sama.
- Menampilkan daftar tabel di database:
PostgreSQL = \z
MySQL = show tables;
- Menampilkan struktur tabel
PostgreSQL
= \d identitasNIM
MySQL = desc
identitasnim;
Pada bagian ini, PostgresSQL memiliki kemudahan
berupa struktur query lebih pendek dibandingkan dengan MySQL.
2.
Pada soal nomor 3, menghapus kolom alamat idn.
PostgerSQL = alter table pegawai drop column
“alamat_idn”;
MySQL = alter table pegawai drop alamat_idn;
Pada bagian ini, perbedaan keduanya hanya
terletak pada tanda petik saja.
3.
Pada soal nomor 4, menambahkan kolom di tabel
pegawai.
PostgreSQL
= alter table pegawai add column “pekerjaan_idn” varchar(10);
MySQL = alter
table pegawai add pekerjaan_idn varchar(10);
Pada
bagian ini MySQL memiliki struktur query lebih pendek dibandingkan PostgreSQL.
4.
Kemudian pada soal nomor 5 juga terdapat
perintah untuk mengubah nama kolom pekerjaan_idn menjadi alamat_id.
PostgreSQL
= alter table pekerjaNIM rename column “pekerjaan_idn” to “alamat_idn”;
MySQL = alter table pekerjaNIM change
pekerjaan_idn alamat_idn varchar(10);
Pada bagian ini, postgreSQL menggunakan rename,
sedangkan MySQL menggunkan change.
5.
Pada soal nomor 6, mengubah tipe data
alamat_idn menjadi text.
PostgreSQL
= alter table pekerjaNIM alter column alamat_idn type text;
MySQL = alter table pekerjaNIM modify
alamat_idn type text;
6.
Pada soal nomor 9, mencabut hak akses (revoke)
salah satu user dan mengembalikan hak akses (grant) kembali.
- Revoke untuk user baiti
PostgreSQL
= revoke all on table identitasNIM from baiti;
MySQL = revoke all on baiti13650070.identitasnim
from ‘baiti’@’localhost’;
- Grant untuk user baiti
PostgreSQL = grant all on table identitasNIM
to baiti;
- Revoke salah satu hak akses, yaitu select
MySQL = revoke select on baiti13650070.identitasnim from ‘baiti’@’localhost’;
Pada bagian ini, PostgreSQL memiliki
kemudahan berupa struktur query lebih pendek, dan tidak perlu mengetik database
dan lokasi user seperti di MySQL.
Untuk mengecek di user baiti, keduanya memiliki
struktur query yang sama.
7. Pada
soal nomor 10, yaitu pembuatan tabel berasal dari turunan tabel 1 dengan
penambahan beberapa kolom, PostgreSQL lebih unggul, karena fasilitas
inheritance atau pewarisan/turunan tabel merupakan salah satu keunggulannya dibanding
DBMS lain (termasuk MySQL) dalam membuat tabel tabel turunan. Keunggulan ini
merupakan salah satu wujud atau implementasi konsep berorientasi objek didalam
pengelolaan basis data.
E.
Kesimpulan,
Saran, Kritik dan Manfaat bagi Pembaca
1.
Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan
bahwa dalam pembuatan database, tabel memiliki peran sebagai tempat menyediakan
sebuah struktur untuk menyimpan dan mengamankan data. Tabel merupakan kumpulan
data (nilai) yang diorganisasikan ke dalam baris (record) dan kolom (field).
Kita dapat mengelola tabel serta memanipulasinya. Kita dapat membuat, menghapus
serta mendefinisikan kerangaka tabelnya. Hal ini disebut Data Definition Language
atau DDL. Pada DBMS yang berebeda yaitu PostgreSQL dan MySQL, terkadang
memiliki query yang berbeda dalam mendefinisikan maupun memanipulasi tabelnya.
2.
Saran
Diperlukan
pembelajaran lebih lanjut mengenai pembuatan dan pengelolaan tabel database
menggunakan PostgreSQL maupu MySQL agar praktikan dapat menguasai kedua DBMS
tersebut dalam membuat database yang lebih baik.
3.
Kritik
Dalam laporan ini, masih banyak terdapat kekurangan karena
terbatasnya pengetahuan saya dalam menguasai 2 DBMS yang digunakan dalam
praktikum ini.
4.
Manfaat
Manfaat
yang akan didapat pembaca dalam laporan ini antara lain dapat mengetahui
pengertian tabel secara umum, serta dapat mengetahui proses pembuatan dan
pengelolaan tabel menggunakan 2 DBMS yang berbeda. Pembaca juga dapat
mengetahui perbedaan dan perbandingan struktur query dari 2 DBMS tersebut dalam
manajemen tabel.