Anda di halaman 1dari 25

TUGAS KE-5

PRAKTIKUM META DATA UNTUK TEMU KEMBALI INFORMASI 1


SELEKSI RELASIONAL

Oleh :

Nama : Annas Tasya Afril Budiyanti


NIM : 210607110034
Dosen pengampu : Fakhris Khusnu Reza Mahfud,M.Kom
Asisten : Alia Salsabila
Tanggal : 25 Oktober 2022

JURUSAN PERPUSTAKAAN DAN SAINS INFORMASI


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM
MALANG
2022
PENDAHULUAN
A. Tujuan
- Mahasiswa mampu mengetahui seleksi relasional menggunakan SQL.
- Mahasiswa mampu mengimplementasikan seleksi lanjutan menggunakan SQL dalam
lingkungan kerja DBMS MS-SQL Server 2012.

B. Pendahuluan

Dalam sebuah database yang berelasional kita juga dapat menampilkan data dari dua atau
lebih tabel yang berbeda. Namun demikian apabila tabel tersebut merupakan tabel yang
saling beralasi, maka perlu teknk seleksi secara special dan khusus. Secara standar, jika ingin
menampilkan dua tabel atau lebih cukup dengan langsung meyebutkan nama tabel yang akan
ditampilkan. Namun sayang, hasil yang ditampilkan akan berbentuk pendobelan data yang
tidak sesuai dengan yang direlasikan. Bentuk umum:

SELECT * FROM Nama_Tabel_1, Nama_Tabel_2, ..., Nama_Tabel_N


ISI
1. Pertama-tama kita buka terlebih dahulu SQL Server Management Studio. Setelah itu kita
buat database baru dengan klik New Database.

2. Isi nama database sesuai dengan yang kita inginkan, kemudian klik OK.
3. Setelah membuat database baru, kita klik New Query untuk memasukkan sebuah data.

4. Langkah pertama kita buat terlebih dahulu tabel mahasiswa dengan mengetikkan bahasa
Query seperti di bawah ini. Setelah itu klik Execute.
CREATE TABLE mahasiswa
(
nim char(15) NOT NULL,
nama varchar(30) NOT NULL,
alamat varchar (100) NOT NULL,
no_hp char (12) NOT NULL,
)
5. Setelah itu membuat tabel matakuliah, dengan mengetikkan bahasa query seperti di bawah ini.

create table matakuliah


(
kdmatkul char(7) NOT NULL,
namamatkul varchar(30) NOT NULL,
sks integer NOT NULL,
)
6. Selanjutnya membuat tabel KRS.

create table krs


(
tahun integer NOT NULL,
smt integer NOT NULL,
nim char(15) NOT NULL,
kdmatkul char(7) NOT NULL,
kdruangan char(5) NOT NULL,
noindukdosen char (15)NOT NULL,
nilai char(2) NOT NULL,
)
7. Selanjutnya membuat tabel ruangan.

create table ruangan


(
kdruangan char(5) NOT NULL,
nama_ruangan varchar (100) NOT NULL,
)

8. Selanjutnya membuat tabel dosen.

create table dosen


(
noindukdosen char(15) NOT NULL,
nama_dosen varchar(50)NOT NULL,
kdjabfung char (5) NOT NULL,
)
9. Dan yang terakhir membuat tabel Jabatan fungsional.

create table jabatan_fungsional


(
kdjabfung char (5)NOT NULL,
nama_jabatan_fungsional varchar (100) NOT NULL,
)
10. Klik New Query. Kemudian tulis bahasa query seperti dibawah ini.

