1.3 Alat dan Bahan - 3. SQL Query

  Modul 4 SQL 1

  1.1 Tujuan

  a. Mahasiswa dapat mengenal Sintak das ar SQL

  b. Mahasiswa dapat mengoperasikan Sintak das ar SQL

  1.2 Materi

  a. SQL

  b. Tabel

  1.3 Alat dan Bahan

  a. sqlyog

  b. XAMPP

  c. phpmyadmin

  1.4 Prosedur Praktikum

  a. Peserta membaca dan mempelajari materi praktikum sebelumny a

  b. Instruktur menerangkan dan menjelaskan teori dan cara kerja

  c. Peserta mempraktikan materi percobaan

  d. Peserta membuat penyelesaian terhadap soal latihan

  1.5 Teori Dasar-da sar SQL

  SQL menyediakan peritah dan fungsi dalam jumlah yang cukup bany ak untuk menunjang aktifit as yang berhubungan dengan penelitian dan manipulasi data pada DBMS. Berikut ini akan diuraikan mengenai dasar-dasar SQL. Deklarasi atau perintah dalam SQL dikategorik an menjadi dua yaitu DDL ( data definition language ) dan DML ( data manipulation language ), kategori ini didasarkan pada karakteristik dan fungsi dari masing -masing.

  DDL ( data definition language )

  Sebagaimana telah dijelaskan pada modul 2, DDL adalah bagian dari SQL yang digunakan untuk mendefinisikan data dan obyek pada b asis data. Perintah-perintah yang tergolong pada kategori ini adalah:

  PERINTAH KETERA NGA N CREA TE TABLE Membuat tabel CREA TE INDE X Membuat index ALTE R TABLE Mengubah atau menyisipkan kolom ke tabel DROP TAB LE Menghapus tabel dari basis data DROP INDE X Menghapus index GRA NT Memberi izin akses pada pemakai

  DML ( data manipulation language )

  DML adalah bagian dari SQL y ang digunak an untuk memulihkan dan memanipulasi data. Perintah ini digunakan untuk memberikan query dan perubahan yang dilakukan di dalam tab el. Perintah-perintah yang tergolong dalam kategori ini adalah :

  PERINTAH KETERA NGA N SELECT Perintah utama dari SQL. Digunakan untuk memilih data dari tabel

  INSE RT Menyisipkan baris pada tabel DELE TE Menghapus baris pada tabel UPDA TE Mengubah isi kolom pada tabel COMMIT Menuliskan perubahan pada disk ROLLBACK Membat alkan perubahan dari perintah COMMIT

  Tipe Data

  • –2.147.483.648 s/d
  • >–32.768 s/d 32.767 Nilai ant ara 0 s/d 255 Akurasi angk a tetap ant ara
  • –10^38-1s/d 10^38-1 Data moneter
  • –2^63 s/d 2^63-1, dengan tingkat akurasi hingga sepersepuluh ribu unit moneter
    • 214.748,3648 s/d 214.748,3647 dengan tingk at akurasi sepersepuluh ribu unit moneter
    • 1.79E+ 308 s/d 1.79E+308
    • 3.40E+ 38 s/d 3.40E+38 1 januari 1753 s/d 31 desember 9999 1 januari 1900 s/d 6 juni 2079

  UNICODE STRING KETERA NGA N NCHAR NVARCHA R NTE XT Karakter unicode dengan ukuran 4000 byte Karter unicode dengan ukuran berfariasi 4000 byte Variaber berukuran 2^30-1 byte

  Sintak Dasar SQL

   + ( positif ), - ( negatif ), ~ ( bitwise NOT )  ( perk alian ), / ( pembagian ), % ( modulus )  + ( penjumlahan ), + ( penggabungan ), - ( pengurangan )  +, >, <, >=, <=, <>, !=, !>, !<  ^ ( bitwise exclusive OR ), & ( bitwise AND ), | ( bitwise OR )  NOT  AND  ALL, ANY, BETWEEN, IN, LIKE, OR, SOME  = ( penugasan )

  Terdapat dua jenis operator, yaitu operator unary yang bertindak berdasarkan satu operand saja, dan operator binary yang bertindak berdasarkan dua atau lebih operator. Apabila pada sebuah ekspresi terdapat lebih dari satu operator, maka operator-operator tersebut akan dievaluasi berdasarkan urutan sebagai berikut:

  Ekspre si dan Operator pada SQL Pada S QL operator bertindak berdasark an operand, yaitu elemen yang dianalisa oleh operator.

  IMAGE Ukuran tetap hingga 8000 byte Ukuran bervariasi 8000 byte Ukuran bervariasi hingga 2^31-1 byte

  VARBINARY

  BINA RY STRING KETERA NGA N BINA RY

  VARCHAR TE XT Field tetap dengan ukuran max 8000 byte Field tetap dengan ukuran max 8000 byte Variabel dengan ukuran 2^31-1 byte

  Tipe data digunakan ketika membuat suatu tabel, pemakai harus menentukan informasi tertent u pada saat pembuatan tabel. Ada beberapa tipe data yang disimpan dalam basis data, diantaranya adalah :

  STRING KETERA NGA N CHA R

  Referensi ke kursosr Angka eklusif yang dikenali oleh basas data Pengenal global yang eklusif

  RUPA -RUPA KETERA NGA N CURSOR TIMES TAMP UNIQUE IDE NTIFIE R

  2.147. 483.647 Nilai ant ara

  Integer dengan niali 0 at au 1 Nilai interger antara

  INT SMALLINT TINY INT DECIMAL / NUMERIC MONEY SMALLMONEY FLOA T REAL DA TE TIME SMALLDA TE TIME

  INTE GER KETERA NGA N BIT

  Sebuah ekspresi SQL dasar sebenarny a hanya terdiri dari tiga klausa yaitu; klausa where, from, dan where.

   Klausa select : digunakan untuk menetapkan daftar atribut yang diinginkan sebagai query.

  : digunakan untuk menetapkan tabel ( atau gabungan t abel ) yang akan  Klausa from ditelusuri selama query data dilakukan.

   Klausa where : digunakan untuk predikat ( sebagai kriteria ) yang harus dipenuhi dalam memperoleh hasil query. Sintaks ( cara penulisan ) pada ekspresi SQL dasar yang memanfaatkan tiga klausa tersebu t adalah :

  select A1 [

  ,A2, …,An]

  from T1 [

  , T2, …,Tn] [ where P ] keterangan :

  : daftar atribut A1, A2, …, An

  :daftar tabel T1, T2, …, Tn

  P : predikat query [ ] : tanda opsional ( boleh digunak an boleh tidak )

  Select

  Sesuai dengan penjelasan di atas bahwa klaus a select digunakan untuk menetapkan daftar at ribut yang dinginkan sebagai hasil query, maka berikut ini akan dijelaskan lebih lanjut tentang klausa select dengan menyertakan contohnya. Sebagai contoh pada tabel mahasiswa berikut:

  1.1.1.1.1.1 TABEL 1 : MAHASISWA NIM NAMA SEX ASAL TGL.LHR FAK PRODI

  9961001 BUDI L KUDUS 02/02/ 80 MIPA BIOLOGI 9961002 NINA P BLORA 03/11/ 79 SASTRA

  INDONESIA 9961003 ABI L ACEH 30/10/ 78 TI TI 9961004 DONI L BANTUL 23/07/ 81 MIPA

  ILKOM 9961005 ANI P PATI 07/06/ 78 MIPA

  ILKOM Cont oh perint ah select:  Contoh 1

  select NAMA 1.1.1.2 from MAHASISWA

  Ekspresi diat as memerintahkan untuk menampilkan nama mahasiswa dari tabel mahasiswa yang telah ada. Sehingga tampilannya :

  NAMA

  BUDI NINA ABI DONI ANI  Contoh 2

  select NIM, NA MA, SE X from MAHASISWA

  Ekspresi diatas memberikan perintah untuk menampilkan NIM, nama mahasiswa, dan jenis kelaminnya dari tabel mahasiswa. Tampilannya :

