Anda di halaman 1dari 46

MODUL PRAKTIKUM

BASIS DATA

S1 TEKNIK KOMPUTER

LABORATORIUM COMPUTER AND COMMUNICATION DEPARTEMEN TEKNIK ELEKTRO INSTITUT TEKNOLOGI TELKOM BANDUNG 2008

Computer & Communication Laboratory

Laboratorium Computer & Communication Institut Teknologi Telkom Jalan Telekomunikasi (Gedung E.108) Dayeuhkolot - Bandung 40257, Indonesia Telp : (022) 7564108 #2296

Koordinator Laboratoria : Ida Wahidah, ST., MT.


Asisten Laboratorium C&C Koordinator : Heri Purwanto Divisi Administrasi Wahyu Sukmana Murty Anita Sari Apriyani Arqom Alif Hamidhi Divisi Praktikum Randi Waranugraha Fauzan Baskoro Divisi Hardware & Software Chrisnanda Nugrahita Bruury Sri Rochmat E.

Periode 2006 /2007 Daru Prasusetyo, Dyah Mei Sulistyowati

Computer & Communication Laboratory

Laboratorium Computer & Communication Institut Teknologi Telkom Jalan Telekomunikasi (Gedung E.108) Dayeuhkolot - Bandung 40257, Indonesia Telp : (022) 7564108 #2296

TATA TERTIB PELAKSANAAN PRAKTIKUM


A. KELENGKAPAN PRAKTIKUM
Kelengkapan praktikum Basis Data meliputi : kartu praktikum, modul, dan seragam lengkap (tidak boleh pakai jeans). Bila salah satu dari kelengkapan tersebut tidak dipenuhi, maka praktikan tidak dibenarkan ikut praktikum dan dinyatakan gugur modul bersangkutan.

B. PELAKSANAAN PRAKTIKUM
1. Praktikum dimulai pada waktu yang telah ditentukan. Shift I : 13.00 15.30 Shift II : 16.00 18.30 2. Praktikan yang terlambat lebih dari 20 menit tidak diijinkan mengikuti praktikum modul yang bersangkutan. 3. Praktikan hanya boleh membawa modul, jurnal, alat tulis dan dua lembar kertas ke area praktikum, selebihnya diletakkan di tempat tas yang tersedia. 4. Kartu yang dibawa praktikan diserahkan dan wajib ditandatangani hanya oleh seorang asisten yang menjaganya saat itu 5. Praktikan dilarang : a. Meninggalkan ruangan tanpa seizin asisten b. Berbicara tidak sopan pada asisten c. Merokok, makan dan minum d. Melakukan praktikum dengan tidak tertib e. Tidur saat pelaksanaan praktikum 6. Bila melanggar, sanksi dikenakan kepada praktikan berdasarkan kebijakan asisten. 7. Saat waktu shalat fardhu tiba, praktikan yang muslim wajib menghentikan praktikum dan meninggalkan ruangan untuk menunaikan shalat. 8. Praktikan yang telah menyelesaikan praktikum dapat meninggalkan laboratorium setelah asisten memastikan bahwa seluruh peralatan beserta komponennya telah dalam keadaan rapi dan bersih dan diberi izin untuk meninggalkan ruangan.

Computer & Communication Laboratory

Laboratorium Computer & Communication Institut Teknologi Telkom Jalan Telekomunikasi (Gedung E.108) Dayeuhkolot - Bandung 40257, Indonesia Telp : (022) 7564108 #2296

9. Praktikan wajib mengumpulkan jurnal 1 jam sesudah praktikum, bila terdapat perubahan tergantung dari kebijakan asisten.

C. KOMPONEN PENILAIAN PRAKTIKUM


1. Tugas Pendahuluan harus dikerjakan dalam kertas ukuran A4 dan harus dikumpulkan serentak pada waktu yang telah ditentukan. Tugas Pendahuluan bersifat tidak wajib. 2. Test Awal/Akhir dapat berupa lisan ataupun tulisan, tergantung kepada kebijaksanaan asisten 3. Prosentase penilaian praktikum TP (Tugas Pendahuluan) : 20 % TA (Tes Awal) Praktikum Jurnal : 20 % : 40 % : 20 %

4. Syarat Kelulusan, yaitu nilai rata-rata praktikum lebih besar sama dengan 60.

D. LAIN-LAIN
1. Pertukaran jadwal praktikum paling lambat 1 hari sebelum praktikum bersangkutan dengan mengisi form tukar jadwal serta ditandatangani oleh asisten jaga 2. Cover Tugas Pendahuluan harus diketik. Cover harus memuat Nama, NIM, Group, Tanggal Praktikum, Tanggal Pengumpulan dan Rekan Praktikum. Semua data pada cover harus benar dan lengkap 3. Hal lain yang masih belum ditetapkan dalam tata tertib ini akan ditetapkan kemudian Mengetahui, Koordinator Laboratoria Jaringan dan Multimedia Koordinator Asisten Laboratorium CnC

Ida Wahidah, ST., MT.


(99760186-1)

Heri Purwanto ( 111041068 )

MODUL I
MY STRUCTURE QUERY LANGUAGE: PART 1

MY STRUCTURE QUERY LANGUAGE: PART 1

MODUL I My Structure Query Language : Part 1

Tujuan Praktikum :
1. Menanamkan konsep dasar basis data dengan MySQL 2. Mengerti dan paham penggunaan Data Definition Language 3. Mengerti dan paham penggunaan Data Control Language

SQL (kependekan dari : Structured Query Language) adalah bahasa standar yang digunakan untuk mengakses sebuah basis data relasional. MySQL merupakan sebuah RDBMS ( Relational Database Management System) yang sangat popular digunakan karena bebas biaya. Bahasa SQL memiliki struktur yang mudah dipahami karena perintah-perintahnya menggunakan bahasa Inggris. Perintah SQL tidak case sensitive (untuk perintah, pengetikan nama field dan atribut sesuai dengan penamaan) namun digunakan huruf besar untuk membedakan antara perintah dan objek. Setelah selesai mengetikkan command SQL harus diakhiri dengan tanda ; (titik koma). Operasioperasi yang umum dilakukan pada database MySQL : Memasukkan atau menambah record baru ke dalam database Mengeksekusi query database Mengambil data dari database Mengubah record database Menghapus record database

