πŸ—„οΈ MICROSOFT DATABASE ACADEMY

Microsoft Access Lab

Pelajari cara merancang database, membuat tabel, membangun relasi, menulis query, mendesain form, menghasilkan report, dan menyelesaikan studi kasus nyata dalam satu halaman interaktif.

10Modul utama
40+Konsep penting
10Soal interaktif
1Proyek akhir
Database Sekolah.accdb
πŸ—„οΈ
πŸ“‹ Tabel_Siswa
IDNamaKelasNilai
1AlyaXI-A88
2BimaXI-B92
3CitraXI-A84
4DamarXI-C76
Ide utama: Access menghubungkan data sehingga informasi dapat dicari, dihitung, dan dilaporkan dengan cepat.
πŸ—„οΈ
Modul 01

Pengantar Database

Mulai dari konsep paling dasar agar kita tidak hanya menghafal tombol, tetapi memahami cara kerja sistem data.

πŸ“¦

Data

Fakta mentah yang belum diolah, misalnya nama siswa, tanggal lahir, kelas, nilai, harga barang, dan tanggal transaksi.

πŸ—‚οΈ

Database

Kumpulan data yang tersusun secara sistematis sehingga mudah disimpan, dicari, dihubungkan, diperbarui, dan dianalisis.

βš™οΈ

DBMS

Database Management System adalah perangkat lunak untuk mengelola database. Microsoft Access termasuk DBMS relasional.

Mengapa tidak cukup memakai tabel biasa?

MasalahTabel biasaDatabase Microsoft Access
Data banyakMudah berulang dan sulit dikontrolDapat dipisahkan ke beberapa tabel yang saling berelasi
PencarianSering dilakukan manualQuery dapat mencari ribuan record dengan cepat
InputPengguna melihat seluruh tabelForm dapat membatasi dan mempermudah input
LaporanFormat perlu disusun berulangReport dapat digunakan kembali dan dicetak otomatis
KonsistensiRentan salah ketikValidation Rule, Lookup, Input Mask, dan relasi membantu menjaga kualitas data

Kapan Access cocok digunakan?

  • Aplikasi administrasi sekolah atau kantor berskala kecil sampai menengah.
  • Database inventaris, perpustakaan, pelanggan, penjualan, surat masuk, dan kepegawaian.
  • Prototipe aplikasi database sebelum dipindahkan ke sistem yang lebih besar.
  • Pengolahan data lokal yang membutuhkan form, query, dan report.

Kapan Access kurang cocok?

  • Ribuan pengguna mengakses database secara bersamaan.
  • Aplikasi web publik dengan lalu lintas sangat tinggi.
  • Data sangat besar dan membutuhkan server database khusus.
  • Sistem kritis yang membutuhkan replikasi, high availability, dan kontrol tingkat lanjut.
🧩
Modul 02

Enam Objek Penting Microsoft Access

Objek-objek ini bekerja seperti tim. Table menyimpan data, query mengolahnya, form memudahkan input, dan report menyajikannya.

πŸ“‹

Table

Menyimpan data nyata dalam bentuk field dan record. Struktur tabel harus dirancang sebelum memasukkan data.

πŸ”Ž

Query

Mengambil, memfilter, menghitung, menggabungkan, memperbarui, atau menghapus data berdasarkan aturan tertentu.

πŸ“

Form

Antarmuka pengguna untuk memasukkan, melihat, dan memperbarui data tanpa membuka tabel secara langsung.

πŸ“Š

Report

Menyajikan informasi dalam format yang rapi, terkelompok, memiliki subtotal, dan siap dicetak.

πŸ€–

Macro

Mengotomatisasi tindakan tanpa banyak menulis kode, misalnya membuka form, menjalankan query, atau menutup jendela.

πŸ’»

Module / VBA

Berisi kode Visual Basic for Applications untuk logika yang lebih kompleks, validasi khusus, dan otomatisasi lanjutan.

