Modul Prakt Basis Data Iwan
Modul Prakt Basis Data Iwan
PROGRAM DIPLOMA III JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK - UNIVERSITAS PANCASILA
MODUL 1
MySQL merupakan salah satu DBMS yang bersifat freeware, sehingga menjadi popular dikalangan pengguna database. Selain karena Free MySQL juga merupakan DBMS yang relatif ringan dan mudah digunakan. Ada beberapa software yang bisa digunakan untuk menjalankan service MySQL, diantaranya WAMP, PhpTriad dan XAMPP. Namun XAMPP merupakan yang paling popular saat ini karena masih terus dilakukan update pada software nya.
XAMPP merupakan program paket yang didalamnya terdapat beberapa software yang digabungkan menjadi satu. Dalam XAMPP sendiri didalamnya terdapat 5 software yang berbeda (MySql, Apache, FileZilla,Mercury, Tomcat). Jadi ketika menginstall XAMPP kita tidak perlu lagi menginstall Apache dan MySQL secara terpisah.
Iwa nS
software XAMPP bisa
onja
didownload
ya
gratis di
PENGENALAN MYSQL
situ
resminya
adalah direktori tempat meletakan hasil installan. Contoh hasil setelah diinstal :
Iwan Sonjaya,ST.MT.
Hal. 1
2. Direktori MySQL
Semua proses yang berjalan untuk bekerja dalam MySQL terdapat dalam direktori mysql. Ada beberapa direktori yang perlu diketahui dalam direltori mysql :
a. Bin
Direktori bin berisi service-service yang bisa dijalankan untuk mengakses mysql.
3. Menggunakan MySQL
Iwan Sonjaya,ST.MT.
Iwa nS
a. Nyalakan (START) Service MySQL
b. Data
onja
ya
Direktori mysql
Hal. 2
b. Masuk kedalam MySQL melalui CMD Masuk kedalam direktori mysql\bin dalamdirektori hasil installan
Contoh :
cd : c\xampp\xampp\mysql\bin\
onja
ya
atau
Hal. 3
xampp.
Iwan Sonjaya,ST.MT.
Iwa nS
mysql u root
1. SHOW
Berfungsi untuk melihat list/daftar dari database atau tabel yang sudah dibuat. a. Melihat daftar database
Untuk melihat daftar database yang sudah dibuat. Query : SHOW databases; b. Melihat daftar tabel
Untuk melihat daftar database yang ada digunakan fungsi show tables. Query : SHOW tables; 2. USE
Perintah USE digunakan untuk memilih database yang ingin digunakan. Query : USE nama_database; 3. Create
Berfungsi untuk membuat database atau tabel baru. a. Membuat database b. Membuat tabel
CREATE DATABASE nama_database;
4. Desc
Iwan Sonjaya,ST.MT.
Iwa nS
CREATE TABLE nama_tabel ( Field1 TipeData1, Field2 TipeData2, ); FieldN TipeDataN
onja
ya
Hal. 4
Latihan 1. Buat sebuah database mahasiswa. 2. Buat dua buah tabel siswa dan dosen di dalam database mahasiswa
CREATE TABLE siswa ( Nim int not null, Nama char(20), Wali int ); CREATE DATABASE mahasiswa;
CREATE TABLE wali ( Nip int not null, Nama char(20), Alamat char(50) );
2. Buat dua buah tabel pada database yang telah dibuat sebelumnya
Iwan Sonjaya,ST.MT.
Iwa nS
onja
Hal. 5
ya
1. Insert
ya
(nilaiField1,
2. Select
Digunakan untuk menampilkan isi tabel. Untuk menampilkan sebuah tabel ada beberapa kondisi yang bisa digunakan, antara lain : a. SELECT ALL
Kondisi ini digunakan untuk menampilkan semua record dan semua field nya dalam sebuah tabel.
Kondisi ini digunakan untuk menampilkan remua record yang ada, tetapi hanya field tertentu saja.
Kondisi ini digunakan untuk menampilkan isi dari record tertentu saja. WHERE bisa digunakan untuk SELECT ALL maupun SELECT FIELD. Query : SELECT (ALL/FIELD) FROM nama_tabel WHERE nama_field = value;
Latihan
1. Isikan data kedalam tabel siswa dan dosen yang telah dibuat sebelumnya a. Mengisi data pada tabel siswa
INSERT INTO siswa VALUES (123040203, WAWAN ADI, 19721201); INSERT INTO siswa VALUES (123040204, INDRA KUSUMA, 19721204); INSERT INTO siswa VALUES (123040205, DIANA FITRIA, 19721203); INSERT INTO siswa VALUES (123040206, BAYU PUTRA, 19721201); INSERT INTO siswa VALUES (123040207, ADRIANTI, 19721202); INSERT INTO siswa VALUES (123040208, AHMAD AFANDI, 19721204);
Iwan Sonjaya,ST.MT.
Iwa nS
onja
nilaiField2,
Hal. 6
2. Tampilkan isi data dari tabel siswa dan dosen a. Menampilkan isi tabel siswa
SELECT * FROM siswa;
e. Menampilkan nim dan wali dengan nim = 123040208 dari tabel siswa
SELECT nim, wali FROM siswa WHERE nim = 123040208;
Tugas
1. Tampilkan record dengan nim = 123040204 atau wali = 19721204. 2. Isikan data pada tabel yang telah dibuat pada tugas sebelumnya. 3. Tampilkan isi data pada tabel yang telah dibuat pada tugas sebelumnya.
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 7
MODUL 4 KONDISI
Kondisi yang dibentuk pada perintah-perintah SQL dapat dalam kriteria yang sifatnya pembandingan dengan menggunakan tanda = untuk mencari suatu record maupun tidak. Beberapa kondisi dalam SQL : 1. LIKE
Menampilkan isi record dengan menggunakan sebagian dari isi sebuah data. Secara fungsi LIKE berfungsi sama seperti WHERE (=).
Query : SELECT * FROM nama_tabel WHERE nama_field LIKE kondisi; Ada terdapat 3 kondisi di dalam like : a. %data%
Persen didepan dibelakang menunjukan bahwa record yang ingin ditampilkan adalah semua record yang mengandung data pada sebuah field. data bisa berada diawal,
b. %data
Persen didepan menunjukan bahwa record yang ingin ditampilkan adalah semua record yang mengandung data pada sebuah field dan data harus berada diawal. c. data%
Persen dibelakang menunjukan bahwa record yang ingin ditampilkan adalah semua record yang mengandung data pada sebuah field dan data harus berada akhir.
2. ORDER BY
Jika sebuat SELECT tidak memiliki ORDER BY, maka record akan ditampilkan sesuai dengan urutan penginputan datanya. ORDER BY memungkinkan menampilkan hasil SELECT sesuai dengan urutan yang diinginkan.
3. ASC/DESC Dalam mengurutkan terdapat dua kondisi : Mengurutkan data dengan terurut naik (ASCENDING) atau terurut menurun (DESCENDING).
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 8
Latihan Database : penjualan Tabel : pelanggan field kode nama alamat kota notelp tipe
kode 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
Query : SELECT * FROM pelanggan ORDER BY nama DESC; 2. Mengelompokan record berdasarkan tipe Query : SELECT * FROM pelanggan GROUP BY tipe; 3. Menampilkan record dengan memiliki data pada field nama = dewa
Iwan Sonjaya,ST.MT. Modul Praktikum Basis Data Hal. 9
Iwa nS
alamat JL KLEDOKAN NO 21 JL KAPAS N0 3 JL MERDEKA NO 14 JL PELANGI NO 2 JL MACAN NO 34 JL KELINCI NO 23 JL MELATI NO 12 JL MERPATI NP 26 JL DANAU TOBA NO 12 JL DANAU KERINCI NO 13 JL ELANG NO 32 JL TULIP NO 12 JL SEDAP MALAM N0 27 JL SRIWIJAYA NO 3 JL KAWI NO 12 JL AFFANDI N0 23
onja
kota JOMBANG BEKASI JAKARTA JAKARTA SURABAYA SURABAYA YOGYAKARTA YOGYAKARTA SEMARANG BEKASI JAKARTA JOMBANG SEMARANG MATARAM SURABAYA YOGYAKARTA
ya
notelp 08123456789 08123456788 08123456787 08123456786 08123456785 08123456784 08123456783 08123456782 08123456781 08123456799 08123456798 08123456797 08123456796 08123456795 08123456794 08123456793 tipe GOLD PREMIUM PREMIUM PREMIUM GOLD GOLD ECONOMY ECONOMY PREMIUM GOLD ECONOMY PREMIUM ECONOMY GOLD GOLD PREMIUM
isi datanya.
Query : SELECT * FROM pelanggan WHERE nama LIKE %dewa%; Tugas Gunakan fungsi LIKE :
3. Tampilkan record dengan nomor rumah 12, urutkan berdasarkan tipe desc. 4. Tampilkan record dengan kode 132, 134, 135, 137. Urutkan berdaskan nama asc. 5. Tampilkan record dengan kode 127, 128, 134. Urutkan berdasarkan alamat.
Iwan Sonjaya,ST.MT.
Iwa nS
Modul Praktikum Basis Data Hal. 10
onja
ya
1. Tampilkan record dengan kode 123 & 136. Urutkan berdasarkan alamat asc
1. UPDATE
Fungsi UPDATE digunakan untuk merubah isi data field dari sebuah record. Query : 2. DELETE
Fungsi DELETE digunakan untuk menghapus sebuah record dalam sebuah database. Query : DELETE nama_tabel WHERE nama_field = value 3. ALTER
Perintah ALTER berfungsi untuk mengubah struktur dari sebuah tabel. Bisa berarti menambahkan field baru, merubah field yang sudah ada, maupun menghapus field yang sudah ada. Query :
ALTER TABLE nama_tabel ADD new_field tipedata ALTER TABLE nama_tabel CHANGE field_lama field_baru tipedata ALTER TABLE nama_tabel DROP nama_field
4. DROP
Perintah DROP digunakan untuk menghapus struktur dalam database, termasuk menghapus database dan tabel. Query :
5. DESC
Perintah DESC digunakan untuk melihat struktur/metadata dari sebuah tabel. Query : DESC nama_table;
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 11
Field ID NAMA_BARANG JENIS_BARANG HARGA_BELI HARGA_JUAL STOK Isi tabel BARANG ID B01 B02 B03 B04 B05 B06 B07 B08 B09 B10
Mengubah stok baris pertama menjadi 15 Menghapus record pada baris pertama
UPDATE barang SET stok = 15 WHERE id = B01; DELETE FROM barang WHERE id = B01; Menambahkan sebuah kolom baru dengan nama DISTRIBUTOR bertipe CHAR ALTER TABLE barang ADD distributor char(15); Mengubah nama kolom DISTRIBUTOR menjadi PENYALUR bertipe CHAR ALTER TABLE barang CHANGE distributor penyalur char(15); Menghapus kolom PENYALUR ALTER TABLE barang DROP penyalur;
Iwan Sonjaya,ST.MT.
Iwa nS
NAMA_BARANG RINSO DAIA LIFEBUOY LIFEBUOY LUX DETTOL CITRA CITRA PANTENE PEPSODENT
JENIS_BARANG DETERGEN DETERGEN SABUN MANDI SHAMPOO SABUN MANDI SABUN MANDI BODY LOTION SABUN MANDI SHAMPOO PASTA GIGI
onja
ya
HARGA_BELI HARGA_JUAL STOK 10000 11000 10 9000 10000 20 2000 3000 30 12000 14000 20 2000 3000 12 3000 4000 15 12000 15000 16 2000 2500 25 16000 17000 30 9000 11000 19
Hal. 12
Tabel : barang
3. Ubah harga jual dan harga beli untuk SHAMPO PANTENE 4. Tambahkan sebuah kolom PRODUKSI bertipe CHAR 5. Ubah tipe data kolom PRODUKSI menjadi INT 6. Buat satu buah database : COBA_DROP
7. Buat satu buah tabel : COBA_DROP ( coba int) 8. Hapus tabel COBA_DROP
TUGAS
1. Lakukan UPDATE isi sebuah kolom pada sebuah record. 2. Lakukan UPDATE isi 2 buah kolom pada sebuah record.
4. Tambahkan satu buah kolom baru pada tabel yang sudah ada 5. Isikan data pada kolom yang dibuat pada no.4
6. Buat satu buah database dan satu buah tabel di dalamnya 7. Lakukan penghapusa tabel dan database yang sudah dibuat pada no.6
Iwan Sonjaya,ST.MT.
Iwa nS
onja
Hal. 13
ya
2. Ubah harga jual untuk LIFEBUOY jenis SABUN MANDI menjadi 4000
Fungsi merupakan suatu rutin khusus yg disediakan oleh MySQL untuk melakukan manipulasi suatu data. Bentuk Umum :
Argumen1, argumen2, ... Adalah argumen/ parameter yang dibutuhkan oleh fungsi. Fungsi digunakan sebagai bagian dari perintah select. SELECT fungsi(ekspresi) [FROM namatabel]; FROM namatabel tidak harus diisi.
CHAR(x,y,z,)
Menghasilkan nilai string berdasarkan kode ASCII yang dituliskan dalam parameternya. Contoh :
LENGTH(X)
CONCAT()
Iwan Sonjaya,ST.MT.
Iwa nS
Contoh :
onja
ya
Hal. 14
Menggabungkan beberapa string dalam parameter menjadi satu string. Jika ada NULL maka hasil dari CONCAT adalah NULL.
INSERT(X,Y,Z,J)
Menghasilkan string X yang telah diganti isinya dengan string J mulai dari posisi ke Y sebayak Z. Contoh :
INSTR(X,Y)
LOCATE(X,Y,Z)
LEFT(X,Y)
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 15
RIGHT(X,Y) Mengambil sejumlah Y karakter dari string X, mulai dari posisi paling akhir. Contoh :
MID(X,Y,Z)
LTRIM(X)
2. Fungsi Tanggal
yyyy mm dd
HH ii ss
Iwan Sonjaya,ST.MT.
Iwa nS
: Tahun : Bulan : Tanggal : Jam : Menit : Detik
Modul Praktikum Basis Data Hal. 16
onja
Contoh :
ya
CURDATE()
Contoh :
CURTIME()
CURRENT_TIMESTAMP() / NOW()
Iwan Sonjaya,ST.MT.
Iwa nS
Modul Praktikum Basis Data Hal. 17
onja
ya
DATE_FORMAT(x, SimbolFormat) Memgkonversi data tanggal sesuai dengan format yang diinginkan. Contoh :
DAY_NAME(X)
Menampilkan nama hari dari tanggal yang menjadi argumen dalam X. Contoh :
DAYOFMONTH(DATE)
MONTH(DATE)
YEAR(DATE)
HOUR(TIME)
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 18
MINUTE(TIME) Menghasilkan bagian menit dari waktu yang menjadi argumen. Contoh :
SECOND(TIME)
Mendapatkan nilai total dari suatu kolom dalam sebuah tabel atau ekspresi.
AVG (nama_field)
Untuk mendapatkan nilai rata-rata sebuah kolom pada tabel atau ekspresi.
MAX (nama_field)
Untuk mendapatkan nilai maksimum dari sebuah kolom dalam tabel atau ekspresi.
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 19
MIN (nama_field) Untuk mendapatkan nilai minimum sebuah kolom pada tabel atau ekspresi.
COUNT (X)
4. Fungsi Aritmatika
Untuk melakukan pembagian dua buah data numerik. Pembagian Sisa (%)
Untuk mendapatkan sisa pembagian dari suatu operasi pembagian bilangan numerik. CONTOH :
Iwan Sonjaya,ST.MT.
Iwa nS
onja
Hal. 20
ya
Menampilkan info data terakhir yang digenerate oleh MySQL pada kolom bertipe AUTO INCREMENT (AI). SESSION_USER
LATIHAN
1. Tampilkan string "Praktikum Pemrograman" yang telah diubah menjadi string "Prakt Pemrog".
3. Tampilkan posisi string "stmik" dalam string "Nama kampus stmik Bumigora". 4. Tampilkan Tanggal dan Waktu dengan format sbb : nm_hari, bln tgl thn jam:menit:detik AM/PM
6. Tampilkan string "Sistem" dalam string "Sistem Basis Data" 7. Dari tabel barang yang sudah dibuat pada tugas sebelumnya, tampilkan jumlah stok yang paling sedikit (gunakan fungsi)
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 21
Dalam basis data relasional dimungkinkan untuk mengakses satu atau lebih tabel dalam waktu yang bersamaan. Penggunaan dua tabel atau lebih dalam satu buah baris query biasa disebut dengan JOIN. Query :
SELECT <key.tabel1> = <key.tabel2>
Tabel : MAHASISWA, DOSEN Tabel MAHASISWA Field NIM NAMA ALAMAT IPK ID_DOSEN
NIM 123070201 123070202 123070203 123070204 123070205 123070206 123070207 123070208 123070209 123070210
Iwa nS
NAMA LALU HERMAN KURNIAWAN INDRA KUSUMA KARMAN MAULANA RIZAD RAHMAN WAWAN ADI PUTRA M TAUFIK HIDAYAT FITRIADI BUDIMAN IDA KUSUMAWATI HIDAYAT NUGRAHA
onja
ALAMAT JL MAWAR NO 11 JL AFFANDI NO 12 JL DEMANGAN NO 4 JL BABARSARI NO 23 JL KAPAS NO 8 JL KLEDOKAN NO 2 JL TAMBAKBAYAN NO 3 JL MERPATI NO 24 JL BANTUL NO 15 JL PASIFIK NO 6 IPK 3.01 2.75 2.83 2.91 2.5 3.21 3.11 3.41 3.32 2.85
<tabel1.field1>,<tabel2.field2>
ya
FROM <tabel1>,
<tabel2>
WHERE
ID_DOSEN 12346 12344 12345 12343 12344 12341 12341 12344 12343 12346
Iwan Sonjaya,ST.MT.
Hal. 22
Menampilkan isi tabel DOSEN dan MAHASISWA yang memiliki ID_DOSEN yang sama.
SELECT b.nim, b.nama, a.id_dosen, a.nama FROM dosen a, mahasiswa b WHERE
Menampilkan isi tabel DOSEN dan MAHASISWA yang memiliki ID_DOSEN yang sama = 12344.
SELECT b.nim, b.nama, a.id_dosen, a.nama, FROM dosen a, mahasiswa b WHERE a.id_dosen = b.id_dosen AND a.id_dosen = 12344;
Iwan Sonjaya,ST.MT.
Iwa nS
a.id_dosen = b.id_dosen;
onja
NAMA HERRY SOFIAN, M.KOM HERU CAHYA, MT PAULUS INSAP, Phd NOVRIDO, MT AGUS SASMITO, ST
ya
JABATAN LEKTOR ASS AHLI LEKTOR LEKTOR ASS AHLI
Hal. 23
saling berhubungan. Untuk mendapatkan data dari beberapa tabel tersebut dapat digunakan perintah join pada perintah SQL. Gambaran hasil join :
1. INNER JOIN
Inner join merupakan jenis join yang paling umum yang dapat digunakan pada semua
letak relasinya setelah pada perintah ON pada join. Hasil dari inner join adalah gabungan kedua tabel yang memiliki data join yang sama. Query :
2. OUTER JOIN
Outer join merupakan join yang sedikit berbeda dengan inner join. Outer join akan menghasilkan record-record yang ada baik ada pasangan nya pada tabel lain atau tidak. Outer join dibedakan menjadi 2 jenis, yaitu : a. Left Outer Join
Left join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set A, terlepas dari apakah nilai kunci ada dalam data set B. Query :
Iwa nS
database. Jenis ini dapat digunakan bila ingin merelasikan dua set data yang ada di tabel,
onja
ya
Di dalam database, ada kalanya kita membutuhkan data dari beberapa tabel yang
Right join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set B, terlepas dari apakah nilai kunci ada dalam data set A. Query :
Latihan
SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a INNER JOIN dosen b ON a.id_dosen = b.id_dosen;
Iwan Sonjaya,ST.MT.
Iwa nS
Modul Praktikum Basis Data Hal. 25
onja
ya
1. Cross Join
Cross join kadangkala disebut juga sebagai Cartesian Product. Bila menggunakan cross join, maka hasil dari cross join akan menciptakan hasil yang didasarkan pada semua kemungkinan kombinasi baris dalam kedua set data. Dengan demikian, jumlah baris yang dikembalikan adalah N M , dimana N adalah jumlah baris dalam kumpulan data A dan M jumlah baris dalam kumpulan data B. Jelas, jumlah baris dalam cross join dapat menjadi sampah. Query :
2. Union Join
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat menyederhanakan perintah persyaratan OR yang bertingkat. Bila dalam sebuah query menghasilkan pemakaian perintah OR yang lebih dari satu sehingga dapat membuat bingung, sebagai gantinya digunakan perintah UNION. Union dapat dikatakan sebagai perintah untuk menggabungkan hasil query sql yang fungsinya sama dengan perintah OR. Query :
(SELECT <tabel1.field1>,<tabel2.field2> FROM <tabel1> JOIN <tabel2> ON <key.tabel1> = <key.tabel2> WHERE key1 = Value1) UNION (SELECT <tabel1.field1>,<tabel2.field2> FROM <tabel1> JOIN <tabel2> ON <key.tabel1> = <key.tabel2> WHERE key2 = Value2)
Iwan Sonjaya,ST.MT.
Iwa nS
onja
ya
Hal. 26
Latihan Menampilkan tabel mahasiswa dan dosen dengan menggunakan CROSS JOIN
SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a CROSS JOIN dosen b
Menampilkan tabel mahasiswa dan dosen dengan menggunakan UNION JOIN Cara 1:
SELECT dosen a.nama, b ON a.id_dosen, a.id_dosen = b.id_dosen, b.nama FROM mahasiswa a JOIN OR
b.id_dosen
a.id_dosen ='12343';
UNION :
(SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a JOIN dosen b ON a.id_dosen = b.id_dosen WHERE a.id_dosen='12341') dosen b ON a.id_dosen = b.id_dosen WHERE a.id_dosen='12343'); UNION (SELECT a.nama, a.id_dosen, b.id_dosen, b.nama FROM mahasiswa a JOIN
Iwan Sonjaya,ST.MT.
Iwa nS
Modul Praktikum Basis Data Hal. 27
onja
ya
WHERE
a.id_dosen='12341'