Contoh DFD Sistem Informasi Perpustakaan: Diagram Konteks, Level 0, dan Level 1
Setelah membuat ERD database perpustakaan, tugas berikutnya di mata kuliah analisis sistem biasanya adalah membuat DFD (Data Flow Diagram). ERD menjawab pertanyaan "data apa saja yang disimpan", sedangkan DFD menjawab "data mengalir dari mana, diproses apa, dan disimpan di mana".

Foto: rawpixel (CC0)
Simbol DFD
Ada dua gaya notasi yang umum dipakai: Yourdon/DeMarco dan Gane-Sarson. Isinya sama, hanya bentuk simbolnya yang berbeda. Di tulisan ini saya pakai Yourdon/DeMarco.
| Komponen | Yourdon/DeMarco | Gane-Sarson | Fungsi |
|---|---|---|---|
| Entitas luar (terminator) | Persegi | Persegi | Orang atau sistem di luar sistem yang memberi atau menerima data |
| Proses | Lingkaran | Persegi sudut tumpul | Kegiatan yang mengubah data masukan menjadi keluaran |
| Penyimpanan data (data store) | Dua garis sejajar | Persegi terbuka di satu sisi | Tempat data disimpan, biasanya menjadi tabel database |
| Aliran data | Panah | Panah | Data yang berpindah, selalu diberi nama berupa kata benda |
Kasus: sistem informasi perpustakaan
Ringkasan kebutuhan sistem:
- Anggota mendaftar, lalu menerima kartu anggota.
- Petugas mencatat buku baru.
- Anggota meminjam dan mengembalikan buku. Keterlambatan dikenai denda.
- Kepala perpustakaan menerima laporan peminjaman setiap bulan.
1. Diagram konteks (level konteks)
Diagram konteks menggambarkan seluruh sistem sebagai satu proses beserta entitas luar yang berhubungan dengannya. Di level ini belum ada data store.
2. DFD level 0
Proses tunggal di diagram konteks dipecah menjadi proses-proses utama, dan mulai muncul data store. Data store ini nanti menjadi tabel database, sehingga harus konsisten dengan ERD.
Penjelasan setiap proses:
- 1.0 Pendaftaran — menerima data pendaftaran dari anggota, lalu menyimpannya ke D1 Anggota.
- 2.0 Kelola Buku — petugas memasukkan data buku ke D2 Buku.
- 3.0 Peminjaman — memeriksa keanggotaan (D1) dan ketersediaan buku (D2), mencatat transaksi ke D3 Peminjaman, lalu memberi bukti pinjam.
- 4.0 Pengembalian — membaca data pinjaman dari D3, menghitung keterlambatan, memperbarui tanggal kembali, dan memberi tagihan denda bila ada.
- 5.0 Buat Laporan — membaca D3 dan D2, lalu menghasilkan laporan bulanan untuk kepala perpustakaan.
Agar gambar tidak terlalu ramai, sebagian panah baca/tulis ke data store hanya digambar sekali. Dalam tugas resmi, setiap aliran data sebaiknya diberi nama.
3. Level 1 (contoh: proses 4.0 Pengembalian)
Proses yang masih kompleks bisa dipecah lagi. Proses 4.0 misalnya dipecah menjadi:
- 4.1 Cari data pinjaman — berdasarkan kode anggota dan kode buku, dibaca dari D3.
- 4.2 Hitung keterlambatan — membandingkan tanggal kembali dengan jatuh tempo.
- 4.3 Hitung denda — hari terlambat × tarif denda per hari.
- 4.4 Perbarui status — menulis tanggal kembali dan denda ke D3.
Aturan penting yang sering bikin tugas salah
- Balancing. Aliran masuk dan keluar di level 0 harus sama dengan aliran di diagram konteks. Jika di konteks ada "laporan peminjaman" ke kepala perpustakaan, di level 0 juga harus ada.
- Tidak ada aliran langsung entitas ke entitas, entitas ke data store, atau data store ke data store. Semua aliran harus melewati proses.
- Setiap proses punya masukan dan keluaran. Proses yang hanya menerima disebut black hole, sedangkan yang hanya mengeluarkan disebut miracle. Keduanya salah.
- Nama proses diawali kata kerja (Catat, Hitung, Buat), sedangkan nama aliran data berupa kata benda (bukti pinjam, data buku).
- Penomoran berjenjang: 1.0, 2.0, dst. di level 0, lalu 4.1, 4.2 di level 1 untuk pecahan proses 4.0.
Hubungan DFD dengan ERD
Data store di DFD (D1 Anggota, D2 Buku, D3 Peminjaman) sebaiknya sama dengan entitas atau tabel di ERD. Jika di DFD ada data store yang tidak ada di ERD, atau sebaliknya, berarti salah satu diagram belum lengkap. Pemeriksaan silang ini yang biasanya dicari dosen saat menilai tugas.
Baca juga: normalisasi database sampai 3NF.