Alur umum: pengguna mengisi Form β†’ data masuk ke Table β†’ Query mengolah data β†’ hasil ditampilkan atau dicetak melalui Report.
πŸ“‹
Modul 03

Tabel, Field, Record, dan Tipe Data

Struktur tabel yang tepat menentukan kualitas seluruh database. Kesalahan desain di awal dapat membuat query dan report menjadi rumit.

Anatomi Tabel

  • Field: kolom, misalnya NamaSiswa, TanggalLahir, dan Alamat.
  • Record: satu baris data lengkap untuk satu objek.
  • Primary Key: field unik yang membedakan setiap record.
  • Field Properties: aturan tambahan seperti ukuran, format, default value, dan validation rule.

Aturan Penamaan yang Baik

  • Gunakan nama singkat tetapi jelas: NamaSiswa, bukan NS.
  • Hindari tanda baca, spasi berlebihan, dan kata yang membingungkan.
  • Gunakan pola konsisten, misalnya ID_Siswa atau SiswaID.
  • Bedakan nama tabel dan form, misalnya tblSiswa dan frmSiswa.

Panduan Memilih Tipe Data

Tipe DataDigunakan untukContohCatatan
Short TextTeks singkat atau angka yang tidak dihitungNama, NIS, nomor teleponNomor telepon sebaiknya teks karena dapat diawali 0
Long TextTeks panjangAlamat lengkap, catatanCocok untuk paragraf
NumberNilai numerik untuk perhitunganJumlah, nilai, beratPilih Field Size sesuai kebutuhan
Large NumberBilangan bulat sangat besarID dari sistem eksternalTidak selalu tersedia pada versi lama
Date/TimeTanggal dan waktuTanggal lahir, waktu transaksiDapat dihitung dan difilter
CurrencyNilai uangHarga, gaji, total transaksiMengurangi kesalahan pembulatan tertentu
AutoNumberNomor otomatis unikID_SiswaSering digunakan sebagai primary key
Yes/NoDua kondisiAktif/Tidak, Lulus/TidakNilainya True atau False
AttachmentMenyimpan berkasFoto, dokumenPerlu dipakai secara bijak agar file tidak terlalu besar
HyperlinkAlamat web atau emailWebsite, tautan dokumenDapat diklik dari Access
CalculatedHasil perhitunganTotal = Harga Γ— JumlahSering lebih fleksibel jika dibuat di query

Contoh Struktur Tabel Siswa

Field NameData TypeUkuran/FormatAturan
ID_SiswaAutoNumberLong IntegerPrimary Key
NISShort Text15 karakterRequired, Indexed: Yes (No Duplicates)
NamaSiswaShort Text100 karakterRequired
JenisKelaminShort Text1 karakterValidation Rule: In ("L","P")
TanggalLahirDate/TimeShort Date<=Date()
ID_KelasNumberLong IntegerForeign Key
AktifYes/No-Default Value: Yes
πŸ”—
Modul 04

Relasi Antar-Tabel

Relasi menghubungkan data yang dipisahkan ke beberapa tabel agar tidak terjadi pengulangan berlebihan.

One-to-One

Satu record pada tabel A berhubungan dengan satu record pada tabel B.

SiswaID_Siswa πŸ”‘
1 ↔ 1
KartuSiswaID_Siswa πŸ”—

One-to-Many

Satu record induk dapat memiliki banyak record anak. Ini relasi yang paling sering digunakan.

KelasID_Kelas πŸ”‘
1 ↔ ∞
SiswaID_Kelas πŸ”—

Many-to-Many

Banyak record di kedua sisi. Harus dipecah melalui tabel penghubung.

Siswa
∞
NilaiID_SiswaID_Mapel
∞
Mapel

Referential Integrity

Referential Integrity memastikan foreign key pada tabel anak selalu memiliki pasangan yang sah pada tabel induk.

  • Mencegah siswa menggunakan ID kelas yang tidak ada.
  • Mencegah penghapusan data induk yang masih digunakan.
  • Menjaga konsistensi antar-tabel.

