Pages

Selasa, 07 Oktober 2014

Laporan Praktikum III : Perintah Dasar SQL


BAB I

Landasan Teori
Structure Query Language (SQL) merupakan bahasa yang ditetapkan oleh Americ National Standards Institute (ANSI) pada tahun 1986, 1989, 1992, dan 1999 dimana tiap tahun dilakukan peningkatan kemampuan SQL. SQL sendiri merupakan bahasa yang digunakan untuk mengakses dan memanipulasi data pada Database Relational.
Pada perkembangan saat ini standar yang paling banyak digunakan adalah standar ANSI 92. Hampir semua DBMS menggunakan SQL sebagai fasilitas untuk memanipulasi data seperti Oracle, SQLServer, MySQL, PostgreSQL, SQLyog, dan
lain-lain. Setiap software RDMS menerapkan bahasa SQL sebagai bahasa standar dengan pengembangan atau penyederhanaan perintah-perintah yang non-standard.
Meskipun awalnya hanya merupakan bahasa untuk memanipulasi data, pada perkembangannya SQL juga dapat digunakan untuk melakukan definisi data maupun control (security) terhadap data.

Beberapa Fungsi Perintah dalam SQL
1. Query
Perintah yang digunakan untuk menampilkan data dari database, perintah yang digunakan adalah SELECT.

2. DML (Data Manipulation Language)
Perintah yang digunakan untuk memanipulasi data seperti menambah, mengedit, dan menghapus data. Perintah yang digunakan INSERT, DELETE, UPDATE, MERGE

3. DDL (Data Definition Language)
Perintah yang digunakan untk mendefinisikan struktur objek database seperti membuat tabel, mengubah struktur tabel, menghapus tabel. Perintah yang digunakan CREATE, ALTER, DROP, TRUNCATE, RENAME

4. DCL (Data Control Language)
Perintah yang digunakan untuk menentukan suatu transaksi diterapkan secara permanen atau dibatalkan. Perintah yang digunakan COMMIT, ROLLBACK, SAVEPOINT

Aturan Penulisan Perintah SQL

1. Perintah dapat ditulis dalam huruf besar maupun kecil.
2. Setiap perintah diakhiri dengan tanda titik koma (;)
3. Perintah dapat ditulis satu atau beberapa baris untuk memberikan komentar pada perintah SQL. Gunakan tanda minus (- -) untuk komentar 1 baris, atau diantara tanda (\*) untuk komentar beberapa baris.

Perintah Dasar SQL Serta Fungsinya.
1. Perintah SELECT
Berfungsi untuk menampilkan data dari tabel, sintak dasarnya seperti berikut :
SELECT namakolom, namakolom,… FROM namatabel WHERE kriteria;

Contoh :
a) SELECT nim,nama,ruang FROM mahasiswa;
b) SELECT * FROM mahasiswa;
c) SELECT nim,nama,ruang FROM mahasiswa WHERE ruang = ‘B315’;

Keterangan :
Perintah WHERE merupakan Optional tidak harus disertakan seperti SELECT dan FROM.
Contoh ‘a’ menampilkan semua informasi nim,nama,ruang dari data mahasiswa.
Contoh ‘b’ menampilkan semua data mahasiswa.
Contoh ‘c’ menampilkan semua informasi nim,nama,ruang dari data mahasiswa ruang B315.

2. Perintah INSERT
Berfungsi untuk menambah informasi/data baru kedalam tabel. Sintak dasarnya seperti berikut :
INSERT INTO namatabel (kolom) VALUES (value); Contoh :
INSERT INTO mahasiswa (nim,nama,ruang) VALUES (‘13650034’,’AFAF DWI,’B315’); atau
INSERT INTO mahasiswa VALUES (13650034’,’AFAF DWI,’B315’));

