PEMBUATAN DAN MANAJEMEN TABEL


LANDASAN TEORI

MySQL banyak digunakan untuk menyimpan data keuangan dan transaksi bisnis. Kemampuan untuk menyimpan database dengan jumlah besar dan tingkat keamanan yang tinggi merupakan fitur yang sangat menarik dari MySQL. MySQL menggunakan Structured Query Language sebagai bahasa pemrograman untuk mengakses data dari dari server MySQL. Dalam SQL, data tersimpan dalam tabel-tabel yang secara logis merupakan struktur dua dimensi yang terdiri atas baris-baris data (row atau record) yang berada dalam satu atau beberapaka kolom (column atau field). Baris pada tabel sering disebut sebagai instance dari data sedangkan kolom sering disebut sebagai atributes atau field.

 
Dalam SQL terdapat 3 bahasa, yaitu :
DDL merupakan perintah-perintah yang biasa digunakan administrator database untuk mendefinisikan skema dan subskema database.
Data Definition Language (DDL) mempunyai fungsi utama untuk mendefinisikan data dalam database secara logika, diantaranya yaitu:
Digunakan untuk mendefinisikan karakteristik dari record (meliputi nama, tipe dan lebar dari field), untuk menentukan kunci field, menyediakan cara untuk menentukan hubungan dengan data di file lain, untuk mengubah struktur dari record, untuk menampilkan struktur dari record. DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel. Perintah yang termasuk DDL:
CREATE » untuk membuat, termasuk diantaranya membuat database dan tabel baru.
ALTER » untuk mengubah struktur tabel yang telah dibuat.
DROP » untuk menghapus database dan tabel.

DML merupakan merupakan perintah-perintah yang memungkinkan pengguna melakukan akses dan manipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat, Data Manipulation Language digunakan untuk memanipulasi database yang telah didefinisikan dengan DDL. Perintah yang termasuk DML:
INSERT » untuk menyisipkan atau memasukan dalam tabel
UPDATE » untuk memperbaharui data lama menjadi data terkini
DELETE » untuk menghapus datadari tabel
SELECT » untuk mengambil data atau menampilkan data dari satu tabel atau beberapa tabel.
 

DCL merupakan merupakan perintah-perintah yang digunakan untuk mengontrol data. Perintah yang termasuk DCL:
GRAND » untuk memberikan hak atau izin akses oleh administrator server kepada user
REVOKE » untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.

Ø Membuat tabel
Tabel harus memiliki primary key, artinya dalam pembuatan tabel haruslah 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.
Query untuk membuat tabel adalah :
create table namatabel(kolom1 tipe_data keterangan, kolom2 tipe_data keterangan,...);
untuk jumlah kolom sesuaikan dengan kebutuhan. Dalm hal ini baik PostgreSQL maupun MySQL memiliki query yang sama termasuk dalam penghapus tabel bisa dengan perintah “drop table namatabel;”
Untuk melihat struktur dalam tabel yang telah dibuat ketikkan perintah “\d” dan melihat semua tabel dengan menggunakan “\z” untuk DBMS PostgreSQL. Sedangkan pada MySQL untuk melihat struktur dalam tabel yang telah dibuat ketikkan perintah “desc namatabel;” dan melihat semua tabel dengan menggunakan “show tables;”

Ø Manipulasi tabel
Dalam database, tabel yang telah dibuat tetap dapat diubah strukturnya. Berikut merupakan beberapa perintah yang digunakan dalam memanipulasi tabel.
-            Query yang digunakan untuk menghapus kolom
PostgreSQL dan MySQL : alter table namatabel drop column “namakolom”;
-            Query yang digunakan untuk menambah kolom
PostgreSQL : alter table namatabel add column (namakolom tipedata keterangan);
MySQL : alter table namatabel add(namakolom tipedata keterangan);
-            Query yang digunakan untuk mengubah nama tabel
PostgreSQL dan MySQL : alter table namatabelasal rename to namatabelbaru;
-            Query yang digunakan untuk mengubah nama kolom
PostgreSQL : alter table namatabel rename column “namakolomasal” to “namakolombaru”;
MySQL : alter table “namatabel” drop “namakolomasal”, add (“namakolombaru” tipedata keterangan);
Jadi dalam MySQL terlebih dahulu menghapus kolom yang lama lalu embuat kolom yang baru, tidak bisa langsung rename seperti pada PostgreSQL.
-            Query yang digunakan untuk menambah primary key
PostgreSQL dan MySQL : alter table namatabel add primary key(namakolom);

