Pages

PRAKTIKUM DESAIN BASIS DATA 2 (MEMBUAT DAN MEMANAJEMENT TABEL)





Bismillah, Semoga isi dari lopran kali ini sesuai dengan prosedur tugas yang telah disampaikan. Belajar dari laporan praktikum kemarin, memang banyak kekurangan, terutama pada tugas utama (dalam artian salah tanggap/salah penafsiran tentang tugas) jadi pada laporan yang kedua ini, saya berusaha melakukan yang terbaik dan semoga asisten lab bisa memaklumi kesalahan kemarin juga menghargai usaha saya saat ini. Hehe
Pada praktikum pertemuan ke 3 (modul 2) ini membahas tentang bagaimana kita dapat membuat dan memanajement sebuah table. Langsung saja, point-point yang telah dibahas di lab praktikum, akan saya bahas di blog ini (yang memang harus dibahas hehe)
Bahasan
·         Pembuatan table
·         Pengelolaan table
Sasaran
Mahasiswa memahami cara pembuatan maupun penghapusan tabel
Mahasiswa memahami cara mengedit struktur dari tabel. 
Mahasiswa mampu memanipulasi tabel sesuai dengan kebutuhan.

1.     1. Dasar Teori
Sebelum kita melangkah jauh, alangkah baiknya kita memahami tentang apa itu table. Table (menurut modul DBD BAB II) terdiri dari baris (row) dan kolom (column), dimana jumlah dan nama kolom harus didefinisikan terlabih dahulu di awal. Sedangkan baris merupakan sebuah variabel yang dapat dihapus dan diisi kapanpun, sehingga jumlahnya selalu berubah sesuai dengan jumlah data didalamnya. Setiap kolom dalam tabel mempunyai tipe data, tipe data digunakan untuk membatasi jenis data yang bisa dimasukkan, sehingga akan mempermudah dalam menggunakannya dan melakukan pengelolaan selanjutnya. Sangat disarankan pada saat akan membuat tabel, sebaiknya membuat sebuah aturan khusus dalam penentuan tabel-tabel yang akan dibuat dan memberikan nama kolom maupun tipe datanya.
Nah, Dalam penggunaan database MySQL, setiap perintah yang diketikkan disebut query. Perintah MySQL dapat dikategorikan menjadi 3 sub perintah, yaitu DDL (Data Definition Language), DML (Data Manipulation Language), dan DCL (Data Control Language).
DDL
Data Definition Language (DDL) ialah perintah yang digunakan untuk mendefinisikan/membangun struktur database.
  • CREATE – untuk membuat database baru, tabel baru, view baru dan kolom.
  • ALTER – mengubah struktur tabel. Seperti mengganti nama tabel, menambah kolom, mengubah kolom, menghapus kolom maupun memberikan atribut pada kolom.
  • DROP – untuk menghapus database dan tabel.
  • TRUNCATE – menghapus semua catatan dari tabel.
  • COMMENT – menambahkan komentar pada data.
  • RENAME – mengubah nama obyek.
DML
Data Manipulation Language (DML) ialah perintah yang digunakan untuk mengelola/memanipulasi data dalam database.
  • SELECT – untuk mengambil/menampilkan data dari database.
  • INSERT – untuk memasukkan data ke dalam tabel.
  • UPDATE – untuk memperbarui data dalam tabel.
  • DELETE – untuk menghapus data dari tabel.
  • MERGE – UPSERT operasi (insert atau update).
  • CALL – memanggil subprogram PL / SQL atau Java
  • EXPLAIN PLAN – menjelaskan jalur akses ke data
  • LOCK TABLE – mengunci tabel.
DCL
Data Control Language (DCL) ialah perintah yang digunakan untuk melakukan pengontrolan data dan server databasenya.
  • GRANT – untuk memberikan hak akses pengguna ke database.
  • REVOKE – untuk menghilangkan hak akses yang telah diberikan dengan perintah GRANT.
   

Struktur penyimpanan data pada MySQL adalah sebagai berikut
                                                   
                                                            Database
                                                               /            \
                                                      Table            Table
                                                           /       \           /      \
                                                       Field    Field  Field   Field
