490 likes | 629 Views
Databases. Pertemuan 3. TIB13 – Pemrograman Java 2 - 3. Materi. Database Basics SQL Scripts untuk DDL dan DML Operasi CRUD Operasi antar tabel. Tujuan Instruksional Khusus. Mahasiswa dapat merancang database sederhana sesuai kasus masing-masing kelompok.
E N D
Databases Pertemuan 3 TIB13 – Pemrograman Java 2 - 3
Materi • Database Basics • SQL Scripts untuk DDL dan DML • Operasi CRUD • Operasi antar tabel
Tujuan Instruksional Khusus • Mahasiswadapatmerancang database sederhanasesuaikasusmasing-masingkelompok
Database Basics • Database adalah suatu kumpulan data yang saling berhubungan yang diorganisasi sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan mudah dan disimpan dalam media penyimpanan tertentu. • Database dapat dianggap sebagai suatu tempat untuk sekumpulan berkas data terkomputerisasi . • Maksud dari database adalah untuk menyimpan semua data yang diinginkan dalam satu lokasi, sehingga pencarian data menjadi lebih mudah dan redundant dapat tereliminasi
Database Basics • Akses Data mencakup pemerolehan data maupun pemanipulasian seperti menambah , mengubah , dan menghapus data. • Dalam implementasinya, data berbentuk tabel. Tabel merupakan obyek database yang memuat record (row/baris) dimana masing-masing record tersebut merupakan gabungan dari beberapa sifat data yang identik. • Nilai-nilai yang terkandung dalam sifat data tersebut disebut field.
Database Basics Field/Column Record
SQL Scripts untuk DDL dan DML • Structured Query Language (SQL) merupakan standar dalam pengaksesan database relasional. • Secara umum, SQL terbagi menjadi dua kategori pernyataan yaitu : • DDL (Data Definition Language) • DML (Data Manipulation Language).
Data Definition Language • DDL adalah perintah-perintah yang biasa digunakan untuk mendefinisikan skema ke DBMS. • Skema adalah deskripsi lengkap tentang struktur field, record dan hubungan data pada basis data. Tugas utama skema adalah menjabarkan struktur basis data kepada DBMS • Secara detail beberapa hal yang perlu dijabarkan pada DBMS adalah : nama database, nama record dan field-field, nama field kunci, nama indeks dan field yang menjadi indeks
DDL (lanjutan) • Indeksmerupakansuatumekanisme yang lazimdigunakanpada basis data, yang memungkinkanpengambilan data dapatdilakukandengancepat. • DDL jugadipakaiuntukmendefinisikansubskema. Subskemaadalahviewdari basis data. • Subskemamerupakanhimpunanbagiandariskema, dengankata lain, subskemabisamencakupsebagianatauseluruhskema. • Sebuah basis data hanyabisamempunyaisebuahskema, tetapibisamemilikibanyaksubskema, tergantungolehjumlahpengguna basis data.
Data Manipulation Language • DML adalah perintah-perintah yang digunakan untuk mengubah, memanipulasi data pada basis data. • Tindakan seperti menghapus, mengubah dan mengambil data menjadi bagian dari DML. • Secara khusus bagian DML ada yang disebut dengan DQL atau Query berarti pertanyaan atau permintaan.
Contoh Penggunaan DDL, DML dan DQL DDL – Menciptakan Database bernamadbPenggajian CREATE DATABASE dbPenggajian DML – Memilih Database Use dbPenggajian DDL – MenciptakantabeltLogin CREATE TABLE tLogin ( UserIDvarchar(10) NOT NULL, Password varchar(32) NOT NULL, PRIMARY KEY (UserID) ) ENGINE=MyISAM;
Contoh Penggunaan DDL, DML dan DQL (lanjutan) DML – Memasukan data ketabeltLogin INSERT INTO tlogin (`UserID`, `Password`) VALUES (‘moly', '1234'), (‘pegasus', ‘1235'), (‘mercury', ‘1236'); DQL – Menampilkanseluruh data daritabeltLogin SELECT * FROM tLogin; DDL – MenghapustabeltLogin DROP tLogin;
Operasi CRUD • CRUD merupakan singkatan dari Create Read Update Delete. • Operasi CRUD merupakan operasi yang total membutuhkan sebuah database.
Perintah Dasar MySQL • MengaksesMySQLpertama kali Untuk menjalankan MySQL pertama kali cukup dengan mengetikkan perintah MySQL pada Command Prompt sebagai berikut : C:\>mysql\bin>mysql –u root –h localhost ataujikamenggunakan XAMPP C:\>XAMPP\mysql\bin>mysql –u root –h localhost
Perintah Dasar MySQL (lanjutan) • Lokasi MySQL berada pada direktori C:\mysql\bin. Parameter mysql digunakan agar System Prompt berpindah ke MySQL Prompt, dan parameter -u (User) menunjuk kepada nama user yang akan login ke MySQL, parameter -h (Host) adalah menunjuk kepada mesin server yang menjalankan MySQL. Biasanya juga ditambahkan parameter -p (Password) adalah menunjuk kepada password dari user yang akan login, jika menggunakan password.
Perintah Dasar MySQL (lanjutan) • Setelah memasukan Nama User, dan Host tekan enter sehingga hasilnya sebagai berikut : Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 27 Server version: 5.1.30-community MySQL Community Server (GPL Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer. mysql>
Perintah Dasar MySQL (lanjutan) • MySQL menampilkan selamat datang dilengkapi dengan nomor urut koneksi ke server MySQL (Connection id is 27) dan versi MySQL yang digunakan (version : 5.1.30-community). • Sebagaitanda bahwa MySQL server dalam keadaan siap menjalankan tugasnya akan tampil MySQL Prompt yang ditandai dengan mysql>
Perintah Dasar MySQL (lanjutan) • Menampilkan Database menggunakanperintahSHOW Databases; Contoh : mysql> SHOW DATABASES; +-----------------------+ | Database | +-----------------------+ | information_schema | | mysql | | test | +-----------------------+ 3 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan) • PerintahShow Databases akanmenghasilkanataumenampilkandaftar database yang terdapatpada RDBMS MySQL • Baris ‘3 rows in set (0.00 sec)’ menampilkaninformasitentangjumlahbarisataujumlah database yang dihasilkanolehperintahMySQL (Show Databases), yang dilengkapidenganjumlahwaktudalamsatuandetik yang digunakanuntukmemprosesperintahMySQLtersebut.
Perintah Dasar MySQL (lanjutan) • Perintahuntukmembuat database baruadalah : Create Database Nama_Database; mysql> CREATE DATABASE dbMhs; Query OK, 1 row affected (0.02 sec)
Perintah Dasar MySQL (lanjutan) • Memilihataumenentukan database Untukmenentukanataumemilih database yang akandigunakan (contoh dbMhs) adalahdengancaramemberiperintah USE/CONNECT Nama_Database; mysql> USE dbMhs; Database changed Atau : mysql> CONNECT dbMhs; Connection id: 3 Current database: dbMhs
Perintah Dasar MySQL (lanjutan) • Perintahuntukmembuattabelbaruadalah Create Table Nama_Table; mysql> CREATE TABLE tMhs ( nimvarChar(12) Not Null, namavarChar(20) Not Null); Query OK, 0 rows affected (0.09 sec)
Perintah Dasar MySQL (lanjutan) • PadatabeltMhstersebutdibuat 2 field yang masing-masingfielddiikutiolehbeberapaatribut, berikutpenjelasanmasingmasing field : • nim adalah field yang menampung data-data nim mahasiswa dengan tipe data varchar dan lebar data sebanyak 12 digit maksimal. • nama adalah field yang menampung data-data nama mahasiswa dengan tipe data varchar dan lebar data sebanyak 20 digit.
Perintah Dasar MySQL (lanjutan) • Perintah untuk menampilkan struktur tabel ada dua macam yaitu : mysql> SHOW COLUMNS FROM tMhs; atau mysql> DESCRIBE tMhs; +------------+-------------+------+-----+---------+----------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------+ | nim | varchar(12) | | | | | | nama | varchar(20) | | | | | +------------+-------------+------+-----+---------+----------+ 2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan) • Perintahmengisi data Pada MySQL terdapat beberapa cara mengisi data ke dalam table antara lain sebagai berikut : INSERT INTO Nama_Tabel Set Kolom1 = ‘Data_Kolom1’, Kolom2 = ‘Data_Kolom2’; mysql> INSERT INTO tMhs Set nim = ‘2005-12-001’, nama = ‘Prasti’; Query OK, 1 row affected (0.00 sec)
Perintah Dasar MySQL (lanjutan) • Perintahmengisi data Berikutadalahcara lain dalammemasukan data kedalamsuatu table : mysql> INSERT INTO tMhs VALUES(‘2002-12-003’,’Jeniffer’); Query OK, 1 row affected (0.00 sec)
Perintah Dasar MySQL (lanjutan) • Menampilkan Data Data yang kita masukan ke dalam tabel dapat di tampilkan menggunakan perintah sebagai berikut : SELECT * FROM Nama_Tabel; mysql> SELECT * FROM tMhs; +---------------+---------------+ | nim | nama | +---------------+---------------+ | 2002-12-001 | Prasti | | 2002-12-003 | Jeniffer | +---------------+---------------+ 2 row in set (0.02 sec)
Perintah Dasar MySQL (lanjutan) • MengubahStrukturTabel Kadang-kadangdalampembuatansuatu table adafield-fieldmasihkurangsehinggaperluadanyapenambahansatuataulebih field dalamsebuah table. Untukitutidakperlumembuat table baru, karenaMySQLtelahmenyedia-kanperintahuntukmenambahataumenyisipkan field diantara field-field yang telahadapadasuatu table.
Perintah Dasar MySQL (lanjutan) mysql> ALTER TABLE tMhs --> Add jurusan varChar(15) Not Null; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> DESCRIBE tMhs; +------------+-------------+------+-----+---------+----------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------+ | nim | varchar(12) | | | | | | nama | varchar(20) | | | | | | jurusan | varchar(12) | | | | | +------------+-------------+------+-----+---------+----------+ 3 rows in set (0.02 sec)
Perintah Dasar MySQL (lanjutan) • Secara default setiap field yang baruditambahkanakanmenempatiposisiterakhirsepertipadacontohdiatas. Jika Anda ingin menempatkan diantara field yang ada misalnya field harus berada pada urutan ke 3 maka tambahkan perintah AFTER kemudian nama field sebelumnya. mysql> ALTER TABLE tMhs Add fakultasvarChar(20) Not Null AFTER nim; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> DESCRIBE tMhs;
Perintah Dasar MySQL (lanjutan) • Sebaliknya jika field-field yang Anda buat ternyata tidak berguna semuanya sehingga harus dihilangkan dari struktur table maka perintahnya adalah sebagai berikut : mysql> ALTER TABLE tMhs DROP fakultas; Query OK, 1 row affected (0.05 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> DESCRIBE tMhs;
Perintah Dasar MySQL (lanjutan) • Mengubah Data User bisasajasalahdalammenginputkan data kedalam table, sehinggaperluadanyapengubahan data dalam field-field tertentu. Atau ada field baru ditambahkan ke dalam table sehingga datanya harus dimasukkan. Untuk keperluan ini MySQL telah menyediakan perintah sebagai berikut : UPDATE Nama_Tabel SET Kolom = ‘Pengubahan_Data’ WHERE kriteria;
Perintah Dasar MySQL (lanjutan) • Mengubah Data Contoh : mysql> UPDATE tMhs Set nim = ‘2002-12-002’ WHERE nama = ‘Prasti’; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 Untukmelihathasilpengubahanketikanperintahberikut : mysql> Select * FROM tMhs;
Perintah Dasar MySQL (lanjutan) • Menampilkan data dengan kriteria tertentu dapat dilakukan dengan menambahkan perintah WHERE. mysql> SELECT * FROM tMhs WHERE nama = ’Prasti’; • Menampilkan data pada kolom tertentu. Kadang-kadang kita hanya membutuhkan data-data tertentu saja tanpa harus menampilkan semua isi data pada setiap kolom(field). Adapunperintahnyaadalah Select Kolom1, Kolom2 From Nama_Tabel;
Perintah Dasar MySQL (lanjutan) • Adapunperintahnyaadalah : Select Kolom1, Kolom2 From Nama_Tabel; Contoh : mysql> SELECT nim, nama FROM tMhs; +---------------+--------------+ | nim | nama | +---------------+--------------+ | 2002-12-002 | Prasti | | 2002-12-003 | Jeniffer | +---------------+--------------+ 2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan) • Menampilkan data secaraberurutan. Bilakitainginmenampilkan data secaraberurutcukupdenganmenambahkanperintah ORDER BY sehingggapenulisanperintahnyaadalahsebagaiberikut : SELECT * FROM Nama_Tabel ORDER BY Kolom_Yang_Akan_DiurutJenis_Pengurutan
Perintah Dasar MySQL (lanjutan) • JenispengurutanadaduayaituAscending (urutnaik) danDescending (urutturun). ContohdibawahinimenggunakanjenispengurutanAscending, perhatikannamaberurutnaik (alphabet) sedangkanpadakolomnimmenjaditidakberurutankarena yang diurutkanadalahkolomnama. mysql> SELECT * FROM tMhs ORDER BY nama ASC; +-------------+------------+ | nim | nama | +-------------+------------+ | 2002-12-003 | Jeniffer | | 2002-12-002 | Prasti | +-------------+------------+ 2 rows in set (0.00 sec)
Perintah Dasar MySQL (lanjutan) • Perintahuntukmenghapus data adalah : DELETE FROM Nama_Tabel WHERE KRITERIA mysql> DELETE FROM tMhs WHERE nama = ‘Prasti’; Query OK, 1 row affected (0.03 sec) Catatan : MySQL tidak akan menanyakan konfirmasi ulang kepada Anda untuk menghapus atau membatalkan penghapusan data. Untuk itu pastikan bahwa data yang akan dihapus adalah data yang tepat. Sebab data yang telah dihapus tidak dapat dikembalikan dengan cara apapun (tidak ada perintah Undo atau Undelete seperti pada windows).
Perintah Dasar MySQL (lanjutan) • Menghapustabeldan Database Penghapusan tabel dan database dilakukan dengan perintah DROP ContohMenghapustabel : mysql> DROP TABLE tMhs; Query OK, 0 row affected (0.00 sec) ContohMenghapus database : mysql> DROP DATABASE dbMhs; Query OK, 0 row affected (0.01 sec)
Perintah Dasar MySQL (lanjutan) • KeluardariMySQL Untuk keluar dari MySQL kita dapat menggunakan salah satu dari perintah berikut ini : 1. mysql> Quit Bye 2. mysql> Exit Bye 3. mysql> \q Bye
Operasi antar tabel • Pada kenyataannya bahwa pembuatan sebuah system pasti tidak menggunakan satu table saja. Tentu ada operasi antar table disana. • Hal ini memungkinkan untuk menampilkan data dari beberapa table dalam satu tampilan sekaligus. • Penggabungan antar table ini disebut dengan JOIN, sedangkan hubungan antar table disebut dengan RELASI. • Dalam melakukan relasi antar table, maka perlu adanya join key yang nantinya akan menentukan record antar table dapat saling berhubungan.
Operasi antar tabel • Untukmemahamioperasiantartabel, makasiapkan database dengan 3 buahtabelsbb : • Nama database : dbPegawai • NamaTabel : • tInfoPrib • tBagian • tPekerjaan
Operasi antar tabel • Table tInfoPrib: CREATE TABLE tInfoPrib ( Nip VARCHAR( 5 ) NOT NULL , Nama VARCHAR( 25 ) NOT NULL , Kota VARCHAR( 15 ) NULL , TglLahir DATE NOT NULL , JK CHAR( 1 ) NOT NULL , PRIMARY KEY ( Nip ) );
Operasi antar tabel • Table tBagian : CREATE TABLE tBagian ( KodeBag CHAR( 1 ) NOT NULL , NamaBag CHAR( 15 ) NOT NULL , UNIQUE ( NamaBag ) );
Operasi antar tabel • Table tPekerjaan : CREATE TABLE tPekerjaan ( Nip VARCHAR( 5 ) NOT NULL , KodeBag CHAR( 1 ) NOT NULL , Gaji INT NOT NULL , PRIMARY KEY ( Nip ) );
Operasi antar tabel mysql> Select tInfoprib.nip, tInfoprib.nama, tpekerjaan.gaji -> From tInfoprib, tpekerjaan -> WHERE tInfoPrib.nip=tpekerjaan.nip; Hasil : +-------+------------------+---------+ | nip | nama | gaji | +-------+------------------+---------+ | 12345 | Dian Permana | 1200000 | | 12346 | Tamara Febrianti | 1000000 | | 12347 | Dara Permatasari | 1200000 | | 12348 | Dita Nurafni | 1200000 | | 12349 | Dhani Akbar | 1000000 | | 12350 | Aan Setiawan | 1000000 | | 12351 | Raul Sitompul | 1400000 | | 12352 | Rahmanda | 1000000 | | 12353 | Niken | 1000000 | +-------+------------------+---------+ 9 rows in set (0.00 sec)
Operasi antar tabel mysql> Select tPekerjaan.Nip, tBagian.NamaBag As Departemen -> From tPekerjaan, tBagian -> WHERE tpekerjaan.kodebag = tbagian.kodebag; Hasil : +-------+------------+ | Nip | Departemen | +-------+------------+ | 12345 | Produksi | | 12346 | Pemasaran | | 12347 | Akuntansi | | 12348 | SDM | | 12349 | Pemasaran | | 12350 | Produksi | | 12351 | Produksi | | 12352 | Pemasaran | | 12353 | Pemasaran | | 12354 | Pemasaran | +-------+------------+ 10 rows in set (0.05 sec)
Operasi antar tabel mysql> SELECT i.Nip, i.Nama, p.Gaji -> FROM tInfoprib i, tPekerjaan p -> WHERE i.nip=p.nip; Hasil : +-------+------------------+---------+ | Nip | Nama | Gaji | +-------+------------------+---------+ | 12345 | Dian Permana | 1200000 | | 12346 | Tamara Febrianti | 1000000 | | 12347 | Dara Permatasari | 1200000 | | 12348 | Dita Nurafni | 1200000 | | 12349 | Dhani Akbar | 1000000 | | 12350 | Aan Setiawan | 1000000 | | 12351 | Raul Sitompul | 1400000 | | 12352 | Rahmanda | 1000000 | | 12353 | Niken | 1000000 | +-------+------------------+---------+ 9 rows in set (0.00 sec)
Operasi antar tabel mysql> SELECT i.Nip, i.Nama, p.Gaji -> FROM tInfoprib i, tPekerjaan p -> WHERE i.nip=p.nip AND i.jk ='W'; Hasil : +-------+------------------+---------+ | Nip | Nama | Gaji | +-------+------------------+---------+ | 12346 | Tamara Febrianti | 1000000 | | 12347 | Dara Permatasari | 1200000 | | 12348 | Dita Nurafni | 1200000 | | 12352 | Rahmanda | 1000000 | | 12353 | Niken | 1000000 | +-------+------------------+---------+ 5 rows in set (0.00 sec)