A. Data Definition Language


Data Definition Language adalah perintah definisi struktur table. Dibahas mengenai bagaimana cara membuat table (create table), mengubah struktur table (alter table) dan menghapus table (drop table). 1

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 1. Tipe Data Sebelum membahas bagaimana cara membuat table, sebaiknya mengenal lebih dahulu tipe data yang ada di MySQL. CHAR(n) Mendifinisikan string sepanjang n karakter. Bila n tidak ada maka panjang karakter 1. VARCHAR(n) Mendifinisikan string yang panjangnya dapat berubah dengan maksimal n karakter. INT(n) Mendifinisikan integer yang panjangnya dapat berubah dengan maksimal n karakter. TEXT Mendifinisikan text atau string dengan panjang yang tidak diketahui. DATE Mendifinisikan tanggal, tahun dan bulan (format YYYY-MM-DD). SET(a,b) Data yang dimuat hanya dapat berupa opsi dengan nilai antara a dan b.

2. Membuat Tabel Akan dibahas bagaimana cara membuat table


CREATE TABLE nama_tabel ( nama_field_ke-1 tipe_data NULL/NOT NULL AUTO_INCREMENT, nama_field_ke-2 tipe_data NULL/NOT NULL, Nama_field_ke-n tipe data NULL/NOT NULL);

Untuk membuat table acuan (reference) sebelum akhir perintah tambahkan perintah
CONSTRAINT nama_constraint PRIMARY KEY( nama_field_primary_key) ;

Untuk membuat table yang mengacu pada table lain (relasi) sebelum akhir perintah tambahkan perintah
CONSTRAINT nama_constraint_primary_key PRIMARY KEY( nama_field_primary_key), CONSTRAINT nama_constraint_foreign_key FOREIGN KEY(nama_field_foreign_key) REFERENCES nama_tabel_acuan (nama_field_primary_key_tabel_acuan));

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 CONTOH : Membuat table data_praktikan dengan field kode_praktikan integer(3) auto increment, nama_praktikan varchar(50), nim_praktikan char(9), praktikum_jarkom set(ikut,tidak), praktikum_database set(ikut,tidak) dengan kode_praktikan adalah primary key

Kode_prakitka n

Nama_praktika n

Nim_praktika n

Praktikum_jarko m

Praktikum_databas e

3. Mengubah Struktur Tabel Pada prinsipnya mengubah table berarti mengubah struktur table. Pada pengubahan struktur table ini ada beberapa kemungkinan, diantaranya adalah mengubah dalam arti memodifikasi field pada table atau sekedar mengubah nama table/field.

Perintah untuk melihat nama field dan tipe data masing-masing field pada table data_praktikan
DESC data_praktikan;

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 Perintah untuk mengubah struktur table adalah sebagai berikut
ALTER TABLE nama_tabel ADD | MODIFY | DROP | RENAME nama_field;

Perintah untuk mengubah tipe data


ALTER TABLE nama_tabel MODIFY nama_field tipe_data_baru atribut_baru;

Perintah untuk menambah field baru pada suatu table


ALTER TABLE nama_tabel ADD nama_field_baru tipe_data atribut FIRST | AFTER nama_field;

Perintah untuk mengubah nama table


ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru;

Perintah untuk menghapus suatu field pada tabel


ALTER TABLE nama_tabel DROP nama_field;

CONTOH : Menambah field baru pada table data_praktikan dengan nama field nilai_akhir tipe data integer(2) setelah field praktikum_jarkom
Kode_prakitkan Nama_praktikan Nim_praktikan Praktikum_jarkom Nilai_akhir Praktikum_database

4. Menghapus Tabel Terkadang kita harus menghapus sebuah table yang telah kita buat, ini mungkin terjadi apabila table yang anda buat salah atau sudah tidak diperlukan. Untuk itu ada perintah drop table.
DROP TABLE nama_tabel;

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 Ada kondisi yang mengakibatkan table tidak dapat dihapus, yaitu apabila table tersebut menjadi suatu acuan dari tabel lain (memiliki foreign key) dalam arti memiliki relasi dan tidak berdiri sendiri maka tabel tidak akan dapat dihapus.

B. Data Control Language


Data Control Language berkaitan dengan hal yang paling penting dan utama dalam menjalankan database adalah administrasi user. Karena pada setting defaultnya ketika pertama kali selesai diinstalasi maka database server MySQL dapat diakses oleh semua user, dari mana saja, siapa saja, dan kapan saja. Oleh karena itu perlu dikonfigurasi terlebih dahulu agar user yang terdaftar dan berwenang saja yang dapat mengakses dan mengubah-ubah database. User default pada database server MySQL adalah root, yang merupakan super user yang mempunyai hak akses tertinggi dalam database MySQL. Sehingga, root-lah yang seharusnya memegang hak akses dalam mengelola manajemen database. Kita dapat mengatur hak akses dari user yang dibuat sendiri dari user root.

1. Database User Pada saat diinstall, default dari user root MySQL adalah tidak memiliki password. Konfigurasi user sistem MySQL ada di database khusus yang bernama mysql. Database ini juga secara default sudah ada dalam MySQL.

Ada 6 tabel yang dapat dijelaskan kegunaannya sebagai berikut: Nama Tabel columns_priv Db Kegunaan Data hak akses user (user privileges) pada kolomkolom tertentu di dalam suatu tabel. Nama database yang bisa diakses oleh user tertentu.

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 Func Host tables_priv Nama-nama host yang diijinkan mengakses mysql Data hak akses user (user privileges) pada tabel-tabel tertentu di dalam suatu database. Nama-nama pengguna (user) yang diijinkan untuk mengakses mysql.

User

Kita lihat isi dari tabel user :

Terlihat bahwa user root belum memiliki password. Oleh karena itu kita berikan password pada root.
UPDATE user SET password = password(terserah) WHERE user = root;