Database default yang dimiliki oleh root adalah mysql dan test.
Untuk dapat melihat database yang terdapat pada MySQL digunakan perintah
mysql>show databases;



2.      2. Hasil Praktikum
Sebelum kita memulai satu persatu sub bahasan diatas, aktifkan xampp, start Aphace dan MySql. Kemudian buka cmd (karena mengingat laporan harus dibuat dengan menggunakan DBMS MySQL)
Untuk menjalankan MySQL cukup dengan mengetikan mysql pada system prompt
Bentuk umum perintah
            mysql database –h host –u user –p password

Gambar diatas menunjukkan bahwa cmd telah berhasil mengkoneksikan diri dengan mysql (xampp yang telah diaktifkan) dengan user root.
Nah, setelah terkoneksi, barulah kita membuat database sebagai wadah dari table-tabel yang akan kita buat nanti. Tapi kalo sebelumnya sudah pernah membuat database, maka tinggal dipanggil aja dengan melakukan query: USE nama_database;
Contoh
Tanda database latihan1 aktif
 
mysql> use latihan1 ;
Database changed

Kalo seandainya lupa database apa yang pernah kita buat, maka tinggal munculin aja semua databasenya.
Dengan melakukan query :
Show databases;

Keterangan diatas hanya mengingat langkah praktikum kedua (minggu lalu)
Baik, kita beranjak untuk membahas satu persatu sub bahasan diatas (DDL, DML, DCL)
Soal 1: Buatlah sebuah tabel dengan nama identitasNIM dan dengan nama fieldnya
Nama
Tipe data
Keterangan
Id_idn
integer
Not null
namaDepan
Varchar(10)

namaBelakang
Varchar(10)

Tgl_lahir
date

Status_idn
boolean

Alamat_idn
Text


Untuk menjawab soal nomer 1, kita menggukan DDL (create)
1.      Create table (membuat table)
Untuk membuat table, lakukan query :
CREATE TABLE nama_tabel (
field1 tipe(panjang),
field2 tipe(panjang),
...
fieldn tipe(panjang),
PRIMARY KEY (field_key)
);
Kalo tanpa primary key juga bisa, namun sebuah kolom (biasanya id, nim, dll) membutuhkan primary key karna sifatnya unik (tidak boleh sama)
Dalam keteran not null pada kolom id_idn berarti kolom tersebut tidak boleh kosong.
Jawaban no.1 yaitu
Mysql> create table identitas13650022 (
->  id_idn integer not null,
-> namaDepan_idn varchar (10),
-> namaBelakang_idn varchar (10),
-> tgl_lahir_idn date,
-> status_idn text
-> );
Berikut adalah hasil yang saya buat untuk membuat table.  


Soal no.2 buatlah sebuah tabel lagi dengan nama pegawai dan nama field sama dengan tabel identitas.

Untuk menjawab soal no.2 kita tetap menggunakan DDL create, sintaksnya sama kayak nomer 1.
Jadi tinggal ngerubah nama table aja
mysql> create table pegawai (
->  id_idn integer not null,
-> namaDepan_idn varchar (10),
-> namaBelakang_idn varchar (10),
-> tgl_lahir_idn date,
-> status_idn text
-> );
 Jadi, untuk menampilkan semua tabel, kita dapat menggunakan sintaks show tables;
Untuk menampilkan stuktur tabelnya, maka lakukan query DESC namatabel;
 

Soal no.3 Hapus kolom “alamat_idn” dan tampilkan struktur dari tabel pegawai tadi.

Untuk menjawab soal nomer 3, maka kita masih tetap menggunakan DDL (alter)
2.      ALTER
Jadi, untuk menghapus sebuah kolom, tidak sembarang menggunakan drop saja, tetapi ada sintaks yang harus kita ketahui sebagai berikut:
Lakukan query untuk menghappus kolom:
ALTER TABLE namatabel DROP COLUMN namakolom;

Jawaban nomer dua adalah :
ALTER TABLE pegawai DROP COLUMN alamat_idn;
Berikut adalah hasil dari query tersebut, terbukti bahwa query berhasil


