Cara Membuat Website dengan Django Python: Panduan Lengkap untuk Pemula

Mengapa Belajar Cara Membuat Website dengan Django?
Cara membuat website dengan Django adalah topik yang semakin populer di kalangan developer Indonesia, seiring dengan meningkatnya adopsi Python di berbagai bidang teknologi. Django adalah web framework Python tingkat tinggi yang mengutamakan pengembangan cepat (rapid development) dengan prinsip "batteries included" - artinya hampir semua fitur yang Anda butuhkan sudah tersedia secara bawaan, tanpa perlu menginstal banyak pustaka tambahan.
Django digunakan oleh perusahaan besar seperti Instagram, Pinterest, Spotify, dan The Washington Post. Ini membuktikan bahwa Django bukan sekadar framework untuk belajar, melainkan pilihan andalan untuk aplikasi skala produksi. Dengan Django, Anda mendapatkan sistem autentikasi, admin panel, ORM database, form validation, dan perlindungan keamanan secara otomatis.
Pada panduan ini, Anda akan mempelajari cara membuat website dengan Django dari nol: mulai dari instalasi Python dan Django, memahami arsitektur MVT (Model-View-Template), membuat aplikasi blog sederhana, hingga langkah deploy ke hosting.
Prasyarat Sebelum Memulai
Sebelum mengikuti tutorial cara membuat website dengan Django ini, Anda perlu mempersiapkan:

- Python 3.10 atau lebih baru - Django 4.x ke atas membutuhkan minimal Python 3.10
- Pemahaman dasar Python - Variabel, fungsi, class, dan modul dasar Python
- pip - Package manager Python (biasanya sudah terinstall bersama Python)
- Virtual Environment - venv untuk isolasi dependensi tiap proyek
- Text Editor - VS Code dengan ekstensi Python (Pylance) sangat direkomendasikan
- Terminal/Command Prompt - Untuk menjalankan perintah Django
Tidak perlu pengalaman web development sebelumnya - panduan ini dirancang untuk pemula yang sudah memahami dasar-dasar Python.
Langkah 1: Instalasi Python dan Django
Install Python
Unduh Python dari https://python.org dan pilih versi terbaru (3.11 atau 3.12). Saat instalasi di Windows, centang opsi "Add Python to PATH" agar Python bisa diakses dari terminal manapun.
Verifikasi instalasi Python dengan perintah berikut:
python --version
# Output: Python 3.12.x
pip --version
# Output: pip 24.x.x
Membuat Virtual Environment
Virtual environment (venv) adalah praktik terbaik Python untuk mengisolasi dependensi setiap proyek. Ini mencegah konflik antar versi library di proyek yang berbeda.
# Buat folder proyek
mkdir website-django
cd website-django
# Buat virtual environment
python -m venv venv
# Aktifkan virtual environment
# Windows:
venvScriptsactivate
# macOS/Linux:
source venv/bin/activate
# Prompt berubah menjadi (venv) $ tanda venv aktif
Install Django
pip install django
# Verifikasi instalasi Django
python -m django --version
# Output: 5.x.x
Langkah 2: Membuat Project Django Baru
Dengan virtual environment aktif, buat project Django menggunakan perintah django-admin:
django-admin startproject mywebsite .
# Tanda titik (.) agar file project dibuat di folder saat ini, bukan subfolder baru
Struktur folder yang dihasilkan:
website-django/
├── manage.py ← CLI tool untuk mengelola project Django
├── mywebsite/ ← Konfigurasi utama project
│ ├── __init__.py
│ ├── settings.py ← Pengaturan project (database, apps, dll)
│ ├── urls.py ← URL routing utama
│ ├── wsgi.py ← Entry point untuk web server produksi
│ └── asgi.py ← Entry point untuk async/WebSocket
└── venv/ ← Virtual environment (jangan di-commit ke git)
Jalankan development server untuk memastikan instalasi berhasil:
python manage.py runserver
Buka http://127.0.0.1:8000 di browser. Jika muncul halaman roket Django, project berhasil dibuat!
Langkah 3: Memahami Arsitektur MVT Django
Django menggunakan pola arsitektur MVT (Model-View-Template), sedikit berbeda dari MVC konvensional:
- Model - Mendefinisikan struktur data dan berinteraksi dengan database melalui ORM Django
- View - Logic bisnis: menerima request HTTP, memproses data dari Model, mengembalikan response
- Template - File HTML yang menampilkan data ke pengguna (setara "View" di MVC)
- URL Dispatcher - Mengarahkan setiap URL ke View yang tepat (setara "Controller" di MVC)
Pemahaman mendalam tentang MVT adalah fondasi penting sebelum melanjutkan ke langkah berikutnya dalam cara membuat website dengan Django.
Langkah 4: Membuat Aplikasi Django
Project Django terdiri dari satu atau lebih "aplikasi" (app). Setiap app adalah modul mandiri dengan fungsi spesifik. Kita akan membuat app untuk blog:
python manage.py startapp blog
Daftarkan app baru ke mywebsite/settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # ← Tambahkan baris ini
]
Langkah 5: Membuat Model Database
Model Django adalah class Python yang merepresentasikan tabel database. Edit file blog/models.py:
from django.db import models
from django.utils.text import slugify
class Artikel(models.Model):
judul = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True, blank=True)
konten = models.TextField()
tanggal_dibuat = models.DateTimeField(auto_now_add=True)
tanggal_diperbarui = models.DateTimeField(auto_now=True)
diterbitkan = models.BooleanField(default=True)
class Meta:
ordering = ['-tanggal_dibuat']
verbose_name_plural = 'Artikel'
def __str__(self):
return self.judul
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.judul)
super().save(*args, **kwargs)
Membuat dan Menjalankan Migrasi
Setelah mendefinisikan model, buat file migrasi dan terapkan ke database:
# Buat file migrasi berdasarkan perubahan model
python manage.py makemigrations
# Terapkan migrasi ke database
python manage.py migrate
Django secara default menggunakan SQLite untuk development - tidak perlu konfigurasi database apapun.
File db.sqlite3 akan dibuat otomatis di root folder proyek.
Langkah 6: Mendaftarkan Model ke Django Admin
Salah satu keunggulan Django adalah admin panel bawaan yang sangat powerful. Daftarkan model Artikel
ke admin dengan mengedit blog/admin.py:
from django.contrib import admin
from .models import Artikel
@admin.register(Artikel)
class ArtikelAdmin(admin.ModelAdmin):
list_display = ['judul', 'tanggal_dibuat', 'diterbitkan']
list_filter = ['diterbitkan', 'tanggal_dibuat']
search_fields = ['judul', 'konten']
prepopulated_fields = {'slug': ('judul',)}
Buat akun superuser untuk mengakses admin panel:
python manage.py createsuperuser
# Ikuti prompt: masukkan username, email, dan password
Akses admin panel di http://127.0.0.1:8000/admin dan kelola artikel langsung dari
antarmuka admin yang sudah tersedia tanpa perlu kode tambahan.

