1. Pengantar Diagram Alir Data
Diagram Alir Data (DFD) adalah representasi grafis tentang bagaimana data bergerak melalui suatu sistem informasi. Menunjukkan:
- Dari mana data berasal dan ke mana data pergi
- Bagaimana data diproses
- Di mana data disimpan
- Siapa atau apa yang berinteraksi dengan sistem

2. Konsep Utama
Elemen Inti
| Elemen | Simbol | Tujuan |
|---|---|---|
| Entitas Eksternal | Persegi Panjang | Orang, organisasi, atau sistem yang mengirim/menerima data |
| Proses | Lingkaran/Ellips | Mengubah data masuk menjadi data keluar |
| Penyimpanan Data | Persegi Panjang Terbuka | Repositori untuk penyimpanan data yang persisten |
| Aliran Data | Panah | Menunjukkan arah pergerakan data |
Tingkat DFD
- Diagram Konteks (Tingkat 0): Tingkat tertinggi, menunjukkan batas sistem dan entitas eksternal utama
- Tingkat 1: Mendekomposisi proses utama menjadi sub-proses utama
- Tingkat 2+: Dekomposisi lebih lanjut yang menunjukkan proses-proses rinci
3. DFD Logis vs Fisik
DFD Logis

Sebuah DFD logis (juga disebut “model esensial”) berfokus pada:
- APA yang dilakukan sistem
- Kegiatan bisnis dan persyaratan informasi
- Tidak tergantung pada teknologi implementasi
Karakteristik:
- Menunjukkan operasi dan proses bisnis
- Tidak ada detail khusus teknologi
- Lebih abstrak dan berfokus pada pengguna
- Membantu memahami kebutuhan bisnis
DFD Fisik

A DFD fisik (juga disebut model ‘implementasi’) berfokus pada:
- BAGAIMANA sistem akan diimplementasikan
- Rincian teknis dan keterbatasan
- Teknologi dan sistem tertentu
Karakteristik:
- Menunjukkan perangkat keras, perangkat lunak, dan orang yang sebenarnya
- Mencakup rincian implementasi
- Lebih konkret dan berfokus pada pengembang
- Membantu dalam desain dan penempatan sistem
Tabel Perbandingan
| Aspek | DFD Logis | DFD Fisik |
|---|---|---|
| Fokus | Kebutuhan Bisnis | Implementasi |
| Siapa | Analis bisnis, pengguna | Perancang sistem, pengembang |
| Tingkat | Tingkat tinggi, abstrak | Rinci, konkret |
| Komponen | Proses bisnis | Proses teknis |
| Penyimpanan Data | Entitas konseptual | Berkas/fisik basis data |
| Entitas | Peran bisnis | Sistem/perangkat aktual |
4. Komponen DFD

Entitas Eksternal
- Sumber dan tujuan data
- Di luar batas sistem
- Diberi nama dengan kata benda
Proses
- Mengubah data dari input menjadi output
- Diberi nama dengan kata kerja + kata benda
- Diberi nomor untuk identifikasi
Penyimpanan Data
- Penyimpanan data yang persisten
- Diberi nama dengan kata benda
- Penomoran D1, D2, D3…
Aliran Data
- Menunjukkan pergerakan data
- Diberi nama dengan label deskriptif
- Arah menunjukkan aliran
5. Contoh Kerja dengan Graphviz
Contoh 1: Sistem Manajemen Hotel (DFD Logis)