NIM NAMA SEX

  9961001 BUDI L 9961002 NINA P 9961003 ABI L 9961004 DONI L 9961005 ANI P  Contoh 3

  select di stinct SE X from MAHASISWA

  Pada t abel mahasiswa tersebut jenis kelamin ditulis secara berulang -ulang, dengan perintah di stinct ini maka penulisan kan ditulis sekali saja. Kasus lain ; misalkan dalam sebuah tabel mahasiswa terdapat nama mahasiswa y ang s ama maka bila menggunakan ekspresi di stinct mak a nama yang sama hanya ditampilkan satu saja. Keunikan diatas hany a untuk nilai at ribut yang disebutkan dalam klausa select, bukan pada k eseluruhan atribut yang ada di t abel yang disebutkan pada klausa form. Tampilan dari contoh di atas adalah :

  SEX

  L P  Contoh 4

  select * from MAHASISWA

  Ekpresi diatas menampilkan seluruh atribut yang ada pada tabel yang disebutkan pada klausa form. Tampilannya :

NIM NAMA SEX ASAL TGL_LHR FAK PRODI

  9961001 BUDI L KUDUS 02/02/ 80 MIPA BIOLOGI 9961002 NINA P BLORA 03/11/ 79 SASTRA

  INDONESIA 9961003 ABI L ACEH 30/10/ 78 TI TI 9961004 DONI L BANTUL 23/07/ 81 MIPA

  ILKOM 9961005 ANI P PATI 07/06/ 78 MIPA

  ILKOM  Contoh 5

  select NIM, NAMA as NAMA_MHS, SE X as JENIS_KELAMIN from MAHASISWA

  Fungsi dari ekspresi as pada select adalah untuk mengganti tampilan header ( kepala tampilan tabular ). Tampilannya menjadi :

  NIM NAMA_MHS JENIS_KELAMI N

  9961001 BUDI L 9961002 NINA P 9961003 ABI L 9961004 DONI L 9961005 ANI P

  Where

  Klausa ini digunakan untuk menetapkan predikat atau kriteria yang harus dipenuhi dalam menampilkan query. Klaus a ini boleh tidak digunak an, yang artinya query dilak ukan untuk semua record di dalam tabel yang disebutkan pada klausa from. Berikut ini akan diberikan c ontoh bes erta penjelasan dari pemanfaatan klausa where. Contoh- contoh yang akan diberikan mengacu pada tabel kuliah berik ut ini:

  TABEL KULIAH KODE_KUL NAMA_KULIAH