3. Perintah DELETE
Berfungsi untuk menghapus informasi/data pada tabel. Sintaknya sebagai berikut :
DELETE FROM namatabel WHERE keriteria;
Contoh : DELETE FROM mahasiswa WHERE nama = ‘AFAF DWI’;
Keterangan : Menghapus data mahasiswa yang memiliki nama “AFAF DWI”

4. Perintah UPDATE
Berfungsi untuk memperbaiki informasi/data pada tabel. Sintaknya sebagai berikut:
UPDATE namatabel SET namakolom = value WHERE keriteria;
Contoh : UPDATE siswa SET nama=’PUTRA’ WHERE nim=’13650099’;
Keterangan : Mengganti nama menjadi “PUTRA” untuk siswa yang mempunyaI nim “13650099”

Hubungan Antar Tabel (Reference)
Dalam hal hubungan antar tabel, ada beberapa syarat yang harus terpenuhi seperti, antara tabel yang ingin dihubungkan harus memiliki sebuah field atau kolom dengan tipe data yang sama. Dengan kata lain ada tabel yang memiliki primary key sebagai kunci untuk menghubungkan ke tabel yang lain dimana terdapat field yang mempunyai tipe data yang sama dengan kata lain yang disebut foreign key. Misalnya, terdapat tabel barang dan macam_barang. Berikut query kedua tabel tersebut :
CREATE TABLE macam_barang (id_mac integer not null, nama_mac varchar(15), guna_mac varchar(40), primary key (id_mac));
CREATE TABLE barang (id_bar integer not null, nama_bar varchar(15), id_mac integer not null references macam_barang, primary key (id_bar, id_mac));

Atau ketika kita lupa memberikan references pada tabel macam barang kita dapat memberikan query sebagai berikut :

ALTER TABLE barang ADD constraint relasi_barang foreign key (id_mac) references macam_barang (id_mac) on update no action on delete no action;

Contoh Hubungan antar Tabel


Memasukkan Data ke Tabel
Sebuah data dapat dimasukkan ke dalam tabel menggunakan perintah INSERT. Namun hal yang perlu diperhatikan yaitu struktur tabel yang akan digunakan untuk memasukkan data. Sebagai contoh memasukkan data ke dalam tabel dengan nama identitas :


INSERT INTO identitas VALUES (1, ’wahyu’ , ’1992-07-23’ , false , ’programer’);

Berikut penjelasan :
- Kolom pertama berisikan (1), karena tipe datanya adalah integer maka tanda petik tidak digunakan.
- Kolom kedua („wahyu‟) dan kelima („programer‟), karena tipe datanya varchar maka tanda petik diperlukan, bila tanpa ada tanda petik maka dianggap salah.
- Kolom ketiga (‟1992-07-23‟), tipe data Date dianggap sebagai sebuah string sehingga harus menggunakan tanda petik.
- Kolom keempat (false), tipe data kolom ini Boolean yang hanya mengijinkan inputan true atau false dan tidak perlu tanda petik.

Menampilkan Data
Dalam database, perintah SQL untuk menampilkan data sebuah tabel bisa menggunakan SELECT. Berikut struktur SQL untuk penampilan data berdasarkan kolom tertentu :
SELECT nama_kolom FROM nama_tabel;
Kemudian, bila ingin menampilkan berdasarkan baris tertentu bisa menggunakan perintah WHERE yang diletakkan dibelakang nama tabel dan isikan nama kolom beserta kata kunci sebagai dasar atau syarat dari pencarian baris. Untuk lebih jelasnya berikut struktur perintah SQL nya :
SELECT nama_kolom FROM nama_tabel WHERE nama_kolom = kata kunci;
atau
SELECT * FROM nama_tabel WHERE nama_kolom = kata kunci;

Apabila ingin menampilkan data dari lebih dari satu tabel, struktur SQL nya terdapat sedikit perbedaan. Misalnya memakai tabel yang telah dibuat pada praktikum ke- 2 yaitu mahasiswa dan fakultas (Dengan syarat adanya relasi antara kedua tabel tersebut). Berikut Struktur SQL nya :
SELECT nama_kolom, nama_kolom, nama_kolom, nama_kolom FROM nama_tabel_1, nama_tabel_2 WHERE nama_tabel_1.nama_kolom = nama_tabel_2.nama_kolom;