digraph HotelMIS_DFD_Logical {
// --- GAYA GRAF ---
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.6
ranksep = 1.0
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- GAYA NODE ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entitas Eksternal
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Tamu;
Staf;
// --- BATAS SISTEM ---
subgraph cluster_SystemBoundary {
label = "Batas Sistem Hotel MIS";
fontname = "Helvetica,Arial,sans-serif";
fontcolor = "#757575";
fontsize = 14;
color = "#757575";
style = "dashed,rounded";
bgcolor = "#FAFAFA";
margin = 20;
// Proses
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.3]
P1 [label="1.0nKelolanReservasi"];
P2 [label="2.0nCheck-In/nOut"];
P3 [label="3.0nKelolanInventaris"];
// Penyimpanan Data
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
ReservationsDS [label="{ <id> D1 | Basis Data Reservasi }"];
RoomsDS [label="{ <id> D2 | Basis Data Status Kamar }"];
InventoryDS [label="{ <id> D3 | Basis Data Inventaris }"];
}
// --- GAYA TEPISAN ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- ALIRAN DATA ---
// Interaksi Tamu
Tamu -> P1 [label="Permintaan Pemesanan"];
P1 -> Tamu [label="Konfirmasi"];
Tamu -> P2 [label="Kedatangan"];
P2 -> Tamu [label="Kunci Kamar/Struk"];
// Interaksi Staf
Staf -> P3 [label="Perbarui Inventaris"];
P3 -> Staf [label="Peringatan/Laporan"];
// Proses ke Penyimpanan Data
P1 -> ReservationsDS [label="Reservasi Baru"];
ReservationsDS -> P1 [label="Periksa Ketersediaan"];
P1 -> RoomsDS [label="Permintaan Detail Kamar"];
RoomsDS -> P1 [label="Kamar Tersedia"];
P2 -> RoomsDS [label="Perbarui Status Kamar"];
RoomsDS -> P2 [label="Informasi Kamar"];
P2 -> P3 [label="Detail Menginap"];
P3 -> InventoryDS [label="Perbarui Stok"];
InventoryDS -> P3 [label="Level Stok"];
}
Contoh 2: DFD Logis – Sistem Manajemen Perpustakaan

digraph LibrarySystem_Logical {
// --- GAYA GRAF ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- GAYA NODE ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entitas Eksternal
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Anggota;
Pustakawan;
// --- BATAS SISTEM ---
subgraph cluster_LibrarySystem {
label = "Sistem Perpustakaan (Logis)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Proses
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nKelolanKatalog"];
P2 [label="2.0nProsesnPeminjaman"];
P3 [label="3.0nKelolanPengembalian"];
// Penyimpanan Data
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | Katalog Buku }"];
TransactionsDS [label="{ <id> D2 | CatatannPeminjaman }"];
MemberDS [label="{ <id> D3 | Basis Data Anggota }"];
}
// --- GAYA TEPISAN ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- ALIRAN DATA ---
// Interaksi Anggota
Anggota -> P1 [label="Cari Buku"];
P1 -> Anggota [label="Hasil Pencarian"];
Anggota -> P2 [label="Permintaan Peminjaman"];
P2 -> Anggota [label="Konfirmasi Peminjaman"];
Anggota -> P3 [label="Kembalikan Buku"];
P3 -> Anggota [label="Struk Pengembalian"];
// Interaksi Pustakawan
Pustakawan -> P1 [label="Tambah/Perbarui Buku"];
P1 -> Pustakawan [label="Konfirmasi Pembaruan Katalog"];
Pustakawan -> P3 [label="Proses Terlambat"];
P3 -> Pustakawan [label="Laporan Terlambat"];
// Aliran Data
P1 -> CatalogDS [label="Pembaruan Buku"];
CatalogDS -> P1 [label="Data Katalog"];
P2 -> CatalogDS [label="Periksa Ketersediaan"];
CatalogDS -> P2 [label="Status Buku"];
P2 -> MemberDS [label="Periksa Status Anggota"];
MemberDS -> P2 [label="Info Anggota"];
P2 -> TransactionsDS [label="Buat Catatan Peminjaman"];
TransactionsDS -> P2 [label="Riwayat Peminjaman"];
P3 -> TransactionsDS [label="Perbarui Pengembalian"];
TransactionsDS -> P3 [label="Catatan Peminjaman"];
P3 -> MemberDS [label="Perbarui Status Anggota"];
MemberDS -> P3 [label="Info Anggota"];
}
Contoh 3: DFD Fisik – Sistem Manajemen Perpustakaan