Cascade Options

  • Cascade Update Related Fields: perubahan primary key diteruskan ke foreign key.
  • Cascade Delete Related Records: penghapusan data induk menghapus data anak terkait.
Hati-hati: Cascade Delete dapat menghapus banyak data sekaligus. Gunakan hanya jika benar-benar diperlukan.

Normalisasi Sederhana

Satu tabel berisi: NIS, NamaSiswa, NamaKelas, WaliKelas, KodeMapel, NamaMapel, Nilai. Nama kelas, wali kelas, dan nama mapel akan berulang berkali-kali.

Pisahkan menjadi Siswa, Kelas, Mapel, dan Nilai. Hubungkan menggunakan primary key dan foreign key.

Mengurangi duplikasi, mempermudah pembaruan, mencegah data tidak konsisten, dan membuat database lebih fleksibel.

πŸ”Ž
Modul 05

Query: Mesin Pencari dan Pengolah Data

Query bukan sekadar pencarian. Query dapat menggabungkan tabel, menghitung nilai, membuat rekap, dan melakukan perubahan data.

Select Query

Menampilkan data berdasarkan field, criteria, sort, dan join tertentu tanpa mengubah data sumber.

Parameter Query

Meminta nilai dari pengguna ketika query dijalankan, misalnya nama kelas atau rentang tanggal.

Totals Query

Menggunakan Sum, Avg, Count, Min, Max, First, Last, dan Group By.

Crosstab Query

Menyajikan ringkasan seperti tabel silang: baris, kolom, dan nilai agregat.

Action Query

Append, Update, Delete, dan Make Table. Query jenis ini dapat mengubah data.

SQL View

Menuliskan perintah SQL secara langsung untuk kontrol yang lebih lengkap.

Contoh Criteria yang Sering Digunakan

KebutuhanCriteriaMakna
Nilai minimal 75>=75Menampilkan nilai 75 atau lebih
Kelas XI-A"XI-A"Sama persis dengan XI-A
Diawali huruf ALike "A*"Alya, Andi, Amara, dan seterusnya
Mengandung kata β€œSosiologi”Like "*Sosiologi*"Kata dapat berada di posisi mana pun
Tanggal hari iniDate()Hanya data bertanggal hari ini
Bulan berjalanMonth([Tanggal])=Month(Date())Membandingkan nomor bulan
Antara 70 dan 90Between 70 And 90Termasuk 70 dan 90
Data kosongIs NullField belum memiliki nilai
Bukan kosongIs Not NullField memiliki nilai

Calculated Field

Total: [Harga] * [Jumlah]

NilaiAkhir:
([Tugas]*0.30)+([UTS]*0.30)+([UAS]*0.40)

Status:
IIf([NilaiAkhir]>=75,"Tuntas","Belum Tuntas")

Umur:
DateDiff("yyyy",[TanggalLahir],Date())

Contoh SQL Access

SELECT
    Siswa.NIS,
    Siswa.NamaSiswa,
    Kelas.NamaKelas,
    Nilai.NilaiAkhir
FROM
    (Kelas INNER JOIN Siswa
    ON Kelas.ID_Kelas = Siswa.ID_Kelas)
    INNER JOIN Nilai
    ON Siswa.ID_Siswa = Nilai.ID_Siswa
WHERE
    Nilai.NilaiAkhir >= 75
ORDER BY
    Nilai.NilaiAkhir DESC;

Simulasi Query Nilai

FieldNama
FieldKelas
FieldNilai
SortDescending
NamaKelasNilaiStatus

πŸ“
Modul 06

Form: Antarmuka Input Data

Form membuat pengguna fokus pada data yang diperlukan dan mengurangi risiko mengubah struktur tabel secara tidak sengaja.