Untuk menampilkan table yang telah dibuat yaitu dengan melakukan query:
DESC namatabel;
Atau
SELECT * FROM namatabel; 
Berikut adalah hasil dari query diatas (untuk menampilkan table)

Terlihat bahwa kolom alamat_idn hilang (efek dari query drop column tadi)
Soal no.4 Tambahkan kolom “pekerjaan_idn” dengan type data varchar dan tampilkan struktur tabel pegawai.
Untuk menjawab soal nomer 4yaitu untuk menambahkan kolom, kita masih tetap menggunakan alter (DDL)
Lakukan query berikut:
ALTER TABLE namatabel ADD COLUMN namakolom typedata (ket);
Jawaban dari soal nomer 4 adalah
ALTER TABLE pegawai add column pekerjaan_idn varchar (10);
Setelah melakukan query diatas, diperoleh hasil berikut: (success)

Lalu tampilkan stuktur datanya dengan melakukan query
DESC pegawai;

Nah, jadi ketambahan pekerjaan_idn. 

Soal no.5 Ubah nama tabel pegawai menjadi pekerjaNIM kemudian ubah nama kolom “pekerjaan_idn” menjadi “alamat_idn” dan tampilkan.
Untuk menjawab soal nomer 2, kita masih menggunakan alter (DDL)
Lakukan query berikut untuk merubah nama table
ALTER TABLE namatabel RENAME namatabel_baru;
Langsung saja, jawaban dari soal no.2 adalah
ALTER TABLE pegawai RENAME pekerja13650022;

Dan menampilkan table dengan melakukan query
DESC pegawai;
atau bisa hanya dengan menampilkan semua table, maka sudah keliatan kalo nama tabelnya udah berubah, yaitu dengan melakukan query
SHOW TABLES;


Soal no.6 berikan Primary key pada tabel pekerjaNIM dan ubah type data pada kolom “alamat_idn” menjadi text. Kemudian tampilkan struktur tabel.
Untuk menjawab soal nomer 6, maka kita masih saja (tetap) menggunakan alter (DDL)
Yaitu dengan melakukan query sebagai berikut:
ALTER TABLE namatabel ADD PRIMARY KEY (namakolom);
Yap, langsung gambarnya aja ya, disitu udah ada jawaban querynya dan success nggaknya.

Lalu soal yang kedua juga menggunakan alter (DDL)
Lakukan query untuk mengganti tipe data
ALTER TABLE namatabel MODIFY namakolom typedata;
Langsung saja jawabannya ada digambar di bawah ini, yang menunjukan bahwa query ok.

Yuk, kita tampilakan struktur tabelnya..
Bisa dilihat, tipe data dari pekerjaan_idn berubah jadi text

Soal no.7 Hapus tabel pekerjaNIM.

Untuk menjawab soal nomer 7, kita masih tetap menggunakan DDL (DROP)
Lakukan query berikut untuk menghapus table
DROP TABLE namatabel;
Jawabannya, langsung tengok ke gambar ya, querynya ok

Soal no. 8 Buat temporary tabel dengan nama mahasiswa_sementara dengan 3 kolom yaitu id, nama, tanggal lahir dan tampilkan tabel atau strukturnya.

Untuk menjawab soal nomer 8, masih tetep menggunakan DDL, kan masih pake CREATE, meskipun ada embel-embelan temporarynya.
Nah, apa arti temporary table itu? Temporary table itu table yang dibikin Cuma sementara aja. Jadi seumpama setelah kita bikin table, terus kita matiin laptop/komputernya, maka table itu cling!! Menghilang.
Untuk buat temporary table, kita lakukan query berikut:
CREATE TEMPORARY TABLE namatabelsementara (
Field1 typedata (ket),
Field2 typedata (ket),
..
);
Jawaban no.8 kita tulisakan sintaks berdasarkan sintaks diatas
CREATE TEMPORARY TABLE mahasiswa_sementara (
Id integer,
Nama varchar (10),
Tanggal_lahir date
);
Oke, query success
Tampilkan stuktur tabelnya