Menghapus Data
Pada database PostgreSQL, DELETE digunakan untuk menghapus data pada sebuah tabel. Berikut Struktur yang digunakan :
DELETE FROM namatabel ;

Arti dari struktur diatas yaitu menghapus semua baris data dari nama tabel yang tertulis. Namun bisa juga digunakan penghapusan berdasarkan spesifikasi baris atau baris tertentu saja. Berikut Strukturnya :
delete from nama tabel where namakolom = katakunci;

Modifikasi Data
Dalam memodifikasi database bisa menggunakan perintah UPDATE. Berikut contoh struktur SQL untuk memodifikasi data pada kolom tertentu berdasarkan baris tertentu :
UPDATE namatabel SET namakolom = isidata WHERE namakolom = katakunci;

Pengurutan Data
Maksud dari pengurutan data dengan perintah ORDER BY adalah jika data sebuah tabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari atas ke bawah berdasarkan abjad. Hal ini juga berlaku jika data yang ada dalam bentuk angka. Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom :
SELECT * FROM nama_tabel ORDER BY nama_kolom;

Berikut struktur perintah SQL untuk pengurutan berdasarkan kolom secara descending:
SELECT * FROM nama_tabel OEDER BY nama_kolom DESC;

Berikut struktur perintah SQL untuk pengurutan berdasarkan beberapa kolom :
SELECT * FROM nama_tabel ORDER BY nama_kolom ASC, nama_kolom DESC;

Berikut struktur perintah SQL untuk pengurutan berdasarkan nomor kolom :
SELECT * FROM nama_tabel OEDER BY nomor_kolom DESC;

*catatan : nomor_kolom dimulai dari kiri, misal terdapat kolom nim, nama. Maka jika ingin mengurutkan berdasarkan nama kita perlu mengganti nomor_kolom menjadi 2.



BAB II

Hasil Praktikum



1. Gunakan tabel mahasiswa, tambahkan kolom yang diperlukan kemudian tiga data mahasiswa sebagai berikut :

Nim : 12
Nama : edi
Alamat : malang
No.telp : 0856453428
Fakultas : SAINTEK

Nim : 13
Nama : sinta
Alamat : jogja
No.telp : 0813347565675
Fakultas : SAINTEK

Nim : 14
Nama : luki
Alamat : ponorogo
No.telp : 082576568798
Fakultas : PSIKOLOGI

Pertama masuk ke database yang dulu pernah kita buat.


Kemudian kita buat tabel fakultas dan tabel mahasiswa serta field didalamnya, kita bisa menggunakan syntax berikut : CREATE TABLE nama_tabel (nama_kolom type_data keterangan);
Contoh : CREATE TABLE fakultas (id_fak integer not null, nama_fak varchar(10), primary key (id_fak));


CREATE TABLE mahasiswa (nim_mah integer not null, nama_mah varchar(10), alamat_mah text, id_fak integer not null references fakultas, primary key (nim_mah,id_fak));
Sekarang kita memiliki dua tabel baru dengan field yang sesuai dengan permintaan.
Karena dalam tabel mahasiswa yang tadi dibuat tidak ada field no_telp, sedangkang dalam contoh ada field no_telp, maka kita bisa menambahkan field no_telp dengan syntax : ALTER TABLE mahasiswa add column no_telp int not null;

Berikut ini tampilan dari tabel mahasiswa.
Sekarang kita isi tabel yang telah kita buat tadi sesuai dengan data di atas, syntax yang kita pakai seperti : INSERT into fakultas values (1, ‘saintek’), (2, ‘psikologi’);
Untuk mengisi tabel fakultas

