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.
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
|
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)
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
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







































Tidak ada komentar:
Posting Komentar