Kolom password telah terisi dengan password terserah yang telah terenkripsi ( string terserah dienkripsi oleh fungsi password() ). Tapi masih terdapat user tanpa password dalam tabel user, sehingga masih terdapat kemungkinan user lain mengakses database tanpa harus memasukkan password terlebih dahulu. Oleh karena itu user ini sebaiknya dihapus.
DELETE FROM user WHERE user = ;

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 FLUSH PRIVILEGES adalah suatu perintah untuk mengaktifkan perubahan-perubahan yang terjadi pada database sistem.
FLUSH PRIVILEGES;

Setelah langkah-langkah diatas kita akan masuk ke mysql menggunakan perintah berikut
Mysql> mysql u nama_user p

2. Menambah User Ada kriteria tertentu yang harus kita perhatikan ketika ingin menambah user ke dalam sistem MySQL. Kita juga harus login sebagai root (atau user lain yang memiliki hak untuk menambah user. Yaitu user dengan nilai kolom create-user_priv yang bernilai Y ) untuk dapat melakukannya. Kita harus memperhatikan parameter yang dimasukkan untuk memberikan hak hak yang akan diberikan kepada user tersebut.

Kita dapat memasukkan user baru sesuai parameter di atas, misalnya :


INSERT INTO user VALUES (host,username,password(password),Y,Y,Y,Y,Y,N,N,N,N,N,Y,N,Y,Y,Y);

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 3. Mengupdate/Mengubah Password Untuk mengupdate password, kita bisa menggunakan perintah berikut :
UPDATE user SET password = password(password_baru) WHERE user = nama_user;

Setelah perubahan-perubahan tersebut dilakukan, harus disertai dengan perintah FLUSH PRIVILEGES.

4. Memberikan Izin Akses Pemberian hak izin akses dapat diberikan sesuai kebutuhan agar dapat mengakses database, tabel, dan kolom. Izin akses pada MySQL diatur dalam database sistem mysql, yang terdiri atas lima buah tabel, yaitu user, db, host, tables_priv dan columns_priv. Secara Umum tingkatan akses user,mencakup izin akses ke dalam database atau kolom, sebagai berikut: ALTER digunakan untuk mengubah tabel dan index yang ada CREATE digunakan untuk membuat database baru atau tabel yang baru DELETE digunakan untuk menghapus record DROP digunakan untuk menghapus tabel dan database INDEX digunakan untuk membuat index baruatau menghapus sebuah index INSERT digunakan untuk menambah record SELECT digunakan untuk menampilkan record dari suatu tabel UPDATE digunakan untuk mengubah isi record
GRANT izin_akses ON nama_database.nama_tabel TO username@host IDENTIFIED BY password;

Pemberian izin akses dilakukan dengan perintah GRANT yang memiliki empat tingkat pilihan yang dapat digunakan. Izin akses penuh (Global) Digunakan untuk memberi izin akses penuh ke seluruh database yang ada di server, konfigurasi akses ini terletak di tabel user.
GRANT ALL PRIVILEGES ON * TO nama_user@localhost IDENTIFIED BY password WITH GRANT OPTION;

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 1 Perintah tersebut akan memberikan izin akses penuh setara user root. Perintah tersebut juga akan berarti menambah user baru (perintah GRANT) jika user tersebut belum dimasukkan sebelumnya. Izin akses database Izin akses database digunakan untuk mengakses tabel-tabel yang berada pada database yang telah ditentukan.
GRANT ALL ON nama_database.* TO username@host;

Izin akses tabel Izin akses tabel digunakan untuk mengatur izin akses terhadap semua kolom yang terdapat pada tabel yang telah ditentukan. Izin akses yang dapat diperbolehkan meliputi SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, REFERENCES, INDEX dan ALTER.
GRANT SELECT ON nama_database.nama_tabel TO username@host;

Izin akses kolom Izin akses ini hanya digunakan untuk mengatur izin akses pada kolom yang ditentukan saja. Konfigurasi izin meliputi SELECT, INSERT, UPDATE dan REFERENCES.
GRANT UPDATE(nama_field) ON nama_database.nama_tabel TO username@host IDENTIFIED BY password;

C & C Laboratory 2008

MODUL II
MY STRUCTURE QUERY LANGUAGE: PART 2

MY STRUCTURE QUERY LANGUAGE: PART 2

MODUL II My Structure Query Language : Part 2

Tujuan Praktikum :
1. Mengerti dan paham penggunaan Data Manipulation Language 2. Mengerti cara penyelesaian masalah dengan pengelompokan dan pengurutan data 3. Mampu menggunakan Aggregate Function 4. Mengerti penggunaan kriteria data

A. Data Manipulation Language


Pada DML akan dibahas bagaimana cara memanipulasi data. Manipulasi data yang dimaksud meliputi bagaimana cara memasukkan data atau record ke dalam tabel (insert), memperbaharui data (update), menghapus data (delete) dan memilih data (select). Pada pembahasan akan digunakan tabel yang sudah dibuat pada modul 1, tabel data_praktikan. 1. Memasukkan Data Insert bertujuan memasukkan data atau record ke dalam suatu tabel. Pengisian data bisa berlaku untuk satu record penuh. Artinya, semua field dalam record tersebut akan diisi. Selain itu kita juga dapat hanya mengisi beberapa field saja.
INSERT INTO nama_tabel (field_ke- 1, , field_ke-n) VALUES (nilai_field_ke-1, , nilai_field_ke-n);

CONTOH : Isikan tabel data_praktikan dengan nilai berikut

Kode_prakitkan 1 2 3

Nama_praktikan Randi Heri Nanda

Nim_praktikan 111040198 111040333 111040234

Praktikum_jarkom Ikut Ikut Ikut

Nilai_akhir

Praktikum_database Ikut Ikut Tidak

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2

Contoh diatas hanya mengisi field nama_praktikan, niim_prakitkan, praktikum_jarkom, praktikum_basdat karena pada field kode_praktikan sudah ada auto_increment sehingga tidak perlu lagi diisi dengan record dan pada field nilai_akhir memang tidak diisi dengan record. Apabila kita ingin mengisi seluruh field pada suatu record kita cukup mengisi perintah
INSERT INTO nama_tabel VALUES (nilai_field_ke- 1, , nilai_field_ke-n);