Soal no.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.
Untuk menjawab soal no.9 baru kita menggunakan DCL bukan BCL (bunga citra lestari) hehe
Dengan menggunakan grant dan revoke maka kita dapat memberikan atau memghapus semua hak akses table tertentu kepada salah satu user.
Untuk melakukan percobaan pada soal nomer 9, maka terlebih dahulu kita membuka jendela MySQL baru/cmd baru.
Nah, setelah udah kebuka, maka log in dengan user yang berbeda. 

Setelah itu, pada jendela cmd yang pertama, kita lakukan query untuk hak akses ke jendela cmd yang kedua.
GRANT ALL ON TABLE namatabel to userbaru;

Langsung dilihat di gambar berikut. Query OK
Maka pada jendela cmd dengan user baru, kita dapat mengakses table yang ada di user root.


Nah, untuk menghapus hak akses, kita dapat melakukan query sebagai berikut (querynya dilakukan dijendela MySQL yang pertama dengan user root):
REVOKE ALL ON TABLE namatabel FROM userbaru;

Nah, dapat kita cek di jendela baru milik user fitrifitri 

Terlihat error bahwa access denide (akses diingkari/ditiadakan)
Selesai, itu aja DCL nya 

Untuk soal 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.
Saya belum tahu gimana sintaksnya untuk inheritance pada MySQL, udah search dimana-mana, ga ada. Yaudah mungkin salah satu cara lain yaitu dengan menggabungkan kedua table tersebut. jadi awalnya kita membuat table baru dengan nama gaji. Tapi bisa di INNER JOIN menggunakan select.
Tapi saya juga belum paham gimana. Maaf, point ini belum bisa jawab dengan MySQL, kalo dengan SQL shell, saya bisa menjawabnya. Jadi jawabannya tidak saya terakan. Karna memang salah. 

EVALUASI PERBEDAAN ANTARA POSTGRESQL DAN MYSQL
Perintah
PostgreSQL
MySQL
Untuk membuat tabel
Create table identitas13650022 (id_idn integer not null, nama_idn varchar (10));
Create table identitas13650022(
Id_idn integer not null,
Nama_idn varchar (10));
Menampilakan struktur table
\d identitas13650022
DESC identitas13650022;
Menampilakan seluruh table yang ada dalam database
\z
Show tables;
Menghapus kolom
Alter table identitas13650022 drop column nama_idn;
Alter table identitas13650022 drop clumn nama_idn;
Menambah kolom
Alter table identitas13650022 add column alamat_idn varchar (10);
Alter table identitas13650022 add column alamat_idn varchar(10);
Mengubah nama tabel
Alter table pegawai rename to pekerja13650022;
Alter table pegawai rename pekerja13650022;
Mengubah nama kolom
Alter table pekerja13650022 rename column  alamat_idn to pekerjaan_idn;
Alter table pekerja13650022 rename column  alamat_idn pekerjaan_idn;
Mengubah type dari kolom tertentu
Alter table pekerja13650022 alter column pekerjaan_idn type text;
Alter table pekerja13650022 modify pekerjaan_idn text;
Menambahkan primary key pada tabel
Alter table pekerja13650022 add primary key (id_idn);
Alter table pekerja13650022 add primary key (id_idn);
Membuat temporary tabel
Create temporary table mahasiswa_semetara (id integer not null  , nama varchar (10));
Create temporary table mahasiswa_semetara (id integer not null  , nama varchar (10));
Menghapus tabel
Drop table pekerja13650022;
Drop table pekerja13650022;
Penggunaan GRANT untuk semua hak akses
Grant all on table pegawai to fitrifitri;
Grant all on table pegawai to fitrifitri;
Penggunaan REVOKE untuk semua hak akses
Revoke all on table pegawai from fitrifitri;
Revoke all on table pegawai from fitrifitri;
Membuat table inheritance
Create temporary table gaji (gaji_bersih integer not null , pajak integer not null, gaji_bersih integer not null) inherits (identitas13650022);
-