Jenis Form

  • Single Form: satu record per layar.
  • Continuous Form: banyak record dalam bentuk daftar.
  • Split Form: form dan datasheet tampil bersamaan.
  • Navigation Form: menu utama untuk membuka form atau report.
  • Main Form + Subform: cocok untuk data induk dan detail, misalnya transaksi dan item transaksi.

Kontrol pada Form

  • Text Box, Label, Combo Box, List Box.
  • Check Box, Option Group, Command Button.
  • Subform/Subreport, Image, Tab Control.
  • Date Picker dan Attachment.

Prinsip Desain Form yang Baik

01

Kelompokkan field berdasarkan informasi yang berhubungan.

02

Gunakan label yang jelas dan urutan tab yang logis.

03

Gunakan Combo Box untuk pilihan yang berasal dari tabel lain.

04

Berikan validasi dan pesan kesalahan yang mudah dipahami.

Contoh: pada form siswa, pengguna memilih nama kelas melalui Combo Box. Nilai yang disimpan sebaiknya ID_Kelas, bukan teks nama kelas.
πŸ“Š
Modul 07

Report: Mengubah Data Menjadi Informasi

Report digunakan untuk menyajikan data secara profesional, terstruktur, dan siap dicetak atau diekspor.

Grouping

Mengelompokkan data berdasarkan kelas, kategori, bulan, pelanggan, atau atribut lain.

Sorting

Mengurutkan data dari kecil ke besar, besar ke kecil, A–Z, atau berdasarkan beberapa field.

Summary

Menampilkan jumlah, rata-rata, nilai minimum, maksimum, subtotal, dan grand total.

Bagian-Bagian Report

Report Header

Muncul sekali pada awal laporan. Cocok untuk judul besar, logo, dan identitas lembaga.

Page Header

Muncul pada setiap halaman, biasanya berisi judul kolom.

Group Header

Muncul saat kelompok baru dimulai, misalnya nama kelas.

Detail

Menampilkan setiap record.

Group Footer

Menampilkan subtotal atau ringkasan per kelompok.

Page Footer

Nomor halaman, tanggal cetak, atau informasi lainnya.

Report Footer

Grand total dan kesimpulan akhir.

βœ…
Modul 08

Validasi dan Kualitas Data

Database yang menarik tetapi berisi data salah tetap tidak berguna. Validasi menjaga data tetap akurat, lengkap, dan konsisten.

Menentukan apakah field wajib diisi. Gunakan untuk data penting seperti NIS, nama, tanggal transaksi, dan foreign key utama.
Membatasi ukuran data. Contoh: kode kelas 10 karakter tidak perlu diberi kapasitas 255 karakter.
Mengisi nilai awal secara otomatis, misalnya Date() untuk tanggal hari ini atau Yes untuk status aktif.
Validation Rule menentukan aturan, sedangkan Validation Text memberikan pesan. Contoh: Between 0 And 100 dengan pesan β€œNilai harus antara 0 sampai 100.”
Mengatur pola input, misalnya nomor identitas, kode pos, atau nomor telepon. Input Mask mengatur bentuk, bukan menjamin kebenaran isi.
Mempercepat pencarian dan dapat mencegah duplikasi. NIS dapat menggunakan Indexed: Yes (No Duplicates).
Menampilkan pilihan dari daftar atau tabel lain. Pada desain profesional, tetap perhatikan nilai yang sebenarnya disimpan.

Contoh Validation Rule

FieldRuleTujuan
NilaiBetween 0 And 100Mencegah nilai kurang dari 0 atau lebih dari 100
TanggalLahir<Date()Tanggal lahir harus sebelum hari ini
JenisKelaminIn ("L","P")Hanya menerima L atau P
TanggalKembali>=[TanggalPinjam]Tanggal kembali tidak boleh sebelum tanggal pinjam
Stok>=0Stok tidak boleh negatif
🏫
Modul 09

Studi Kasus: Database Perpustakaan Sekolah