Langkah 7: Membuat View (Logic Halaman)
Edit file blog/views.py untuk mendefinisikan logic setiap halaman:
from django.shortcuts import render, get_object_or_404
from .models import Artikel
def daftar_artikel(request):
"""Menampilkan semua artikel yang diterbitkan."""
artikels = Artikel.objects.filter(diterbitkan=True)
context = {
'artikels': artikels,
'title': 'Semua Artikel',
}
return render(request, 'blog/daftar_artikel.html', context)
def detail_artikel(request, slug):
"""Menampilkan detail satu artikel berdasarkan slug."""
artikel = get_object_or_404(Artikel, slug=slug, diterbitkan=True)
context = {
'artikel': artikel,
'title': artikel.judul,
}
return render(request, 'blog/detail_artikel.html', context)
Langkah 8: Konfigurasi URL
Buat file blog/urls.py untuk URL khusus app blog:
from django.urls import path
from . import views
app_name = 'blog'
urlpatterns = [
path('', views.daftar_artikel, name='daftar'),
path('artikel/<slug:slug>/', views.detail_artikel, name='detail'),
]
Sambungkan URL blog ke URL utama project di mywebsite/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls', namespace='blog')),
]
Langkah 9: Membuat Template HTML
Buat folder blog/templates/blog/ dan buat file template berikut.
File: blog/templates/blog/base.html (Layout Dasar)
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Website Django{% endblock %}</title>
<style>
body { font-family: Arial, sans-serif; max-width: 900px; margin: 0 auto; padding: 20px; }
nav { background: #0c4b33; padding: 10px; margin-bottom: 20px; }
nav a { color: white; text-decoration: none; margin-right: 15px; }
.artikel-card { border: 1px solid #ddd; padding: 15px; margin-bottom: 20px; border-radius: 6px; }
</style>
</head>
<body>
<nav>
<a href="{% url 'blog:daftar' %}">Beranda</a>
</nav>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
File: blog/templates/blog/daftar_artikel.html
{% extends 'blog/base.html' %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
<h1>{{ title }}</h1>
{% for artikel in artikels %}
<div class="artikel-card">
<h2><a href="{% url 'blog:detail' artikel.slug %}">{{ artikel.judul }}</a></h2>
<p>{{ artikel.konten|truncatewords:30 }}</p>
<small>{{ artikel.tanggal_dibuat|date:"d F Y" }}</small>
</div>
{% empty %}
<p>Belum ada artikel yang diterbitkan.</p>
{% endfor %}
{% endblock %}
Langkah 10: Konfigurasi Database untuk Produksi (PostgreSQL)
Untuk deployment production, sangat direkomendasikan menggunakan PostgreSQL. Install adapter:
pip install psycopg2-binary
Edit konfigurasi database di mywebsite/settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'nama_database',
'USER': 'user_database',
'PASSWORD': 'password_anda',
'HOST': 'localhost',
'PORT': '5432',
}
}
Banyak hosting Indonesia juga mendukung MySQL. Untuk MySQL, gunakan
'ENGINE': 'django.db.backends.mysql' dan install pip install mysqlclient.
Langkah 11: Deploy Website Django ke Hosting
Deploying Django ke production membutuhkan beberapa konfigurasi tambahan. Berikut langkah umum untuk deploy ke VPS atau hosting yang mendukung Python:
-
Siapkan requirements.txt - Jalankan
pip freeze > requirements.txtuntuk mendokumentasikan semua dependensi proyek. -
Konfigurasi settings production - Set
DEBUG = False, tambahkan domain keALLOWED_HOSTS, dan gunakan environment variable untukSECRET_KEYagar tidak tersimpan di kode sumber. -
Kumpulkan static files - Jalankan
python manage.py collectstaticuntuk mengumpulkan semua file CSS/JS ke folderstaticfiles/. -
Gunakan Gunicorn sebagai WSGI server - Install dengan
pip install gunicorn, jalankan dengangunicorn mywebsite.wsgi:application --workers 3. - Konfigurasi Nginx sebagai reverse proxy - Nginx menangani request HTTP dan meneruskan ke Gunicorn, serta melayani file statis secara langsung untuk efisiensi maksimal.
Untuk pemula, alternatif yang lebih mudah adalah menggunakan platform seperti Railway, Render, atau PythonAnywhere yang menyederhanakan proses deployment Django tanpa perlu konfigurasi server manual. Baca juga panduan Python hosting Indonesia untuk memilih layanan hosting yang paling sesuai dengan kebutuhan proyek Django Anda.
Fitur Unggulan Django yang Wajib Anda Ketahui
- Django ORM - Query database dengan sintaks Python elegan, tanpa perlu menulis SQL manual. Mendukung semua database relasional populer: PostgreSQL, MySQL, SQLite, Oracle.
- Django Admin - Interface admin CRUD yang powerful, siap pakai tanpa coding tambahan. Sangat berguna untuk manajemen konten website secara cepat.
- Django Forms - Sistem form dengan validasi bawaan, perlindungan CSRF otomatis, dan integrasi mulus dengan model database melalui ModelForm.
- Django Auth - Sistem autentikasi lengkap: login, logout, registrasi, permission, dan grup user tersedia out-of-the-box tanpa perlu library tambahan.
- Django REST Framework (DRF) - Library populer untuk membangun REST API dengan Django, lengkap dengan serializer, authentication, throttling, dan browsable API.
- Django Channels - Ekstensi Django untuk menangani WebSocket dan komunikasi real-time, ideal untuk fitur chat, notifikasi, dan dashboard live.
Django vs Flask: Mana yang Harus Dipilih?
Pertanyaan Django vs Flask sering muncul bagi developer Python yang ingin memilih framework web. Berikut perbandingan singkatnya:
- Django cocok untuk proyek skala menengah hingga besar yang membutuhkan banyak fitur bawaan: sistem autentikasi, admin panel, ORM, dan form handling. Django menghemat waktu development secara signifikan karena semua komponen sudah tersedia.
- Flask cocok untuk proyek kecil, microservice, atau REST API yang membutuhkan fleksibilitas tinggi. Flask memberikan kontrol penuh atas setiap komponen yang digunakan.
Untuk pemula yang baru belajar cara membuat website dengan Python, Django adalah pilihan yang lebih direkomendasikan karena strukturnya yang tegas membantu Anda memahami best practice web development. Setelah mahir Django, belajar Flask akan terasa jauh lebih mudah.
FAQ: Pertanyaan Umum tentang Cara Membuat Website dengan Django
- Apakah Django cocok untuk pemula yang baru belajar web development?
- Django cocok untuk pemula yang sudah memahami dasar Python. Jika Anda belum tahu Python sama sekali, pelajari Python dasar terlebih dahulu selama 4–6 minggu. Django memiliki dokumentasi yang sangat baik dan komunitas yang besar, termasuk banyak tutorial Bahasa Indonesia.
- Apa perbedaan Django dan Flask untuk membuat website Python?
- Django adalah "full-stack framework" yang menyediakan hampir semua komponen yang dibutuhkan (ORM, admin, auth, form). Flask adalah "microframework" yang minimalis dan fleksibel. Django lebih cocok untuk proyek besar dengan banyak fitur, sedangkan Flask cocok untuk proyek kecil atau API ringan.
- Database apa yang digunakan Django secara default?
- Django menggunakan SQLite secara default untuk development. Untuk production, sangat direkomendasikan menggunakan PostgreSQL. Django juga mendukung MySQL, MariaDB, dan Oracle.
- Berapa lama waktu yang dibutuhkan untuk belajar Django?
- Dengan dasar Python yang baik, Anda bisa membuat website sederhana dengan Django dalam 1–2 minggu belajar intensif. Untuk menguasai fitur lanjutan seperti REST API dan autentikasi custom, dibutuhkan 2–3 bulan belajar konsisten.
- Apakah Django bisa digunakan untuk membuat REST API?
- Ya. Untuk REST API yang lengkap dan profesional, gunakan Django REST Framework (DRF) - library Python paling populer untuk membangun REST API, digunakan oleh ribuan perusahaan di seluruh dunia.
- Hosting apa yang cocok untuk website Django di Indonesia?
- Website Django membutuhkan hosting yang mendukung Python. Untuk pemula, PythonAnywhere, Railway, atau Render sangat mudah digunakan. Untuk produksi skala besar, gunakan VPS dengan konfigurasi Nginx + Gunicorn. Shared hosting tradisional biasanya tidak mendukung Django.
- Apakah Django aman untuk website produksi?
- Ya, Django sangat aman. Django sudah built-in melindungi dari SQL injection, XSS, CSRF, dan clickjacking. Tim keamanan Django secara aktif memantau dan merilis patch keamanan secara berkala.
Kesimpulan
Cara membuat website dengan Django Python ternyata sangat sistematis dan terstruktur. Dengan mengikuti panduan di atas, Anda sudah bisa membangun website blog fungsional menggunakan arsitektur MVT Django, lengkap dengan admin panel, manajemen database, dan URL routing yang bersih.
Django adalah investasi belajar yang sangat berharga. Kemampuan Python + Django membuka peluang karir di web development, data engineering, dan backend development yang sangat luas. Mulailah dari proyek kecil seperti blog atau portfolio, kemudian tingkatkan kompleksitasnya secara bertahap.
Setelah website Django Anda siap, pastikan Anda men-deploy-nya ke hosting yang mendukung Python agar bisa diakses secara publik. Baca panduan kami tentang Python hosting Indonesia terbaik untuk menemukan layanan VPS dan cloud hosting yang paling sesuai dengan kebutuhan dan anggaran proyek Django Anda.
Artikel Terkait
Python Hosting Indonesia Terbaik 2026: Rekomendasi VPS dan Cloud untuk Django & Flask
Rekomendasi Python hosting Indonesia terbaik untuk Django, Flask, dan FastAPI. Panduan memilih VPS hosting dan cloud server terbaik untuk aplikasi Python di Indonesia, lengkap dengan perbandingan harga dan fitur.
Baca Selengkapnya →Cara Membuat Website dengan Flask Python: Panduan Micro Framework yang Powerful
Panduan lengkap cara membuat website dengan Flask Python dari nol. Pelajari Flask micro framework, routing, template Jinja2, form handling, REST API, hingga deploy ke hosting. Tutorial Flask Bahasa Indonesia untuk pemula.
Baca Selengkapnya →Cara Deploy Website ke Server: Panduan Lengkap 3 Metode 2026
Panduan lengkap cara deploy website ke server dengan 3 metode: FTP, Git, dan cPanel File Manager. Cocok untuk website statis, PHP, WordPress, hingga aplikasi Node.js dan Laravel di hosting maupun VPS.
Baca Selengkapnya →Butuh Hosting untuk Website Anda?
Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.
Jangan Ketinggalan Promo!
Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.
Gratis, tanpa spam. Bisa unsubscribe kapan saja.