digraph LibrarySystem_Physical {
// --- GAYA GRAF ---
graph [
rankdir = TB
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- GAYA NODE ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entitas Eksternal (Fisik)
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
"Anggota Perpustakaan" [label="AnggotanPerpustakaan"];
"Pustakawan" [label="StafnPustakawan"];
"Sistem Email" [label="SistemnEmail"];
"Gerbang Pembayaran" [label="GerbangnPembayaran"];
// --- BATAS SISTEM ---
subgraph cluster_LibrarySystem_Physical {
label = "Sistem Manajemen Perpustakaan (Implementasi Fisik)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Proses Fisik (dengan detail teknologi)
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nKatalog Webn(HTML, JS)"];
P2 [label="2.0nPeminjamannAPIn(Python/REST)"];
P3 [label="3.0nPemrosesnPengembaliann(Java)"];
// Penyimpanan Data Fisik (dengan detail teknologi)
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
CatalogDS [label="{ <id> D1 | PostgreSQLnKatalog Buku }"];
TransactionsDS [label="{ <id> D2 | MongoDBnCatatan Peminjaman }"];
MemberDS [label="{ <id> D3 | OraclenBasis Data Anggota }"];
// Komponen fisik tambahan
node [shape = box, style = "filled", fillcolor = "#F3E5F5", color = "#8E24AA"]
"Server Cache" [label="RedisnCache"];
"Antrian Pesan" [label="RabbitMQnAntrian"];
}
// --- GAYA TEPISAN ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- ALIRAN DATA (Fisik) ---
// Interaksi Anggota Fisik
"Anggota Perpustakaan" -> P1 [label="HTTP GETnPencarian Buku"];
P1 -> "Anggota Perpustakaan" [label="HTML/JSONnHasil"];
"Anggota Perpustakaan" -> P2 [label="API RESTnPermintaan Peminjaman"];
P2 -> "Anggota Perpustakaan" [label="JSONnKonfirmasi"];
"Anggota Perpustakaan" -> P3 [label="API RESTnPengembalian"];
P3 -> "Anggota Perpustakaan" [label="JSONnStruk"];
// Interaksi Pustakawan Fisik
"Pustakawan" -> P1 [label="HTTPSnManajemen Katalog"];
P1 -> "Pustakawan" [label="HTMLnKonfirmasi"];
"Pustakawan" -> P3 [label="API RESTnProses Terlambat"];
P3 -> "Pustakawan" [label="Laporan PDF"];
// Interaksi Sistem Eksternal
P2 -> "Sistem Email" [label="SMTPnNotifikasi"];
P3 -> "Gerbang Pembayaran" [label="HTTPSnPembayaran Denda"];
// Aliran Data (Fisik)
P1 -> CatalogDS [label="UPDATE SQL"];
CatalogDS -> P1 [label="SELECT SQL"];
P1 -> "Server Cache" [label="Perbarui Cache"];
"Server Cache" -> P1 [label="Kena Cache"];
P2 -> CatalogDS [label="SELECT SQL"];
CatalogDS -> P2 [label="HASIL SQL"];
P2 -> MemberDS [label="SELECT SQL"];
MemberDS -> P2 [label="HASIL SQL"];
P2 -> TransactionsDS [label="INSERT"];
TransactionsDS -> P2 [label="SELECT"];
P2 -> "Antrian Pesan" [label="PublikasinPeristiwa Peminjaman"];
P3 -> TransactionsDS [label="UPDATE"];
TransactionsDS -> P3 [label="SELECT"];
P3 -> MemberDS [label="UPDATE"];
MemberDS -> P3 [label="SELECT"];
P3 -> "Antrian Pesan" [label="PublikasinPeristiwa Pengembalian"];
}
Contoh 4: Pemrosesan Pesanan E-Commerce (DFD Logis)

digraph ECommerce_Logical {
// --- GAYA GRAF ---
graph [
rankdir = LR
splines = true
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
]
// --- GAYA NODE ---
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
// Entitas Eksternal
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer;
Supplier;
"Pemroses Pembayaran" [label="PemrosesnPembayaran"];
// --- BATAS SISTEM ---
subgraph cluster_ECommerce {
label = "Sistem E-Commerce (Logis)";
style = "dashed,rounded";
color = "#757575";
bgcolor = "#FAFAFA";
margin = 20;
// Proses
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", width = 1.4]
P1 [label="1.0nProsesnPesanan"];
P2 [label="2.0nKelolanPersediaan"];
P3 [label="3.0nKelolanPengiriman"];
// Penyimpanan Data
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D"]
OrderDS [label="{ <id> D1 | Pesanan }"];
InventoryDS [label="{ <id> D2 | Persediaan }"];
ShipmentDS [label="{ <id> D3 | Pengiriman }"];
}
// --- GAYA TEPISAN ---
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
// --- ALIRAN DATA ---
// Interaksi Pelanggan
Customer -> P1 [label="Rincian Pesanan"];
P1 -> Customer [label="Konfirmasi Pesanan"];
Customer -> P3 [label="Lacak Pesanan"];
P3 -> Customer [label="Info Lacak"];
// Pemroses Pembayaran
"Pemroses Pembayaran" -> P1 [label="Respons Pembayaran"];
P1 -> "Pemroses Pembayaran" [label="Permintaan Pembayaran"];
// Pemasok
Supplier -> P2 [label="Perbarui Stok"];
P2 -> Supplier [label="Permintaan Pesan Ulang"];
// Aliran Data Proses
P1 -> OrderDS [label="Simpan Pesanan"];
OrderDS -> P1 [label="Riwayat Pesanan"];
P1 -> InventoryDS [label="Periksa Stok"];
InventoryDS -> P1 [label="Ketersediaan"];
P1 -> P3 [label="Rincian Pengiriman"];
P2 -> InventoryDS [label="Perbarui Stok"];
InventoryDS -> P2 [label="Stok Saat Ini"];
P3 -> OrderDS [label="Perbarui Status"];
OrderDS -> P3 [label="Info Pesanan"];
P3 -> ShipmentDS [label="Buat Pengiriman"];
ShipmentDS -> P3 [label="Rincian Pengiriman"];
}
6. Praktik Terbaik
Untuk DFD Logis
- Fokus pada proses bisnis, bukan teknologi
- Gunakan terminologi bisnisyang dipahami pemangku kepentingan
- Pertahankan proses pada tingkat abstraksi yang konsisten
- Validasi dengan pengguna bisnisuntuk akurasi
- Tampilkan semua aliran data utama antara komponen
Untuk DFD Fisik
- Sertakan detail yang spesifik terhadap teknologi
- Pertimbangkan kinerja dan skalabilitas
- Dokumentasikan antarmuka sistem jelas
- Sertakan penanganan kesalahan dan proses pemulihan
- Selaraskan dengan arsitektur sistem yang sebenarnya
Praktik Terbaik Umum
- Mulai dengan diagram konteks
- Berilah nomor pada proses secara hierarkis
- Gunakan nama yang bermakna untuk semua komponen
- Hindari persilangan aliran data
- Validasi secara teratur dengan pemangku kepentingan
7. Kesalahan Umum

Kesalahan 1: Menggabungkan Logis dan Fisik
❌ Salah:Menambahkan nama teknologi basis data dalam DFD logis
✅ Benar:Jaga DFD logis agar tidak tergantung pada teknologi
Kesalahan 2: Aliran Data yang Hilang
❌ Salah:Menampilkan hanya satu arah antara entitas
✅ Benar:Sertakan aliran dua arah di tempat yang sesuai
Kesalahan 3: Terlalu Rumit
❌ Salah:Menempatkan 20+ proses dalam satu diagram
✅ Benar:Dekomposisi menjadi beberapa diagram yang fokus
Kesalahan 4: Penandaan Aliran Data yang Salah
❌ Salah: “Data” sebagai label
✅ Benar: Label deskriptif seperti “Rincian Pesanan Pelanggan”
Kesalahan 5: Batas Proses yang Salah
❌ Salah: Satu proses yang melakukan beberapa fungsi yang tidak terkait
✅ Benar: Proses terpisah untuk fungsi-fungsi yang berbeda
Kesimpulan
Diagram Alir Data adalah alat penting untuk analisis dan desain sistem. Memahami perbedaan antara DFD logis dan fisik membantu Anda berkomunikasi secara efektif dengan berbagai pemangku kepentingan pada tahap-tahap berbeda dalam siklus pengembangan perangkat lunak.
- DFD Logis menjembatani kebutuhan bisnis dan solusi teknis
- DFD Fisik membimbing keputusan implementasi dan penyebaran
Gunakan contoh yang disediakan sebagai templat untuk DFD Anda sendiri, menyesuaikannya dengan kebutuhan sistem spesifik Anda sambil mengikuti praktik terbaik yang dijelaskan di atas.
Sumber Tambahan
- Pembuat DFD Gane dan Sarson AI oleh Visual Paradigm: Menjelaskan bagaimana alat AI Visual Paradigm dapat menghasilkan DFD Gane-Sarson dari deskripsi teks.
- Panduan Langkah demi Langkah untuk Membuat Diagram Alir Data dengan Visual Paradigm: Menyediakan tutorial untuk membuat DFD dengan alat online Visual Paradigm, mulai dari pendaftaran hingga berbagi.
- Bagaimana Cara Membuat Diagram Alir Data (DFD)?: Panduan yang mencakup apa itu DFD, tujuannya, dan jenis-jenis utamanya (Fisik dan Logis).
- Panduan Pemula untuk Diagram DFD SSADM dengan Visual Paradigm Online: Panduan pengantar untuk membuat diagram alir data bergaya SSADM menggunakan Visual Paradigm Online.
- Panduan Komprehensif untuk Diagram Alir Data (DFD): Mengungkap Aliran Informasi: Gambaran umum tentang DFD, menjelaskan elemen-elemennya dan mengapa Visual Paradigm adalah alat yang tepat untuk membuatnya.
- Menguasai Diagram Alir Data dengan Visual Paradigm: Panduan Langkah demi Langkah: Panduan praktis yang menggunakan contoh dan templat untuk mengajarkan pembuatan DFD, menampilkan studi kasus seperti sistem belanja online.
- Memahami DFD Logis vs. DFD Fisik: Kapan dan Mengapa Kita Membutuhkannya: Menjelaskan perbedaan, tujuan, dan kasus penggunaan yang tepat untuk diagram alir data logis dan fisik.
- Panduan Pemula untuk Diagram Alir Data (DFD) dengan Visual Paradigm Online: Tutorial ramah pemula yang menjelaskan langkah-langkah membuat DFD dengan Visual Paradigm Online.
- Arsip DFD – Panduan Visual Paradigm: Kumpulan artikel tentang topik DFD termasuk pembuat AI, validasi, penyeimbangan, dan tingkatan.
- Panduan Memulai untuk Diagram Alir Data (DFD) dengan Visual Paradigm Online: Menjelaskan proses langkah demi langkah pembuatan DFD, termasuk komponen utamanya dan cara menggunakan templat.
- Gambar DFD dengan alat DFD terbaik: Membahas representasi grafis aliran data, menjelaskan perbedaan DFD logis dan fisik, serta mengeksplorasi manfaat masing-masing jenis.
-
Panduan Pemula untuk Diagram Aliran Data (DFD) dengan Visual Paradigm Online: Panduan pemula berbahasa Indonesia untuk DFD, yang menjelaskan komponen-komponen dan proses pembuatan langkah demi langkah di Visual Paradigm Online.
Panduan ini memberikan dasar untuk membuat DFD yang efektif. Ingatlah bahwa diagram yang baik berkembang melalui iterasi dan umpan balik dari pemangku kepentingan.
This post is also available in Deutsch, English, Español, فارسی, Français, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.












