MAKALAH
SESI#05
T-SQL
SELECT DML
Dosen Pengampu
M. Reza Redo
Islami, S.Kom., M.T.I.
Tanggal Penyerahan
13 April 2026
JURUSAN
TEKNOLOGI INFORMASI
PROGRAM STUDI
MANAJEMEN INFORMATIKA
POLITEKNIK NEGERI
LAMPUNG
2026
KATA PENGANTAR
Segala puji
dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa atas segala rahmat
dan karunia-Nya, sehingga makalah praktikum ini dapat disusun dan diselesaikan
dengan baik. Makalah ini dibuat sebagai bentuk laporan dari kegiatan praktikum
pada mata kuliah Basis Data yang berfokus pada penggunaan perintah SELECT dalam
T-SQL.
Penulis
menyadari bahwa dalam penyusunan makalah ini masih terdapat kekurangan. Oleh
karena itu, penulis sangat mengharapkan kritik dan saran yang bersifat
membangun demi penyempurnaan di masa yang akan datang. Diharapkan makalah ini
dapat memberikan manfaat serta menambah wawasan bagi pembaca.
BAB I
PENDAHULUAN
1.1 Latar
Belakang
Dalam dunia
pengelolaan basis data, kemampuan untuk mengakses dan mengolah data merupakan
aspek yang sangat penting. Salah satu perintah utama dalam SQL yang digunakan
untuk tujuan tersebut adalah SELECT. Perintah ini memungkinkan pengguna untuk
mengambil data dari database sesuai dengan kebutuhan.
Dengan
dukungan berbagai klausa seperti WHERE, ORDER BY, GROUP BY, dan lainnya, proses
pengambilan data dapat dilakukan secara lebih spesifik dan terstruktur. Oleh
karena itu, praktikum ini dilakukan untuk memahami serta menguasai penggunaan
perintah SELECT dalam pengolahan data.
1.2 Rumusan
Masalah
1. Apa peran
dan fungsi perintah SELECT dalam SQL?
2. Bagaimana
cara penggunaan berbagai klausa dalam SELECT?
3. Bagaimana
implementasi SELECT dalam pengolahan data pada database?
1.3 Tujuan
Adapun tujuan
dari pelaksanaan praktikum ini adalah:
• Memahami
konsep dasar perintah SELECT dalam T-SQL
• Mampu
menggunakan berbagai klausa yang terdapat dalam SELECT
• Mengoptimalkan
proses pengolahan data dalam database
BAB II
LANDASAN TEORI
Perintah
SELECT merupakan salah satu bagian dari Data Manipulation Language (DML) yang
digunakan untuk mengambil data dari tabel dalam database. Perintah ini berperan
penting karena memungkinkan pengguna untuk membaca dan menampilkan data sesuai
kebutuhan.
Dalam
penggunaannya, SELECT dapat dikombinasikan dengan berbagai klausa, di
antaranya:
• DISTINCT
digunakan untuk menampilkan data tanpa duplikasi
• WHERE
berfungsi untuk menyaring data berdasarkan kondisi tertentu
• ORDER BY
digunakan untuk mengurutkan data
• GROUP BY
berfungsi untuk mengelompokkan data
• HAVING
digunakan untuk menyaring hasil pengelompokan
• LIKE
digunakan untuk pencarian data berdasarkan pola tertentu
Selain itu,
terdapat fungsi agregat seperti COUNT(), SUM(), AVG(), MIN(), dan MAX() yang
digunakan untuk melakukan perhitungan terhadap data.
BAB III
METODOLOGI PRAKTIKUM
3.1 Alat dan
Bahan
• Perangkat
komputer atau laptop
• Aplikasi
Microsoft SQL Server Management Studio (SSMS)
• Database
AKADEMIK
• Modul
praktikum
3.2 Prosedur
Kerja
Langkah-langkah
yang dilakukan dalam praktikum ini adalah sebagai berikut:
1. Menjalankan
aplikasi SSMS dan menghubungkannya dengan server database
2.
Mengaktifkan database menggunakan perintah `USE AKADEMIK;`
3. Menjalankan
perintah SELECT dasar untuk menampilkan data
4. Menggunakan
DISTINCT untuk memperoleh data unik
5. Menerapkan
WHERE sebagai filter data
6. Mengurutkan
data menggunakan ORDER BY
7.
Mengelompokkan data dengan GROUP BY
8. Memberikan
kondisi pada hasil grup menggunakan HAVING
9. Melakukan
pencarian pola menggunakan LIKE
10. Mengamati
dan menganalisis hasil query
BAB IV HASIL
DAN PEMBAHASAN
4.1 Hasil
Praktikum
Hasil dari
praktikum menunjukkan bahwa perintah SELECT dapat digunakan untuk berbagai
keperluan, antara lain:
• Menampilkan
data yang bersifat unik
• Melakukan
penyaringan data sesuai kriteria tertentu
• Mengurutkan
data agar lebih terstruktur
•
Mengelompokkan data untuk memperoleh ringkasan
• Membatasi
hasil berdasarkan kondisi tertentu
• Melakukan
pencarian data dengan pola tertentu
4.2 Pembahasan
Berdasarkan
hasil yang diperoleh, terlihat bahwa perintah SELECT memiliki fleksibilitas
yang tinggi dalam pengolahan data. Penggunaan DISTINCT membantu menghindari
pengulangan data sehingga informasi yang dihasilkan lebih jelas.
Klausa WHERE
berperan penting dalam menentukan data yang akan ditampilkan. Dengan
memanfaatkan operator logika seperti AND dan OR, pengguna dapat menyusun
kondisi yang lebih kompleks.
ORDER BY mempermudah dalam pengurutan data sehingga lebih mudah dipahami. Sementara itu, GROUP BY yang dikombinasikan dengan fungsi agregat mampu menghasilkan informasi dalam bentuk ringkasan data.
Klausa HAVING
digunakan untuk memberikan batasan pada hasil pengelompokan, sedangkan LIKE
digunakan untuk mencari data berdasarkan pola tertentu.
Dengan
demikian, penggunaan berbagai klausa dalam SELECT memungkinkan proses
pengolahan data dilakukan secara efektif dan efisien.
BAB V PENUTUP
5.1 Kesimpulan
Dari hasil
praktikum yang telah dilakukan, dapat disimpulkan bahwa:
1. Perintah
SELECT merupakan komponen penting dalam pengolahan data pada database
2. Berbagai
klausa dalam SELECT memiliki fungsi yang saling melengkapi
3. Penggunaan
klausa tersebut memungkinkan penyajian data yang lebih akurat dan terstruktur
5.2 Saran
Disarankan
agar mahasiswa terus berlatih dalam membuat query SQL dan mencoba berbagai
variasi penggunaan klausa SELECT agar kemampuan dalam pengolahan data semakin
meningkat.
DAFTAR PUSTAKA
• Modul
Praktikum T-SQL SELECT DML
• LMS
Politeknik Negeri Lampung
• Dokumentasi
Microsoft SQL Server
LAMPIRAN
CREATE
DATABASE AkademikPoliteknik;
USE
AkademikPoliteknik;
-- 1. CREATE TABLE
CREATE TABLE
prodi (
kd_prodi
VARCHAR(10) PRIMARY KEY,
nm_prodi
VARCHAR(100) NOT NULL,
jenjang
VARCHAR(10) NOT NULL
);
CREATE TABLE
dosen (
nidn
VARCHAR(15) PRIMARY KEY,
nama
VARCHAR(100) NOT NULL,
jenjang_pend VARCHAR(5) NOT NULL,
kd_prodi
VARCHAR(10) NOT NULL,
FOREIGN KEY (kd_prodi) REFERENCES
prodi(kd_prodi)
);
CREATE TABLE
mahasiswa (
npm VARCHAR(15) PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
jenjang VARCHAR(10) NOT NULL,
kd_prodi VARCHAR(10) NOT NULL,
thn_masuk CHAR(4) NOT NULL,
tempat_lhr VARCHAR(50),
tgl_lhr DATE,
status_akademik VARCHAR(20) NOT NULL,
FOREIGN KEY (kd_prodi) REFERENCES
prodi(kd_prodi)
);
-- 2. INSERT INTO prodi
INSERT INTO
prodi (kd_prodi, nm_prodi, jenjang) VALUES
('D3-TI', 'Teknik Informatika D3', 'D3'),
('D3-AK', 'Akuntansi D3', 'D3'),
('S1-TI', 'Teknik Informatika S1', 'S1'),
('S1-SI', 'Sistem Informasi S1', 'S1'),
('S1-AK', 'Akuntansi S1', 'S1'),
('S2-TI', 'Teknik Informatika S2', 'S2');
-- 3. INSERT INTO dosen
INSERT INTO
dosen (nidn, nama, jenjang_pend, kd_prodi) VALUES
('0101010001',
'Dr. Ahmad Fauzi', 'S3', 'S1-TI'),
('0101010002',
'Budi Santoso, M.Kom', 'S2', 'D3-TI'),
('0101010003',
'Citra Dewi, M.Sc', 'S2', 'S1-SI'),
('0101010004',
'Diana Putri, S.Kom', 'S1', 'S1-AK'),
('0101010005',
'Eko Prasetyo, Ph.D', 'S3', 'S2-TI'),
('0101010006',
'Fajar Nugroho, M.Kom', 'S2', 'D3-TI'),
('0101010007',
'Gita Rahayu, M.Sc', 'S2', 'D3-AK'),
('0101010008',
'Hendra Wijaya, S.Pd', 'S1', 'S1-TI'),
('0101010009',
'Indah Lestari, M.M', 'S2', 'S1-AK'),
('0101010010',
'Joko Susanto, Ph.D', 'S3', 'S1-SI');
-- 4. INSERT INTO mahasiswa (30 baris -- 5 per thn_masuk)
INSERT INTO
mahasiswa (npm, nama, jenjang, kd_prodi, thn_masuk, tempat_lhr, tgl_lhr,
status_akademik) VALUES
-- thn_masuk
2021
('2101001',
'Andi Putra Wijaya', 'S1',
'S1-TI', '2021', 'Bandung',
'2002-03-15', 'Aktif'),
('2101002',
'Bela Putri Sari', 'S1',
'S1-SI', '2021', 'Bogor',
'2002-07-22', 'Aktif'),
('2101003',
'Cahyo Nugroho', 'D3',
'D3-TI', '2021', 'Bekasi',
'2001-11-08', 'Cuti'),
('2101004',
'Dita Rahmawati', 'S1',
'S1-AK', '2021', 'Batam',
'2002-01-30', 'Non-Aktif'),
('2101005',
'Eko Budi Santoso', 'S1',
'S1-TI', '2021', 'Bali',
'2001-09-12', 'Aktif'),
-- thn_masuk
2022
('2201001',
'Fani Putri Utami', 'S1',
'S1-SI', '2022', 'Surabaya',
'2003-04-05', 'Aktif'),
('2201002',
'Galih Permana Putra', 'D3',
'D3-AK', '2022', 'Semarang',
'2003-06-17', 'Aktif'),
('2201003',
'Hani Setiawati', 'S1',
'S1-TI', '2022', 'Solo',
'2003-02-28', 'Aktif'),
('2201004',
'Irfan Hidayat', 'S1',
'S1-AK', '2022', 'Medan',
'2003-08-14', 'Cuti'),
('2201005',
'Jeni Anggraini Putri', 'D3',
'D3-TI', '2022', 'Bandar Lampung','2003-12-01','Aktif'),
-- thn_masuk
2023
('2301001',
'Kevin Ardiansyah Putra', 'S1',
'S1-TI', '2023', 'Bandar Lampung','2004-05-20','Aktif'),
('2301002',
'Laila Nurhaliza', 'S1',
'S1-SI', '2023', 'Bengkulu',
'2004-09-09', 'Aktif'),
('2301003',
'Mario Fernandez', 'D3',
'D3-TI', '2023', 'Banjarmasin', '2004-01-17', 'Aktif'),
('2301004',
'Nadia Pratiwi', 'S1',
'S1-AK', '2023', 'Balikpapan',
'2004-07-03', 'Non-Aktif'),
('2301005',
'Oscar Pratama', 'D3',
'D3-AK', '2023', 'Banda Aceh',
'2004-03-25', 'Aktif'),
-- thn_masuk
2024
('2401001',
'Putri Ayu Lestari', 'S1',
'S1-TI', '2024', 'Yogyakarta',
'2005-10-11', 'Aktif'),
('2401002',
'Reza Fahmi Alkhamdani', 'S1',
'S1-SI', '2024', 'Pontianak',
'2005-04-29', 'Aktif'),
('2401003',
'Sari Wahyuni Putri', 'D3',
'D3-TI', '2024', 'Palembang',
'2005-08-07', 'Aktif'),
('2401004',
'Taufik Hidayatullah', 'S1',
'S1-AK', '2024', 'Pekanbaru',
'2005-06-22', 'Aktif'),
('2401005',
'Umar Syarifuddin', 'D3',
'D3-AK', '2024', 'Padang',
'2005-11-18', 'Cuti'),
-- thn_masuk
2025 (6 baris -- untuk HAVING COUNT(*)
> 2 juga terpenuhi)
('2501001',
'Vina Mardiana', 'S1',
'S1-TI', '2025', 'Bandar Lampung','2006-02-14','Aktif'),
('2501002',
'Wahyu Adi Nugroho', 'S1',
'S1-SI', '2025', 'Tasikmalaya', '2006-06-30', 'Aktif'),
('2501003',
'Xena Claudia Putri', 'D3',
'D3-TI', '2025', 'Cirebon',
'2006-09-05', 'Aktif'),
('2501004',
'Yusuf Ramadan', 'S1',
'S1-AK', '2025', 'Cilegon',
'2006-03-19', 'Aktif'),
('2501005',
'Zahra Amalia', 'D3',
'D3-AK', '2025', 'Samarinda',
'2006-07-27', 'Aktif'),
('2501006',
'Alfino Kurnia Putra', 'S1',
'S1-TI', '2025', 'Bitung',
'2006-05-12', 'Non-Aktif'),
('2501007',
'Bella Maharani', 'S1',
'S1-SI', '2025', 'Bukittinggi', '2006-01-08', 'Aktif');
-- 5. QUERY SELECT
-- Q1 DISTINCT jenjang
SELECT
DISTINCT jenjang FROM mahasiswa;
-- Q2 DISTINCT thn_masuk & kd_prodi
SELECT
DISTINCT thn_masuk, kd_prodi FROM mahasiswa;
-- Q3 DISTINCT kd_prodi dari dosen
SELECT
DISTINCT kd_prodi FROM dosen;
-- Q4 WHERE status_akademik = 'Aktif'
SELECT * FROM
mahasiswa WHERE status_akademik = 'Aktif';
-- Q5 WHERE jenjang AND status_akademik (contoh: D3
+ Aktif)
SELECT * FROM
mahasiswa WHERE jenjang = 'D3' AND status_akademik = 'Aktif';
-- Q6 WHERE status_akademik Cuti OR Non-Aktif
SELECT * FROM
mahasiswa WHERE status_akademik = 'Cuti' OR status_akademik = 'Non-Aktif';
-- Q7 ORDER BY npm ASC
SELECT * FROM
mahasiswa ORDER BY npm ASC;
-- Q8 ORDER BY tgl_lhr DESC
SELECT * FROM
mahasiswa ORDER BY tgl_lhr DESC;
-- Q9 ORDER BY status_akademik ASC, nama ASC
SELECT * FROM
mahasiswa ORDER BY status_akademik ASC, nama ASC;
-- Q10 GROUP
BY thn_masuk + COUNT
SELECT
thn_masuk, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY
thn_masuk;
-- Q11 GROUP
BY thn_masuk HAVING COUNT = 5
SELECT
thn_masuk, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY
thn_masuk
HAVING
COUNT(*) = 5;
-- Q12 GROUP
BY thn_masuk, jenjang + COUNT
SELECT
thn_masuk, jenjang, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY
thn_masuk, jenjang;
-- Q13 LIKE
tempat_lhr dimulai 'B'
SELECT * FROM
mahasiswa WHERE tempat_lhr LIKE 'B%';
-- Q14 LIKE
nama mengandung 'Putra' atau 'Putri'
SELECT * FROM
mahasiswa WHERE nama LIKE '%Putra%' OR nama LIKE '%Putri%';
-- Q15 LIKE
npm pola '2301___' (3 karakter setelah 2301)
SELECT * FROM
mahasiswa WHERE npm LIKE '2301___';
-- Q16 SELECT
* mahasiswa
SELECT * FROM
mahasiswa;
-- Q17 SELECT
* dosen
SELECT * FROM
dosen;
-- Q18
Mahasiswa jenjang D3
SELECT * FROM
mahasiswa WHERE jenjang = 'D3';
-- Q19 Dosen
yang mengajar di prodi D3
SELECT d.*
FROM dosen d
JOIN prodi p
ON d.kd_prodi = p.kd_prodi
WHERE
p.jenjang = 'D3';
-- Q20
DISTINCT tempat_lhr mahasiswa
SELECT
DISTINCT tempat_lhr FROM mahasiswa;
-- Q21 WHERE
status_akademik tertentu ORDER BY nama ASC (contoh: Aktif)
SELECT * FROM
mahasiswa WHERE status_akademik = 'Aktif' ORDER BY nama ASC;
-- Q22 GROUP
BY kd_prodi + COUNT
SELECT
kd_prodi, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY
kd_prodi;
-- Q23 LIKE
nama mengandung huruf 'a'
SELECT * FROM
mahasiswa WHERE nama LIKE '%a%';
-- Q24 Dosen
jenjang_pend S2 atau S3
SELECT * FROM
dosen WHERE jenjang_pend = 'S2' OR jenjang_pend = 'S3';
-- Q25 GROUP
BY thn_masuk HAVING COUNT > 2
SELECT
thn_masuk, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY
thn_masuk
HAVING
COUNT(*) > 2;

Komentar
Posting Komentar