2. Memperbaharui Data Update bertujuan memperbaharui data lama dengan data yang baru. Perintah ini digunakan apabila sudah ada record pada suatu field namun ternyata record tersebut salah. Sama seperti insert kita dapat hanya mengubah satu field dari record atau beberapa atau semuanya.
UPDATE nama_tabel SET nama_field_1 = data_baru_1, nama_field_2 = data_baru_2 WHERE nama_field = data_lama;

CONTOH : Perbahurui tabel data_praktikan dengan mengubah Heri menjadi Fauzan dengan nilai pada field praktikum_jarkom menjadi Tidak dan nilai_akhir = 75

Kode_prakitkan 1 2 3

Nama_praktikan Randi Fauzan Nanda

Nim_praktikan 111040198 111040333 111040234

Praktikum_jarkom Ikut Tidak Ikut

Nilai_akhir

Praktikum_database Ikut

75

Ikut Tidak

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2 3. Menghapus Data Delete bertujuan untuk menghapus data atau record. Penghapusan record bisa dilakukan secara keseluruhan artinya seluruh record dalam tabel tersebut akan dihapus berbeda dengan drop dimana tabel yang akan dihapus.
DELETE FROM nama_tabel;

Penghapusan juga bisa dilakukan untuk sebagian data saja. Penghapusan data tipe ini digunakan where sebagai suatu kondisi untuk memilih record yang akan dihapus
DELETE FROM nama_tabel WHERE nama_field = kondisi;

CONTOH :Hapus record pada tabel data_praktikan dimana dia tidak ikut praktikum jarkom

Kode_prakitkan 1 3

Nama_praktikan Randi Nanda

Nim_praktikan 111040198 111040234

Praktikum_jarkom Ikut Ikut

Nilai_akhir

Praktikum_database Ikut Tidak

4. Memilih Data Select bertujuan untuk menampilkan atau menyeleksi data yang diinginkan dari sekumpulan data yang ada. Select sering disebut dengan istilah QUERY. Perintah Select secara lebih khusus akan dibahas pada modul IV, sekarang hanya akan dibahas kegunaan dasarnya.
SELECT nama_field FROM nama_tabel WHERE kondisi;

CONTOH : Tampilkan data dari tabel data_praktikan dimana dia mengikuti praktikum basis data dan data yang ditampilkan hanya nama_praktikan dan nim_praktikan
Nama_praktikan Randi Nim_praktikan 111040198

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2

B. Pengelompokkan Data dan Aggregate Function


Pada kasus seleksi data, seringkali diminta untuk menampilkan atau memilih sekumpulan data berdasarkan kelompok data tertentu. Untuk menyelesaikan masalah tersebut terdapat perintah group by. Pada pengelompokkan data disertakan bersama aggregate function. Aggregate function tersebut adalah : 1. Min() Fungsi ini digunakan untuk mencari harga minimum dari sekumpulan data yang ada. MIN(nama_field). 2. Max() Fungsi ini digunakan untuk mencari harga maximum dari sekumpulan data yang ada. MAX(nama_field). 3. Avg() Fungsi ini digunakan untuk mencari harga rata-rata dari sekumpulan data yang ada. AVG(nama_field). 4. Sum() Fungsi ini digunakan untuk SUM(nama_field). 5. Count() Fungsi ini digunakan untuk mencari banyaknya data dari sekumpulan data yang ada. COUNT(nama_field).
SELECT field-1, , field-n, MIN | MAX | AVG | SUM | COUNT (nama_field) FROM nama_tabel GROUP BY field-1, ,field-n;

mencari

jumlah dari sekumpulan

data

yang

ada.

CONTOH : Isi dulu tabel data_praktikan dengan data berikut


Kode_prakitkan 1 3 6 7 Nama_praktikan Randi Nanda Anita Arqom Nim_praktikan 111040198 111040234 111040222 111040111 Praktikum_jarkom Ikut Ikut Tidak Ikut Nilai_akhir 80 71 75 71 Praktikum_database Ikut Tidak Ikut Tidak

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2

Urutkan tabel data_praktikan dengan mencari nilai maximal dari praktikan yang ikut praktikum jarkom dengan menampilkan nama_praktikan menjadi nama dan nilai_tinggi

Nama Randi

Nilai_tinggi 80

C. Pengurutan Data
Pencarian data akan lebih mudah apabila data yang tersedia telah diurutkan berdasarkan satu data tertentu. Kita tentu akan merasa lebih mudah apabila missal data diurutkan berdasarkan urutan abjad nama. Perintah yang digunakan adalah order by.
SELECT field-1, field- 2, ,field-n FROM nama_tabel ORDER BY nama_field DESC | ASC ;

CONTOH : Mengurutkan nilai_akhir dari tabel data_praktikan berdasarkan nilai tertinggi


Kode_prakitkan 1 6 7 3 Nama_praktikan Randi Anita Arqom Nanda Nim_praktikan 111040198 111040222 111040111 111040234 Praktikum_jarkom Ikut Tidak Ikut Ikut Nilai_akhir 80 75 71 71 Praktikum_database Ikut Ikut Tidak Tidak

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2

D. Kriteria Data
Kriteria data adalah data yang ditampilkan merupakan data yang memenuhi criteria yang ditentukan. Terdapat 2 kategori criteria data: dengan having dan where. 1. Having Kriteria dengan having adalah criteria pemilihan atau seleksi dengan menggunakan memiliki. Kriteria having diikuti dengan aggregate function. Pada intinya menyeleksi data berdasarkan kriteria tertentu.
SELECT field-1, field- 2, ,field-n, aggregate_function FROM nama_tabel GROUP BY field-1, , field-n HAVING criteria_aggregate_function;

CONTOH : Tampilkan tabel data_praktikan dengan menghitung berapa jumlah praktikan yang mengikuti praktikum jarkom

Kategori_siswa Ikut Tidak

juml_jarkom 3 1

Tampilkan tabel data_praktikan dengan menghitung jumlah praktikan yang mengikuti praktikum_jarkom jumlahnya 3 orang

Kategori_siswa Ikut

juml_jarkom 3

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2