insert into mahasiswa values ('2100560012','Tony Stark','Jl. Werkudara


21','08123334563');
insert into mahasiswa values ('2100560013','Peter Parker','Jl. Duku
131','08154334503');
insert into mahasiswa values ('2100560014','Simone','Jl. Manggis 44','08813334513');
insert into mahasiswa values ('2100560015','Diana ','Jl. Cemara 10','08333334533');
insert into mahasiswa values ('2100560017','Rose','Jl. Beringin 34','08743336563');
insert into mahasiswa values ('2100560020','Megan','Jl. Rambutan 61','08923334532');
insert into mahasiswa values ('2000560132','Alex','Jl. Jeruk 29','08568134563');
insert into mahasiswa values ('2000560023','Erick Cantona','Jl. Papaya
34','08923434563');
SELECT*FROM mahasiswa
11. Selanjutnya membuat data Mata Kuliah seperti di bawah ini dan klik Execute, maka
tampilan akan muncul seperti dibawah ini.

insert into matakuliah values('MKP001','Basis Data','2');


insert into matakuliah values('MKP002','Information Retrieval','3');
insert into matakuliah values('MKP003','Data Science','2');
insert into matakuliah values('MKP004','Internet of Things','3');
insert into matakuliah values('MKP005','Jaringan Komputer','3');
insert into matakuliah values('MKP006','Pengenalan Ilmu Komputer','2');
insert into matakuliah values('MKP007','Data mining','3');
SELECT*FROM matakuliah
12. Selanjutnya membuat data KRS seperti di bawah ini dan klik Execute, maka tampilan akan
muncul seperti dibawah ini.

insert into krs values ('2020','1','2000560132','MKP001','A01','7012345','B');


insert into krs values ('2020','1','2000560023','MKP001','A01','7012345','B+');
insert into krs values ('2020','1','2000560023','MKP002','A02','7054321','A');
insert into krs values ('2020','1','2000560132','MKP002','A02','7054321','B+');
insert into krs values ('2021','1','2100560015','MKP001','A01','7012345','A');
insert into krs values ('2021','1','2100560017','MKP002','A02','7054321','A');
insert into krs values ('2021','2','2000560132','MKP003','A01','0044552','C');
insert into krs values ('2021','2','2000560023','MKP004','A02','0543299','C+');
insert into krs values ('2022','3','2100560012','MKP007','A02','7054321','B+');
insert into krs values ('2022','3','2100560013','MKP007','A03','0044552','B+');
insert into krs values ('2022','3','2100560015','MKP007','D223','0543299','A');
insert into krs values ('2022','3','2100560017','MKP007','D224','7031245','A');
SELECT*FROM krs
13. Selanjutnya membuat data Ruangan seperti di bawah ini dan klik Execute, maka tampilan
akan muncul seperti dibawah ini.

insert into ruangan values ('A01','Ruang kelas 1, Gedung A');


insert into ruangan values ('A02','Ruang kelas 2, Gedung A');
insert into ruangan values ('A03','Ruang kelas 3, Gedung A');
insert into ruangan values ('D223','Ruang kelas 223, Gedung D');
insert into ruangan values ('D224','Ruang kelas 224, Gedung D');
SELECT*FROM ruangan
14. Selanjutnya membuat data Ruangan seperti di bawah ini dan klik Execute, maka tampilan
akan muncul seperti dibawah ini.

insert into dosen values ('7012345','Arif Suyono','1');


insert into dosen values ('7054321','Wayan','2');
insert into dosen values ('0044552','Abdul','2');
insert into dosen values ('0543299','Adriano','3');
insert into dosen values ('7031245','Roy Marten','4');
SELECT*FROM dosen
15. Selanjutnya membuat data Ruangan seperti di bawah ini dan klik Execute, maka tampilan
akan muncul seperti dibawah ini.

insert into jabatan_fungsional values('1','Calon dosen asisten ahli');


insert into jabatan_fungsional values('2','Asisten ahli');
insert into jabatan_fungsional values('3','Lektor');
insert into jabatan_fungsional values('4','Lektor kepala');
insert into jabatan_fungsional values('5','Guru besar');
SELECT*FROM jabatan_fungsional
SOAL
1. Dapatkan IP masing masing mahasiswa Angkatan 2020 pada semester 1
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.
select cast(b.nim as bigint),b.nama,c.tahun,
AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS nilai_IPK
from matakuliah as a, mahasiswa as b, krs as c
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and c.tahun='2020'
group by b.nim,b.nama,c.tahun

- Maka hasilnya akan muncul seperti gambar dibawah ini.


2. Dapatkan nim dan nama mahasiswa yang memiliki IP tertinggi dengan NIM ganjil.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute
select top 1 cast(b.nim as bigint),b.nama,c.tahun,
AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS nilai_IPK
from matakuliah as a, mahasiswa as b, krs as c
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and cast(b.nim as bigint) %2 = 1
group by b.nim,b.nama,c.tahun
order by nilai_IPK desc

- Maka hasilnya akan muncul seperti gambar dibawah ini.


3. Dapatkan nim dan mahasiswa dengan IP terendah dengan NIM ganjil.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute

select top 1 cast(b.nim as bigint),b.nama,c.tahun,


AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS nilai_IPK
from matakuliah as a, mahasiswa as b, krs as c
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and cast(b.nim as bigint) %2 = 1
group by b.nim,b.nama,c.tahun
order by nilai_IPK asc

- Maka hasilnya akan muncul seperti gambar dibawah ini.


4. Dapatkan rata – rata IP dari mata kuliah data mining.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select a.namamatkul,
AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS IP_datamining
from matakuliah as a, mahasiswa as b, krs as c
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and a.namamatkul='DATA MINING'
group by a.namamatkul

- Maka hasilnya akan muncul seperti gambar dibawah ini.


5. Dapatkan rata – rata IP dari mata kuliah yang diampu oleh dosen Wayan.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select d.nama_dosen,
AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS IP_dosenwayan
from matakuliah as a, mahasiswa as b, krs as c, dosen as d, jabatan_fungsional as e
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and d.nama_dosen='WAYAN'
group by d.nama_dosen

- Maka hasilnya akan muncul seperti gambar dibawah ini.


6. Dapatkan nama dosen dari mata kuliah yang terdapat nilai A.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select d.nama_dosen, a.namamatkul, c.nilai


from matakuliah as a, mahasiswa as b, krs as c, dosen as d, jabatan_fungsional as e
where d.noindukdosen=c.noindukdosen and a.kdmatkul=c.kdmatkul and b.nim=c.nim and
c.nilai='A'
group by d.nama_dosen, a.namamatkul,c.nilai

- Maka hasilnya akan muncul seperti gambar dibawah ini.


7. Dapatkan jabatan fungsional dosen pengampu mata kuliah yang diambil oleh
mahasiswa bernama Rose yang mendapat nilai A.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select e.nama_jabatan_fungsional, d.nama_dosen, a.kdmatkul, c.nilai


from matakuliah as a, mahasiswa as b, krs as c, dosen as d, jabatan_fungsional as e
where d.noindukdosen=c.noindukdosen and a.kdmatkul=c.kdmatkul and b.nim=c.nim and
d.kdjabfung=e.kdjabfung and b.nama='rose'
group by e.nama_jabatan_fungsional, d.nama_dosen, a.kdmatkul, c.nilai

- Maka hasilnya akan muncul seperti gambar dibawah ini.


8. Dapatkan nama dosen pengampu mata kuliah dengan nilai terendah.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select top 1 d.nama_dosen, c.nilai,


AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS nilai_IPK
from matakuliah as a, mahasiswa as b, krs as c, dosen as d, jabatan_fungsional as e
where d.noindukdosen=c.noindukdosen and a.kdmatkul=c.kdmatkul and b.nim=c.nim and
d.kdjabfung=e.kdjabfung
group by d.nama_dosen, c.nilai
order by nilai_IPK asc

- Maka hasilnya akan muncul seperti gambar dibawah ini.


9. Dapatkan nama mahasiswa yang memiliki IP tertinggi dengan NIM genap.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select top 1 cast(b.nim as bigint),b.nama,c.tahun,


AVG(
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
END) AS nilai_IPK
from matakuliah as a, mahasiswa as b, krs as c
where a.kdmatkul=c.kdmatkul and b.nim=c.nim and cast(b.nim as bigint) %2 = 0
group by b.nim,b.nama,c.tahun
order by nilai_IPK asc

- Maka hasilnya akan muncul seperti gambar dibawah ini.


10. Dapatkan IPK keseluruhan mahasiswa.
- Caranya kita ketikkan seperti di bawah ini, kemudian klik Execute.

select a.nim, c.smt,


AVG (
case
when c.nilai='A' then 4.0
when c.nilai='B+' then 3.5
when c.nilai='B' then 3.0
when c.nilai='C+' then 2.5
when c.nilai='C' then 2.0
when c.nilai='D+' then 1.5
when c.nilai='D' then 1.0
when c.nilai='E' then 0.0 ELSE 0.0
end) as IPK
from mahasiswa as a, matakuliah as b, krs as c, ruangan as d, dosen as e,
jabatan_fungsional as f
where b.kdmatkul=c.kdmatkul and a.nim=c.nim and e.noindukdosen=c.noindukdosen group by
a.nim, a.nama, c.smt

- Maka hasilnya akan muncul seperti gambar dibawah ini.


KESIMPULAN
Subquery adalah salah satu metode mendapatkan data/informasi dari sebuah tabel maupun
beberapa tabel. Secara garis besar subquery dapat digambarkan seperti sintaks berikut :

Select *from tabel_a where kolom_a = select kolom_b from table_b);

Jadi penggunaan sub query, dapat mempersingkat perintah serta menggunakan fungsi
logika yang lebih mudah dipahami dari pada query biasa.

Anda mungkin juga menyukai