1.1.1.3 SEM

  1.1.1.4 S

  1.1.1.5 KODE_D EST K OSEN ER S

  M001 BASIS DA TA

  6

  3 L022 M002 OR-K OM

  3

  3 L023 P001 SIMULASI

  6

  2 L024 F001 SIS TEM BERKAS

  4

  3 L025 K001 PANCAS ILA

  3

  2 L026  Contoh 1

  select * from KULIAH where

  KODE_KUL = ‘ M001 ‘ Ekpresi diatas digunakan untuk menampilkan semua atribut untuk mata kuliah dengan kode mata kuliah M001. Nilai M001 diapit dengan tanda kutip tunggal. P enggunaan tanda kutip ini berlaku untuk

KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOS EN

  M001 BASIS DA TA

  6

  3 L022  Contoh 2

  Select * From KULIAH Where SEMESTER = 6 and SKS >= 3

  Ekspresi diatas menerapk an penggunaan predikat dengan operator relasi, serta mengkombinasikannya dengan operator logika. Maksud dari ekspresi diatas adalah menampilkan semua at ribut dari tabel kuliah yang termasuk dalam kriteria semester 6 dan memiliki jumlah sks lebih dari atau sama dengan 2. Nilai 6 dan 3 diatas tidak diapit dengan t anda kutip tunggal. Hal ini dikarenakan nilai tersebut bertype numeric ( sesuai dengan type atributnya ). Tampilannya :

KODE_KUL NAMA_KULIAH SEMESTER SKA KODE_DOS EN

  M001 BASIS DA TA

  6

  3 L022 P001 SIMULASI

  6

  2 L024  Contoh 3

  select * from KULIAH where SEMESTER between 3 and 5

  

Query dengan kriteria yang berbentuk range nilai tertentu dapat menggunakan tambahan k lausa

between. Pada contoh diatas ak an menampilkan record -rec ord k uliah yang diselenggarakan antara

  semester 3 s/d semster 5. Tampilanny a adalah :

KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOS EN

  M002 OR-K OM

  3

  3 L023 F001 SIS TEM BERKAS

  4

  3 L025 K001 PANCAS ILA

  3

  2 L026  Contoh 4

  Select * From KULIAH Where NAMA_KULIAH like

  ‘ S%’ Untuk atribut yang bertype string dapat melakukan pencarian dengan pola tertentu, dengan memanfaatkan karakter percent ‘ % ‘atau ‘ _ ‘, dengan menambahkan klausa like pada klausa where.

  Pada c ontoh diatas akan menampilkan record-record K ULIAH yang nama mata kuliahnya diawali dengan huruf ‘ S ‘. Sehingga tampilannya adalah :

KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOS EN

  P001 SIMULASI

  6

  2 L024 F001 SIS TEM BERKAS

  4

  3 L025  Contoh 5

  Select * from KULIAH where NAMA_KULIA H like

  ‘ _ A% ‘ Ekspresi diatas akan menampilkan record-record pada tabel kuliah tentang mata kuliah yang huruf / karakter dari nama mata kuliah nya adalah ‘ A ‘. Tamplannya adalah :

KODE_KUL NAMA_KULIAH SEMESTER SKS KODE_DOS EN

  M001 BASIS DA TA

  6

  3 L022 K001 PANCAS ILA

  3

  2 L026

  From Klausa ini digunakan untuk menetapkan tabel yang kita jadikan sebagai sumber penc arian data.

  Basis data terdiri dari beberapa tabel yang saling berhubungan, oleh karena itu sering kali dibutuhkan

  

query dari satu tabel atau dari lebih dari satu tabel sekaligus. Atribut -atribut y ang akan kita tampilkan

  dalam hasil query tidak hanya berasal dari satu tabel , namun bisa jadi dari sejumlah tabel, pada kasus seperti inilah klausa from akan sangat berperan penting. Pada contoh-contoh terdahulu hanya ditampilkan query dari satu tabel. Namun untuk ulasan kali ini akan diberikan contoh query yang menggambarkan hubungan antar tabel.

  1.1.1.5.1.1 TABEL 3 : DOS EN

KODE_DOS EN NAMA_DOS EN STATUS ASAL

  L022

NAMA_DOS EN STATUS ASAL

  3

  Ekspresi diatas akan menampilkan record -record pada atribut kode kuliah dengan nama baru yaitu kode, atribut nama kuliah dengan nama baru yaitu kuliah dan atribut nama dos en dengan nama baru yaitu dosen. Atribut- atribut tersebut diambil dari tabel kuliah dan tabel dosen, dengan syarat kuliah yang ditampilkan diajark an pada semester 4. Tampilanya adalah :

  from KULIAH K, DOSEN D where K . KODE_DOSEN = D . KODE _DOSEN and SEMESTER = 4

  NAMA_DOSEN a s DOSEN

   Contoh 4 select K . KODE_KUL as KODE, K . NAMA_KULIA H as KULIA H, D .

  ISMAYA M002 OR-K OM GUNAWAN P001 SIMULASI BUDIHARJO F001 SIS TEM BERKAS WARDA TI K001 PANCAS ILA HARTA TI

  M001 BASIS DA TA

  Ekspresi di atas akan menampilkan record-record pada atribut kode kuliah, nama mata kuliah dari tabel kuliah dan record-record dari atribut nama dosen dari tabel dosen. Tampilanny a adalah :

  select K.KODE_K UL, K.NAMA_K ULIAH, D.NAMA_DOSE N from KULIAH K, DOSEN D where K . KODE_DOSEN = D . KODE _DOSEN

  Ekspresi diatas merupakan contoh penggunaan alias, dimana tabel kuliah dialiaskan dengan K dan tabel dos en dialiaskan dengan D. tampilan yang akan diperoleh sama dengan tampilan diat as.  Contoh 3

  Select * from KULIAH K, DOSEN D where K . KODE_DOSE N = D . KODE_DOSEN

  2 L026 HARTA TI KONTRA K JAKARTA  Contoh 2

  3 L025 WARDA TI TE TAP SEMARAN G K001 PANCAS ILA

  ISMAYA TE TAP MEDAN L023 GUNAWAN TE TAP LAMPUNG L024 BUDIHARJO KONTRAK SRAGEN L025 WARDA TI TE TAP SEMARANG L026 HARTA TI KONTRAK JAKARTA Tabel dosen diatas akan direlasikan dengan tabel kuliah yang telah dibuat sebelumnya.

  4

  2 L024 BUDIHARJO KONTRA K SRAGEN F001 SIS TEM BERKAS

  6

  3 L023 GUNAWAN TE TAP LAMPUNG P001 SIMULASI

  3

  ISMAYA TE TAP MEDAN M002 OR_K OM

  3 L022

  6

  M001 BASIS DA TA

  KODE_ KUL NAMA_KULIAH SEMES TER

SKS KODE_DO