Kita akan merancang sistem sederhana untuk menyimpan anggota, buku, transaksi peminjaman, dan pengembalian.

Analisis Kebutuhan

Sistem harus mampu mencatat anggota, kategori buku, data buku, jumlah eksemplar, transaksi peminjaman, tanggal jatuh tempo, pengembalian, dan denda.

Tabel yang Dibutuhkan

  • Anggota: ID_Anggota, NIS, Nama, Kelas, Aktif.
  • Kategori: ID_Kategori, NamaKategori.
  • Buku: ID_Buku, KodeBuku, Judul, Penulis, ID_Kategori, Stok.
  • Peminjaman: ID_Pinjam, ID_Anggota, TanggalPinjam, JatuhTempo, Status.
  • DetailPeminjaman: ID_Detail, ID_Pinjam, ID_Buku, TanggalKembali, Denda.

Relasi

  • Kategori 1 β†’ ∞ Buku
  • Anggota 1 β†’ ∞ Peminjaman
  • Peminjaman 1 β†’ ∞ DetailPeminjaman
  • Buku 1 β†’ ∞ DetailPeminjaman

Langkah Pengerjaan Lengkap

Buat database baru

Pilih Blank Database, beri nama PerpustakaanSekolah.accdb, lalu tentukan lokasi penyimpanan.

Buat seluruh tabel

Gunakan Design View. Tentukan field, tipe data, ukuran, primary key, required, index, dan validasi.

Buat relasi

Buka Database Tools β†’ Relationships. Tambahkan tabel dan tarik primary key ke foreign key yang sesuai.

Aktifkan Referential Integrity

Pastikan tipe data primary key dan foreign key kompatibel.

Buat query

Buat query buku tersedia, daftar pinjaman aktif, keterlambatan, total denda, dan riwayat peminjaman anggota.

Buat form

Buat form anggota, buku, transaksi peminjaman, dan pengembalian. Gunakan Combo Box untuk memilih anggota dan buku.

Buat report

Buat laporan stok buku, pinjaman per kelas, keterlambatan, dan total denda per bulan.

Uji sistem

Masukkan data contoh, uji validasi, uji relasi, uji transaksi, dan periksa apakah laporan menghasilkan informasi yang benar.

Query Keterlambatan

SELECT
    Anggota.Nama,
    Buku.Judul,
    Peminjaman.JatuhTempo,
    Date() - [JatuhTempo] AS TerlambatHari
FROM
    ((Anggota INNER JOIN Peminjaman
    ON Anggota.ID_Anggota = Peminjaman.ID_Anggota)
    INNER JOIN DetailPeminjaman
    ON Peminjaman.ID_Pinjam = DetailPeminjaman.ID_Pinjam)
    INNER JOIN Buku
    ON DetailPeminjaman.ID_Buku = Buku.ID_Buku
WHERE
    DetailPeminjaman.TanggalKembali Is Null
    AND Peminjaman.JatuhTempo < Date();

Perhitungan Denda

Denda:
IIf(
    [TanggalKembali] Is Null,
    IIf(Date()>[JatuhTempo],
        DateDiff("d",[JatuhTempo],Date())*1000,
        0
    ),
    IIf([TanggalKembali]>[JatuhTempo],
        DateDiff("d",[JatuhTempo],[TanggalKembali])*1000,
        0
    )
)

Contoh di atas memakai denda Rp1.000 per hari keterlambatan.

🎯
Modul 10

Latihan, Kuis, dan Proyek Akhir

Gunakan bagian ini untuk menguji pemahaman dan mengubah konsep menjadi keterampilan nyata.

Checklist Kompetensi

Kemajuan: 0%

Latihan Bertahap

  1. Dasar: buat tabel data siswa berisi minimal 8 field.
  2. Menengah: pisahkan data kelas ke tabel tersendiri dan buat relasi.
  3. Menengah: buat query siswa berdasarkan kelas dan nilai minimum.
  4. Lanjut: buat form input siswa dengan Combo Box kelas.
  5. Lanjut: buat report daftar siswa yang dikelompokkan per kelas.
  6. Tantangan: buat sistem perpustakaan atau inventaris sederhana.