Demikian hasil praktikum tanggal 24 september 2014, yang saya selesaikan laporannya tanggal 27 September 2014. Dan baru bisa di posting tanggal 28 september 2014.
Lalu, ada yang ketinggalan.
Tugas ke dua, mengenai ERD yang dibuat minggu lalu.
Saya repost gambar ERDnya (juga ada revisi terkait ERD yang saya upload pada laporan praktikum lalu)
Judul ERD : Perpustakaan umum di kota Probolinggo


Nah, kemudian kita dituugaskan untuk membuat table dengan MySQL.
Pertama-tama, pastilah kita bikin database baru atau menggunakan database yang ada khusus untuk pembuatan database tugas rumah ini, yang berisikan banyak table karna mengingat banyaknya entitas juga. Jadi berikut ada database yang saya gunakan 

Setelah itu kita melakukan query untuk membuat entitas pertama, yaitu bikin table pegawai
1.      TABEL PEGAWAI

Gambar 1.1 tabel pegawai (tanpa primary key)
Seharusnya pada kolom id_pegawai dan user name nya, dibuat primary key. Jadi memiliki data yang unik. Maka lakukan query berikut untuk menambahkan primary key kepada kedua kolom

Gambar 1.2 tabel pegawai (dengan primary key)
Lalu kita bisa cek di PHP MyAdmin, apa table yang sudah kita buat masuk di server-localhost-database-fitri
Nah, ini struktur tabelnya


Gambar 1.3 struktur table pegawai
Setealah itu kita bikin table untuk entitas selanjutnya yaitu
2.      TABEL ANGGOTA

Berikut adalah querynya 

Gambar 2.1 Tabel anggota (tanpa primary key)
Hehe, seharusnya bisa langsung ngasih primary key di query pertama, tapi mesti kelupaan, jadi pemborosan gambar nih, maaf


Gambar  2.2 Tabel anggota (dengan primary key)
Berikut adalah struktur table yang dapat kita lihat di PHP MyAdmin
Tabel berikutnya ialah 

3.      TABEL BUKU
Berikut adalah sintaksnya

Gambar 3.1 Tabel buku dengan primary key (sintaks)
Lalu Berikut adalah struktur tabelnya di PHP MyAdmin

Gambar 3.2 Struktur table buku
Setelah itu kita beranjak ke table berikutnya..
4.      TABEL PEMINJAMAN
Berikut adalah syntax untuk membuat table peminjaman
Create table peminjaman (
Kode_pinjam integer not null,
Tanggal_pinjam date,
Tanggal_kembali date,
Id_anggota integer ,
Kode_buku integer
);

Gambar 4.1 tabel peminjaman
Berikut struktur table yang ada di PHP MyAdmin

Gambar 4.2 Struktur table pinjaman
Oiya, kita tambahkan primary key untuk kode buku
Alhamdulillah, akhirnya selesailah tugas 2


KESIMPULAN

Dengan melihat perbandingan sintaks 2 DBMS (MySQL dan postgreSQL),membuat dan memanajement sebuah tabel, tidaklah banyak perbedaan. Banyak dari syntaks antara kedua DBMS sama. Akan tetapi setelah saya search dan brows ke berbagai situs dan tutorial serta panduan MySQL tidak ada satupun yang menyinggung kata inheritance, Saya tidak tahu itu memang tidak ada atau beda pengertian.



Kritik dan saran

mungkin bisa ditambah keterangan bahwa sintaks suatu perintah hanya terdapat di postgresql atau sebaliknya, hehe

Manfaat
Semoga praktikum pertemuan ketiga ini dapat bermanfaat dan menjadi titik dasar kemampuan setiap mahasiswa dalam mengembangkan kreatifitas dan pengetahuannya dalam membangun sebuah system informasi

DAFTAR PUSTAKA

http://www.eplusgo.com/mysql/ddl-dml-dcl/
http://mysql.phi-integration.com/sql/apa-itu-dml-ddl
http://www.w3schools.com/sql

modul praktikum desain basis data 2014.pdf
Praktikum dbd BAB II.pdf


fitri

Tidak ada komentar:

Posting Komentar

Pengunjung

Instagram