SEN

  Tabel_tabel yang akan dijadikan query haruslah memiliki hubungan. Pada contoh diat as hubungan pada tabel kuliah dengan tabel dosen diwakili oleh kode dosen, dimana atribut ini dimiliki oleh kedua tabel tersebut. Tampilannya adalah :

  select * from KULIAH, DOSEN where KULIAH . KODE _DOSEN = DOSE N . KODE_DOSEN Untuk melakukan query ant ara dua tabel atau lebih, tidak bisa dilakukan dengan sembarangan.

   Contoh 1

KODE_KUL NAMA_KULIAH NAMA_DOS EN

  KODE KULIAH DOSEN F001 SIS TEM BERKAS WARDA TI

KODE_KUL NAMA_KULIAH

1.1.1.6 SEM EST ER

  6

  1.1.1.10 S K S

  1.1.1.11 KODE_D OSEN

  F001 SIS TEM BERKAS

  4

  3 L025 P001 SIMULASI

  3

  2 L024 K001 PANCAS ILA

  select * from KULIAH 1.1.1.8.1.1.1.1 order by NA MA_KULIAH desc Ekspresi diatas akan menampilkan query dengan urut an turun berdasark an nama mata kuliah.

  2 L026 M002 OR-K OM

  3

  3 L023 M001 BASIS DA TA

  6

  3 L022 Cont oh penggunaan klausa dasar SQL, yang melibatkan empat buah tabel sekaligus, yaitu tabel MAHASISWA, tabel KULIA H, tabel DOSEN sert a tabel NILAI;

  Tampilannya adalah :

  3 L025  Contoh 2

  1.1.1.5.1.1.1 Query Sorting

  4

  Pengurut an record-record hasil query disesuaikan dengan struktur penyimpanan yang kita terapkan pada tabel query. Terdapat dua jenis struktur penyimpanan, yaitu :  Struktur penyimpanan heap

  Dimana pada struktur penyimpaanan ini hasil query akan ditampilkan berdasarkan kronologis ( waktu ) penyimpanan.  Struktur penyimpanan sekuensial berindeks

  Pada struktur penyimpanan ini hasil query akan ditampilkan sesuai dengan atribut yang menjadi dasar indeks. Terdapat dua jenis mode pengurutan, yaitu pengurutan naik dan pengurut an turun. Kedua m ode pengurutan tersebut sama-sama mengunakan klausa order by, hanya saja pada pengurutan turun ditambahkan dengan klausa de sc pada klausa order by nya. Berikut ini adalah contoh pengurutan hasil query;  Contoh 1

  Select * from KULIAH order by NAMA_KULIAH Ekspresi diatas akan menampilkan query dengan urut an naik berdasark an nama mata kuliah.

  Tampilannya adalah :

  1.1.1.7 S K S

  1.1.1.8 KODE_D OSEN

  M001 BASIS DA TA

  6

  3 L022 M002 OR-K OM

  3

  3 L023 K001 PANCAS ILA

  3

  2 L026 P001 SIMULASI

  6

  2 L024 F001 SIS TEM BERKAS

KODE_KUL NAMA_KULIAH

1.1.1.9 SEM EST ER

  TABEL 4 : NILAI

  NIM KODE_K UL KODE_NILA I 9961001 M001 B 9961001 P001 A 9961002 M002 C 9961002 P001 C 9961003 K001 A 9961004 F001 A 9961004 M002 C 9961005 F001 C 9961005 K001 B

  Cont oh berikut akan menampilkan kartu hasil studi dari seoran g mahasiswa berdasark an pada NIM nya.

  select

  N . NIM, M . NAMA as NAMA _MHS, K . NAMA_KUL, D . NAMA_DOSEN, N . KODE_NILA I

  from

  MAHASISWA M, KULIAH K, DOSEN

  D, NILA I N

  where N . NIM = M . NIM and

  N . KODE_K UL = K . KODE_KUL and D . KODE_DOSEN = K . KODE_DOSEN and

  NIM = ‘9961001’

1.6 Latihan 1. Lakukan dan coba semua contoh pada modul 4.

  2. Lihat struktur data pada Modul 1, kemudian kerjakan query berikut ini: a. Tampilkan daftar semua buku yang dipinjam dan siapa peminjamnya.

  b. Tampilkan semua buku yg masih tersedia beserta lok asi perpustakaannya.

  c. Tampilkan siapa saja y ang belum mengembalikan buku, dan cantumk an juga berapa lama belum dikembalikan sejak buku itu dipinjam.