Anda di halaman 1dari 12

MODUL PERKULIAHAN

Pemrograman
PL/SQL
Relasi Tabel Oracle 10G

Fakultas Program Studi TatapMuka Kode MK Disusun Oleh

03
Ilmu Komputer Sistem Informasi 1A4183CA Dian Wirawan, S.Kom, M.Kom

Abstract Kompetensi
Pengenalan terhadap relasi antar table Mahasiwa dapat mengetahui relasi table
dan mengerti teknik queri SQL di dan mengetahui proses queri dengan
Oracle Express Edition. SQL Oracle.
Relasi Antar Table Oracle 10G XE
1. Pendahuluan

Sebelum data dapat kita akses ada 3 hal yang harus di perhatikan, yaitu entitas ,
atribut dan relasi. Setelah kita mendeskripsikan hal – hal diatas maka kita dapat
mengakses data – data yang terdapat pada database. Dibawah penjelasan singkat
yang perlu diperhatikan untuk memulai mengakses data.
Relasi adalah hubungan antara tabel yang mempresentasikan hubungan antar objek
di dunia nyata. Relasi merupakan hubungan yang terjadi pada suatu tabel dengan
lainnya yang mempresentasikan hubungan antar objek di dunia nyata dan berfungsi
untuk mengatur mengatur operasi suatu database. Hubungan yang dapat dibentuk
dapat mencakup 3 macam hubungan, yaitu :

One-To-One (1-1)
Mempunyai pengertian "Setiap baris data pada tabel pertama dihubungkan hanya ke
satu baris data pada tabel ke dua". Contohnya : relasi antara tabel mahasiswa dan
tabel orang tua. Satu baris mahasiswa hanya berhubungan dengan satu baris orang
tua begitu juga sebaliknya.

contoh relasi one-to-one

One-To-Many (1-N)
Mempunyai pengertian "Setiap baris data dari tabel pertama dapat dihubungkan ke
satu baris atau lebih data pada tabel ke dua". Contohnya : relasi perwalian antara
tabel dosen dan tabel mahasiswa. Satu baris dosen atau satu dosen bisa
berhubungan dengan satu baris atau lebih mahasiswa.

contoh relasi one-to-many

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


2 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Many-To-Many (N-M)
Mempunyai pengertian "Satu baris atau lebih data pada tabel pertama bisa
dihubugkan ke satu atau lebih baris data pada tabel ke dua". Artinya ada banyak
baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain.
Contohnya : relasi antar tabel mahasiswa dan tabel mata kuliah. Satu baris
mahasiswa bisa berhubungan dengan banyak baris mata kuliah begitu juga
sebaliknya.

2. Join

Join merupakan salah satu fitur SQL yang berguna menggabungkan tabel dengan
query-query yang mendapatkan kembali data. Join adalah salah satu dari beberapa
operasi paling penting yang dapat Anda lakukan dengan menggunakan statemen
SELECT. Dan sebagai bagian penting dalam mempelajari SQL, Anda perlu
memahami dengan baik join dan sintaks join.
Alasan utama digunakannya pemisahan data ke dalam banyak tabel memungkinkan
proses pemyimpanan menjadi lebih efesien, manipulasi lebih mudah dan skalabilitas
yang lebih besar.

Ketika kita memerlukan data dari beberapa tabel dalam database, dapat
menggunakan kondisi join. Data dari satu tabel dapat digabungkan dengan data dari
tabel lain berdasarkan nilai-nilai yang terdapat pada kolom-kolom yang
berhubungan, yang disebut kolom-kolom primary key dan foreign key.

Tipe-tipe Join

 Equijoin
 Non-equijoin
 Outer join

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


3 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
 Self join

3. Cartesian Product

Cartesian Product adalah hasil dari join yang tidak valid, sehingga menyebabkan
ditampilkannya seluruh kombinasi data dari tabel-tabel yang di-join-kan. Seluruh
baris dari tabel pertama di-join-kan dengan seluruh baris pada tabel kedua.

Contoh:

SELECT name, last_name


FROM department, employees;

Kira – Kira Table Seperti dibawah :

Employees

Salary

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


4 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Estimasi Tabel Department dan Customer

Dan Coba jalankan tipe – tipe join dibawah.

a. Equijoin

Kita dapat menampilkan data-data dari kedua tabel dengan men-join-kan foreign key
dari satu tabel dengan primary key dari tabel lainnya.

SELECT table.column, table.column…


FROM table1, table2
WHERE table1.column1 = table2.column2;

Contoh:

Menampilkan data karyawan dan departemen tempat karyawan tersebut bekerja.

SELECT employees.last_name, employees.department_id,


departments.department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id;

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


5 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Jika terdapat nama kolom yang sama pada tabel-tabel yang di-join-kan, kita harus
menentukan dari table mana kolom tersebut berasal dengan menyebutkan nama
tabelnya, namun sebaliknya jika tidak terdapat nama kolom yang sama pada tabel-
tabel yang di-join-kan, kita tidak harus menentukan dari table mana kolom tersebut
berasal.

b. Menambahkan Kondisi Pencarian

Kita dapat menambahkan kondisi pencarian dalam join dengan menggunakan


operator AND atau OR sesuai kriteria yang diinginkan.

Contoh:

Menampilkan data karyawan yang memiliki nama akhir Wirawan dan departemen
tempat karyawan tersebut bekerja.

SELECT employees.last_name, employees.department_id,


departments.department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id
AND INITCAP (employees.last_name) = 'austin';

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


6 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
c. Penggunaan Alias Tabel

Menuliskan kolom dengan nama tabel dapat memakan waktu, terlebih jika nama
tabel cukup panjang.k Kita dapat mengatasi hal ini dengan menggunakan alias tabel
(memberikan nama lain kepada tabel dengan nama yang lebih pendek).

Contoh:

Menampilkan data karyawan dan departemen tempat karyawan tersebut bekerja.

SELECT e.last_name "Nama Karyawan", d.department_id "ID Department",


d.department_name "Nama Department"
FROM employees e, departments d
WHERE e.department_id = d.department_id;

Perhatikan query tersebut diatas, yang dimaksud alias tabel adalah e dan d yang
masing-masing mewakili tabel karyawan dan departemen.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


7 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
d. Non-Equijoin

Non-equijoin adalah relasi antara dua atau lebih tabel dimana nilai dari kolom-kolom
yang dihubungkan tidak saling berhubungan secara langsung (tidak ada hubungan
primary key dan foreign key). Dalam non-equijoin digunakan operator selain equal
(=).

Contoh:

Menampilkan data karyawan dan tingkatan gajinya.

SELECT e.last_name, e.job_id, e.salary, j.job_title


FROM employees e, jobs j
WHERE e.salary BETWEEN j.min_salary AND j.max_salary;

e. Outer Join

Sebuah query tidak akan menghasilkan data apapun apabila kondisi join tidak
terpenuhi. Sebagai contoh, Anda dapat mencoba menampilkan nama-nama
pelanggan dan sales representative dengan cara meng-equijoin-kan table Karyawan
dan Pelanggan. Pelanggan yang tidak memiliki sales representative tidak akan
ditampilkan karena kondisi join tidak terpenuhi.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


8 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Kita dapat menangani data yang hilang tersebut dengan menggunakan operator
outer join (+), yang diletakkan pada sisi kolom dari tabel yang bertindak sebagai
parent (induk).

Operator ini akan menampilkan hasil dari equijoin ditambah dengan hasil query yang
tidak memenuhi kondisi equijoin tersebut.

Sintaks:

SELECT table.column, table.column…


FROM table1, table2
WHERE table1.column = table2.column(+);

Contoh:

Menampilkan data pelanggan dan nama sales representative dari pelanggan


tersebut baik yang memiliki sales representative maupun tidak.

SELECT r.region_id, c.country_name, r.region_name


FROM regions r, countries c
WHERE c.region_id = r.region_id (+)
ORDER BY r.region_id;

f. Self Join

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


9 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Self join adalah hubungan antara suatu tabel dengan tabel itu sendiri. Hal ini
dimungkinkan dengan menggunakan alias tabel sehingga seolah-olah terdapat dua
tabel.

Contoh:

Menampilkan data karyawan dan manajer dari karyawan tersebut.

SELECT e.last_name|| ' atasan dari ' || m.last_name


FROM employees e, employees m
WHERE e.manager_id = m.employee_id;

Perhatikan kasus diatas, karena manajer juga merupakan karyawan maka semua
data yang diperlukan berasal dari satu tabel yaitu Employee. Dengan menggunakan
alias tabel kita menciptakan seolah-olah terdapat dua tabel yaitu e (employees) dan
m (manager), yang keduanya berasal dari tabel yang sama yaitu Employee.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


10 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
g. Latihan

Buat Query atas pertanyaan dibawah.

1. Tampilkan nama departemen dan nama belakang dari pegawai dalam satu
query.
2. Tampilkan nama belakang pegawai, kode dan nama departemen dimana
pegawai tersebut bekerja.
3. Tampilkan kode departemen, kode manager dan nama daerah tempat
departemen tersebut berada.
4. Tampilkan pegawai dengan nama belakang Chen, kode manager dan nama
departemen tempat ia bekerja.
5. Tampilkan nama belakang dan serta nama daerah tempat pegawai tersebut
bekerja, khusus untuk pegawai yang mendapatkan komisi.
6. Tampilkan nama pegawai, kode dan nama daerah tempat dimana pegawai
tersebut tinggal.
7. Tampilkan nama belakang karyawan, kode karyawan, dan Negara karyawan
urut berdasarkan kode karyawan.
8. Tampilkan nama belakang pegawai dan nama belakang atasan dari pegawai
tersebut serta alamatnya.
9. Tampilkan nama belakang pegawai, kode dan nama departemen tempat
pegawai tersebut bekerja.
10. Tampilkan nama belakang pegawai, nama departemen tempat pegawai
tersebut bekerja dan nama daerah tempat departemen tersebut berada.
11. Tampilkan nama belakang pegawai dan nama departemen tempat pegawai
tersebut bekerja khusus untuk pegawai dengan nama belakangnya Markle.
12. Tampilkan nama belakang pegawai, kode pegawai, nama belakang atasan
dari pegawai tersebut, serta kode dari atasan pegawai tersebut.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


11 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
DaftarPustaka
Oracle.com 2016. Oracle 10 g Express Edition Documentation.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


12 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id

Anda mungkin juga menyukai