Ø Temporary tabel
Temporary tabel sifatnya hanya sementara artinya akan aktif hanya ketika kita sedang berada atau login ke database namun ketika kita logout dari psql database maka secara otomatis temporary tabel akan terhapus.
Query untuk membuat temporary table pada MySQL dan PostgreSQL memiliki kesamaan, yaitu:
Create temporary table namatabel (kolom1 tipedata keterangan, kolom2 tipedata keterangan,....dst);

Ø GRANT and REVOKE
-          Query GRANT untuk semua hak akses
PostgreSQL : grant all on table namatabel to namauser;
MySQL : grant all privileges on namatabel.* to namauser@namahost;
-          Query GRANT untuk memberi salah satu hak akses
PostgreSQL : grant select on tabel namatabel to namauser;
MySQL : grant select on namatabel.* to namauser@namahost;
-          Query REVOKE untuk semua hak akses
PostgreSQL : revoke all on table namatabel from namauser;
MySQL : revoke all privileges on namatabel.* from namauser@namahost;
-          Query REVOKE untuk salah satu hak akses (contohnya select)
PostgreSQL : revoke select on table namatabel from namauser;
MySQL : revoke select on namatabel.* from namauser@namahost

Ø Turunan (Inheritance)
INHERITANCE dipergunakan jika ingin membuat sebuah tabel baru yang berhubungan dengan tabel yang ada, dengan kata lain turunan tabel pertama. Struktur penggunaan query INHERITANCE:
create temporary table namatabel (namakolom1 tipedata keterangan , namakolom2 tipedata keterangan) inherits (namatabelinduk);



HASIL PERCOBAAN
Setelah dilakukan praktikum kemarin, lalu saya mencoba sendiri di rumah dengan menggunakan MySQL. Berikut merupakan hasil pekerjaan praktikum dengan menggunakan MySQL sebagai bahan perbandingan dengan PostgreSQL. Namun sebelum pengerjaan tugas-tugas berikut karena tabel adalah sebuah bagian dari database, terlebih dahulu praktikan harus membuka database yang telah saya buat pada praktikum lalu, perintah yang digunakan untuk membuka database pada MySQL adalah “show databases;” untuk melihat list database yang ada di server MySQL, lalu setelah database yang dicari ada, maka praktikan harus mengaktifkan database dengan perintah “use namadatabase” contoh use dwi13650036; seperti pada gambar dibawah ini : 
tampilan diatas menunjukkan bahwa kita telah masuk pada database yang telah saya buat pada praktikum minggu lalu, Jangan lupa untuk masuk ke user MySQL dulu ya sebelum melakukan show databases, karena disini praktikan memakai command prompt, maka hal yang harus dilakukan adalah membuka command prompt lalu ketikkan perintah mysql –u root lalu enter, atau kalau ingin masuk ke user kita sendiri bisa dengan perintah mysql –u nama_user lalu enter, dan jika dengan password bisa dengan mysql -u nama_user –p lalu enter, dan masukkan password user.

Membuat sebuah tabel dengan nama identitas NIM dan dengan nama fieldnya sesuai tabel dibawah ini :

Untuk membuat table diatas cukup dengan menggunakan perintah :
"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);"
tanpa tanda petik ya..
Maka akan muncul seperti tabel dibawah ini :



Untuk menampilkan struktur tabel seperti diatas dengan perintah:
Desc identitasNIM; 

Membuat tabel lagi dengan nama pegawai dengan nama field nya sama dengan tabel identitas, dengan 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);
Lalu menampilkan struktur tabel pegawai dengan perintah :
Desc pegawai;


a.       Menghapus kolom alamat_idn dan menampilkan struktur tabel.
Untuk menghapus kolom alamat_idn di MySQL dengan perintah:
alter table pegawai drop alamat_idn;
setelah itu kita cek apakah sudah benar-benar terhapus.