Soal 1 dari 10Skor: 0

1. Objek utama untuk menyimpan data secara permanen di Microsoft Access adalah...

Table merupakan tempat utama penyimpanan data. Form hanya menjadi antarmuka input, sedangkan report digunakan untuk menyajikan hasil.

2. Field yang nilainya unik dan digunakan untuk membedakan setiap record disebut...

Primary Key harus unik dan tidak boleh kosong karena digunakan sebagai identitas setiap record.

3. Relasi antara satu kelas dengan banyak siswa adalah...

Satu kelas dapat memiliki banyak siswa, sedangkan satu siswa biasanya terdaftar pada satu kelas pada satu periode.

4. Query yang digunakan untuk menampilkan data berdasarkan kriteria tertentu disebut...

Select Query digunakan untuk memilih, menyaring, mengurutkan, dan menampilkan data tanpa mengubah data sumber.

5. Tipe data yang paling tepat untuk menyimpan tanggal lahir adalah...

Date/Time memungkinkan perhitungan tanggal, pengurutan kronologis, dan penggunaan fungsi tanggal.

6. Fitur yang menjaga agar foreign key selalu mengacu pada data induk yang valid adalah...

Referential Integrity mencegah munculnya data anak yang tidak memiliki pasangan pada tabel induk.

7. Objek yang paling sesuai untuk mencetak daftar nilai per kelas adalah...

Report dirancang untuk penyajian dan pencetakan data secara terstruktur.

8. Kriteria Like "A*" berarti...

Tanda * mewakili nol atau lebih karakter. Jadi A* berarti teks yang diawali huruf A.

9. Untuk menghitung total nilai pada query, fungsi yang digunakan adalah...

Sum menjumlahkan seluruh nilai numerik pada kelompok data.

10. Tabel penghubung diperlukan pada relasi...

Relasi many-to-many dipecah menjadi dua relasi one-to-many dengan tabel penghubung.

Proyek Akhir: Sistem Administrasi Pilihanmu

Pilih satu tema: perpustakaan, inventaris laboratorium, kas kelas, data pelanggan, penjualan sederhana, absensi, atau peminjaman alat.

Wajib 1

Minimal 4 tabel yang telah dinormalisasi.

Wajib 2

Minimal 3 relasi dengan referential integrity.

Wajib 3

Minimal 5 query dengan fungsi berbeda.

Wajib 4

Minimal 3 form, termasuk satu main form dan subform.

Wajib 5

Minimal 2 report dengan grouping dan total.

Wajib 6

Dokumentasi desain, aturan validasi, dan hasil pengujian.

πŸ“š
Referensi Cepat

Glosarium Microsoft Access

Cari istilah penting yang mungkin muncul ketika merancang database.

Database

Kumpulan data yang terorganisasi dan saling berkaitan.

DBMS

Perangkat lunak untuk membuat, menyimpan, mengelola, dan mengambil data.

Table

Objek yang menyimpan data dalam baris dan kolom.

Field

Kolom yang mewakili satu atribut data.

Record

Satu baris data lengkap.

Primary Key

Field unik yang menjadi identitas setiap record.

Foreign Key

Field yang mengacu pada primary key di tabel lain.

Query

Perintah untuk memilih, menghitung, mengubah, atau menganalisis data.

Form

Antarmuka untuk memasukkan dan mengedit data.

Report

Objek untuk menyajikan dan mencetak informasi.

Relationship

Hubungan logis antara dua tabel.

Criteria

Syarat penyaringan pada query.

Normalization

Proses menata tabel agar tidak terjadi pengulangan dan anomali data.

Referential Integrity

Aturan yang menjaga konsistensi relasi antar-tabel.