MAKALAH

SESI#05

T-SQL SELECT DML

Dosen Pengampu

M. Reza Redo Islami, S.Kom., M.T.I.






Nama : Reza Fahmi Alkhamdani    24781053

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

Postingan populer dari blog ini