2. Where Kriteria where melakukan seleksi data diikuti dengan comparison (=,<>,<,>,>= atau <=), between, in, like / not like atau is null / is not null. Comparison Berfungsi untuk membandingkan dua nilai. Tipe data yang dibandingkan harus sesuai
SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field = | <> | < | > | <= | >= kondisi;

Between Berfungsi untuk membandingkan apakah suatu nilai record berada dalam jangkauan atau selang nilai tertentu
SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field BETWEEN kondisi_1 AND kondisi_2;

In Berfungsi untuk melakukan pengecekan apakah suatu nilai record terdapat pada suatu himpunan tertentu.
SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field IN ( kondisi_1,kondisi_2,kondisi_3, , kondisi_n);

Like / not like Berfungsi untuk membandingkan data dengan pola tertentu dan biasanya digunakan karakter % (persen) untuk membandingkan string Untuk melihat apakah pada suatu data mengandung atau tidak karakter ABC 7

C & C Laboratory 2008

MY STRUCTURE QUERY LANGUAGE: PART 2


SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field LIKE | NOT LIKE %ABC%;

Untuk melihat apakah pada suatu data berakhiran atau tidak dengan karakter ABC
SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field LIKE | NOT LIKE %ABC;

Untuk melihat apakah pada suatu data berawalan atau tidak dengan karakter ABC
SELECT field-1, ,field-n FROM nama_tabel WHERE nama_field LIKE | NOT LIKE ABC%;

C & C Laboratory 2008

MODUL III
ER DIAGRAM

ER DIAGRAM

MODUL III ER Diagram

Tujuan Praktikum
1. Memahami penggunaan constraint 2. Mengerti dan mampu menggunakan ER Diagram dalam pemecahan masalah 3. Mampu mengimplementasikan ER Diagram dalam system basis data

A. Key
Sebelum masuk pembahasan mengenai sebuah ER Diagram sebaiknya kita mengerti dulu atribut constraint, yaitu key. Pada dasarnya, key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua Baris Data (Row) dalam tabel secara unik. 1. Candidate Key Candidate Key merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Sebuah candidate key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi super key yang lain. Jadi sebuah candidate key adalah atribut atau kumpulan atribut yang unik dan dapat dijadikan sebuah acuan atau primary key. Biasany primary key diambil dari candidate key yang paling unik dan mengandung sedikit field. 2. Super Key Super key merupakan satu atau lebih atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Misalnya di tabel daftar_peserta yang dapat menjadi super key adalah (nim,nama), (nama, jurusan) dan (nama, tanggal_lahir, jurusan) 3. Primary Key Primary key merupakan salah satu dari candidate key yang dijadikan acuan. Pemilihan primary key didasarkan pada jaminan terhadap keunikan, dimana dijamin tidak ada data yang sama dalam atribut yang dijadikan primary key. Pada tabel daftar kita dapat mengambil nim 1

C & C Laboratory 2008

ER DIAGRAM sebagai primary key, karena dijamin tidak ada mahasiswa mempunyai nim yang sama, sedangkan nama, alamat dan jurusan bisa sama. 4. Foreign Key Foreign key merupakan key asing yang berasal dari tabel lain, dimana dari tabel tempatnya berasal foreign key merupakan primary key tabel tersebut

CONTOH : Buatlah tabel daftar_peserta dengan ketentuan nim sebagai primary key char(9), nama varchar(60), tanggal_lahir date, jurusan set(Industri,Informatika,Telekomunikasi), alamat text, nilai int (2) Kemudian isikan data seperti tabel berikut

Nim

Nama

Tanggal_Lahir Jurusan 1986-04-23 1987-03-20 1986-08-27 1986-08-13 1986-04-18 Informatika Informatika

Alamat Aliya Aliya

Nilai 67 76 70 71 73

113040348 Jaka 113040345 Andri 111040100 Dimas 113040322 Dimas 111040128 Arif

Telekomunikasi Aliya Informatika Aliya

Telekomunikasi Aliya

Tabel diatas memiliki beberapa candidate key dan yang dapat menjadi super key (nim,nama), (nama, jurusan) dan (nama, tanggal_lahir, jurusan). Tapi dipilih (nim) sebagai primary key karena merupakan field yang paling unik dan sedikit.

C & C Laboratory 2008

ER DIAGRAM

Buat juga satu tabel lagi dengan nama daftar_jurusan dengan field kode_jurusan char(3) dan nama_jurusan varchar(30) sebagai primary key Kode_jurusan Nama_jurusan 112 113 111 Industri Informatika Telekomunikasi

Kemudian ubah field pada tabel daftar_peserta menjadi foreign key yang mengacu pada tabel daftar_jurusan dengan field nama_jurusan

B. Entity Relational Diagram


Perancangan basis data seringkali diasosiasikan dengan pembuatan model EntityRelationship, dimana kelompok-kelompok data dan relasi antar kelompok data tersebut diwujudkan dalam bentuk diagram. ERD pada intiny menerangkan hubungan antara tabel atau entitas yang ada 3

C & C Laboratory 2008

ER DIAGRAM pada Database Relational. Biasanya relasi antar tabel tersebut menggambarkan cerita yang ada dalam sistem basis data. Dalam sebuah ER Diagram mengandung komponen berikut 1. Entity Sets Sebuah entity adalah sebuah benda atau objek di dunia nyata yang dapat dibedakan dari benda lainnya. Jadi sebuah basis data merupakan koleksi dari beberapa entitas dan dijelaskan menjadi sebuah tabel. Entity sets adalah sekumpulan entitas yang mempunyai tipe sama. Kesamaan tipe dapat dilihat dari atribut yang dimiliki oleh tiap entittas. Misalnya mahasiswa yang mengambil suatu mata kuliah. Sebuah entitas digambarkan dengan sebuah kotak persegi panjang Daftar_peserta Daftar_jurusan

2. Attribute Setiap entitas pasti memiliki attribute. Atribut mendeskripsikan karakteristik dari entitas tersebut. Misalnya mahasiswa memiliki atribut (nim),(nama),(jurusan), (nilai), (alamat), (tanggal lahir). Sebuah atribut dari entitas digambarkan dengan ellips nama jurusan nilai Daftar_peserta alamat Daftar_jurusan Kode_jurusan