a.       Menambahkan kolom pekerjaan_idn dengan tipe data varchar dan menampilkan struktur tabel pegawai dengan perintah: 
      alter table pegawai add (pekerjaan_idn varchar(15));
      lalu menampilkan struktur table, dengan perintah :
      desc pegawai;



a.       Mengganti nama tabel pegawai menjadi tabel pekerjaNIM.
Untuk mengganti nama tabel kita memakai perintah:
Alter table pegawai rename pekerjaNIM;

a.       Mengganti kolom pekerjaan_idn menjadi alamat_idn pada tabel pegawai.
perintah diatas dalam MySQL dapat diartikan menghapus  kolom pekerjaan_idn pada tabel pegawai lalu menambahkan kolom alamat_idn pada tabel pegawai. Langkah tersebut dapat dibuat dengan perintah :
alter table pekerjaNIM drop pekerjaan_idn, add (alamat_idn text);
untuk memastikan apakah query berhasil dijalankan maka kita harus mengeceknya pada struktur table, dengan perintah desc pekerjaNIM. Seperti pada tabel dibawah ini:

a.       Memberikan primary key pada tabel pekerjaNIM kemudian mengubah type data pada kolom alamat_idn menjadi text. Kemudian menampilkan struktur tabelnya.
      Perintah untuk menambah primary key:
Alter table pekerjaNIM add primary key(id_idn);
Setelah muncul tulisan “Query OK..bla bla bla”, langsung cek struktur tabelnya dengan perintah:
desc pekerjaNIM;
lihat gambar dibawah ini:

a.       Menghapus tabel pekerjaNIM. 
      Perintah yang digunakan dalam menghapus tabel adalah:
drop table pekerjaNIM;
seperti gambar dibawah ini :


a.       Membuat temporary tabel dengan nama mahasiswa_sementara dengan tiga kolom yaitu id, nama, tanggal lahir, dan tampilkan tabel strukturnya. Perintah yang digunakan untuk membuat temporary tabel sama dengan PostgreSQL, yaitu:
Create temporary table mahasiswa_sementara(id integer primary key, nama varchar(10), tanggal_lahir);
Lihat gambar dibawah ini:

a.       Hapus semua hak akses table tertentu kepada salah satu user yang telah dibuat dan lakukan pengecekan kembali. Hapus hak akses select table tertentu kepada salah satu user dan lakukan pengecekan.
Sebelum me_revoke terlebih dahulu kita harus mengecek list grants dari user yang ingin kita cabut hak aksesnya, dengan perintah:
Show grants for dwiuw@localhost;
Lihat gambar dibawah ini, dan amati apa yang terjadi.

Setelah muncul list grant pada user tertentu, kita bisa langsung me_revoke user tertentu untuk mengakses tabel tersebut, dengan perintah:
revoke all privileges on identitasNIM.* from dwiuw@localhost;

dan untuk mengecek, kita bisa menuliskan perintah
show grants for dwiuw@localhost;

Setelah itu, dalam soal diperintahkan untuk mengembalikan semua hak akses user tertentu dengan perintah:
grant all privileges on identitasNIM.* to dwiuw@localhost;
lalu kita cek list grants user dwiuw untuk memastikan.
Setelah grant kembali ke all privileges, coba kita ketik perintah select untuk mencabut hak akses select pada user dwiuw dengan perintah sebagai berikut:
revoke select on identitasNIM.* from dwiuw@localhost;
lihat gambar dibawah ini:

setelah berhasil, lalu cek untuk membuktikan, seperti gambar dibawh ini :

Membuat tabel baru engan nama Gaji, dengan catatan pembuatan tabel berasal dari turunan tabel nomer satu dan tambahkan kolom gaji kotor, pajak dan gaji bersih. Kemudian menampilkan strukturnya. Karena praktikan belum menemukan query yang sesuai untuk inheritans ini di MySQL, maka praktikan membuat table gaji secara manual dengan perintah query dibawah ini:
      Create table gaji(id_idn integer not null, namaDepan_idn varchar(10), namaBelakang_idn varchar(10), tgl_lahir_idn date, status_idn boolean, alamat_idn text, gaji_kotor integer, gaji_bersih integer, pajak_integer);
      Lalu kita ketikkan perintah desc gaji;
      Agar kita bisa melihat struktur tabel gaji yang baru saja kita buat. perhatikan gambar dibawah ini :


