HOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIAHOSTING CEPATDOMAIN MURAHSSL GRATISSUPPORT 24/7UPTIME 99.9%SERVER INDONESIA
Web Development

Cara Membuat Website dengan Django Python: Panduan Lengkap untuk Pemula

Tim HostingEkspres|25 Mei 2026|16 menit baca
cara membuat website dengan djangodjango python tutorialbelajar django pemulaframework python webdjango tutorial bahasa indonesiaweb development pythondjango untuk pemulapython web framework
Cara Membuat Website dengan Django Python: Panduan Lengkap untuk Pemula
📚 Baca juga: Cara Membuat Website dengan Flask | Cara Deploy Website ke Server | Cara Membuat Website | Cara Belajar Web Development

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:

cara membuat website dengan django
Ilustrasi cara membuat website dengan django
  • 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.

cara membuat website dengan django
Ilustrasi cara membuat website dengan django

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:

  1. Siapkan requirements.txt - Jalankan pip freeze > requirements.txt untuk mendokumentasikan semua dependensi proyek.
  2. Konfigurasi settings production - Set DEBUG = False, tambahkan domain ke ALLOWED_HOSTS, dan gunakan environment variable untuk SECRET_KEY agar tidak tersimpan di kode sumber.
  3. Kumpulkan static files - Jalankan python manage.py collectstatic untuk mengumpulkan semua file CSS/JS ke folder staticfiles/.
  4. Gunakan Gunicorn sebagai WSGI server - Install dengan pip install gunicorn, jalankan dengan gunicorn mywebsite.wsgi:application --workers 3.
  5. 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.

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.