nim

nama_jurusan

Tanggal_ lahir

Atribut juga memiliki sub-atribut untuk lebih menjelaskan karakteristik dari atribut tersebut

C & C Laboratory 2008

ER DIAGRAM 3. Relationship Relationship adalah suatu hubungan antar entitas. Atribut bisa juga merupakan bagian atau property dari sebuah relasi. Entitas yang terhubung dengan sebuah relasi bisa lebih dari 2. Biasanya model relasi yang mengandung 2 entitas disebut binary relationship. Misal hubungan antara tabel daftar_peserta dengan daftar_jurusan bisa disebut juga dengan hubungan mahasiswa tergabung dengan satu jurusan. Sebuah relasi digambarkan dengan belah ketupat nama jurusan nilai Daftar_peserta
tergabung

nim

Kode_jurusan

nama_jurusan

Daftar_jurusan

alamat

Tanggal _lahir

4. Cardinality Cardinality atau kardinalitas menunjukkan derajat relasi kepada hubungan maksimum yang dapat terjadi pada suatu himpunan entitas dengan himpunan entitas lain melalui relasi. Biasanya derajat relasi paling tepat digunakan untuk binary relationship. Mapping kardinalitas meliputi Hubungan satu ke satu (one to one). Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam Hubungan satu ke banyak (one to many) Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu entity dalam B dihubungkan dengan maksimum satu entity dalam A. Hubungan banyak ke satu (many to one) Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A. Hubungan banyak k banyak (many to many). Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, dan satu entity dalam B dihubungkan dengan sejumlah entity dalam A. 5

C & C Laboratory 2008

ER DIAGRAM

Biasanya kardinalitas digambarkan dengan garis berujung banyak untuk sisi yang memiliki many relation nama jurusan nilai Daftar_peserta
tergabung

nim

Kode_jurusan

nama_jurusan

Daftar_jurusan

alamat

Tanggal _lahir

ER Diagram diatas menggambarkan bahwa banyak mahasiswa tergabung dalam satu jurusan, artinya satu jurusan diikuti banyak mahasiswa dan satu mahasiswa hanya bisa tergabung dalam satu jurusan.

C & C Laboratory 2008

MODUL IV
ADVANCED QUERY LANGUAGE

ADVANCED QUERY LANGUAGE

MODUL IV Advanced Query Language

Tujuan Praktikum
1. Lebih memahami penggunaan query select 2. Mengerti cara seleksi pada satu tabel 3. Mengerti cara seleksi pada lebih dari satu tabel 4. Mengerti cara seleksi dengan sub query

A. Seleksi Satu Tabel


Seleksi ini berkisar pada field yang ada pada satu tabel. Seleksi ini sama seperti pembahasan pada modul 2 dimana kita bisa menggunakan fungsi aggregate function, pengelompokkan, pengurutan dan kriteria data serta menggunakan where dan having. Urutan dari penggunaan fungsifungsi tersebut adalah
SELECT field-1, , field-n, MIN | MAX | AVG | SUM | COUNT (nama_field) AS nama_alias FROM nama_tabel WHERE nama_field- 1 = kondisi- 1 , , nama_field- n = kondisi-n GROUP BY field-1, ,field-n HAVING kondisi ORDER BY nama_field DESC | ASC ;

CONTOH : Tampilkan nama, nim ,alamat dan jurusan dari tabel daftar_peserta bagi mahasiswa yang memiliki nilai diatas 72 dengan memperlihatkan masing-masing jurusan Nim Nama Alamat Aliya Aliya Jurusan Informatika Nilai 76

113040345 Andri 111040128 Arif

Telekomunikasi 73

C & C Laboratory 2008

ADVANCED QUERY LANGUAGE

B. Seleksi Lebih Dari Satu Tabel


Seleksi tipe ini memungkinkan kita untuk bebas memilih field mana saja yang ingin ditampilkan, asalkan antara field yang satu dan field yang lain masih berada pada tabel-tabel yang saling berelasi.
SELECT tabel-1.field-1, tabel-2.field- 2, , tabel-n.field-n aggregate function FROM tabel-1, tabel- 2, , tabel-n WHERE tabel-1.field-1 = kondisi- 1 , , tabel-n.field-n = kondisi- n GROUP BY tabel-1.field-1 HAVING kondisi ORDER BY tabel-1.field-1 DESC | ASC ;

CONTOH : Melihat tabel dengan field nim, nama, alamat, nilai dari tabel daftar_peserta dan kode jurusan dari tabel daftar_jurusan Nim Nama Alamat Aliya Aliya Aliya Aliya Aliya Nilai 67 76 70 71 73 Kode_jurusan 113 113 111 113 111

113040348 Jaka 113040345 Andri 111040100 Dimas 113040322 Dimas 111040128 Arif

C. Seleksi Sub Query


Seleksi sub query adalah query di dalam query. Artinya seleksi data berdasarkan dari hasil seleksi data yang telah ada. Perintahnya sama seperti perintah SQL umum tapi kondisi where diikuti dengan query baru atau sub query.

C & C Laboratory 2008

ADVANCED QUERY LANGUAGE


SELECT field-1,field-2, , field-n FROM nama_tabel WHERE criteria (SELECT aggregate function FROM nama_tabel WHERE field = kondisi) ;

CONTOH : Melihat nim dan nama mahasiswa dari tabel daftar_peserta yang memiliki nilai lebih besar dari rata-rata Nim Nama

113040345 Andri 111040128 Arif

C & C Laboratory 2008

MODUL V
PHP : MYSQL FUNCTION + SESSION&COOKIES

PHP:MYSQL FUNCTION + SESSION & COOKIES

MODUL V PHP : MySQL Function + Session and Cookies

Tujuan Praktikum
1. Mampu menggunakan bahasa pemrograman PHP untuk memanipulasi basis data 2. Mampu membuat sebuah aplikasi web sederhana berbasis PHP yang menggunakan MySQL 3. Mampu menggunakan session dan cookies pada aplikasi web

A. Fungsi MySQL pada PHP


