Mata kuliah Pemrograman Basis Data berfokus pada cara merancang, mengelola, dan memprogram sistem basis data menggunakan berbagai bahasa pemrograman dan teknologi basis data. Berikut adalah beberapa topik utama yang biasanya dipelajari dalam mata kuliah ini:
1. Pengenalan Basis Data
- Konsep Dasar Basis Data: Pengertian basis data, manfaat, dan peran dalam sistem informasi.
- Sistem Manajemen Basis Data (DBMS): Definisi, fungsi, dan contoh DBMS populer (seperti MySQL, PostgreSQL, SQL Server, dan Oracle).
- Perbedaan Basis Data Relasional dan Non-Relasional: Pengertian dan perbedaan antara basis data relasional (RDBMS) dan NoSQL.
2. Model Data
- Model Relasional: Pengertian tabel, baris, kolom, kunci primer (primary key), kunci asing (foreign key), dan normalisasi data.
- Entity-Relationship Model (ERD): Teknik untuk merancang basis data dengan merepresentasikan entitas, atribut, dan relasi antar entitas.
- Diagram ER: Membuat diagram ER sebagai representasi visual dari desain basis data.
3. Bahasa SQL (Structured Query Language)
- Dasar-dasar SQL: Perintah dasar SQL seperti
SELECT
,INSERT
,UPDATE
, danDELETE
untuk manipulasi data. - Kueri Seleksi (SELECT Query): Mengambil data dari tabel dengan filter menggunakan klausa
WHERE
, pengurutan data (ORDER BY
), dan pengelompokan data (GROUP BY
). - Join: Penggunaan
JOIN
untuk menggabungkan data dari beberapa tabel (INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN). - Subquery dan Nested Query: Menggunakan subquery untuk melakukan kueri dalam kueri lain.
- Aggregasi dan Fungsi SQL: Fungsi agregasi seperti
COUNT
,SUM
,AVG
,MIN
,MAX
, serta fungsi string dan tanggal.
4. Normalisasi dan Denormalisasi
- Normalisasi: Proses pembagian tabel menjadi bentuk normal (1NF, 2NF, 3NF) untuk menghilangkan duplikasi data dan memastikan integritas.
- Denormalisasi: Proses penggabungan tabel untuk meningkatkan performa kueri dalam situasi tertentu.
5. Transaksi Basis Data
- Definisi Transaksi: Pengertian transaksi sebagai unit operasi yang harus dijalankan sepenuhnya atau tidak sama sekali.
- ACID Properties: Karakteristik transaksi dalam basis data yang terdiri dari Atomicity, Consistency, Isolation, dan Durability.
- Kunci Transaksi: Cara melakukan transaksi dengan perintah
BEGIN TRANSACTION
,COMMIT
, danROLLBACK
.
6. Pemrograman dengan SQL
- Stored Procedures: Program yang disimpan di dalam basis data dan dapat dieksekusi berulang kali.
- Trigger: Program yang secara otomatis dijalankan sebagai respons terhadap perubahan data dalam tabel tertentu.
- Views: Pandangan atau tabel virtual yang dibuat dari hasil kueri untuk mempermudah pengambilan data.
7. Pemrograman Basis Data dengan PL/SQL dan T-SQL
- PL/SQL (Procedural Language/SQL): Bahasa pemrograman prosedural untuk Oracle, yang memungkinkan pengolahan logika dalam basis data.
- T-SQL (Transact-SQL): Ekstensi SQL yang digunakan di SQL Server, dengan fitur seperti kontrol aliran, pengulangan, dan variabel.
8. Desain dan Optimasi Basis Data
- Desain Skema Basis Data: Membangun skema basis data yang efisien dengan mempertimbangkan relasi antar tabel.
- Indeks (Indexing): Penggunaan indeks untuk mempercepat pencarian data dalam tabel.
- Optimasi Kueri: Teknik untuk memperbaiki performa kueri dengan analisis dan penulisan ulang kueri yang lebih efisien.
- Denormalisasi untuk Performa: Menyeimbangkan antara normalisasi dan denormalisasi untuk kebutuhan performa.
9. Keamanan Basis Data
- Manajemen Akses Pengguna: Kontrol akses pengguna dengan peran (roles) dan hak akses (privileges).
- Enkripsi Data: Metode untuk mengenkripsi data yang disimpan dalam basis data untuk keamanan.
- Backup dan Pemulihan Data: Teknik untuk melakukan pencadangan dan pemulihan data dari basis data.
10. Integritas dan Konsistensi Data
- Aturan Integritas: Memastikan data selalu konsisten dengan aturan integritas (misalnya, kunci asing dan constraint).
- Constraint: Penggunaan
CHECK
,UNIQUE
,NOT NULL
, danDEFAULT
untuk menjaga integritas data.
11. Interaksi Pemrograman dengan Basis Data
- Koneksi Basis Data dengan Bahasa Pemrograman: Cara menghubungkan basis data dengan aplikasi menggunakan bahasa seperti PHP, Java, Python, atau C#.
- JDBC (Java Database Connectivity): Teknologi untuk menghubungkan aplikasi Java dengan basis data.
- ODBC (Open Database Connectivity): API yang digunakan untuk menghubungkan aplikasi dengan berbagai DBMS.
- ORM (Object-Relational Mapping): Framework seperti Hibernate (Java), Sequelize (Node.js), dan SQLAlchemy (Python) yang memungkinkan pemetaan objek ke basis data relasional.
12. Basis Data Non-Relasional (NoSQL)
- Pengantar NoSQL: Memahami basis data non-relasional dan kegunaannya dalam situasi big data, seperti MongoDB, Cassandra, Redis.
- Model Dokumen, Kunci-Nilai, dan Graf: Jenis-jenis basis data NoSQL yang digunakan untuk menyimpan data semi-terstruktur dan tidak terstruktur.
- Perbandingan SQL dan NoSQL: Kapan harus menggunakan basis data relasional versus NoSQL, dan kelebihan masing-masing.
13. Pemrograman Basis Data Web
- Koneksi Basis Data pada Aplikasi Web: Menghubungkan basis data dengan aplikasi web melalui API dan teknik pemrograman sisi server.
- CRUD (Create, Read, Update, Delete) dalam Aplikasi Web: Mengimplementasikan operasi dasar basis data di aplikasi web.
- Keamanan Aplikasi Basis Data Web: Mencegah serangan seperti SQL injection dan Cross-Site Scripting (XSS).
14. Pengelolaan Basis Data di Lingkungan Cloud
- Basis Data sebagai Layanan (DBaaS): Penggunaan layanan basis data di cloud seperti AWS RDS, Google Cloud SQL, dan Azure SQL Database.
- Replikasi Data dan Skalabilitas: Teknik untuk mereplikasi dan membagi data di lingkungan cloud untuk mengatasi pertumbuhan skala pengguna.
15. Proyek Pemrograman Basis Data
- Proyek Akhir: Merancang dan mengimplementasikan sistem basis data lengkap untuk aplikasi nyata, seperti sistem inventaris, sistem pemesanan, atau sistem manajemen karyawan.
Mata kuliah Pemrograman Basis Data mengajarkan kombinasi antara teori basis data, pengelolaan basis data, serta pemrograman yang terkait dengan basis data, sehingga memungkinkan mahasiswa untuk merancang dan mengembangkan aplikasi yang kuat dan dapat diandalkan.