Sedangkan untuk tabel mahasiswa : INSERT into mahasiswa values (12, ‘Edi’, ‘Malang’, 1, 0856453428), (13, ‘Sinta’, ‘Jogja’, 1, 0813347565675), (14, ‘Luki’, ‘Ponorogo’, 2, 082576568798);

Pada syntax di atas akan mengalami kesalahan karena pada nilai integer di field no_telp memiliki panjang tidak sampai 13 digit karena itu kita bisa mengurangi digitnya agar kita bisa menginputkan data, jadi syntax seperti ini : INSERT INTO `mahasiswa`(`nim_mah`, `nama_mah`, `alamat_mah`, `no_telp`, `id_fak`) VALUES (12, 'edi', 'malang', '0856453428', 1);

INSERT INTO `mahasiswa`(`nim_mah`, `nama_mah`, `alamat_mah`, `no_telp`, `id_fak`) VALUES (13, 'sinta', 'jogja', '0813347565', 1);
INSERT INTO `mahasiswa`(`nim_mah`, `nama_mah`, `alamat_mah`, `no_telp`, `id_fak`) VALUES (14, 'luki', 'ponorogo', '0825765687', 2)


2. Tampilkan data mahasiswa berupa nim dan nama.
Untuk menampilkan nim dan nama mahasiswa kita bisa gunakan syntax : SELECT nim_mah, nama_mah FROM mahasiswa;
Maka kita akan memperoleh tampilan yang isinya hanya field nim dan nama saja.

3. Tampilkan data mahasiswa berdasarkan nim salah satu mahasiswa. Sehingga yang muncul hanya salah satu data mahasiswa.

Untuk menampilkan satu record data dari sebuah tabel kita bisa gunakan syntax : SELECT * FROM mahasiswa where nim_mah = 13;


Maka kita akan mendapatkan satu record dari tabel mahasiswa yang ber-nim_mah 13.

4. Tampilkan data mahasiswa dan fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.

Syntax dari pertanyaan di atas adalah : SELECT nim_mah, nama_mah, nama_fak FROM mahasiswa, fakultas WHERE mahasiswa.id_fak = fakultas.id_fak;


Akan tampil nim, nama mahasiswa, dan nama fakultas seperti yang diinginkan.
5. Hapus data mahasiswa yang memiliki nim : 13

Menghapus data dari tabel kita dapat menggunakan syntax : DELETE FROM mahasiswa WHERE nim_mah = 13;

Jika muncul jendela berikut, klik saja “ok” untuk menyetujuhi penghapusan nim_mah 13.

Setelah itu akan muncul pemberitahuan seperti pada gambar, yang artinya kita berhasil menghapus record ber-nim_mah 13.
6. Ubah data berupa alamat : solo dan no.telp : 0857688788 yang memiliki nim 12

Mengubah data pada tabel kita bisa gunakan syntax: UPDATE mahasiswa SET alamat_mah = ‘solo’ WHERE nim_mah = 12;
Sedangkan untuk syntax mergubah no_telp kita dapat mengunakan : UPDATE mahasiswa SET no_telp = 0857688788 WHERE nim_mah = 12;

7. Tampilkan data mahasiswa dan urutkan dari besar ke kecil berdasarkan nim mahasiswa. Kemudian tampilkan data fakultas urutkan secara ascending berdasarkan kolom ke-2.

Untuk melakukan pengurutan secara ascending, syntax yang kita pakai adalah ; SELECT * FROM mahasiswa order by nim_mah desc;

Maka akan tampil pengurutan dari yang terbesar

Sedangkan ascending dapat dilakukan dengan syntax ; SELECT * FROM fakultas order by nama_fak asc;

Maka akan muncul pengurutan dari yang terkecil

8. Tampilkan seluruh data mahasiswa beserta seluruh data fakultasnya.

Syntax : SELECT * FROM mahasiswa, fakultas;

Hasil dari syntax di atas akan muncul seluruh field dalam kedua tabel.