PHP adalah bahasa pemrograman berbasis web. Bahasa ini memiliki kelebihan dalam kompatibilitas dengan berbagai macam jenis database dan support untuk berbagai macam jenis system operasi. PHP dan MySQL sangat cocok jika digabungkan sehingga seakan-akan orang jika menggunakan PHP berarti juga menggunakan MySQL dan sudah menjadi hal yang umum bahwa database untuk suatu web server adalah MySQL. Dengan PHP kita dapat melakukan manipulasi database (Data Manipulation Language) berikut seperti melihat isi database (SELECT), input data ke dalam database (INSERT), mengedit data yang ada di dalam database (EDIT) dan menghapus data pada database(DELETE). Manipulasi database MySQL selain langsung melalui console MySQL atau melalui PHPMyAdmin juga dapat melalui aplikasi web dengan PHP. Untuk melakukan fungsinya sebagai penghubung web interface dengan server MySQL, PHP memiliki fungsi-fungsi : 1. Koneksi Database Fungsi ini digunakan untuk membuat hubungan ke database MySQL yang ada pada suatu host. Setiap kali kita akan melakukan hubungan dengan database perintah ini harus selalu dijalankan.
Mysql_connect (nama_host,nama_user,password);

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES 2. Memilih Database Fungsi ini digunakan untuk memilih database yang akan digunakan, seperti perintah USE pada query MySQL.
Mysql_select_db (nama_database);

3. Memasukkan Query ke Database Fungsi ini digunakan untuk mengeksekusi query atau perintah yang biasa kita lakukan pada MySQL untuk melakukan suatu manipulasi dengan DML.
Mysql_query (query_database);

Query yang dapat kita lakukan sama seperti perintah yang dapat kita lakukan pada MySQL, jadi pada dasarnya perintah yang kita masukkan akan dijalankan pada server MySQL. 4. Mengambil Data dari Database Fungsi ini digunakan untuk mengambil hasil eksekusi query atau perintah kita dalam bentuk array.
Mysql_fetch_row (perintah_query_yang_telah_dijalankan);

Fungsi diatas menghasilkan suatu array yang berisi kolom dari seluruh record yang ditunjuk oleh perintah MySQL kedalam bentuk array dengan indeks angka. Perintah query merupakan perintah hasil eksekusi mysql_query.
Mysql_fetch_array (perintah_query_yang_telah_dijalankan);

Fungsi diatas menghasilkan suatu array yang berisi kolom dari seluruh record yang ditunjuk oleh perintah MySQL kedalam bentuk array dengan indeksnya merupakan nama dari field. Perintah query merupakan perintah hasil eksekusi mysql_query. Biasanya hasil dari perintah-perintah diatas ditampung kedalam bentuk variable PHP yang kemudian menjadi sebuah array.

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES 5. Menutup Database Fungsi ini digunakan untuk menutup koneksi kita dengan server MySQL. Sebaiknya setiap kita selesai melakukan query dengan database kita, ditulsi perintah ini agar koneksi tertutup.
Mysql_close (koneksi_yang_telah_dibuka);

CONTOH : Script PHP yang mengandung proses manipulasi pada sebuah web dengan server MySQL

Hasil yang ditampilkan pada browser

B. Cookies
Cookie digunakan dalam script PHP untuk mengingat suatu data pada computer client. Cookie adalah sepotong data yang disimpan pada harddisk local milik pengunjung dan digunakan oleh halaman web dalam mengingat suatu informasi dengan jangka waktu kadaliarsa yang bisa ditentukan. 3

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES Berdasarkan sifat diatas, cookie digunakan untuk : o Menyimpan nama pengunjung o Merekam daftar barang yang ingin dibeli pengunjung o Menyimpan pilihan-pilihan yang diatur oleh pengunjung o Menciptakan suatu sesi yang memungkinkan sehingga pengunjung dengan bebas masuk ke halaman lainnya tanpa perlu login kembali Penulisan perintah pembuatan cookie hanya bisa dilakukan sebelum memulai teks HTML.
Setcookie (nama_cookie,$nilai_cookie, waktu_kadaluarsa);

Nama_cookie : string yang menyatakan nama cookie yang dibuat $nilai_cookie : variable yang menyatalan nilai yang akan disimpan Waktu_kadaluarsa : menyatakan masa berlaku cookie yang dibuat, bila tidak diisi maka secara default akan dihapus saat browser ditutup

C. Session
Session merupakan fungsi PHP yang memiliki kemampuan untuk menyimpan data dalam bentuk variable dan disimpan dalam jangka waktu sementara selama seorang user mengunjungi website dan belum menutup jendela browser. Biasanya session dilakukan saat kita akan login pada suatu halaman web dan akan terus mengingat kita sampai kita logout dari system. Berbeda dengan cookie yang menyimpan data pada client, session menyimpan data pada server sehingga tidak perlu ada komunikasi bolak-balik antara web server dengan client ketika web server membutuhkan data tersebut. Setiap kali suatu sesi dibentuk maka akan terdapat referensi yang menunjuk ke sesi yang bersangkutan dikenal dengan sebutan Session Identifier (SID). Session dapat dituliskan pada setiap badan script halaman HTML dan PHP Untuk mengawali suatu session digunakan perintah session_start()
Session_start(session_id);

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES Untuk mengakhiri suatu session digunakan perintah :
Session_destroy (session_id);

Untuk memasukkan suatu nilai atau variable kedalam session digunakan perintah :
Session_register (nama_variabel);

Fungsi lain yang digunakan pada session adalah session_is_registered(nama_variabel). Biasa didahului dengan fungsi IF dan digunakan untuk mengecek sesi yang sudah teregistrasi
IF (Session_is _registered (nama_variabel)) : Kondisi_if ENDIF;

C & C Laboratory 2008

MODUL VI
ALJABAR RELASIONAL

PHP:MYSQL FUNCTION + SESSION & COOKIES

MODUL VI Aljabar Relasional

Tujuan Praktikum
1. Memahami operasi Aljabar Relasional 2. Mampu menggunakan Aljabar Relasional sebagai salah satu pemecahan masalah