TUGAS RUMAH 

Membuat database dan tabel sistem pada pertemuan 1 menggunakan query dan dilengkapi dengan tampilan strukturnya.
Pada pertemuan satu kemarin, saya membuat ERD Sistem Informasi Toko Sembako
Berdasarkan ERD sistem Informasi Toko Sembako diatas, untuk memudahkan penyimpanan data  saya membuat database dengan nama tokosembako. Berikut query nya :
create database tokosembako;

setelah membuat database, kita harus mengaktifkan database yang baru saja kita buat terlebih dahulu, dengan perintah:
use tokosembako;

Langkah selanjutnya ialah membuat table di dalam database yang telah dibuat,
Tabel Pertama : barang
Query : create table barang (id_barang integer primary key, nama_barang varchar(15), harga integer, stok integer);
lalu untuk melihat struktur tabelnya, desc barang;

Tabel Kedua : karyawan
Query : create table karyawan (id_karyawan integer primary key, nama_karyawan varchar(25), bagian varchar);
lalu melihat desc table nya dengan perintah : desc karyawan;

Tabel ketiga : pembeli
Query : create table pembeli (id_pembeli integer primary key, nama_pembeli varchar(15), alamat text, no_hp varchar(12));
 untuk melihat struktur tabel pembeli : desc pembeli;



Tabel keempat : transaksi
Query : create table transaksi (id_transaksi integer primary key, tgl_transaksi date, id_barang integer, id_karyawan integer, id_pembeli integer);

untuk melihat struktur tabel transaksi : desc transaksi;



EVALUASI PERBANDINGAN DBMS POSTGRESQL dan
MYSQL
Dibawah ini merupakan tabel perbedaan antara Query pada PostgreSQL dan MySQL:

KESIMPULAN
            Dari praktikum desain basis data kali ini, dapat diambil kesimpulan bahwa dalam suatu database terdapat bahasa-bahasa yang memiliki fungsi tersendiri untuk menangani masalah-masalah yang ada dalam database,bahasa-bahasa tersebut meliputi DDL, DML, dan DCL. melalui query-query pada bahasa tersebut, praktikan dapat membuat table dan menghapus tabel yang ada pada database. selain itu mahasiswa juga dapat memahami cara mengedit struktur tabel meliputi mengubah nama tabel, mengubah nama kolom, mengganti kolom, serta menghapus kolom dalam tabel. melalui praktikum ini praktikan dapat mengetahui cara mengakses serta mencabut akses user tertentu pada database dengan query-query tertentu. Semua kegiatan-kegiatan tentang pembuatan serta manajemen tabel dapat dilakukan pada banyak DBMS. Salah duanya PostgreSQL dan MySQL. diantara dua DBMS tersebut memiliki kelebihan serta kekurangan tersendiri pada query-query nya. seperti pada PostgreSQL dapat dilakukan manipulasi table "inheritance namun pada MySQL tidak ada.


MANFAAT BAGI PEMBACA 

Semoga postingan tentang pembuatan dan manajemen tabel ini dapat 

bermanfaat buat pembaca,

tentunya dapat menjadi referensi pembaca dalam 
pembuatan dan manajemen tabel khususnya
pada DBMS PostgreSQL maupun MySQL.

KRITIK dan SARAN 
Kritik untuk praktikum kali ini adalah terlalu santainya
praktikan saat praktikum sehingga tidak mempersiapkan
apapun pada malam harinya, jangankan belajar... membuka
modul aja nggag.. hehehe.. 
untuk pratikum selanjutnya diharapkan dengan sangat, 
praktikan telah mencoba mempelajari modul yang
telah diberikan agar ketika praktikum, kebingungan praktikan sedikit terkurangi.

sumber:

Wahana komputer. 2006. Pengolahan Database dengan MySQL. Yogyakarta : ANDI.
http://prajuritbatin.blogspot.com/2012/08/defnisi-sql-ddl-dml-dcl-dan-fungsinya.html

Fathansyah. 2012. Basis Data. Bandung : Informatik     
http://blog.uin-malang.ac.id/mrwt/2011/10/18/pembuatan-dan-manajemen-tabel/     







Komentar