9. Tampilkan seluruh mahasiswa yang berada di fakultas “SAINTEK”.

Syntax yang digunakan untuk menampilkan seluruh mahasiswa yang berada di fakultas “saintek” sebagai berikut : SELECT * FROM mahasiswa, fakultas WHERE mahasiswa.id_fak = fakultas.id_fak and nama_fak = ‘saintek’;

Berikut hasilnya

10. Tampilkan seluruh mahasiswa yang tidak berada di fakultas “SAINTEK”.

Untuk menampilkan mahasiswa selain yang berada di fakultas saintek, gunakan syntax : select * from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak and nama_fak!='saintek'

Tampilah hasil syntax di atas.
11. Hapus data fakultas “SAINTEK”.

Untuk menhapus data “saintek” dati tabel fakultas terlebih dahulu hapus data fakultas “saintek” pada tabel mahasiswa; DELETE FROM mahasiswa WHERE id_fak = 1;

Kemudian baru dapat dihapus data yang berada di tabel fakultas. Klik saja “ok” jika ada pertanyaan konfirmasi untuk menghapus. Untuk menghapus data di tabel fakultas syntax yang dipakai adalah : DELETE FROM fakultas WHERE nama_fak = ‘saintek’; kemudian klik saja “ok: untuk mengkonfirmasi penghapusan. Hasil akhirnya akan nampak seperti berikut.

BAB III

Kesimpulan

Pada kedua DBMS memiliki kesamaa pada syntax dasar karena memang memakai bahasa query yang sama. Dalam praktikum kali ini dijelaskan bahwa kita dapat melakukan menejemen tabel dengan memakai bahasa query dasar seperti ALTER, DROP, RENAME, dan lain-lain. Namun memang pada pengembangan syntaxnya nanti ada perpedaan seperti pada praktikum 2 mengenai inherits pada postgreSQL tidaklah sama dengan di MySQL. Perlu diperhatikan juga untuk tipe data string di apit oleh dua petik satu (‘....’), seperti pada saat pengisian tabel terdapat tipe data string di nama_mah, nama_fak, dan alamat. Penggunaan tanda semicolone (;) di MySQL tidak terlalu berpengaruh tidak seperti di PostgreSQL yang harus mengakhiri syntax-nya dengan semicolone.

Kritik
Meskipun bahasa query memiliki standar yang sama, namun pengembangannya memang berbeda. Jadi jangan terpaku pada satu query di satu DBMS. Jadi kita bisa mengembangkan materi ini lebih jauh

Saran
Sebagai pembelajaran ada baiknya kita tidak terpaku pada satu DBMS serta querynya agar kita lebih paham mengenai materi ini. Serta perlu juga tutorial mengenai MySQL yang tidak ada di modul praktikum, sehingga praktikan dapat menghemat waktu dalam pengerjaan laporan.

Manfaat
Diharapkan kita nantinya bisa memahami bahasa standar query baik postgreSQL maupun MySQL, serta mampu memahami penggunaan query, DML, DDL, dan DCL dikedua DBMS. Selain memahami persamaan keduanya juga memahami perbedaan antara keduanya agar kita bisa memilih mana yang cocok untuk kita gunakan nantinya.

Daftar Pustaka
http://gienvision.wordpress.com/2012/03/19/pengetahuan-dasar-sql-dengan-mysql-database-bag-1/
http://SQL-DDL-DML-DCL-SISTEM-BASIS-DATA.html
http//perintah-dasar-database-sql_dasar-dasar-komputer.html
http://tut0rmysql.blogspot.com/2010/09/belajar-sql-dengan-phpmyadmin-dan-mysql.html
http://wachitwahyu17dbd.blogspot.com/2014/10/a.html
http://www.master.web.id/mwmag/issue/04/content/fokus-mysql_vs_postgresql/fokus-mysql_vs_postgresql.html

Tidak ada komentar:

Posting Komentar