Data
Fakta mentah yang belum diolah, misalnya nama siswa, tanggal lahir, kelas, nilai, harga barang, dan tanggal transaksi.
Pelajari cara merancang database, membuat tabel, membangun relasi, menulis query, mendesain form, menghasilkan report, dan menyelesaikan studi kasus nyata dalam satu halaman interaktif.
| ID | Nama | Kelas | Nilai |
|---|---|---|---|
| 1 | Alya | XI-A | 88 |
| 2 | Bima | XI-B | 92 |
| 3 | Citra | XI-A | 84 |
| 4 | Damar | XI-C | 76 |
Mulai dari konsep paling dasar agar kita tidak hanya menghafal tombol, tetapi memahami cara kerja sistem data.
Fakta mentah yang belum diolah, misalnya nama siswa, tanggal lahir, kelas, nilai, harga barang, dan tanggal transaksi.
Kumpulan data yang tersusun secara sistematis sehingga mudah disimpan, dicari, dihubungkan, diperbarui, dan dianalisis.
Database Management System adalah perangkat lunak untuk mengelola database. Microsoft Access termasuk DBMS relasional.
| Masalah | Tabel biasa | Database Microsoft Access |
|---|---|---|
| Data banyak | Mudah berulang dan sulit dikontrol | Dapat dipisahkan ke beberapa tabel yang saling berelasi |
| Pencarian | Sering dilakukan manual | Query dapat mencari ribuan record dengan cepat |
| Input | Pengguna melihat seluruh tabel | Form dapat membatasi dan mempermudah input |
| Laporan | Format perlu disusun berulang | Report dapat digunakan kembali dan dicetak otomatis |
| Konsistensi | Rentan salah ketik | Validation Rule, Lookup, Input Mask, dan relasi membantu menjaga kualitas data |
Objek-objek ini bekerja seperti tim. Table menyimpan data, query mengolahnya, form memudahkan input, dan report menyajikannya.
Menyimpan data nyata dalam bentuk field dan record. Struktur tabel harus dirancang sebelum memasukkan data.
Mengambil, memfilter, menghitung, menggabungkan, memperbarui, atau menghapus data berdasarkan aturan tertentu.
Antarmuka pengguna untuk memasukkan, melihat, dan memperbarui data tanpa membuka tabel secara langsung.
Menyajikan informasi dalam format yang rapi, terkelompok, memiliki subtotal, dan siap dicetak.
Mengotomatisasi tindakan tanpa banyak menulis kode, misalnya membuka form, menjalankan query, atau menutup jendela.
Berisi kode Visual Basic for Applications untuk logika yang lebih kompleks, validasi khusus, dan otomatisasi lanjutan.
Struktur tabel yang tepat menentukan kualitas seluruh database. Kesalahan desain di awal dapat membuat query dan report menjadi rumit.
NamaSiswa, bukan NS.ID_Siswa atau SiswaID.tblSiswa dan frmSiswa.| Tipe Data | Digunakan untuk | Contoh | Catatan |
|---|---|---|---|
| Short Text | Teks singkat atau angka yang tidak dihitung | Nama, NIS, nomor telepon | Nomor telepon sebaiknya teks karena dapat diawali 0 |
| Long Text | Teks panjang | Alamat lengkap, catatan | Cocok untuk paragraf |
| Number | Nilai numerik untuk perhitungan | Jumlah, nilai, berat | Pilih Field Size sesuai kebutuhan |
| Large Number | Bilangan bulat sangat besar | ID dari sistem eksternal | Tidak selalu tersedia pada versi lama |
| Date/Time | Tanggal dan waktu | Tanggal lahir, waktu transaksi | Dapat dihitung dan difilter |
| Currency | Nilai uang | Harga, gaji, total transaksi | Mengurangi kesalahan pembulatan tertentu |
| AutoNumber | Nomor otomatis unik | ID_Siswa | Sering digunakan sebagai primary key |
| Yes/No | Dua kondisi | Aktif/Tidak, Lulus/Tidak | Nilainya True atau False |
| Attachment | Menyimpan berkas | Foto, dokumen | Perlu dipakai secara bijak agar file tidak terlalu besar |
| Hyperlink | Alamat web atau email | Website, tautan dokumen | Dapat diklik dari Access |
| Calculated | Hasil perhitungan | Total = Harga Γ Jumlah | Sering lebih fleksibel jika dibuat di query |
| Field Name | Data Type | Ukuran/Format | Aturan |
|---|---|---|---|
| ID_Siswa | AutoNumber | Long Integer | Primary Key |
| NIS | Short Text | 15 karakter | Required, Indexed: Yes (No Duplicates) |
| NamaSiswa | Short Text | 100 karakter | Required |
| JenisKelamin | Short Text | 1 karakter | Validation Rule: In ("L","P") |
| TanggalLahir | Date/Time | Short Date | <=Date() |
| ID_Kelas | Number | Long Integer | Foreign Key |
| Aktif | Yes/No | - | Default Value: Yes |
Relasi menghubungkan data yang dipisahkan ke beberapa tabel agar tidak terjadi pengulangan berlebihan.
Satu record pada tabel A berhubungan dengan satu record pada tabel B.
Satu record induk dapat memiliki banyak record anak. Ini relasi yang paling sering digunakan.
Banyak record di kedua sisi. Harus dipecah melalui tabel penghubung.
Referential Integrity memastikan foreign key pada tabel anak selalu memiliki pasangan yang sah pada tabel induk.
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.
Query bukan sekadar pencarian. Query dapat menggabungkan tabel, menghitung nilai, membuat rekap, dan melakukan perubahan data.
Menampilkan data berdasarkan field, criteria, sort, dan join tertentu tanpa mengubah data sumber.
Meminta nilai dari pengguna ketika query dijalankan, misalnya nama kelas atau rentang tanggal.
Menggunakan Sum, Avg, Count, Min, Max, First, Last, dan Group By.
Menyajikan ringkasan seperti tabel silang: baris, kolom, dan nilai agregat.
Append, Update, Delete, dan Make Table. Query jenis ini dapat mengubah data.
Menuliskan perintah SQL secara langsung untuk kontrol yang lebih lengkap.
| Kebutuhan | Criteria | Makna |
|---|---|---|
| Nilai minimal 75 | >=75 | Menampilkan nilai 75 atau lebih |
| Kelas XI-A | "XI-A" | Sama persis dengan XI-A |
| Diawali huruf A | Like "A*" | Alya, Andi, Amara, dan seterusnya |
| Mengandung kata βSosiologiβ | Like "*Sosiologi*" | Kata dapat berada di posisi mana pun |
| Tanggal hari ini | Date() | Hanya data bertanggal hari ini |
| Bulan berjalan | Month([Tanggal])=Month(Date()) | Membandingkan nomor bulan |
| Antara 70 dan 90 | Between 70 And 90 | Termasuk 70 dan 90 |
| Data kosong | Is Null | Field belum memiliki nilai |
| Bukan kosong | Is Not Null | Field memiliki nilai |
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())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;| Nama | Kelas | Nilai | Status |
|---|
Form membuat pengguna fokus pada data yang diperlukan dan mengurangi risiko mengubah struktur tabel secara tidak sengaja.
Kelompokkan field berdasarkan informasi yang berhubungan.
Gunakan label yang jelas dan urutan tab yang logis.
Gunakan Combo Box untuk pilihan yang berasal dari tabel lain.
Berikan validasi dan pesan kesalahan yang mudah dipahami.
Report digunakan untuk menyajikan data secara profesional, terstruktur, dan siap dicetak atau diekspor.
Mengelompokkan data berdasarkan kelas, kategori, bulan, pelanggan, atau atribut lain.
Mengurutkan data dari kecil ke besar, besar ke kecil, AβZ, atau berdasarkan beberapa field.
Menampilkan jumlah, rata-rata, nilai minimum, maksimum, subtotal, dan grand total.
Muncul sekali pada awal laporan. Cocok untuk judul besar, logo, dan identitas lembaga.
Muncul pada setiap halaman, biasanya berisi judul kolom.
Muncul saat kelompok baru dimulai, misalnya nama kelas.
Menampilkan setiap record.
Menampilkan subtotal atau ringkasan per kelompok.
Nomor halaman, tanggal cetak, atau informasi lainnya.
Grand total dan kesimpulan akhir.
Database yang menarik tetapi berisi data salah tetap tidak berguna. Validasi menjaga data tetap akurat, lengkap, dan konsisten.
Date() untuk tanggal hari ini atau Yes untuk status aktif.Between 0 And 100 dengan pesan βNilai harus antara 0 sampai 100.β| Field | Rule | Tujuan |
|---|---|---|
| Nilai | Between 0 And 100 | Mencegah nilai kurang dari 0 atau lebih dari 100 |
| TanggalLahir | <Date() | Tanggal lahir harus sebelum hari ini |
| JenisKelamin | In ("L","P") | Hanya menerima L atau P |
| TanggalKembali | >=[TanggalPinjam] | Tanggal kembali tidak boleh sebelum tanggal pinjam |
| Stok | >=0 | Stok tidak boleh negatif |
Kita akan merancang sistem sederhana untuk menyimpan anggota, buku, transaksi peminjaman, dan pengembalian.
Sistem harus mampu mencatat anggota, kategori buku, data buku, jumlah eksemplar, transaksi peminjaman, tanggal jatuh tempo, pengembalian, dan denda.
Pilih Blank Database, beri nama PerpustakaanSekolah.accdb, lalu tentukan lokasi penyimpanan.
Gunakan Design View. Tentukan field, tipe data, ukuran, primary key, required, index, dan validasi.
Buka Database Tools β Relationships. Tambahkan tabel dan tarik primary key ke foreign key yang sesuai.
Pastikan tipe data primary key dan foreign key kompatibel.
Buat query buku tersedia, daftar pinjaman aktif, keterlambatan, total denda, dan riwayat peminjaman anggota.
Buat form anggota, buku, transaksi peminjaman, dan pengembalian. Gunakan Combo Box untuk memilih anggota dan buku.
Buat laporan stok buku, pinjaman per kelas, keterlambatan, dan total denda per bulan.
Masukkan data contoh, uji validasi, uji relasi, uji transaksi, dan periksa apakah laporan menghasilkan informasi yang benar.
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();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.
Gunakan bagian ini untuk menguji pemahaman dan mengubah konsep menjadi keterampilan nyata.
Kemajuan: 0%
Pilih satu tema: perpustakaan, inventaris laboratorium, kas kelas, data pelanggan, penjualan sederhana, absensi, atau peminjaman alat.
Minimal 4 tabel yang telah dinormalisasi.
Minimal 3 relasi dengan referential integrity.
Minimal 5 query dengan fungsi berbeda.
Minimal 3 form, termasuk satu main form dan subform.
Minimal 2 report dengan grouping dan total.
Dokumentasi desain, aturan validasi, dan hasil pengujian.
Cari istilah penting yang mungkin muncul ketika merancang database.
Kumpulan data yang terorganisasi dan saling berkaitan.
Perangkat lunak untuk membuat, menyimpan, mengelola, dan mengambil data.
Objek yang menyimpan data dalam baris dan kolom.
Kolom yang mewakili satu atribut data.
Satu baris data lengkap.
Field unik yang menjadi identitas setiap record.
Field yang mengacu pada primary key di tabel lain.
Perintah untuk memilih, menghitung, mengubah, atau menganalisis data.
Antarmuka untuk memasukkan dan mengedit data.
Objek untuk menyajikan dan mencetak informasi.
Hubungan logis antara dua tabel.
Syarat penyaringan pada query.
Proses menata tabel agar tidak terjadi pengulangan dan anomali data.
Aturan yang menjaga konsistensi relasi antar-tabel.