Modul ini membahas bagaimana kita bisa mendapatkan data yang benar-benar kita inginkan dari 2 buah query,2 buah kondisi berbeda, 2 buah tabel dan lain-lainnya. Aljabar Relasional seperti himpunan dimana kita bisa melakukan operasi penggabungan (UNION), operasi irisan (INTERSECTION), operasi pengurangan (DIFFERENCE), proyeksi (DISTINCT), dan penggabungan 2 tabel (JOIN). Sebelum kita mulai sebaiknya kita menyiapkan database kita dengan tabel daftar_peserta berisi data berikut Nim Nama Tanggal_Lahir Jurusan 1986-04-23 1987-03-20 1986-08-27 1986-08-13 1986-04-18 1987-02-07 1986-06-11 1987-02-20 1986-12-01 Informatika Informatika Alamat Aliya Aliya Nilai 67 76 70 71 73 63 72 80 79

113040348 Jaka 113040345 Andri 111040100 Dimas 113040322 Dimas 111040128 Arif 113050001 Fatar 113040335 Anggis 111040198 Randi 112040060 Riza

Telekomunikasi Aliya Informatika Aliya

Telekomunikasi Aliya Informatika Informatika Aliya Aliya

Telekomunikasi Aliya Industri Dago

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES

1. UNION
Pada prinsipnya union bertujuan untuk menggabungkan dua query atau lebih menjadi satu kesatuan query. Pada operasi union ini mensyaratkan kedua query atau sub query yang akan digunakan harus memiliki kolom yang sama.
SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_1 UNION SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_2

2. INTERSECTION
Pada prinsipnya intersection bertujuan untuk mencari irisan dua query atau lebih menjadi satu kesatuan query. Pada operasi intersection ini mensyaratkan kedua query atau sub query yang akan digunakan harus memiliki kolom yang sama.
SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_1 INTERSECT SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_2

3. DIFFERENCE
Pada prinsipnya difference bertujuan untuk menampilkan data hasil pengurangan dua query atau lebih menjadi satu kesatuan query. Pada operasi difference ini mensyaratkan kedua query atau sub query yang akan digunakan harus memiliki kolom yang sama.
SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_1 DIFFERENCE SELECT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_2

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES CONTOH : Tampilkan nim, nama, nilai dan jurusan dari tabel daftar_peserta untuk mahasiswa bagi masing-masing jurusan yang memiliki nilai diatas rata-rata Nim Nama Jurusan Industri Informatika Nilai 79 76

112040060 Riza 113040345 Andri 111040128 Arif 111040198 Randi

Telekomunikasi 73 Telekomunikasi 80

4. DISTINCT
Pada dasarnya distinct digunakan untuk menghilangkan nilai ganda. Nilai yang sama dan diulang-ulang akan dijadikan nilai tunggal atau satu nilai saja
SELECT DISTINCT field-1, , field-n, aggregate function FROM nama_tabel WHERE criteria_1 GROUP BY field-1;

CONTOH : Tampilkan data dari tabel daftar_peserta yang menampilkan ada dimana saja mahasiswa masing-masing jurusan tinggal Jurusan Industri Informatika Alamat Dago Aliya

Telekomunikasi Aliya 3

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES

5. JOIN
Operasi join digunakan saat mengkombinasikan dua tabel atau lebih. Ada beberapa jenis join tergantung penggunaannya Cross Join Digunakan bila akan menggabungkan seluruh baris dalam tiap tabel dengan baris di tabel lainnya. Seperti operasi cross pada vector
SELECT tabel-1.field-1, , tabel-2.field-2, aggregate function FROM tabel-1 CROSS JOIN tabel-2;

Natural Join Digunakan bila akan menggabungkan tiap baris di tabel A dengan tabel B namun dengan syarat harus ada elemen baris / record dari kedua tabel yang sama.

SELECT tabel-1.field-1, , tabel-2.field-2, aggregate function FROM tabel-1 NATURAL JOIN tabel-2;

Inner Join Digunakan bila akan menggabung atau mencari kesamaan data antara tabel yang satu dengan tabel yang lain. Data yang sama tersebut akan ditampilkan setelah operasi join ini.
SELECT tabel-1.field-1, , tabel-2.field-2, aggregate function FROM tabel-1 JOIN tabel-2 ON tabel-1.field_PK = tabel-2.field_PK;

Perintah diatas akan menghasilkan data yang sama dengan perintah select tanpa join berikut
SELECT tabel-1.field-1, , tabel-2.field-2, aggregate function FROM tabel-1, tabel-2 WHERE tabel-1.field_PK = tabel-2.field_PK;

C & C Laboratory 2008

PHP:MYSQL FUNCTION + SESSION & COOKIES Perintah on dan where diatas harus menggunakan field bertipe primary key, bila tidak ada dapat juga digunakan foreign key. Intinya field yang digunakan adalah field relasi. Untuk memudahkan penulisan kita juga dapat menggunakan alias untuk nama tabel
SELECT A.field- 1, , B.field-2, aggregate function FROM tabel-1 A, tabel-2 B WHERE A.field_PK = B.field_PK;

Outer Join Digunakan bila akan melakukan join antara dua tabel, dimana data yang tidak memiliki pasangan pada tabel 1 atau tabel 2 akan ditampilkan setelah operasi outer join. Data yang ditampilkan bergantung pada jenis operasi yang digunakan, apakah left outer join atau right outer join.
SELECT A.field- 1, , B.field-2, aggregate function FROM tabel-1 A LEFT | RIGHT OUTER JOIN tabel-2 B ON A.field_PK = B.field_PK;

CONTOH : Tampilkan nim, nama dan jurusan dari tabel daftar_peserta dan kode_jurusan dari tabel daftar_jurusan Nim Nama Jurusan Informatika Informatika Kode_jurusan 113 113

113040348 Jaka 113040345 Andri 111040100 Dimas 113040322 Dimas 111040128 Arif 113050001 Fatar 113040335 Anggis 111040198 Randi 112040060 Riza

Telekomunikasi 111 Informatika 113

Telekomunikasi 111 Informatika Informatika 113 113

Telekomunikasi 111 Industri 112

C & C Laboratory 2008