<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://wiki.robiehakim.my.id/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robie</id>
	<title>Dokumentasi Robie - Kontribusi pengguna [id]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.robiehakim.my.id/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Robie"/>
	<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php/Istimewa:Kontribusi_pengguna/Robie"/>
	<updated>2026-06-01T20:30:44Z</updated>
	<subtitle>Kontribusi pengguna</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Roadmap_Belajar_Machine_Learning_dengan_Python&amp;diff=2384</id>
		<title>Roadmap Belajar Machine Learning dengan Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Roadmap_Belajar_Machine_Learning_dengan_Python&amp;diff=2384"/>
		<updated>2026-05-22T08:48:18Z</updated>

		<summary type="html">&lt;p&gt;Robie: ←Membuat halaman berisi &amp;#039;= Roadmap Belajar Machine Learning dengan Python =  Panduan ini disusun untuk pemula yang ingin memahami cara kerja machine learning (ML) secara sistematis menggunakan Python. Setiap fase dibangun di atas fase sebelumnya, jadi ikuti urutannya dan jangan terburu-buru melompat ke fase berikutnya sebelum fondasi benar-benar kuat.  ----  == Fase 1 — Fondasi Python &amp;amp; Matematika == &amp;#039;&amp;#039;&amp;#039;Estimasi waktu: 4–6 minggu&amp;#039;&amp;#039;&amp;#039;  Ini adalah fase yang paling sering dilewati pemula...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Roadmap Belajar Machine Learning dengan Python =&lt;br /&gt;
&lt;br /&gt;
Panduan ini disusun untuk pemula yang ingin memahami cara kerja machine learning (ML) secara sistematis menggunakan Python. Setiap fase dibangun di atas fase sebelumnya, jadi ikuti urutannya dan jangan terburu-buru melompat ke fase berikutnya sebelum fondasi benar-benar kuat.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fase 1 — Fondasi Python &amp;amp; Matematika ==&lt;br /&gt;
&#039;&#039;&#039;Estimasi waktu: 4–6 minggu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ini adalah fase yang paling sering dilewati pemula, dan paling sering menyebabkan mereka mandek di tengah jalan. Matematika bukan halangan — kamu tidak perlu menjadi ahli, tapi kamu perlu cukup paham untuk mengerti &#039;&#039;mengapa&#039;&#039; sebuah algoritma bekerja seperti itu.&lt;br /&gt;
&lt;br /&gt;
=== 1.1 Python Dasar ===&lt;br /&gt;
&lt;br /&gt;
Python adalah bahasa utama ekosistem ML. Sebelum menyentuh library apapun, pastikan kamu paham konsep berikut:&lt;br /&gt;
&lt;br /&gt;
* Tipe data: integer, float, string, boolean&lt;br /&gt;
* Struktur data: list, tuple, dictionary, set&lt;br /&gt;
* Kontrol alur: if/else, for loop, while loop&lt;br /&gt;
* Fungsi: definisi, parameter, return value&lt;br /&gt;
* Object-Oriented Programming (OOP): class, objek, atribut, method&lt;br /&gt;
* Manajemen paket: pip install, virtual environment&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kenapa ini penting?&#039;&#039;&#039;&lt;br /&gt;
Hampir semua library ML (NumPy, Pandas, Scikit-learn) dibangun di atas konsep OOP Python. Kalau kamu tidak paham cara kerja objek dan method, kamu hanya akan copy-paste kode tanpa benar-benar mengerti apa yang terjadi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus sederhana:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Kamu punya data nilai ujian 10 siswa&lt;br /&gt;
nilai = [78, 85, 90, 62, 74, 88, 95, 55, 80, 70]&lt;br /&gt;
&lt;br /&gt;
# Hitung rata-rata manual pakai Python dasar&lt;br /&gt;
def hitung_rata_rata(data):&lt;br /&gt;
    return sum(data) / len(data)&lt;br /&gt;
&lt;br /&gt;
rata = hitung_rata_rata(nilai)&lt;br /&gt;
print(f&amp;quot;Rata-rata nilai: {rata}&amp;quot;)  # Output: 77.7&lt;br /&gt;
&lt;br /&gt;
# Cari siswa yang nilainya di atas rata-rata&lt;br /&gt;
lulus = [n for n in nilai if n &amp;gt; rata]&lt;br /&gt;
print(f&amp;quot;Nilai di atas rata-rata: {lulus}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Matematika untuk ML ===&lt;br /&gt;
&lt;br /&gt;
Tiga pilar matematika yang wajib dikuasai:&lt;br /&gt;
&lt;br /&gt;
==== Aljabar Linear ====&lt;br /&gt;
ML bekerja dengan data dalam bentuk angka yang direpresentasikan sebagai vektor dan matriks. Hampir semua perhitungan internal model ML adalah operasi matriks.&lt;br /&gt;
&lt;br /&gt;
Yang perlu dipahami:&lt;br /&gt;
* Vektor dan operasinya (penjumlahan, dot product)&lt;br /&gt;
* Matriks dan operasinya (perkalian, transpose, invers)&lt;br /&gt;
* Nilai eigen (eigenvalue/eigenvector) — penting untuk PCA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus:&#039;&#039;&#039; Bayangkan kamu punya 1000 pelanggan, masing-masing dengan 50 data (usia, pendapatan, dll). Data ini adalah matriks berukuran 1000×50. Setiap operasi model ML pada dasarnya adalah manipulasi matriks ini.&lt;br /&gt;
&lt;br /&gt;
==== Kalkulus (Dasar) ====&lt;br /&gt;
Digunakan saat model &amp;quot;belajar&amp;quot; — yaitu proses optimasi untuk meminimalkan error.&lt;br /&gt;
&lt;br /&gt;
Yang perlu dipahami:&lt;br /&gt;
* Turunan (derivative) — konsep perubahan&lt;br /&gt;
* Gradient — arah turunan di ruang multidimensi&lt;br /&gt;
* Chain rule — dasar dari algoritma backpropagation di neural network&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Intuisi sederhana:&#039;&#039;&#039; Bayangkan kamu berdiri di pegunungan berkabut dan ingin turun ke lembah paling rendah. Kamu meraba tanah di sekitarmu untuk tahu ke arah mana tanah menurun — itulah yang dilakukan gradient descent.&lt;br /&gt;
&lt;br /&gt;
==== Statistik &amp;amp; Probabilitas ====&lt;br /&gt;
ML pada dasarnya adalah statistik yang dikomputasi. Kamu perlu memahami:&lt;br /&gt;
&lt;br /&gt;
* Mean, median, modus, standar deviasi&lt;br /&gt;
* Distribusi data (normal, binomial)&lt;br /&gt;
* Korelasi dan kovarians&lt;br /&gt;
* Probabilitas dasar dan Teorema Bayes&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import statistics&lt;br /&gt;
&lt;br /&gt;
nilai = [78, 85, 90, 62, 74, 88, 95, 55, 80, 70]&lt;br /&gt;
&lt;br /&gt;
print(f&amp;quot;Rata-rata : {statistics.mean(nilai)}&amp;quot;)&lt;br /&gt;
print(f&amp;quot;Median    : {statistics.median(nilai)}&amp;quot;)&lt;br /&gt;
print(f&amp;quot;Std dev   : {statistics.stdev(nilai):.2f}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Dari sini kamu bisa tahu: apakah data menyebar merata?&lt;br /&gt;
# Apakah ada nilai ekstrem (outlier)?&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 1.3 NumPy &amp;amp; Pandas ===&lt;br /&gt;
&lt;br /&gt;
Ini adalah dua library paling fundamental dalam ekosistem data Python.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NumPy&#039;&#039;&#039; — untuk komputasi numerik dan operasi array/matriks yang cepat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pandas&#039;&#039;&#039; — untuk manipulasi data tabular (seperti Excel, tapi jauh lebih powerful).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kenapa ini penting?&#039;&#039;&#039;&lt;br /&gt;
Semua data nyata (file CSV, database, API) harus dibersihkan dan diformat sebelum bisa dimasukkan ke model. Pandas adalah alat utamanya. NumPy adalah &amp;quot;mesin&amp;quot; di balik hampir semua library ML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus sederhana:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
# Simulasi data pelanggan toko&lt;br /&gt;
data = {&lt;br /&gt;
    &#039;nama&#039;       : [&#039;Andi&#039;, &#039;Budi&#039;, &#039;Citra&#039;, &#039;Dian&#039;, &#039;Eka&#039;],&lt;br /&gt;
    &#039;usia&#039;       : [25, 34, 28, 45, 31],&lt;br /&gt;
    &#039;pengeluaran&#039;: [150000, 320000, 210000, None, 280000]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
df = pd.DataFrame(data)&lt;br /&gt;
&lt;br /&gt;
# Lihat data&lt;br /&gt;
print(df.head())&lt;br /&gt;
&lt;br /&gt;
# Isi nilai kosong dengan rata-rata&lt;br /&gt;
df[&#039;pengeluaran&#039;].fillna(df[&#039;pengeluaran&#039;].mean(), inplace=True)&lt;br /&gt;
&lt;br /&gt;
# Hitung statistik dasar&lt;br /&gt;
print(df[&#039;pengeluaran&#039;].describe())&lt;br /&gt;
&lt;br /&gt;
# Operasi NumPy: normalisasi nilai ke skala 0-1&lt;br /&gt;
arr = np.array(df[&#039;pengeluaran&#039;])&lt;br /&gt;
normalized = (arr - arr.min()) / (arr.max() - arr.min())&lt;br /&gt;
print(f&amp;quot;Nilai ternormalisasi: {normalized}&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fase 2 — Data &amp;amp; Visualisasi ==&lt;br /&gt;
&#039;&#039;&#039;Estimasi waktu: 3–4 minggu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Di dunia nyata, 70–80% waktu seorang data scientist habis di fase ini. Data jarang sekali datang dalam kondisi bersih dan siap pakai.&lt;br /&gt;
&lt;br /&gt;
=== 2.1 Exploratory Data Analysis (EDA) ===&lt;br /&gt;
&lt;br /&gt;
EDA adalah proses &amp;quot;berkenalan&amp;quot; dengan data sebelum membangun model. Tujuannya adalah memahami pola, distribusi, hubungan antar variabel, dan masalah dalam data.&lt;br /&gt;
&lt;br /&gt;
Yang harus dilakukan saat EDA:&lt;br /&gt;
* Cek ukuran data (jumlah baris dan kolom)&lt;br /&gt;
* Cek tipe data tiap kolom&lt;br /&gt;
* Temukan nilai yang hilang (missing values)&lt;br /&gt;
* Temukan nilai ekstrem (outlier)&lt;br /&gt;
* Pahami distribusi setiap fitur&lt;br /&gt;
* Cari korelasi antar fitur&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — prediksi harga rumah:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
df = pd.read_csv(&#039;harga_rumah.csv&#039;)&lt;br /&gt;
&lt;br /&gt;
# Langkah 1: gambaran umum&lt;br /&gt;
print(df.shape)        # misal: (1000, 8) = 1000 rumah, 8 fitur&lt;br /&gt;
print(df.info())       # tipe data dan jumlah non-null&lt;br /&gt;
print(df.describe())   # statistik dasar tiap kolom&lt;br /&gt;
&lt;br /&gt;
# Langkah 2: cek missing values&lt;br /&gt;
print(df.isnull().sum())&lt;br /&gt;
&lt;br /&gt;
# Langkah 3: cek distribusi harga&lt;br /&gt;
print(df[&#039;harga&#039;].skew())  # positif = data condong ke kanan (ada rumah sangat mahal)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Visualisasi Data ===&lt;br /&gt;
&lt;br /&gt;
Visualisasi membantu kamu melihat pola yang tidak terlihat dari angka mentah. Dua library utama: &#039;&#039;&#039;Matplotlib&#039;&#039;&#039; (fleksibel, level rendah) dan &#039;&#039;&#039;Seaborn&#039;&#039;&#039; (lebih mudah untuk statistik).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kapan pakai jenis visualisasi apa:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Histogram&#039;&#039;&#039; — distribusi satu variabel numerik&lt;br /&gt;
* &#039;&#039;&#039;Boxplot&#039;&#039;&#039; — melihat outlier dan sebaran data&lt;br /&gt;
* &#039;&#039;&#039;Scatter plot&#039;&#039;&#039; — hubungan antara dua variabel numerik&lt;br /&gt;
* &#039;&#039;&#039;Heatmap korelasi&#039;&#039;&#039; — melihat hubungan semua pasangan variabel sekaligus&lt;br /&gt;
* &#039;&#039;&#039;Bar chart&#039;&#039;&#039; — membandingkan kategori&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import seaborn as sns&lt;br /&gt;
&lt;br /&gt;
# Heatmap korelasi — sangat berguna sebelum memilih fitur model&lt;br /&gt;
plt.figure(figsize=(10, 8))&lt;br /&gt;
sns.heatmap(df.corr(), annot=True, cmap=&#039;coolwarm&#039;, fmt=&#039;.2f&#039;)&lt;br /&gt;
plt.title(&#039;Korelasi Antar Fitur&#039;)&lt;br /&gt;
plt.show()&lt;br /&gt;
&lt;br /&gt;
# Dari heatmap ini kamu bisa tahu:&lt;br /&gt;
# fitur mana yang paling berkorelasi dengan &#039;harga&#039; (target)&lt;br /&gt;
# fitur mana yang saling berkorelasi satu sama lain (multikolinearitas)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 2.3 Feature Engineering ===&lt;br /&gt;
&lt;br /&gt;
Feature engineering adalah seni mengubah data mentah menjadi representasi yang lebih bermakna untuk model. Ini adalah salah satu skill yang paling membedakan praktisi ML yang biasa dengan yang mahir.&lt;br /&gt;
&lt;br /&gt;
Teknik-teknik utama:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Encoding&#039;&#039;&#039; — mengubah kategori teks menjadi angka (Label Encoding, One-Hot Encoding)&lt;br /&gt;
* &#039;&#039;&#039;Normalisasi/Standarisasi&#039;&#039;&#039; — menyamakan skala antar fitur&lt;br /&gt;
* &#039;&#039;&#039;Handling missing values&#039;&#039;&#039; — isi dengan mean, median, modus, atau hapus&lt;br /&gt;
* &#039;&#039;&#039;Membuat fitur baru&#039;&#039;&#039; — kombinasikan fitur yang ada untuk menghasilkan informasi baru&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kenapa ini penting?&#039;&#039;&#039;&lt;br /&gt;
Model ML hanya bisa memproses angka. Teks seperti &amp;quot;Laki-laki&amp;quot;/&amp;quot;Perempuan&amp;quot; atau &amp;quot;Jakarta&amp;quot;/&amp;quot;Surabaya&amp;quot; harus dikonversi dulu. Selain itu, fitur dengan skala sangat berbeda (contoh: usia 25 vs pendapatan 5.000.000) bisa membuat model bias.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sklearn.preprocessing import LabelEncoder, StandardScaler&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
df = pd.DataFrame({&lt;br /&gt;
    &#039;kota&#039;       : [&#039;Jakarta&#039;, &#039;Surabaya&#039;, &#039;Bandung&#039;, &#039;Jakarta&#039;, &#039;Surabaya&#039;],&lt;br /&gt;
    &#039;usia&#039;       : [25, 34, 28, 45, 31],&lt;br /&gt;
    &#039;pendapatan&#039; : [3500000, 7200000, 4800000, 9000000, 5500000],&lt;br /&gt;
    &#039;beli&#039;       : [&#039;Ya&#039;, &#039;Tidak&#039;, &#039;Ya&#039;, &#039;Ya&#039;, &#039;Tidak&#039;]&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
# One-Hot Encoding untuk kolom kota (lebih dari 2 kategori)&lt;br /&gt;
df = pd.get_dummies(df, columns=[&#039;kota&#039;])&lt;br /&gt;
&lt;br /&gt;
# Label Encoding untuk target biner&lt;br /&gt;
le = LabelEncoder()&lt;br /&gt;
df[&#039;beli&#039;] = le.fit_transform(df[&#039;beli&#039;])  # Ya=1, Tidak=0&lt;br /&gt;
&lt;br /&gt;
# Standarisasi usia dan pendapatan agar skalanya sama&lt;br /&gt;
scaler = StandardScaler()&lt;br /&gt;
df[[&#039;usia&#039;, &#039;pendapatan&#039;]] = scaler.fit_transform(df[[&#039;usia&#039;, &#039;pendapatan&#039;]])&lt;br /&gt;
&lt;br /&gt;
print(df.head())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fase 3 — Algoritma Machine Learning ==&lt;br /&gt;
&#039;&#039;&#039;Estimasi waktu: 6–8 minggu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ini adalah inti dari seluruh perjalanan. Di fase ini kamu belajar berbagai algoritma ML, kapan menggunakannya, dan bagaimana mengevaluasi hasilnya. Library utama yang digunakan adalah &#039;&#039;&#039;Scikit-learn&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 3.1 Supervised Learning ===&lt;br /&gt;
&lt;br /&gt;
Model dilatih menggunakan data yang sudah berlabel — artinya, kita tahu jawaban yang benar. Dibagi menjadi dua tugas:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Regresi&#039;&#039;&#039; — memprediksi nilai kontinu (harga rumah, suhu, pendapatan)&lt;br /&gt;
* &#039;&#039;&#039;Klasifikasi&#039;&#039;&#039; — memprediksi kategori (spam/bukan spam, sakit/sehat, lulus/tidak)&lt;br /&gt;
&lt;br /&gt;
Algoritma yang wajib dipelajari:&lt;br /&gt;
* Linear/Logistic Regression — paling sederhana, bagus untuk baseline&lt;br /&gt;
* K-Nearest Neighbors (KNN) — klasifikasi berdasarkan kedekatan&lt;br /&gt;
* Decision Tree — mudah diinterpretasi, visualisasi seperti pohon keputusan&lt;br /&gt;
* Random Forest — ensemble dari banyak Decision Tree, lebih akurat&lt;br /&gt;
* Support Vector Machine (SVM) — efektif untuk data berdimensi tinggi&lt;br /&gt;
* Gradient Boosting (XGBoost, LightGBM) — sering menang di Kaggle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — prediksi apakah nasabah akan gagal bayar kredit:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sklearn.ensemble import RandomForestClassifier&lt;br /&gt;
from sklearn.model_selection import train_test_split&lt;br /&gt;
from sklearn.metrics import classification_report&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
# Asumsikan df sudah bersih dari Fase 2&lt;br /&gt;
X = df.drop(&#039;gagal_bayar&#039;, axis=1)  # fitur&lt;br /&gt;
y = df[&#039;gagal_bayar&#039;]               # target (1=gagal, 0=aman)&lt;br /&gt;
&lt;br /&gt;
# Bagi data: 80% latih, 20% uji&lt;br /&gt;
X_train, X_test, y_train, y_test = train_test_split(&lt;br /&gt;
    X, y, test_size=0.2, random_state=42&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Latih model&lt;br /&gt;
model = RandomForestClassifier(n_estimators=100, random_state=42)&lt;br /&gt;
model.fit(X_train, y_train)&lt;br /&gt;
&lt;br /&gt;
# Evaluasi&lt;br /&gt;
y_pred = model.predict(X_test)&lt;br /&gt;
print(classification_report(y_test, y_pred))&lt;br /&gt;
&lt;br /&gt;
# Lihat fitur mana yang paling berpengaruh&lt;br /&gt;
feat_importance = pd.Series(&lt;br /&gt;
    model.feature_importances_, index=X.columns&lt;br /&gt;
).sort_values(ascending=False)&lt;br /&gt;
print(feat_importance.head(5))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Unsupervised Learning ===&lt;br /&gt;
&lt;br /&gt;
Model bekerja pada data &#039;&#039;&#039;tanpa label&#039;&#039;&#039;. Tugasnya bukan memprediksi, tapi menemukan pola tersembunyi.&lt;br /&gt;
&lt;br /&gt;
Algoritma utama:&lt;br /&gt;
* &#039;&#039;&#039;K-Means Clustering&#039;&#039;&#039; — mengelompokkan data ke dalam K kelompok&lt;br /&gt;
* &#039;&#039;&#039;DBSCAN&#039;&#039;&#039; — clustering berdasarkan kepadatan, bisa mendeteksi outlier&lt;br /&gt;
* &#039;&#039;&#039;PCA (Principal Component Analysis)&#039;&#039;&#039; — mereduksi dimensi data tanpa terlalu banyak kehilangan informasi&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — segmentasi pelanggan toko online:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sklearn.cluster import KMeans&lt;br /&gt;
from sklearn.preprocessing import StandardScaler&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
# Data pelanggan: total transaksi dan rata-rata nilai transaksi&lt;br /&gt;
df = pd.DataFrame({&lt;br /&gt;
    &#039;jumlah_transaksi&#039;  : [5, 23, 2, 18, 7, 30, 1, 15, 25, 3],&lt;br /&gt;
    &#039;rata_nilai_transaksi&#039;: [50000, 850000, 30000, 620000, 120000,&lt;br /&gt;
                             950000, 25000, 480000, 780000, 40000]&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
# Standarisasi&lt;br /&gt;
scaler = StandardScaler()&lt;br /&gt;
df_scaled = scaler.fit_transform(df)&lt;br /&gt;
&lt;br /&gt;
# Clustering ke 3 segmen: pelanggan biasa, aktif, VIP&lt;br /&gt;
kmeans = KMeans(n_clusters=3, random_state=42)&lt;br /&gt;
df[&#039;segmen&#039;] = kmeans.fit_predict(df_scaled)&lt;br /&gt;
&lt;br /&gt;
print(df.groupby(&#039;segmen&#039;).mean())&lt;br /&gt;
# Kamu akan melihat 3 kelompok dengan karakteristik berbeda&lt;br /&gt;
# Segmen 0: transaksi sedikit, nilai kecil → pelanggan baru/jarang&lt;br /&gt;
# Segmen 1: transaksi banyak, nilai besar → pelanggan VIP&lt;br /&gt;
# Segmen 2: sedang-sedang → pelanggan reguler&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.3 Evaluasi Model ===&lt;br /&gt;
&lt;br /&gt;
Akurasi bukan satu-satunya metrik! Ini kesalahan yang sangat umum dilakukan pemula.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metrik untuk Klasifikasi:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Accuracy&#039;&#039;&#039; — persentase prediksi yang benar. Menyesatkan pada data tidak seimbang.&lt;br /&gt;
* &#039;&#039;&#039;Precision&#039;&#039;&#039; — dari semua yang diprediksi positif, berapa yang benar-benar positif?&lt;br /&gt;
* &#039;&#039;&#039;Recall&#039;&#039;&#039; — dari semua yang sebenarnya positif, berapa yang berhasil terdeteksi?&lt;br /&gt;
* &#039;&#039;&#039;F1 Score&#039;&#039;&#039; — rata-rata harmonis precision dan recall&lt;br /&gt;
* &#039;&#039;&#039;ROC-AUC&#039;&#039;&#039; — seberapa baik model memisahkan kelas positif dan negatif&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh mengapa akurasi bisa menyesatkan:&#039;&#039;&#039;&lt;br /&gt;
Misalnya dari 1000 pasien, hanya 10 yang benar-benar sakit kanker. Model yang selalu menebak &amp;quot;tidak sakit&amp;quot; akan mendapat akurasi 99% — tapi gagal total mendeteksi pasien yang sakit!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metrik untuk Regresi:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MAE (Mean Absolute Error)&#039;&#039;&#039; — rata-rata selisih absolut prediksi vs aktual&lt;br /&gt;
* &#039;&#039;&#039;RMSE (Root Mean Squared Error)&#039;&#039;&#039; — lebih sensitif terhadap error besar&lt;br /&gt;
* &#039;&#039;&#039;R² Score&#039;&#039;&#039; — seberapa besar variansi data yang dijelaskan model (0–1, makin tinggi makin baik)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cross-Validation — cara evaluasi yang lebih jujur:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from sklearn.model_selection import cross_val_score&lt;br /&gt;
from sklearn.ensemble import RandomForestClassifier&lt;br /&gt;
&lt;br /&gt;
model = RandomForestClassifier(n_estimators=100, random_state=42)&lt;br /&gt;
&lt;br /&gt;
# 5-fold cross-validation: data dibagi 5, model dilatih 5 kali&lt;br /&gt;
scores = cross_val_score(model, X, y, cv=5, scoring=&#039;f1&#039;)&lt;br /&gt;
print(f&amp;quot;F1 per fold : {scores}&amp;quot;)&lt;br /&gt;
print(f&amp;quot;F1 rata-rata: {scores.mean():.3f} (+/- {scores.std():.3f})&amp;quot;)&lt;br /&gt;
# Ini memberikan gambaran performa model yang lebih andal&lt;br /&gt;
# daripada hanya satu kali train-test split&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3.4 Overfitting &amp;amp; Regularisasi ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Overfitting&#039;&#039;&#039; terjadi ketika model terlalu &amp;quot;menghafal&amp;quot; data latih sehingga gagal pada data baru. Ini adalah masalah paling umum dalam ML.&lt;br /&gt;
&lt;br /&gt;
Tanda-tanda overfitting:&lt;br /&gt;
* Akurasi data latih sangat tinggi (misal 99%)&lt;br /&gt;
* Akurasi data uji jauh lebih rendah (misal 72%)&lt;br /&gt;
&lt;br /&gt;
Cara mengatasinya:&lt;br /&gt;
* &#039;&#039;&#039;Regularisasi L1/L2&#039;&#039;&#039; — menambahkan penalti pada koefisien yang terlalu besar&lt;br /&gt;
* &#039;&#039;&#039;Cross-validation&#039;&#039;&#039; — memastikan model diuji pada berbagai subset data&lt;br /&gt;
* &#039;&#039;&#039;Pruning&#039;&#039;&#039; — memangkas Decision Tree agar tidak terlalu kompleks&lt;br /&gt;
* &#039;&#039;&#039;Menambah data latih&#039;&#039;&#039; — solusi terbaik jika memungkinkan&lt;br /&gt;
* &#039;&#039;&#039;Dropout&#039;&#039;&#039; — teknik khusus deep learning (dibahas di Fase 4)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Underfitting&#039;&#039;&#039; adalah kebalikannya — model terlalu sederhana, bahkan data latih pun tidak bisa diprediksi dengan baik.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fase 4 — Deep Learning ==&lt;br /&gt;
&#039;&#039;&#039;Estimasi waktu: 8–12 minggu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deep learning adalah subset ML yang menggunakan &#039;&#039;&#039;neural network&#039;&#039;&#039; berlapis-lapis. Sangat powerful untuk data tidak terstruktur seperti gambar, teks, dan audio — tapi membutuhkan lebih banyak data dan komputasi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Penting diketahui:&#039;&#039;&#039; Jangan langsung loncat ke deep learning untuk semua masalah. Untuk data tabular terstruktur, Random Forest atau XGBoost sering kali lebih baik dan jauh lebih mudah.&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Neural Network Dasar ===&lt;br /&gt;
&lt;br /&gt;
Neural network terinspirasi dari cara kerja otak manusia. Terdiri dari:&lt;br /&gt;
* &#039;&#039;&#039;Input layer&#039;&#039;&#039; — menerima data&lt;br /&gt;
* &#039;&#039;&#039;Hidden layer&#039;&#039;&#039; — memproses dan belajar representasi&lt;br /&gt;
* &#039;&#039;&#039;Output layer&#039;&#039;&#039; — menghasilkan prediksi&lt;br /&gt;
&lt;br /&gt;
Konsep kunci yang harus dipahami:&lt;br /&gt;
* &#039;&#039;&#039;Activation function&#039;&#039;&#039; — ReLU, Sigmoid, Softmax (memperkenalkan non-linearitas)&lt;br /&gt;
* &#039;&#039;&#039;Loss function&#039;&#039;&#039; — mengukur seberapa salah prediksi model&lt;br /&gt;
* &#039;&#039;&#039;Backpropagation&#039;&#039;&#039; — algoritma untuk menghitung gradien dan memperbarui bobot&lt;br /&gt;
* &#039;&#039;&#039;Optimizer&#039;&#039;&#039; — Adam, SGD (menentukan bagaimana bobot diperbarui)&lt;br /&gt;
* &#039;&#039;&#039;Epoch &amp;amp; Batch size&#039;&#039;&#039; — berapa kali model melihat seluruh data latih&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — klasifikasi tulisan tangan dengan Keras:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tensorflow as tf&lt;br /&gt;
from tensorflow import keras&lt;br /&gt;
&lt;br /&gt;
# Dataset MNIST: 70.000 gambar angka 0-9 berukuran 28x28 pixel&lt;br /&gt;
(X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()&lt;br /&gt;
&lt;br /&gt;
# Normalisasi pixel ke skala 0-1&lt;br /&gt;
X_train, X_test = X_train / 255.0, X_test / 255.0&lt;br /&gt;
&lt;br /&gt;
# Bangun model sederhana&lt;br /&gt;
model = keras.Sequential([&lt;br /&gt;
    keras.layers.Flatten(input_shape=(28, 28)),   # 28x28 → 784 neuron&lt;br /&gt;
    keras.layers.Dense(128, activation=&#039;relu&#039;),    # hidden layer&lt;br /&gt;
    keras.layers.Dropout(0.2),                     # cegah overfitting&lt;br /&gt;
    keras.layers.Dense(10, activation=&#039;softmax&#039;)   # output: 10 kelas (0-9)&lt;br /&gt;
])&lt;br /&gt;
&lt;br /&gt;
model.compile(optimizer=&#039;adam&#039;,&lt;br /&gt;
              loss=&#039;sparse_categorical_crossentropy&#039;,&lt;br /&gt;
              metrics=[&#039;accuracy&#039;])&lt;br /&gt;
&lt;br /&gt;
model.fit(X_train, y_train, epochs=5, validation_split=0.1)&lt;br /&gt;
test_loss, test_acc = model.evaluate(X_test, y_test)&lt;br /&gt;
print(f&amp;quot;Akurasi test: {test_acc:.4f}&amp;quot;)  # biasanya ~98%&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 4.2 CNN &amp;amp; RNN ===&lt;br /&gt;
&lt;br /&gt;
Dua arsitektur neural network khusus untuk jenis data tertentu:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convolutional Neural Network (CNN)&#039;&#039;&#039; — dirancang khusus untuk data gambar. Menggunakan operasi konvolusi untuk mendeteksi fitur visual seperti tepi, tekstur, dan bentuk secara hierarkis.&lt;br /&gt;
&lt;br /&gt;
Digunakan untuk:&lt;br /&gt;
* Klasifikasi gambar (kucing vs anjing)&lt;br /&gt;
* Deteksi objek (YOLO, Faster R-CNN)&lt;br /&gt;
* Segmentasi gambar (medis, satelit)&lt;br /&gt;
* Pengenalan wajah&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recurrent Neural Network (RNN) &amp;amp; LSTM&#039;&#039;&#039; — dirancang untuk data berurutan. Memiliki &amp;quot;memori&amp;quot; yang memungkinkan ia mempertimbangkan konteks dari langkah sebelumnya.&lt;br /&gt;
&lt;br /&gt;
Digunakan untuk:&lt;br /&gt;
* Analisis sentimen teks&lt;br /&gt;
* Prediksi harga saham (time series)&lt;br /&gt;
* Penerjemahan mesin&lt;br /&gt;
* Pengenalan suara&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transfer Learning — jangan latih dari nol!&#039;&#039;&#039;&lt;br /&gt;
Untuk sebagian besar proyek praktis, gunakan model yang sudah dilatih (pre-trained model) dan fine-tune untuk kebutuhan spesifikmu. Ini menghemat waktu, data, dan komputasi secara dramatis.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from tensorflow.keras.applications import MobileNetV2&lt;br /&gt;
from tensorflow.keras import layers, Model&lt;br /&gt;
&lt;br /&gt;
# Gunakan MobileNetV2 yang sudah dilatih pada ImageNet (jutaan gambar)&lt;br /&gt;
base_model = MobileNetV2(input_shape=(224, 224, 3),&lt;br /&gt;
                          include_top=False,&lt;br /&gt;
                          weights=&#039;imagenet&#039;)&lt;br /&gt;
base_model.trainable = False  # bekukan bobot, jangan latih ulang&lt;br /&gt;
&lt;br /&gt;
# Tambahkan layer klasifikasi untuk kebutuhan kita&lt;br /&gt;
x = base_model.output&lt;br /&gt;
x = layers.GlobalAveragePooling2D()(x)&lt;br /&gt;
x = layers.Dense(128, activation=&#039;relu&#039;)(x)&lt;br /&gt;
output = layers.Dense(3, activation=&#039;softmax&#039;)(x)  # misal: 3 kelas buah&lt;br /&gt;
&lt;br /&gt;
model = Model(inputs=base_model.input, outputs=output)&lt;br /&gt;
# Model ini sekarang bisa mengklasifikasikan buah dengan data latih yang sedikit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 4.3 Transformer &amp;amp; Large Language Model (LLM) ===&lt;br /&gt;
&lt;br /&gt;
Transformer adalah arsitektur yang merevolusi NLP (Natural Language Processing) dan kini menyebar ke bidang lain seperti computer vision dan biologi. Konsep utamanya adalah mekanisme &#039;&#039;&#039;attention&#039;&#039;&#039; — model belajar untuk &amp;quot;memperhatikan&amp;quot; bagian input yang paling relevan.&lt;br /&gt;
&lt;br /&gt;
Model-model penting yang perlu diketahui:&lt;br /&gt;
* &#039;&#039;&#039;BERT&#039;&#039;&#039; — bagus untuk memahami teks (klasifikasi, NER, QA)&lt;br /&gt;
* &#039;&#039;&#039;GPT&#039;&#039;&#039; — bagus untuk menghasilkan teks&lt;br /&gt;
* &#039;&#039;&#039;Vision Transformer (ViT)&#039;&#039;&#039; — transformer untuk gambar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HuggingFace&#039;&#039;&#039; adalah ekosistem utama untuk bekerja dengan transformer. Library-nya memudahkan fine-tuning ribuan model pre-trained.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — analisis sentimen ulasan produk:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from transformers import pipeline&lt;br /&gt;
&lt;br /&gt;
# Pipeline siap pakai dari HuggingFace — tidak perlu latih dari nol&lt;br /&gt;
classifier = pipeline(&#039;sentiment-analysis&#039;,&lt;br /&gt;
                       model=&#039;nlptown/bert-base-multilingual-uncased-sentiment&#039;)&lt;br /&gt;
&lt;br /&gt;
ulasan = [&lt;br /&gt;
    &amp;quot;Produknya bagus banget, pengiriman cepat, sangat puas!&amp;quot;,&lt;br /&gt;
    &amp;quot;Kecewa, barang datang rusak dan tidak sesuai deskripsi.&amp;quot;,&lt;br /&gt;
    &amp;quot;Lumayan lah, sesuai ekspektasi untuk harganya.&amp;quot;&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
for teks in ulasan:&lt;br /&gt;
    hasil = classifier(teks)[0]&lt;br /&gt;
    print(f&amp;quot;Teks   : {teks[:50]}...&amp;quot;)&lt;br /&gt;
    print(f&amp;quot;Label  : {hasil[&#039;label&#039;]} | Skor: {hasil[&#039;score&#039;]:.2f}\n&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fase 5 — Produksi &amp;amp; Spesialisasi ==&lt;br /&gt;
&#039;&#039;&#039;Estimasi waktu: Ongoing (terus berkembang)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Membuat model yang akurat baru setengah pekerjaan. Fase ini mengajarkan bagaimana mengubah model menjadi produk yang bisa digunakan orang lain.&lt;br /&gt;
&lt;br /&gt;
=== 5.1 MLOps &amp;amp; Deployment ===&lt;br /&gt;
&lt;br /&gt;
MLOps adalah praktik membawa model ML ke lingkungan produksi secara andal dan terukur.&lt;br /&gt;
&lt;br /&gt;
Konsep dan alat yang perlu dipelajari:&lt;br /&gt;
* &#039;&#039;&#039;Flask / FastAPI&#039;&#039;&#039; — membungkus model sebagai REST API&lt;br /&gt;
* &#039;&#039;&#039;Docker&#039;&#039;&#039; — mengemas aplikasi agar bisa berjalan di mana saja&lt;br /&gt;
* &#039;&#039;&#039;MLflow&#039;&#039;&#039; — melacak eksperimen, versi model, dan parameter&lt;br /&gt;
* &#039;&#039;&#039;Model monitoring&#039;&#039;&#039; — memantau performa model di produksi (apakah akurasi menurun?)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Contoh kasus — membuat API prediksi dengan FastAPI:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from fastapi import FastAPI&lt;br /&gt;
from pydantic import BaseModel&lt;br /&gt;
import joblib&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
app = FastAPI()&lt;br /&gt;
model = joblib.load(&#039;model_kredit.pkl&#039;)  # load model yang sudah dilatih&lt;br /&gt;
&lt;br /&gt;
class DataNasabah(BaseModel):&lt;br /&gt;
    usia: float&lt;br /&gt;
    pendapatan: float&lt;br /&gt;
    jumlah_hutang: float&lt;br /&gt;
    lama_kerja: float&lt;br /&gt;
&lt;br /&gt;
@app.post(&amp;quot;/prediksi-kredit&amp;quot;)&lt;br /&gt;
def prediksi(data: DataNasabah):&lt;br /&gt;
    fitur = np.array([[data.usia, data.pendapatan,&lt;br /&gt;
                        data.jumlah_hutang, data.lama_kerja]])&lt;br /&gt;
    prediksi = model.predict(fitur)[0]&lt;br /&gt;
    probabilitas = model.predict_proba(fitur)[0][1]&lt;br /&gt;
    return {&lt;br /&gt;
        &amp;quot;keputusan&amp;quot;   : &amp;quot;Disetujui&amp;quot; if prediksi == 0 else &amp;quot;Ditolak&amp;quot;,&lt;br /&gt;
        &amp;quot;risiko_gagal&amp;quot;: f&amp;quot;{probabilitas:.1%}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
# Jalankan: uvicorn app:app --reload&lt;br /&gt;
# Test: POST ke http://localhost:8000/prediksi-kredit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Proyek Nyata &amp;amp; Portfolio ===&lt;br /&gt;
&lt;br /&gt;
Tidak ada cara belajar ML yang lebih efektif selain mengerjakan proyek nyata. Proyek di portfolio kamu adalah bukti kemampuan yang jauh lebih kuat daripada sertifikat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rekomendasi platform:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Kaggle&#039;&#039;&#039; — kompetisi ML, dataset publik, dan notebook komunitas&lt;br /&gt;
* &#039;&#039;&#039;UCI ML Repository&#039;&#039;&#039; — koleksi dataset klasik untuk belajar&lt;br /&gt;
* &#039;&#039;&#039;GitHub&#039;&#039;&#039; — wajib untuk menyimpan dan memamerkan kode proyekmu&lt;br /&gt;
* &#039;&#039;&#039;Hugging Face&#039;&#039;&#039; — untuk proyek NLP dan model sharing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ide proyek berdasarkan tingkat kesulitan:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Level !! Proyek !! Dataset&lt;br /&gt;
|-&lt;br /&gt;
| Pemula || Prediksi harga rumah || Boston Housing, Kaggle&lt;br /&gt;
|-&lt;br /&gt;
| Pemula || Klasifikasi bunga iris || Iris Dataset (scikit-learn)&lt;br /&gt;
|-&lt;br /&gt;
| Menengah || Deteksi spam email || SMS Spam Collection&lt;br /&gt;
|-&lt;br /&gt;
| Menengah || Segmentasi pelanggan || E-commerce dataset&lt;br /&gt;
|-&lt;br /&gt;
| Menengah || Prediksi churn pelanggan || Telco Customer Churn&lt;br /&gt;
|-&lt;br /&gt;
| Lanjutan || Deteksi penipuan kartu kredit || Kaggle Credit Card Fraud&lt;br /&gt;
|-&lt;br /&gt;
| Lanjutan || Analisis sentimen ulasan || Indonesian NLP datasets&lt;br /&gt;
|-&lt;br /&gt;
| Lanjutan || Klasifikasi gambar produk || Open Images Dataset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Jalur Spesialisasi ===&lt;br /&gt;
&lt;br /&gt;
Setelah menguasai fondasi ML, kamu bisa mendalami salah satu bidang ini:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Spesialisasi !! Fokus Utama !! Library/Framework Kunci&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Natural Language Processing (NLP)&#039;&#039;&#039; || Pemahaman dan generasi teks, chatbot, terjemahan || HuggingFace, spaCy, NLTK&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Computer Vision&#039;&#039;&#039; || Pengenalan gambar, deteksi objek, analisis video || OpenCV, YOLO, Detectron2&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Time Series&#039;&#039;&#039; || Prediksi data berurutan, anomali, peramalan || Prophet, statsmodels, ARIMA&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Reinforcement Learning&#039;&#039;&#039; || Agen yang belajar dari interaksi, game AI, robotika || Gym, Stable Baselines3&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MLOps/ML Engineering&#039;&#039;&#039; || Infrastruktur, deployment, monitoring skala besar || Kubernetes, Airflow, Kubeflow&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Referensi &amp;amp; Sumber Belajar yang Direkomendasikan ==&lt;br /&gt;
&lt;br /&gt;
=== Kursus Online ===&lt;br /&gt;
* [https://www.coursera.org/specializations/machine-learning-introduction Machine Learning Specialization — Andrew Ng (Coursera)] — terbaik untuk fondasi teori&lt;br /&gt;
* [https://course.fast.ai/ Practical Deep Learning for Coders — fast.ai] — pendekatan top-down, langsung praktek&lt;br /&gt;
* [https://www.kaggle.com/learn Kaggle Learn] — gratis, singkat, langsung ke praktik&lt;br /&gt;
&lt;br /&gt;
=== Buku ===&lt;br /&gt;
* &#039;&#039;&#039;Hands-On Machine Learning&#039;&#039;&#039; — Aurélien Géron (O&#039;Reilly) — referensi praktik terlengkap&lt;br /&gt;
* &#039;&#039;&#039;Deep Learning&#039;&#039;&#039; — Goodfellow, Bengio, Courville — referensi teori mendalam&lt;br /&gt;
* &#039;&#039;&#039;Pattern Recognition and Machine Learning&#039;&#039;&#039; — Bishop — untuk yang ingin matematika serius&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi Resmi ===&lt;br /&gt;
* [https://scikit-learn.org/stable/user_guide.html Scikit-learn User Guide]&lt;br /&gt;
* [https://www.tensorflow.org/tutorials TensorFlow Tutorials]&lt;br /&gt;
* [https://pytorch.org/tutorials/ PyTorch Tutorials]&lt;br /&gt;
* [https://huggingface.co/docs HuggingFace Documentation]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Catatan Penutup ==&lt;br /&gt;
&lt;br /&gt;
Belajar ML adalah maraton, bukan sprint. Beberapa hal yang perlu selalu diingat:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Pahami dulu, hafalkan belakangan.&#039;&#039;&#039; Lebih baik benar-benar mengerti cara kerja 3 algoritma daripada hafal sintaks 20 algoritma tanpa mengerti konsepnya.&lt;br /&gt;
# &#039;&#039;&#039;Kode setiap hari.&#039;&#039;&#039; Konsistensi 30 menit per hari jauh lebih efektif daripada marathon 8 jam di akhir pekan.&lt;br /&gt;
# &#039;&#039;&#039;Proyek nyata adalah guru terbaik.&#039;&#039;&#039; Teori di kursus tidak akan mempersiapkanmu untuk menghadapi data nyata yang berantakan, tidak lengkap, dan penuh kejutan.&lt;br /&gt;
# &#039;&#039;&#039;Komunitas itu penting.&#039;&#039;&#039; Bergabunglah dengan komunitas ML Indonesia di Telegram, Discord, atau forum lokal lainnya.&lt;br /&gt;
# &#039;&#039;&#039;Jangan takut salah.&#039;&#039;&#039; Model yang pertama hampir pasti jelek — dan itu normal. Iterasi adalah inti dari proses ML.&lt;br /&gt;
&lt;br /&gt;
Selamat belajar dan semoga roadmap ini bermanfaat!&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2383</id>
		<title>Memindahkan CT Proxmox ke Server Lain</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2383"/>
		<updated>2026-05-04T03:53:31Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Memindahkan Container (CT) Proxmox ke server lain melibatkan tiga tahap utama: Backup di server lama, Transfer file ke server baru, dan Restore di server tujuan. &lt;br /&gt;
&lt;br /&gt;
Berikut adalah langkah-langkah detailnya:&lt;br /&gt;
&lt;br /&gt;
== 1. Proses Backup (Server Lama) ==&lt;br /&gt;
Lakukan pencadangan CT yang ingin dipindahkan melalui web interface (GUI) Proxmox: &lt;br /&gt;
&lt;br /&gt;
Pilih CT yang akan dipindahkan dari daftar di sebelah kiri.&lt;br /&gt;
&lt;br /&gt;
Klik tab Backup, lalu pilih Backup Now.&lt;br /&gt;
&lt;br /&gt;
Pilih penyimpanan tujuan (biasanya local), pilih metode kompresi (disarankan ZSTD atau GZIP), dan klik Backup.&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga status menunjukkan TASK OK. &lt;br /&gt;
&lt;br /&gt;
== 2. Proses Transfer File (Antar Server) ==&lt;br /&gt;
File backup biasanya tersimpan di direktori /var/lib/vz/dump/ di server lama. Anda perlu memindahkannya ke server baru menggunakan perintah scp melalui terminal: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Buka terminal/SSH di server lama.&lt;br /&gt;
&lt;br /&gt;
Cari nama file backup (contoh: vzdump-lxc-100-2024_04_23-08_30_00.tar.zst).&lt;br /&gt;
&lt;br /&gt;
Jalankan perintah transfer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scp /var/lib/vz/dump/[NAMA_FILE_BACKUP] root@[IP_SERVER_BARU]:/var/lib/vz/dump/&lt;br /&gt;
&lt;br /&gt;
Gunakan kode dengan hati-hati.&lt;br /&gt;
&lt;br /&gt;
Ganti [NAMA_FILE_BACKUP] dengan nama file asli dan [IP_SERVER_BARU] dengan IP Proxmox tujuan. &lt;br /&gt;
&lt;br /&gt;
== 3. Proses Restore (Server Baru) ==&lt;br /&gt;
Setelah transfer selesai, Anda bisa mengembalikan kontainer tersebut di server tujuan: &lt;br /&gt;
&lt;br /&gt;
ketikkan &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/lib/vz/dump/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lalu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pct restore 107 vzdump-lxc-100-2026_04_22-09_11_36.tar.zst --storage local2&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
107 adalah id ct yang belum terpakai di server yang baru.&lt;br /&gt;
&lt;br /&gt;
vzdump-lxc-100-2026_04_22-09_11_36.tar.zst adalah nama file yang berhasil di kirim dari server lama&lt;br /&gt;
&lt;br /&gt;
local2 adalah lokasi penempatan hasil restore ct di server baru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klik Restore dan tunggu hingga proses selesai.&lt;br /&gt;
[[Kategori:Linux]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2382</id>
		<title>Memindahkan CT Proxmox ke Server Lain</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2382"/>
		<updated>2026-04-23T01:56:58Z</updated>

		<summary type="html">&lt;p&gt;Robie: Melindungi &amp;quot;Memindahkan CT Proxmox ke Server Lain&amp;quot; ([Sunting=Hanya untuk pengurus] (selamanya) [Pindahkan=Hanya untuk pengurus] (selamanya))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Memindahkan Container (CT) Proxmox ke server lain melibatkan tiga tahap utama: Backup di server lama, Transfer file ke server baru, dan Restore di server tujuan. &lt;br /&gt;
&lt;br /&gt;
Berikut adalah langkah-langkah detailnya:&lt;br /&gt;
&lt;br /&gt;
== 1. Proses Backup (Server Lama) ==&lt;br /&gt;
Lakukan pencadangan CT yang ingin dipindahkan melalui web interface (GUI) Proxmox: &lt;br /&gt;
&lt;br /&gt;
Pilih CT yang akan dipindahkan dari daftar di sebelah kiri.&lt;br /&gt;
&lt;br /&gt;
Klik tab Backup, lalu pilih Backup Now.&lt;br /&gt;
&lt;br /&gt;
Pilih penyimpanan tujuan (biasanya local), pilih metode kompresi (disarankan ZSTD atau GZIP), dan klik Backup.&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga status menunjukkan TASK OK. &lt;br /&gt;
&lt;br /&gt;
== 2. Proses Transfer File (Antar Server) ==&lt;br /&gt;
File backup biasanya tersimpan di direktori /var/lib/vz/dump/ di server lama. Anda perlu memindahkannya ke server baru menggunakan perintah scp melalui terminal: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Buka terminal/SSH di server lama.&lt;br /&gt;
&lt;br /&gt;
Cari nama file backup (contoh: vzdump-lxc-100-2024_04_23-08_30_00.tar.zst).&lt;br /&gt;
&lt;br /&gt;
Jalankan perintah transfer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scp /var/lib/vz/dump/[NAMA_FILE_BACKUP] root@[IP_SERVER_BARU]:/var/lib/vz/dump/&lt;br /&gt;
&lt;br /&gt;
Gunakan kode dengan hati-hati.&lt;br /&gt;
&lt;br /&gt;
Ganti [NAMA_FILE_BACKUP] dengan nama file asli dan [IP_SERVER_BARU] dengan IP Proxmox tujuan. &lt;br /&gt;
&lt;br /&gt;
== 3. Proses Restore (Server Baru) ==&lt;br /&gt;
Setelah transfer selesai, Anda bisa mengembalikan kontainer tersebut di server tujuan: &lt;br /&gt;
&lt;br /&gt;
ketikkan &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/lib/vz/dump/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lalu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pct restore 107 vzdump-lxc-100-2026_04_22-09_11_36.tar.zst --storage local2&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
107 adalah id ct yang belum terpakai di server yang baru.&lt;br /&gt;
&lt;br /&gt;
vzdump-lxc-100-2026_04_22-09_11_36.tar.zst adalah nama file yang berhasil di kirim dari server lama&lt;br /&gt;
&lt;br /&gt;
local2 adalah lokasi penempatan hasil restore ct di server baru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klik Restore dan tunggu hingga proses selesai.&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2381</id>
		<title>Memindahkan CT Proxmox ke Server Lain</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Memindahkan_CT_Proxmox_ke_Server_Lain&amp;diff=2381"/>
		<updated>2026-04-23T01:56:48Z</updated>

		<summary type="html">&lt;p&gt;Robie: ←Membuat halaman berisi &amp;#039;Memindahkan Container (CT) Proxmox ke server lain melibatkan tiga tahap utama: Backup di server lama, Transfer file ke server baru, dan Restore di server tujuan.   Berikut adalah langkah-langkah detailnya:  == 1. Proses Backup (Server Lama) == Lakukan pencadangan CT yang ingin dipindahkan melalui web interface (GUI) Proxmox:   Pilih CT yang akan dipindahkan dari daftar di sebelah kiri.  Klik tab Backup, lalu pilih Backup Now.  Pilih penyimpanan tujuan (biasanya l...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Memindahkan Container (CT) Proxmox ke server lain melibatkan tiga tahap utama: Backup di server lama, Transfer file ke server baru, dan Restore di server tujuan. &lt;br /&gt;
&lt;br /&gt;
Berikut adalah langkah-langkah detailnya:&lt;br /&gt;
&lt;br /&gt;
== 1. Proses Backup (Server Lama) ==&lt;br /&gt;
Lakukan pencadangan CT yang ingin dipindahkan melalui web interface (GUI) Proxmox: &lt;br /&gt;
&lt;br /&gt;
Pilih CT yang akan dipindahkan dari daftar di sebelah kiri.&lt;br /&gt;
&lt;br /&gt;
Klik tab Backup, lalu pilih Backup Now.&lt;br /&gt;
&lt;br /&gt;
Pilih penyimpanan tujuan (biasanya local), pilih metode kompresi (disarankan ZSTD atau GZIP), dan klik Backup.&lt;br /&gt;
&lt;br /&gt;
Tunggu hingga status menunjukkan TASK OK. &lt;br /&gt;
&lt;br /&gt;
== 2. Proses Transfer File (Antar Server) ==&lt;br /&gt;
File backup biasanya tersimpan di direktori /var/lib/vz/dump/ di server lama. Anda perlu memindahkannya ke server baru menggunakan perintah scp melalui terminal: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Buka terminal/SSH di server lama.&lt;br /&gt;
&lt;br /&gt;
Cari nama file backup (contoh: vzdump-lxc-100-2024_04_23-08_30_00.tar.zst).&lt;br /&gt;
&lt;br /&gt;
Jalankan perintah transfer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
scp /var/lib/vz/dump/[NAMA_FILE_BACKUP] root@[IP_SERVER_BARU]:/var/lib/vz/dump/&lt;br /&gt;
&lt;br /&gt;
Gunakan kode dengan hati-hati.&lt;br /&gt;
&lt;br /&gt;
Ganti [NAMA_FILE_BACKUP] dengan nama file asli dan [IP_SERVER_BARU] dengan IP Proxmox tujuan. &lt;br /&gt;
&lt;br /&gt;
== 3. Proses Restore (Server Baru) ==&lt;br /&gt;
Setelah transfer selesai, Anda bisa mengembalikan kontainer tersebut di server tujuan: &lt;br /&gt;
&lt;br /&gt;
ketikkan &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /var/lib/vz/dump/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lalu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pct restore 107 vzdump-lxc-100-2026_04_22-09_11_36.tar.zst --storage local2&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
107 adalah id ct yang belum terpakai di server yang baru.&lt;br /&gt;
&lt;br /&gt;
vzdump-lxc-100-2026_04_22-09_11_36.tar.zst adalah nama file yang berhasil di kirim dari server lama&lt;br /&gt;
&lt;br /&gt;
local2 adalah lokasi penempatan hasil restore ct di server baru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klik Restore dan tunggu hingga proses selesai.&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2380</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2380"/>
		<updated>2026-04-22T07:30:15Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* 📚 REFERENSI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:013-nano-etc-dovecot-conf.jpg|pus|jmpl|654x654px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_path = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg|pus|jmpl|591x591px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg|pus|jmpl|564x564px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  unix_listener auth-userdb {&lt;br /&gt;
  mode = 0660&lt;br /&gt;
  user = dovecot&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg|pus|jmpl|754x754px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:017-restart-dovecot-6.jpg|pus|jmpl|653x653px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2379</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2379"/>
		<updated>2026-04-22T07:08:32Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* TUTORIAL INSTALASI MAIL SERVER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:013-nano-etc-dovecot-conf.jpg|pus|jmpl|654x654px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_path = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg|pus|jmpl|591x591px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg|pus|jmpl|564x564px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  unix_listener auth-userdb {&lt;br /&gt;
  mode = 0660&lt;br /&gt;
  user = dovecot&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg|pus|jmpl|754x754px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:017-restart-dovecot-6.jpg|pus|jmpl|653x653px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2378</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2378"/>
		<updated>2026-04-22T07:08:12Z</updated>

		<summary type="html">&lt;p&gt;Robie: Melindungi &amp;quot;Mail Server Debian 13&amp;quot; ([Sunting=Hanya untuk pengurus] (selamanya) [Pindahkan=Hanya untuk pengurus] (selamanya))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:013-nano-etc-dovecot-conf.jpg|pus|jmpl|654x654px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_path = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg|pus|jmpl|591x591px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg|pus|jmpl|564x564px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  unix_listener auth-userdb {&lt;br /&gt;
  mode = 0660&lt;br /&gt;
  user = dovecot&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg|pus|jmpl|754x754px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:017-restart-dovecot-6.jpg|pus|jmpl|653x653px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2377</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2377"/>
		<updated>2026-04-22T05:44:03Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* Langkah 5: Konfigurasi Socket untuk Postfix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:013-nano-etc-dovecot-conf.jpg|pus|jmpl|654x654px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_path = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg|pus|jmpl|591x591px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg|pus|jmpl|564x564px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  unix_listener auth-userdb {&lt;br /&gt;
  mode = 0660&lt;br /&gt;
  user = dovecot&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg|pus|jmpl|754x754px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:017-restart-dovecot-6.jpg|pus|jmpl|653x653px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:017-restart-dovecot-6.jpg&amp;diff=2376</id>
		<title>Berkas:017-restart-dovecot-6.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:017-restart-dovecot-6.jpg&amp;diff=2376"/>
		<updated>2026-04-22T05:43:50Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;017-restart-dovecot-6&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg&amp;diff=2375</id>
		<title>Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:016-nano-etc-dovecot-conf-d-10-master-conf.jpg&amp;diff=2375"/>
		<updated>2026-04-22T05:42:17Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;016-nano-etc-dovecot-conf-d-10-master-conf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2374</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2374"/>
		<updated>2026-04-22T05:40:22Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:013-nano-etc-dovecot-conf.jpg|pus|jmpl|654x654px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_path = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg|pus|jmpl|591x591px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg|pus|jmpl|564x564px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg&amp;diff=2373</id>
		<title>Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:015-etc-dovecot-conf-d-10-auth-conf.jpg&amp;diff=2373"/>
		<updated>2026-04-22T05:40:10Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;015-etc-dovecot-conf-d-10-auth-conf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg&amp;diff=2372</id>
		<title>Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:014-etc-dovecot-conf-d-10-mail-conf.jpg&amp;diff=2372"/>
		<updated>2026-04-22T05:38:39Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;014-etc-dovecot-conf-d-10-mail-conf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:013-nano-etc-dovecot-conf.jpg&amp;diff=2371</id>
		<title>Berkas:013-nano-etc-dovecot-conf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:013-nano-etc-dovecot-conf.jpg&amp;diff=2371"/>
		<updated>2026-04-22T05:36:37Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;013-nano-etc-dovecot-conf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2370</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2370"/>
		<updated>2026-04-22T05:34:57Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:012-restart-postfix.jpg|pus|jmpl|731x731px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:012-restart-postfix.jpg&amp;diff=2369</id>
		<title>Berkas:012-restart-postfix.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:012-restart-postfix.jpg&amp;diff=2369"/>
		<updated>2026-04-22T04:38:17Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;012-restart-postfix&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2368</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2368"/>
		<updated>2026-04-22T04:36:03Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* Langkah 3: Install MariaDB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p (enter)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
biarkan Password tetap kosong, langsung tekan Enter saja.&lt;br /&gt;
&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&lt;br /&gt;
# Optimasi untuk RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:010-nano-etc-postfix-main-cf.jpg|pus|jmpl|560x560px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:011-nano-etc-postfix-master-cf.jpg|pus|jmpl|534x534px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:011-nano-etc-postfix-master-cf.jpg&amp;diff=2367</id>
		<title>Berkas:011-nano-etc-postfix-master-cf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:011-nano-etc-postfix-master-cf.jpg&amp;diff=2367"/>
		<updated>2026-04-22T04:35:45Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;011-nano-etc-postfix-master-cf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:010-nano-etc-postfix-main-cf.jpg&amp;diff=2366</id>
		<title>Berkas:010-nano-etc-postfix-main-cf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:010-nano-etc-postfix-main-cf.jpg&amp;diff=2366"/>
		<updated>2026-04-22T04:34:06Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;010-nano-etc-postfix-main-cf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2365</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2365"/>
		<updated>2026-04-22T04:29:30Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* Langkah 3: Konfigurasi Zone Domain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:003-etc-bind-named-conf-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:004-etc-bind-db-belajar-local.jpg|pus|jmpl|583x583px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:005-etc-bind-db-192168111.jpg|pus|jmpl|677x677px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:006-etc-resolv-conf.jpg|pus|jmpl|589x589px]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg|pus|jmpl|576x576px]]&lt;br /&gt;
[[Berkas:008-nslookup-maiserver-belajar-local.jpg|pus|jmpl|492x492px]]&lt;br /&gt;
[[Berkas:009-dig-mx-belajar-local.jpg|pus|jmpl|635x635px]]&lt;br /&gt;
&lt;br /&gt;
== BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amankan database:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jawab pertanyaan:&lt;br /&gt;
# Password root saat ini: (tekan Enter, kosongkan)&lt;br /&gt;
# Set password baru? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; → masukkan password&lt;br /&gt;
# Hapus user anonim? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Blokir root login dari jarak jauh? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Hapus database test? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload privilege? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Catatan:&#039;&#039;&#039; Ganti &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; dengan password yang lebih aman!&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✉️ BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📬 BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:009-dig-mx-belajar-local.jpg&amp;diff=2364</id>
		<title>Berkas:009-dig-mx-belajar-local.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:009-dig-mx-belajar-local.jpg&amp;diff=2364"/>
		<updated>2026-04-22T04:29:18Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;009-dig-mx-belajar-local&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:008-nslookup-maiserver-belajar-local.jpg&amp;diff=2363</id>
		<title>Berkas:008-nslookup-maiserver-belajar-local.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:008-nslookup-maiserver-belajar-local.jpg&amp;diff=2363"/>
		<updated>2026-04-22T04:28:21Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;008-nslookup-maiserver-belajar-local&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg&amp;diff=2362</id>
		<title>Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:007-cek-konfigurasi-named-checkzone-belajar-local.jpg&amp;diff=2362"/>
		<updated>2026-04-22T04:26:40Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;007-cek-konfigurasi-named-checkzone-belajar-local&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:006-etc-resolv-conf.jpg&amp;diff=2361</id>
		<title>Berkas:006-etc-resolv-conf.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:006-etc-resolv-conf.jpg&amp;diff=2361"/>
		<updated>2026-04-22T04:24:34Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;006-etc-resolv-conf&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:005-etc-bind-db-192168111.jpg&amp;diff=2360</id>
		<title>Berkas:005-etc-bind-db-192168111.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:005-etc-bind-db-192168111.jpg&amp;diff=2360"/>
		<updated>2026-04-22T04:23:08Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;005-etc-bind-db-192168111&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:004-etc-bind-db-belajar-local.jpg&amp;diff=2359</id>
		<title>Berkas:004-etc-bind-db-belajar-local.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:004-etc-bind-db-belajar-local.jpg&amp;diff=2359"/>
		<updated>2026-04-22T04:21:06Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;004-etc-bind-db-belajar-local&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:003-etc-bind-named-conf-local.jpg&amp;diff=2358</id>
		<title>Berkas:003-etc-bind-named-conf-local.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:003-etc-bind-named-conf-local.jpg&amp;diff=2358"/>
		<updated>2026-04-22T04:19:17Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;003-etc-bind-named-conf-local&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2357</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2357"/>
		<updated>2026-04-22T04:17:51Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* Langkah 3: Set Hostname &amp;amp; Swap */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:001-etc-hosts.jpg|pus|jmpl|582x582px]]&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Berkas:002-etc-bind-named-conf-options.jpg|pus|jmpl|638x638px]]&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.local /etc/bind/db.belajar.local&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.127 /etc/bind/db.192.168.111&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌐 BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amankan database:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jawab pertanyaan:&lt;br /&gt;
# Password root saat ini: (tekan Enter, kosongkan)&lt;br /&gt;
# Set password baru? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; → masukkan password&lt;br /&gt;
# Hapus user anonim? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Blokir root login dari jarak jauh? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Hapus database test? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload privilege? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Catatan:&#039;&#039;&#039; Ganti &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; dengan password yang lebih aman!&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✉️ BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📬 BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:002-etc-bind-named-conf-options.jpg&amp;diff=2356</id>
		<title>Berkas:002-etc-bind-named-conf-options.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:002-etc-bind-named-conf-options.jpg&amp;diff=2356"/>
		<updated>2026-04-22T04:17:33Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;002-etc-bind-named-conf-options&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Berkas:001-etc-hosts.jpg&amp;diff=2355</id>
		<title>Berkas:001-etc-hosts.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Berkas:001-etc-hosts.jpg&amp;diff=2355"/>
		<updated>2026-04-22T04:15:05Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;001-etc-hosts&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2354</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2354"/>
		<updated>2026-04-22T04:12:45Z</updated>

		<summary type="html">&lt;p&gt;Robie: /* TUTORIAL INSTALASI MAIL SERVER */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Apache2 &lt;br /&gt;
&lt;br /&gt;
BIND9 &lt;br /&gt;
&lt;br /&gt;
Postfix &lt;br /&gt;
&lt;br /&gt;
Dovecot &lt;br /&gt;
&lt;br /&gt;
Roundcube&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103 (sesuai ip yang didapatkan)&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101 (sesuai dengan CT yang sudah ada)&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24 (sesuai IP yang didapatkan masing-masing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.local /etc/bind/db.belajar.local&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.127 /etc/bind/db.192.168.111&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌐 BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amankan database:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jawab pertanyaan:&lt;br /&gt;
# Password root saat ini: (tekan Enter, kosongkan)&lt;br /&gt;
# Set password baru? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; → masukkan password&lt;br /&gt;
# Hapus user anonim? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Blokir root login dari jarak jauh? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Hapus database test? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload privilege? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Catatan:&#039;&#039;&#039; Ganti &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; dengan password yang lebih aman!&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✉️ BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📬 BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2353</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2353"/>
		<updated>2026-04-22T04:10:02Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= TUTORIAL INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT — Edisi Pemula TKJ&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Panduan praktis untuk siswa SMK Jurusan Teknik Komputer dan Jaringan&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Komponen yang Dipelajari:&#039;&#039;&#039; Apache2 • BIND9 • Postfix • Dovecot • Roundcube&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi Lab:&#039;&#039;&#039; HDD 8 GB | RAM 512 MB | Proxmox Container | IP: 192.168.111.103&lt;br /&gt;
&lt;br /&gt;
== 🎯 TUJUAN PEMBELAJARAN ==&lt;br /&gt;
Setelah mengikuti tutorial ini, siswa mampu:&lt;br /&gt;
# Memahami arsitektur dasar mail server&lt;br /&gt;
# Menginstal dan mengkonfigurasi layanan DNS, SMTP, IMAP, dan Webmail&lt;br /&gt;
# Menguji koneksi email menggunakan Telnet&lt;br /&gt;
# Melakukan troubleshooting dasar jika terjadi error&lt;br /&gt;
&lt;br /&gt;
== 📦 PERSIAPAN AWAL ==&lt;br /&gt;
=== Spesifikasi Server ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! Komponen !! Spesifikasi Minimum&lt;br /&gt;
|-&lt;br /&gt;
| Proxmox VE || Versi 8.x (Container Mode)&lt;br /&gt;
|-&lt;br /&gt;
| OS Guest || Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB + Swap 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| IP Address || 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
| Domain || belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver.belajar.local&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 1: Buat Container di Proxmox ===&lt;br /&gt;
# Buka Proxmox Web UI: &amp;lt;code&amp;gt;https://IP-PROXMOX:8006&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download template Debian 13: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create CT&#039;&#039;&#039; dan isi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai Contoh&lt;br /&gt;
|-&lt;br /&gt;
| CT ID || 101&lt;br /&gt;
|-&lt;br /&gt;
| Hostname || mailserver&lt;br /&gt;
|-&lt;br /&gt;
| Template || debian-13-standard&lt;br /&gt;
|-&lt;br /&gt;
| Disk || 8 GB&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1 core&lt;br /&gt;
|-&lt;br /&gt;
| RAM || 512 MB&lt;br /&gt;
|-&lt;br /&gt;
| Swap || 512 MB (wajib!)&lt;br /&gt;
|-&lt;br /&gt;
| Network || IP Static: 192.168.111.103/24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Masuk ke Container &amp;amp; Update Sistem ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Masuk ke console container&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
# Install paket dasar&lt;br /&gt;
apt install -y curl wget nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Set Hostname &amp;amp; Swap ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set hostname&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
&lt;br /&gt;
# Edit file hosts&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Aktifkan Swap (agar tidak kehabisan memori)&lt;br /&gt;
fallocate -l 512M /swapfile&lt;br /&gt;
chmod 600 /swapfile&lt;br /&gt;
mkswap /swapfile&lt;br /&gt;
swapon /swapfile&lt;br /&gt;
echo &amp;quot;/swapfile none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
&lt;br /&gt;
# Cek swap sudah aktif&lt;br /&gt;
free -h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Aktifkan Firewall ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buka port yang dibutuhkan&lt;br /&gt;
ufw allow 22/tcp    # SSH&lt;br /&gt;
ufw allow 25/tcp    # SMTP&lt;br /&gt;
ufw allow 53        # DNS&lt;br /&gt;
ufw allow 80/tcp    # HTTP&lt;br /&gt;
ufw allow 110/tcp   # POP3&lt;br /&gt;
ufw allow 143/tcp   # IMAP&lt;br /&gt;
ufw allow 443/tcp   # HTTPS&lt;br /&gt;
ufw allow 587/tcp   # Submission&lt;br /&gt;
ufw allow 993/tcp   # IMAPS&lt;br /&gt;
ufw allow 995/tcp   # POP3S&lt;br /&gt;
&lt;br /&gt;
# Aktifkan firewall&lt;br /&gt;
ufw enable&lt;br /&gt;
ufw status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🔧 BAGIAN 1: INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== Langkah 1: Install BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils dnsutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi dengan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Zone Domain ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.local /etc/bind/db.belajar.local&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Buat File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.127 /etc/bind/db.192.168.111&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Set DNS Lokal &amp;amp; Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Set DNS ke server sendiri&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND9&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Tes DNS&lt;br /&gt;
nslookup mailserver.belajar.local&lt;br /&gt;
dig MX belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌐 BAGIAN 2: INSTALASI WEB SERVER &amp;amp; DATABASE ==&lt;br /&gt;
=== Langkah 1: Install Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2&lt;br /&gt;
systemctl start apache2&lt;br /&gt;
systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Install PHP dan Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-xml php-zip libapache2-mod-php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cek PHP sudah terinstall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Install MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb&lt;br /&gt;
systemctl enable mariadb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amankan database:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jawab pertanyaan:&lt;br /&gt;
# Password root saat ini: (tekan Enter, kosongkan)&lt;br /&gt;
# Set password baru? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; → masukkan password&lt;br /&gt;
# Hapus user anonim? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Blokir root login dari jarak jauh? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Hapus database test? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload privilege? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Buat Database untuk Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Masukkan perintah SQL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password123&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Catatan:&#039;&#039;&#039; Ganti &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; dengan password yang lebih aman!&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✉️ BAGIAN 3: INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
=== Langkah 1: Install Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat muncul dialog:&lt;br /&gt;
# Pilih: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tambahkan/ubah konfigurasi berikut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
&lt;br /&gt;
# Format mailbox&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
&lt;br /&gt;
# Autentikasi via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
&lt;br /&gt;
# Keamanan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Aktifkan Port Submission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris &amp;lt;code&amp;gt;submission&amp;lt;/code&amp;gt; dan hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Restart Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
systemctl enable postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port sudah terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📬 BAGIAN 4: INSTALASI IMAP SERVER (DOVECOT) ==&lt;br /&gt;
=== Langkah 1: Install Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Konfigurasi Protokol ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Format Mail ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari dan ubah:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mail_location = maildir:~/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Konfigurasi Autentikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-auth.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pastikan baris ini aktif (tanpa tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!include auth-system.conf.ext&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Konfigurasi Socket untuk Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Restart Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl enable dovecot&lt;br /&gt;
&lt;br /&gt;
# Lalu restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
&lt;br /&gt;
# Cek port&lt;br /&gt;
ss -tlnp | grep -E &#039;:110|:143&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 👤 BAGIAN 5: MEMBUAT AKUN EMAIL ==&lt;br /&gt;
=== Buat User Email ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user1&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
# Masukkan password saat diminta&lt;br /&gt;
&lt;br /&gt;
# Buat user2&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
&lt;br /&gt;
# Buat folder Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;💡 Info:&#039;&#039;&#039; &lt;br /&gt;
* User &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
* User &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt; = email &amp;lt;code&amp;gt;user2@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🧪 BAGIAN 6: PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== Langkah 1: Install Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Tes Kirim Email via SMTP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika berhasil, akan muncul:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
220 mailserver.belajar.local ESMTP Postfix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Kemudian ketik isi email:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Hallo dari user1&lt;br /&gt;
&lt;br /&gt;
Halo user2, ini email percobaan kita!&lt;br /&gt;
Semoga berhasil ya!&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ Penting:&#039;&#039;&#039; Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus sendiri, tanpa spasi!&lt;br /&gt;
&lt;br /&gt;
Lanjutkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Cek Email Masuk ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file, email berhasil diterima!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Tes IMAP ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Harus muncul: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 🌍 BAGIAN 7: INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
=== Langkah 1: Download Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 2: Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 3: Konfigurasi Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;lt;Directory /var/www/html/roundcube&amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 4: Import Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 5: Setup via Browser ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard setup&lt;br /&gt;
# Konfigurasi database:&lt;br /&gt;
## Server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## User: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Password: &amp;lt;code&amp;gt;password123&amp;lt;/code&amp;gt; (sesuai yang dibuat tadi)&lt;br /&gt;
# Konfigurasi IMAP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
# Konfigurasi SMTP: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &#039;&#039;&#039;Create config&#039;&#039;&#039; → &#039;&#039;&#039;Initialize database&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 6: Hapus Folder Installer ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Langkah 7: Akses Webmail ===&lt;br /&gt;
Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login dengan:&lt;br /&gt;
* Username: &amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password: (sesuai password user Linux)&lt;br /&gt;
&lt;br /&gt;
== 🔍 TROUBLESHOOTING DASAR ==&lt;br /&gt;
=== Mail Server Tidak Bisa Dikirim ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Postfix&lt;br /&gt;
journalctl -u postfix --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian&lt;br /&gt;
postqueue -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dovecot Tidak Bisa Login ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek log Dovecot&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -20&lt;br /&gt;
&lt;br /&gt;
# Cek konfigurasi&lt;br /&gt;
doveconf -n | head -20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS Tidak Resolve ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek konfigurasi BIND&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
&lt;br /&gt;
# Restart BIND&lt;br /&gt;
systemctl restart bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perintah Berguna untuk Siswa ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
systemctl status bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Restart semua layanan&lt;br /&gt;
systemctl restart bind9 apache2 mariadb postfix dovecot&lt;br /&gt;
&lt;br /&gt;
# Monitor log realtime&lt;br /&gt;
journalctl -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📋 CHECKLIST AKHIR ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! No !! Pengujian !! Perintah !! Hasil OK&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS aktif || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 2 || MX record || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Apache aktif || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Database aktif || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Postfix aktif || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Port 25 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Dovecot aktif || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Port 143 terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Kirim email Telnet || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Email masuk || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Webmail bisa diakses || Browser ke &amp;lt;code&amp;gt;/roundcube&amp;lt;/code&amp;gt; || halaman login muncul&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 🎓 TUGAS PRAKTIKUM ==&lt;br /&gt;
# ✅ Instal mail server sesuai tutorial ini&lt;br /&gt;
# ✅ Buat 3 akun email: &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email dari &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt; via Telnet&lt;br /&gt;
# ✅ Verifikasi email masuk ke Maildir &amp;lt;code&amp;gt;siswa2&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Login ke webmail Roundcube dengan akun &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Kirim email via webmail dari &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt; ke &amp;lt;code&amp;gt;siswa1&amp;lt;/code&amp;gt;&lt;br /&gt;
# ✅ Dokumentasikan setiap langkah dengan screenshot&lt;br /&gt;
# ✅ Buat laporan praktikum dalam format PDF&lt;br /&gt;
&lt;br /&gt;
== 📚 REFERENSI ==&lt;br /&gt;
* [https://www.postfix.org/ Postfix Official Documentation]&lt;br /&gt;
* [https://www.dovecot.org/ Dovecot Official Documentation]&lt;br /&gt;
* [https://roundcube.net/ Roundcube Webmail]&lt;br /&gt;
* [https://www.isc.org/bind/ BIND9 Documentation]&lt;br /&gt;
* Modul Praktikum TKJ SMK — Administrasi Server Linux&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;— Tutorial Mail Server untuk SMK TKJ — Edisi Pemula —&#039;&#039;&lt;br /&gt;
&#039;&#039;Dibuat untuk pembelajaran praktikum Administrasi Infrastruktur Jaringan&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2352</id>
		<title>Mail Server Debian 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mail_Server_Debian_13&amp;diff=2352"/>
		<updated>2026-04-22T04:06:22Z</updated>

		<summary type="html">&lt;p&gt;Robie: ←Membuat halaman berisi &amp;#039;= PANDUAN LENGKAP INSTALASI MAIL SERVER = &amp;#039;&amp;#039;&amp;#039;Debian 13 di Proxmox CT&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Edisi Revisi v2.0 — Diperbarui berdasarkan hasil implementasi nyata&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Stack:&amp;#039;&amp;#039;&amp;#039; Apache2 • BIND9 • Postfix • Dovecot 2.4 • Roundcube • Telnet &amp;#039;&amp;#039;&amp;#039;Spesifikasi:&amp;#039;&amp;#039;&amp;#039; HDD 8 GB | RAM 512 MB | Proxmox Container (CT) | IP: 192.168.111.103  == BAB 1 — PENDAHULUAN &amp;amp; GAMBARAN UMUM == === 1.1 Tujuan Panduan === Panduan ini menjelaskan langkah-langkah lengkap untuk membangun Mail Server...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PANDUAN LENGKAP INSTALASI MAIL SERVER =&lt;br /&gt;
&#039;&#039;&#039;Debian 13 di Proxmox CT&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;Edisi Revisi v2.0 — Diperbarui berdasarkan hasil implementasi nyata&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stack:&#039;&#039;&#039; Apache2 • BIND9 • Postfix • Dovecot 2.4 • Roundcube • Telnet&lt;br /&gt;
&#039;&#039;&#039;Spesifikasi:&#039;&#039;&#039; HDD 8 GB | RAM 512 MB | Proxmox Container (CT) | IP: 192.168.111.103&lt;br /&gt;
&lt;br /&gt;
== BAB 1 — PENDAHULUAN &amp;amp; GAMBARAN UMUM ==&lt;br /&gt;
=== 1.1 Tujuan Panduan ===&lt;br /&gt;
Panduan ini menjelaskan langkah-langkah lengkap untuk membangun Mail Server di atas Proxmox Container (CT) menggunakan Debian 13. Konfigurasi dirancang sesuai dengan keterbatasan sumber daya (HDD 8 GB, RAM 512 MB) dan telah diverifikasi melalui implementasi nyata.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Panduan ini adalah revisi v2 yang memperbaiki beberapa konfigurasi dari versi sebelumnya, khususnya untuk Dovecot 2.4, konfigurasi socket auth Postfix-Dovecot, sistem logging di Debian 13, dan format pengujian Telnet.&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Arsitektur Layanan ===&lt;br /&gt;
Urutan instalasi wajib diikuti karena setiap layanan menjadi prasyarat bagi layanan berikutnya:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Urutan !! Layanan !! Aplikasi !! Fungsi&lt;br /&gt;
|-&lt;br /&gt;
| 1 || DNS Server || BIND9 || Resolusi domain, MX record, PTR record&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Web Server || Apache2 + PHP || Hosting webmail Roundcube&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Database || MariaDB || Penyimpanan data Roundcube&lt;br /&gt;
|-&lt;br /&gt;
| 4 || SMTP Server || Postfix 3.10 || Kirim &amp;amp; terima email (port 25/587)&lt;br /&gt;
|-&lt;br /&gt;
| 5 || IMAP/POP3 || Dovecot 2.4 || Pengambilan email oleh klien (port 143/110)&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Webmail || Roundcube || Antarmuka web baca/kirim email&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Testing || Telnet || Pengujian koneksi SMTP/IMAP manual&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 1.3 Spesifikasi Lingkungan ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Platform !! Proxmox VE (Container / CT mode)&lt;br /&gt;
|-&lt;br /&gt;
! OS Guest !! Debian 13 (Trixie) 64-bit&lt;br /&gt;
|-&lt;br /&gt;
! Storage !! 8 GB HDD&lt;br /&gt;
|-&lt;br /&gt;
! RAM !! 512 MB + Swap 512 MB (wajib diaktifkan)&lt;br /&gt;
|-&lt;br /&gt;
! IP Address !! 192.168.111.103 (sesuaikan dengan jaringan Anda)&lt;br /&gt;
|-&lt;br /&gt;
! Domain !! belajar.local&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
! Postfix !! 3.10.5&lt;br /&gt;
|-&lt;br /&gt;
! Dovecot !! 2.4.1 (syntax berbeda dari versi lama!)&lt;br /&gt;
|-&lt;br /&gt;
! Akses !! Root shell via Proxmox Console atau SSH&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;📌 CATATAN:&#039;&#039;&#039; Semua perintah dijalankan sebagai root. Dovecot 2.4 di Debian 13 menggunakan syntax konfigurasi baru yang berbeda dari tutorial lama berbasis Dovecot 2.2/2.3.&lt;br /&gt;
&lt;br /&gt;
== BAB 2 — PERSIAPAN PROXMOX CONTAINER (CT) ==&lt;br /&gt;
=== 2.1 Membuat Container Debian 13 di Proxmox ===&lt;br /&gt;
# Login ke Proxmox Web UI (https://IP-PROXMOX:8006)&lt;br /&gt;
# Download template: &amp;lt;code&amp;gt;Datacenter → Node → local → CT Templates&amp;lt;/code&amp;gt; → cari &amp;lt;code&amp;gt;debian-13&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &amp;lt;code&amp;gt;Create CT&amp;lt;/code&amp;gt; dan isi konfigurasi:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Nilai&lt;br /&gt;
|-&lt;br /&gt;
! CT ID !! 101 (atau nomor bebas)&lt;br /&gt;
|-&lt;br /&gt;
! Hostname !! mailserver&lt;br /&gt;
|-&lt;br /&gt;
! Template !! debian-13-standard_*.tar.zst&lt;br /&gt;
|-&lt;br /&gt;
! Disk !! 8 GB&lt;br /&gt;
|-&lt;br /&gt;
! CPU !! 1 core&lt;br /&gt;
|-&lt;br /&gt;
! RAM !! 512 MB&lt;br /&gt;
|-&lt;br /&gt;
! Swap !! 512 MB (wajib)&lt;br /&gt;
|-&lt;br /&gt;
! Network !! eth0 → vmbr0, IP static 192.168.111.103/24&lt;br /&gt;
|-&lt;br /&gt;
! DNS !! 8.8.8.8 (sementara, akan diganti ke lokal)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Konfigurasi Awal Sistem ===&lt;br /&gt;
==== 2.2.1 Update &amp;amp; Paket Dasar ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt upgrade -y&lt;br /&gt;
apt install -y curl wget git nano net-tools dnsutils ufw rsyslog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; rsyslog wajib diinstall di awal. Debian 13 secara default hanya menggunakan systemd journald sehingga &amp;lt;code&amp;gt;/var/log/mail.log&amp;lt;/code&amp;gt; tidak terbuat otomatis tanpa rsyslog.&lt;br /&gt;
&lt;br /&gt;
==== 2.2.2 Set Hostname ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hostnamectl set-hostname mailserver&lt;br /&gt;
nano /etc/hosts&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
192.168.111.103   mailserver.belajar.local   mailserver&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2.2.3 Aktifkan Swap ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fallocate -l 512M /swapfile&lt;br /&gt;
chmod 600 /swapfile&lt;br /&gt;
mkswap /swapfile&lt;br /&gt;
swapon /swapfile&lt;br /&gt;
echo &amp;quot;/swapfile none swap sw 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
free -h   # verifikasi swap aktif&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.3 Konfigurasi Firewall ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ufw allow 22/tcp&lt;br /&gt;
ufw allow 25/tcp&lt;br /&gt;
ufw allow 53&lt;br /&gt;
ufw allow 80/tcp&lt;br /&gt;
ufw allow 110/tcp&lt;br /&gt;
ufw allow 143/tcp&lt;br /&gt;
ufw allow 443/tcp&lt;br /&gt;
ufw allow 587/tcp&lt;br /&gt;
ufw allow 993/tcp&lt;br /&gt;
ufw allow 995/tcp&lt;br /&gt;
ufw enable&lt;br /&gt;
ufw status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 3 — INSTALASI DNS SERVER (BIND9) ==&lt;br /&gt;
=== 3.1 Instalasi BIND9 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y bind9 bind9utils bind9-doc dnsutils&lt;br /&gt;
named -v&lt;br /&gt;
systemctl status bind9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Konfigurasi named.conf.options ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.options&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
    directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
    forwarders { 8.8.8.8; 8.8.4.4; };&lt;br /&gt;
    dnssec-validation auto;&lt;br /&gt;
    listen-on { any; };&lt;br /&gt;
    allow-query { any; };&lt;br /&gt;
    recursion yes;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.3 Konfigurasi Zone — named.conf.local ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/bind/named.conf.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zone &amp;quot;belajar.local&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.belajar.local&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
zone &amp;quot;111.168.192.in-addr.arpa&amp;quot; {&lt;br /&gt;
    type master;&lt;br /&gt;
    file &amp;quot;/etc/bind/db.192.168.111&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.4 File Zone Forward ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.local /etc/bind/db.belajar.local&lt;br /&gt;
nano /etc/bind/db.belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@       IN  NS  mailserver.belajar.local.&lt;br /&gt;
@       IN  A   192.168.111.103&lt;br /&gt;
@       IN  MX 10 mailserver.belajar.local.&lt;br /&gt;
mailserver IN A 192.168.111.103&lt;br /&gt;
mail       IN A 192.168.111.103&lt;br /&gt;
www        IN A 192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.5 File Zone Reverse ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/bind/db.127 /etc/bind/db.192.168.111&lt;br /&gt;
nano /etc/bind/db.192.168.111&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@   IN  SOA mailserver.belajar.local. root.belajar.local. (&lt;br /&gt;
                2024010101 ; Serial&lt;br /&gt;
                604800 ; Refresh&lt;br /&gt;
                86400  ; Retry&lt;br /&gt;
                2419200 ; Expire&lt;br /&gt;
                604800 ) ; Negative Cache TTL&lt;br /&gt;
;&lt;br /&gt;
@   IN  NS  mailserver.belajar.local.&lt;br /&gt;
103 IN  PTR mailserver.belajar.local.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.6 Set DNS ke Lokal &amp;amp; Verifikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nameserver 192.168.111.103&lt;br /&gt;
search belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verifikasi &amp;amp; restart:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
named-checkconf&lt;br /&gt;
named-checkzone belajar.local /etc/bind/db.belajar.local&lt;br /&gt;
named-checkzone 111.168.192.in-addr.arpa /etc/bind/db.192.168.111&lt;br /&gt;
systemctl restart bind9 &amp;amp;&amp;amp; systemctl enable bind9&lt;br /&gt;
&lt;br /&gt;
# Verifikasi&lt;br /&gt;
nslookup mailserver.belajar.local 192.168.111.103&lt;br /&gt;
dig MX belajar.local @192.168.111.103&lt;br /&gt;
dig -x 192.168.111.103 @192.168.111.103&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 4 — INSTALASI WEB SERVER (Apache2 + PHP + MariaDB) ==&lt;br /&gt;
=== 4.1 Instalasi Apache2 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y apache2 apache2-utils&lt;br /&gt;
systemctl start apache2 &amp;amp;&amp;amp; systemctl enable apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Instalasi PHP &amp;amp; Modul ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y php php-cli php-common php-curl php-gd php-intl \&lt;br /&gt;
    php-json php-mbstring php-mysql php-net-ldap2 \&lt;br /&gt;
    php-net-smtp php-net-socket php-pear php-xml \&lt;br /&gt;
    php-zip libapache2-mod-php&lt;br /&gt;
php -v&lt;br /&gt;
php -m | grep -E &#039;mysql|curl|mbstring|xml|zip|gd|intl&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.3 Instalasi &amp;amp; Konfigurasi MariaDB ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y mariadb-server mariadb-client&lt;br /&gt;
systemctl start mariadb &amp;amp;&amp;amp; systemctl enable mariadb&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jawaban saat &amp;lt;code&amp;gt;mysql_secure_installation&amp;lt;/code&amp;gt;:&lt;br /&gt;
# Enter current password: (kosong, langsung Enter)&lt;br /&gt;
# Set root password? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt; → masukkan password kuat&lt;br /&gt;
# Remove anonymous users? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Disallow root login remotely? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Remove test database? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload privilege tables? &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.4 Buat Database Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u root -p&lt;br /&gt;
CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
CREATE USER &#039;roundcube&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password_roundcube&#039;;&lt;br /&gt;
GRANT ALL PRIVILEGES ON roundcubemail.* TO &#039;roundcube&#039;@&#039;localhost&#039;;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ PERHATIAN:&#039;&#039;&#039; Ganti &amp;lt;code&amp;gt;&#039;password_roundcube&#039;&amp;lt;/code&amp;gt; dengan password yang kuat dan catat baik-baik.&lt;br /&gt;
&lt;br /&gt;
=== 4.5 Aktifkan Modul Apache ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2enmod rewrite ssl headers&lt;br /&gt;
systemctl restart apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 5 — INSTALASI SMTP SERVER (POSTFIX) ==&lt;br /&gt;
&#039;&#039;&#039;📌 CATATAN:&#039;&#039;&#039; Versi Postfix yang terinstall di Debian 13 adalah 3.10.5. Akan muncul pesan &#039;backwards-compatible default settings&#039; saat pertama jalan — ini normal dan akan diatasi di langkah konfigurasi.&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Instalasi Postfix ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y postfix postfix-mysql mailutils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Saat dialog instalasi muncul:&lt;br /&gt;
# General type of mail configuration: &amp;lt;code&amp;gt;Internet Site&amp;lt;/code&amp;gt;&lt;br /&gt;
# System mail name: &amp;lt;code&amp;gt;belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Konfigurasi main.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/main.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi/ubah konfigurasi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Identitas server&lt;br /&gt;
myhostname = mailserver.belajar.local&lt;br /&gt;
mydomain = belajar.local&lt;br /&gt;
myorigin = $mydomain&lt;br /&gt;
# Jaringan&lt;br /&gt;
inet_interfaces = all&lt;br /&gt;
inet_protocols = ipv4&lt;br /&gt;
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost&lt;br /&gt;
mynetworks = 127.0.0.0/8 192.168.111.0/24&lt;br /&gt;
relayhost =&lt;br /&gt;
# Mailbox format Maildir&lt;br /&gt;
home_mailbox = Maildir/&lt;br /&gt;
mailbox_size_limit = 51200000&lt;br /&gt;
message_size_limit = 10240000&lt;br /&gt;
# SASL Auth via Dovecot&lt;br /&gt;
smtpd_sasl_type = dovecot&lt;br /&gt;
smtpd_sasl_path = private/auth&lt;br /&gt;
smtpd_sasl_auth_enable = yes&lt;br /&gt;
smtpd_sasl_security_options = noanonymous&lt;br /&gt;
smtpd_sasl_local_domain = $myhostname&lt;br /&gt;
# Pembatasan relay&lt;br /&gt;
smtpd_recipient_restrictions =&lt;br /&gt;
    permit_sasl_authenticated,&lt;br /&gt;
    permit_mynetworks,&lt;br /&gt;
    reject_unauth_destination&lt;br /&gt;
# Matikan warning compatibility&lt;br /&gt;
compatibility_level = 3.6&lt;br /&gt;
# Optimasi RAM rendah&lt;br /&gt;
default_process_limit = 10&lt;br /&gt;
smtpd_client_connection_rate_limit = 30&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Tambahkan &amp;lt;code&amp;gt;compatibility_level = 3.6&amp;lt;/code&amp;gt; untuk menghilangkan warning &#039;Postfix is using backwards-compatible default settings&#039; yang muncul di log.&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Aktifkan Port Submission di master.cf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/postfix/master.cf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Uncomment baris submission (hapus tanda &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
submission inet n       -       y       -       -       smtpd&lt;br /&gt;
  -o syslog_name=postfix/submission&lt;br /&gt;
  -o smtpd_tls_security_level=encrypt&lt;br /&gt;
  -o smtpd_sasl_auth_enable=yes&lt;br /&gt;
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.4 Restart &amp;amp; Verifikasi ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl restart postfix &amp;amp;&amp;amp; systemctl enable postfix&lt;br /&gt;
postfix check&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 6 — INSTALASI IMAP/POP3 SERVER (DOVECOT 2.4) ==&lt;br /&gt;
&#039;&#039;&#039;⚠️ PERHATIAN:&#039;&#039;&#039; Dovecot 2.4 di Debian 13 menggunakan syntax konfigurasi yang BERBEDA dari versi 2.2/2.3. Jangan gunakan tutorial lama yang masih pakai &amp;lt;code&amp;gt;disable_plaintext_auth&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;auth_mechanisms&amp;lt;/code&amp;gt; langsung — syntax tersebut sudah tidak valid dan akan menyebabkan error saat restart.&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Instalasi Dovecot ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y dovecot-core dovecot-imapd dovecot-pop3d&lt;br /&gt;
# Cek versi (akan menampilkan 2.4.x)&lt;br /&gt;
dovecot --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Konfigurasi Protokol — dovecot.conf ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/dovecot.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubah/atur baris:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.3 Konfigurasi Mail Format — 10-mail.conf ===&lt;br /&gt;
Dovecot 2.4 menggunakan parameter &amp;lt;code&amp;gt;mail_driver&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;mail_path&amp;lt;/code&amp;gt; (bukan &amp;lt;code&amp;gt;mail_location&amp;lt;/code&amp;gt; seperti versi lama):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-mail.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari baris-baris lama dan comment semua, lalu tambahkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Dovecot 2.4 - gunakan mail_driver dan mail_path&lt;br /&gt;
mail_driver = maildir&lt;br /&gt;
mail_path = ~/Maildir&lt;br /&gt;
mail_privileged_group = mail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Di Dovecot 2.4, parameter &amp;lt;code&amp;gt;mail_location&amp;lt;/code&amp;gt; sudah diganti menjadi &amp;lt;code&amp;gt;mail_driver&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;mail_path&amp;lt;/code&amp;gt;. Menggunakan &amp;lt;code&amp;gt;mail_location&amp;lt;/code&amp;gt; di versi ini akan diabaikan atau menyebabkan error.&lt;br /&gt;
&lt;br /&gt;
=== 6.4 Konfigurasi Autentikasi — Syntax Dovecot 2.4 ===&lt;br /&gt;
Di Dovecot 2.4, &amp;lt;code&amp;gt;disable_plaintext_auth&amp;lt;/code&amp;gt; diganti dengan &amp;lt;code&amp;gt;auth_allow_cleartext&amp;lt;/code&amp;gt;. Buat file konfigurasi khusus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/99-custom.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Konfigurasi auth untuk Dovecot 2.4&lt;br /&gt;
# &#039;disable_plaintext_auth&#039; sudah tidak ada di versi ini&lt;br /&gt;
auth_allow_cleartext = yes&lt;br /&gt;
passdb pam {&lt;br /&gt;
}&lt;br /&gt;
userdb passwd {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Jangan menambahkan &amp;lt;code&amp;gt;disable_plaintext_auth&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;auth_mechanisms&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;10-auth.conf&amp;lt;/code&amp;gt; karena akan menyebabkan: &amp;lt;code&amp;gt;Job for dovecot.service failed because the control process exited with error code&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 6.5 Konfigurasi Socket Auth untuk Postfix — 10-master.conf ===&lt;br /&gt;
Ini adalah konfigurasi KRITIS. Postfix membutuhkan akses ke socket auth Dovecot. Jika socket ini tidak dikonfigurasi dengan benar, Postfix akan error: &amp;lt;code&amp;gt;SASL: Connect to Dovecot auth socket failed: Permission denied&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/dovecot/conf.d/10-master.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cari bagian &amp;lt;code&amp;gt;service auth&amp;lt;/code&amp;gt; dan pastikan isinya seperti ini:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service auth {&lt;br /&gt;
  # Socket untuk Postfix SASL&lt;br /&gt;
  unix_listener /var/spool/postfix/private/auth {&lt;br /&gt;
    mode = 0660&lt;br /&gt;
    user = postfix&lt;br /&gt;
    group = postfix&lt;br /&gt;
  }&lt;br /&gt;
  # Socket untuk userdb&lt;br /&gt;
  unix_listener auth-userdb {&lt;br /&gt;
    mode = 0600&lt;br /&gt;
    user = dovecot&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ PERHATIAN:&#039;&#039;&#039; Urutan restart wajib: Dovecot DULU baru Postfix. Jika Postfix direstart sebelum Dovecot, socket belum terbuat dan Postfix akan gagal otentikasi.&lt;br /&gt;
&lt;br /&gt;
=== 6.6 Verifikasi Konfigurasi Sebelum Restart ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Cek tidak ada error syntax&lt;br /&gt;
doveconf -n 2&amp;gt;&amp;amp;1 | head -20&lt;br /&gt;
# Pastikan parameter utama terbaca&lt;br /&gt;
doveconf -n | grep -E &#039;mail_driver|auth_allow|protocols&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output yang diharapkan:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auth_allow_cleartext = yes&lt;br /&gt;
mail_driver = maildir&lt;br /&gt;
mail_path = ~/Maildir&lt;br /&gt;
protocols = imap pop3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6.7 Restart Dovecot &amp;amp; Verifikasi Socket ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 1. Restart Dovecot dulu&lt;br /&gt;
systemctl restart dovecot&lt;br /&gt;
systemctl status dovecot&lt;br /&gt;
# 2. Verifikasi socket auth sudah terbuat&lt;br /&gt;
ls -la /var/spool/postfix/private/auth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output yang diharapkan dari &amp;lt;code&amp;gt;ls -la&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
srw-rw---- 1 postfix postfix ... /var/spool/postfix/private/auth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 3. Baru restart Postfix&lt;br /&gt;
systemctl restart postfix&lt;br /&gt;
# 4. Cek port yang terbuka&lt;br /&gt;
ss -tlnp | grep -E &#039;:25|:110|:143|:587&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 7 — MEMBUAT AKUN PENGGUNA EMAIL ==&lt;br /&gt;
Postfix dan Dovecot menggunakan akun sistem Linux sebagai akun email. Setiap user email = satu akun Linux.&lt;br /&gt;
&lt;br /&gt;
=== 7.1 Buat User &amp;amp; Direktori Maildir ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Buat user (tanpa login shell untuk keamanan)&lt;br /&gt;
adduser --shell /sbin/nologin user1&lt;br /&gt;
adduser --shell /sbin/nologin user2&lt;br /&gt;
# Buat struktur direktori Maildir&lt;br /&gt;
mkdir -p /home/user1/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user1:user1 /home/user1/Maildir&lt;br /&gt;
mkdir -p /home/user2/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R user2:user2 /home/user2/Maildir&lt;br /&gt;
# Verifikasi&lt;br /&gt;
ls -la /home/user1/Maildir/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;📌 CATATAN:&#039;&#039;&#039; Username = bagian email sebelum &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;. User &#039;user1&#039; memiliki email &amp;lt;code&amp;gt;user1@belajar.local&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 8 — PENGUJIAN DENGAN TELNET ==&lt;br /&gt;
=== 8.1 Instalasi Telnet ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y telnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8.2 Pengujian Koneksi SMTP (Port 25) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 25&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Server harus membalas dengan banner:&lt;br /&gt;
&amp;lt;code&amp;gt;220 mailserver.belajar.local ESMTP Postfix&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;⚠️ PERHATIAN:&#039;&#039;&#039; Jika koneksi terhubung tapi langsung tertutup tanpa banner 220, artinya Postfix menolak koneksi. Cek log dengan: &amp;lt;code&amp;gt;journalctl -u postfix --no-pager | tail -20&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setelah banner muncul, ketik perintah berikut satu per satu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EHLO belajar.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;250-mailserver.belajar.local + daftar fitur ESMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MAIL FROM:&amp;lt;user1@belajar.local&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;250 2.1.0 Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
RCPT TO:&amp;lt;user2@belajar.local&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;250 2.1.5 Ok&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DATA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;354 End data with &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;.&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ketik isi email dengan format lengkap (&amp;lt;code&amp;gt;From&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;To&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Subject&amp;lt;/code&amp;gt; WAJIB ada, diikuti baris kosong sebelum isi pesan):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
From: user1@belajar.local&lt;br /&gt;
To: user2@belajar.local&lt;br /&gt;
Subject: Test Email Pertama&lt;br /&gt;
Halo user2, ini adalah email test dari user1.&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Titik (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;) di baris terakhir harus berdiri sendiri tanpa spasi untuk menandai akhir pesan.&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;250 2.0.0 Ok: queued as XXXXXXXX&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QUIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Balas: &amp;lt;code&amp;gt;221 2.0.0 Bye&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Format DATA yang benar wajib menyertakan header &amp;lt;code&amp;gt;From:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;To:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Subject:&amp;lt;/code&amp;gt; lalu satu baris kosong sebelum isi pesan. Tanpa header lengkap, beberapa mail client akan menolak atau gagal menampilkan email.&lt;br /&gt;
&lt;br /&gt;
=== 8.3 Verifikasi Email Masuk ke Maildir ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls /home/user2/Maildir/new/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jika muncul file seperti &amp;lt;code&amp;gt;1776829892.Vfc11I411e9M718352.mail&amp;lt;/code&amp;gt;, email berhasil diterima.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Lihat isi email&lt;br /&gt;
cat /home/user2/Maildir/new/NAMA_FILE_EMAIL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8.4 Pengujian Koneksi IMAP (Port 143) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
telnet 192.168.111.103 143&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Server harus membalas: &amp;lt;code&amp;gt;* OK Dovecot ready&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a LOGIN user2 passworduser2&lt;br /&gt;
b SELECT INBOX&lt;br /&gt;
c FETCH 1 BODY[]&lt;br /&gt;
d LOGOUT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8.5 Cek Log — Cara yang Benar di Debian 13 ===&lt;br /&gt;
&#039;&#039;&#039;✅ KOREKSI v2:&#039;&#039;&#039; Di Debian 13 tanpa rsyslog, file &amp;lt;code&amp;gt;/var/log/mail.log&amp;lt;/code&amp;gt; TIDAK ADA secara default. Gunakan journald untuk melihat log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Log Postfix via journald&lt;br /&gt;
journalctl -u postfix --no-pager | tail -30&lt;br /&gt;
# Log Dovecot via journald&lt;br /&gt;
journalctl -u dovecot --no-pager | tail -30&lt;br /&gt;
# Monitor realtime&lt;br /&gt;
journalctl -u postfix -f&lt;br /&gt;
# Setelah rsyslog terinstall, baru bisa pakai:&lt;br /&gt;
tail -f /var/log/mail.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8.6 Troubleshooting Cepat ===&lt;br /&gt;
; Error: &amp;lt;code&amp;gt;Connection closed by foreign host&amp;lt;/code&amp;gt; (tanpa banner 220)&lt;br /&gt;
: &amp;lt;pre&amp;gt;journalctl -u postfix --no-pager | tail -20&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Kemungkinan penyebab dan solusi:&lt;br /&gt;
:# &amp;lt;code&amp;gt;SASL: Connect to Dovecot auth socket failed: Permission denied&amp;lt;/code&amp;gt; → Dovecot belum dikonfigurasi socketnya atau belum direstart. Jalankan: &amp;lt;code&amp;gt;systemctl restart dovecot&amp;lt;/code&amp;gt;, lalu cek &amp;lt;code&amp;gt;ls -la /var/spool/postfix/private/auth&amp;lt;/code&amp;gt;&lt;br /&gt;
:# &amp;lt;code&amp;gt;fatal: no SASL authentication mechanisms&amp;lt;/code&amp;gt; → Akibat dari error socket di atas. Setelah Dovecot diperbaiki dan direstart, restart juga Postfix.&lt;br /&gt;
:# &amp;lt;code&amp;gt;mynetworks&amp;lt;/code&amp;gt; tidak mencakup IP → Tambahkan: &amp;lt;code&amp;gt;postconf -e &#039;mynetworks = 127.0.0.0/8 192.168.111.0/24&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Error: Dovecot gagal restart setelah edit &amp;lt;code&amp;gt;10-auth.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
:# Hapus atau comment baris &amp;lt;code&amp;gt;disable_plaintext_auth&amp;lt;/code&amp;gt; dan &amp;lt;code&amp;gt;auth_mechanisms&amp;lt;/code&amp;gt; yang ditambahkan manual&lt;br /&gt;
:# Gunakan file &amp;lt;code&amp;gt;99-custom.conf&amp;lt;/code&amp;gt; dengan parameter &amp;lt;code&amp;gt;auth_allow_cleartext = yes&amp;lt;/code&amp;gt; sebagai gantinya&lt;br /&gt;
:# Verifikasi dengan: &amp;lt;code&amp;gt;doveconf -n 2&amp;gt;&amp;amp;1 | head -10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 9 — INSTALASI WEBMAIL (ROUNDCUBE) ==&lt;br /&gt;
Roundcube adalah webmail berbasis PHP. Prasyarat: Apache2, PHP, dan MariaDB sudah berjalan, serta Postfix dan Dovecot sudah berhasil diuji dengan Telnet.&lt;br /&gt;
&lt;br /&gt;
=== 9.1 Download &amp;amp; Ekstrak Roundcube ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
# Download Roundcube (cek versi terbaru di https://roundcube.net)&lt;br /&gt;
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
tar xzf roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
mv roundcubemail-1.6.6 roundcube&lt;br /&gt;
rm roundcubemail-1.6.6-complete.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9.2 Set Permission ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/html/roundcube&lt;br /&gt;
chmod -R 755 /var/www/html/roundcube&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/temp&lt;br /&gt;
chmod -R 777 /var/www/html/roundcube/logs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9.3 Konfigurasi Apache Virtual Host ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/apache2/sites-available/roundcube.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Isi file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;VirtualHost *:80&amp;amp;gt;&lt;br /&gt;
    ServerName mail.belajar.local&lt;br /&gt;
    DocumentRoot /var/www/html/roundcube&lt;br /&gt;
    &amp;amp;lt;Directory /var/www/html/roundcube&amp;amp;gt;&lt;br /&gt;
        Options -Indexes +FollowSymLinks&lt;br /&gt;
        AllowOverride All&lt;br /&gt;
        Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/roundcube_error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/roundcube_access.log combined&lt;br /&gt;
&amp;amp;lt;/VirtualHost&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aktifkan site:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
a2ensite roundcube.conf&lt;br /&gt;
a2dissite 000-default.conf&lt;br /&gt;
systemctl reload apache2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9.4 Import Skema Database ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql -u roundcube -p roundcubemail &amp;lt; /var/www/html/roundcube/SQL/mysql.initial.sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9.5 Setup via Web Installer ===&lt;br /&gt;
# Buka browser: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube/installer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Ikuti wizard — pastikan semua ceklis hijau di halaman pertama&lt;br /&gt;
# Isi konfigurasi database:&lt;br /&gt;
## Database server: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database name: &amp;lt;code&amp;gt;roundcubemail&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database user: &amp;lt;code&amp;gt;roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
## Database password: (sesuai yang dibuat di BAB 4)&lt;br /&gt;
# Isi konfigurasi IMAP:&lt;br /&gt;
## IMAP host: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port: &amp;lt;code&amp;gt;143&amp;lt;/code&amp;gt;&lt;br /&gt;
## Connection type: normal (TLS opsional)&lt;br /&gt;
# Isi konfigurasi SMTP:&lt;br /&gt;
## SMTP host: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, port: &amp;lt;code&amp;gt;25&amp;lt;/code&amp;gt;&lt;br /&gt;
# Klik &amp;lt;code&amp;gt;Create config&amp;lt;/code&amp;gt; lalu &amp;lt;code&amp;gt;Initialize database&amp;lt;/code&amp;gt;&lt;br /&gt;
# Setelah selesai, WAJIB hapus folder installer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/www/html/roundcube/installer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9.6 Akses Roundcube ===&lt;br /&gt;
Buka browser dan akses: &amp;lt;code&amp;gt;http://192.168.111.103/roundcube&amp;lt;/code&amp;gt;&lt;br /&gt;
Login menggunakan username dan password akun Linux (&amp;lt;code&amp;gt;user1&amp;lt;/code&amp;gt; atau &amp;lt;code&amp;gt;user2&amp;lt;/code&amp;gt;).&lt;br /&gt;
&#039;&#039;&#039;📌 CATATAN:&#039;&#039;&#039; Jika login gagal, pastikan Dovecot berjalan dan cek: &amp;lt;code&amp;gt;journalctl -u dovecot --no-pager | tail -20&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== BAB 10 — VERIFIKASI AKHIR &amp;amp; TROUBLESHOOTING ==&lt;br /&gt;
=== 10.1 Checklist Verifikasi Lengkap ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Item Pengujian !! Perintah !! Hasil Diharapkan&lt;br /&gt;
|-&lt;br /&gt;
| BIND9 berjalan || &amp;lt;code&amp;gt;systemctl is-active bind9&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| MX record terdaftar || &amp;lt;code&amp;gt;dig MX belajar.local&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| PTR record terdaftar || &amp;lt;code&amp;gt;dig -x 192.168.111.103&amp;lt;/code&amp;gt; || mailserver.belajar.local&lt;br /&gt;
|-&lt;br /&gt;
| Apache2 berjalan || &amp;lt;code&amp;gt;systemctl is-active apache2&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| MariaDB berjalan || &amp;lt;code&amp;gt;systemctl is-active mariadb&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| Postfix berjalan || &amp;lt;code&amp;gt;systemctl is-active postfix&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| Port SMTP terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :25&amp;lt;/code&amp;gt; || LISTEN :25&lt;br /&gt;
|-&lt;br /&gt;
| Port Submission terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :587&amp;lt;/code&amp;gt; || LISTEN :587&lt;br /&gt;
|-&lt;br /&gt;
| Dovecot berjalan || &amp;lt;code&amp;gt;systemctl is-active dovecot&amp;lt;/code&amp;gt; || active&lt;br /&gt;
|-&lt;br /&gt;
| Port IMAP terbuka || &amp;lt;code&amp;gt;ss -tlnp | grep :143&amp;lt;/code&amp;gt; || LISTEN :143&lt;br /&gt;
|-&lt;br /&gt;
| Socket auth ada || &amp;lt;code&amp;gt;ls /var/spool/postfix/private/auth&amp;lt;/code&amp;gt; || socket file ada&lt;br /&gt;
|-&lt;br /&gt;
| Kirim email SMTP || &amp;lt;code&amp;gt;telnet localhost 25&amp;lt;/code&amp;gt; || 220 banner muncul&lt;br /&gt;
|-&lt;br /&gt;
| Email masuk Maildir || &amp;lt;code&amp;gt;ls /home/user2/Maildir/new/&amp;lt;/code&amp;gt; || ada file email&lt;br /&gt;
|-&lt;br /&gt;
| Login IMAP || &amp;lt;code&amp;gt;telnet localhost 143&amp;lt;/code&amp;gt; || * OK Dovecot ready&lt;br /&gt;
|-&lt;br /&gt;
| Roundcube dapat diakses || &amp;lt;code&amp;gt;curl -sI http://localhost/roundcube&amp;lt;/code&amp;gt; || HTTP 200&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 10.2 Perintah Manajemen Cepat ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Restart semua layanan sekaligus (urutan penting!)&lt;br /&gt;
systemctl restart bind9 mariadb apache2 dovecot postfix&lt;br /&gt;
&lt;br /&gt;
# Cek status semua layanan&lt;br /&gt;
for svc in bind9 apache2 mariadb postfix dovecot; do&lt;br /&gt;
    echo &amp;quot;[$svc]: $(systemctl is-active $svc)&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Monitor log email realtime&lt;br /&gt;
journalctl -u postfix -f&lt;br /&gt;
&lt;br /&gt;
# Cek antrian email&lt;br /&gt;
mailq&lt;br /&gt;
&lt;br /&gt;
# Flush antrian email tertunda&lt;br /&gt;
postqueue -f&lt;br /&gt;
&lt;br /&gt;
# Tambah user email baru&lt;br /&gt;
adduser --shell /sbin/nologin namauser&lt;br /&gt;
mkdir -p /home/namauser/Maildir/{new,cur,tmp}&lt;br /&gt;
chown -R namauser:namauser /home/namauser/Maildir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= APPENDIX — REFERENSI CEPAT =&lt;br /&gt;
== A.1 Daftar Port Layanan ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Port !! Protokol !! Layanan !! Keterangan&lt;br /&gt;
|-&lt;br /&gt;
| 25 || TCP || Postfix SMTP || Terima email antar server&lt;br /&gt;
|-&lt;br /&gt;
| 53 || TCP/UDP || BIND9 DNS || Resolusi nama domain&lt;br /&gt;
|-&lt;br /&gt;
| 80 || TCP || Apache2 HTTP || Webmail Roundcube&lt;br /&gt;
|-&lt;br /&gt;
| 110 || TCP || Dovecot POP3 || Ambil email (POP3)&lt;br /&gt;
|-&lt;br /&gt;
| 143 || TCP || Dovecot IMAP || Ambil email (IMAP)&lt;br /&gt;
|-&lt;br /&gt;
| 443 || TCP || Apache2 HTTPS || Webmail HTTPS (opsional)&lt;br /&gt;
|-&lt;br /&gt;
| 587 || TCP || Postfix Submission || Kirim email dari klien&lt;br /&gt;
|-&lt;br /&gt;
| 993 || TCP || Dovecot IMAPS || IMAP over SSL&lt;br /&gt;
|-&lt;br /&gt;
| 995 || TCP || Dovecot POP3S || POP3 over SSL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== A.2 Ringkasan Koreksi v2 dari Implementasi Nyata ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! No !! Masalah !! Panduan v1 (Salah) !! Panduan v2 (Benar)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Dovecot 2.4 auth config || &amp;lt;code&amp;gt;disable_plaintext_auth = no&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;auth_allow_cleartext = yes&amp;lt;/code&amp;gt; di &amp;lt;code&amp;gt;99-custom.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Dovecot 2.4 mail format || &amp;lt;code&amp;gt;mail_location = maildir:~/Maildir&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;mail_driver = maildir&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;mail_path = ~/Maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Socket Postfix-Dovecot || Tidak ada konfigurasi socket || &amp;lt;code&amp;gt;service auth { unix_listener /var/spool/postfix/private/auth }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Urutan restart service || Restart bersamaan || Dovecot dulu, baru Postfix&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Log di Debian 13 || &amp;lt;code&amp;gt;tail -f /var/log/mail.log&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;journalctl -u postfix --no-pager&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Format perintah DATA SMTP || Langsung isi tanpa header || From/To/Subject wajib, lalu baris kosong, lalu isi&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Postfix compatibility || Tidak dikonfigurasi || &amp;lt;code&amp;gt;compatibility_level = 3.6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8 || IP Address contoh || 192.168.1.100 || 192.168.111.103&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;— Panduan Mail Server Debian 13 di Proxmox CT — Revisi v2.0 —&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mengatasi_CT_503&amp;diff=2351</id>
		<title>Mengatasi CT 503</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mengatasi_CT_503&amp;diff=2351"/>
		<updated>2026-04-04T13:27:28Z</updated>

		<summary type="html">&lt;p&gt;Robie: ←Membuat halaman berisi &amp;#039;== Panduan Mengatasi Error 503 di CyberPanel (Proxmox LXC) ==  Error 503 pada CyberPanel biasanya disebabkan oleh kebocoran memori (memory leak) pada proses PHP atau penggunaan resource yang melebihi alokasi RAM pada Container Proxmox.  === Gejala Umum === * Website menampilkan pesan &amp;quot;503 Service Unavailable&amp;quot;. * Load Average tinggi meskipun penggunaan CPU rendah. * Penggunaan RAM melonjak drastis dalam waktu singkat (Memory Swelling). * Masalah selesai sementara...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Panduan Mengatasi Error 503 di CyberPanel (Proxmox LXC) ==&lt;br /&gt;
&lt;br /&gt;
Error 503 pada CyberPanel biasanya disebabkan oleh kebocoran memori (memory leak) pada proses PHP atau penggunaan resource yang melebihi alokasi RAM pada Container Proxmox.&lt;br /&gt;
&lt;br /&gt;
=== Gejala Umum ===&lt;br /&gt;
* Website menampilkan pesan &amp;quot;503 Service Unavailable&amp;quot;.&lt;br /&gt;
* Load Average tinggi meskipun penggunaan CPU rendah.&lt;br /&gt;
* Penggunaan RAM melonjak drastis dalam waktu singkat (Memory Swelling).&lt;br /&gt;
* Masalah selesai sementara setelah restart Container (CT).&lt;br /&gt;
&lt;br /&gt;
=== Langkah Optimasi Otomatis (Bash Script) ===&lt;br /&gt;
&lt;br /&gt;
Gunakan script berikut untuk melakukan optimasi otomatis pada konfigurasi OpenLiteSpeed, MariaDB, dan sistem pemulihan mandiri (Auto-Heal).&lt;br /&gt;
&lt;br /&gt;
==== 1. Membuat Script Optimasi ====&lt;br /&gt;
Jalankan perintah berikut di terminal root Container:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nano /root/optimize_cyberpanel.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tempelkan kode di bawah ini:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;--- Memulai Optimasi CyberPanel vs Error 503 ---&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# 1. Backup Konfigurasi&lt;br /&gt;
cp /usr/local/lsws/conf/httpd_config.conf /usr/local/lsws/conf/httpd_config.conf.bak&lt;br /&gt;
cp /etc/my.cnf /etc/my.cnf.bak&lt;br /&gt;
&lt;br /&gt;
# 2. Batasi PHP Max Connections &amp;amp; Auto-Restart (LSAPI)&lt;br /&gt;
# Mencegah PHP memakan seluruh RAM 2GB&lt;br /&gt;
sed -i &#039;s/maxConns [0-9]*/maxConns 15/g&#039; /usr/local/lsws/conf/httpd_config.conf&lt;br /&gt;
sed -i &#039;/LSAPI_MAX_REQS/d&#039; /usr/local/lsws/conf/httpd_config.conf&lt;br /&gt;
sed -i &#039;/LSAPI_MAX_IDLE/d&#039; /usr/local/lsws/conf/httpd_config.conf&lt;br /&gt;
echo &amp;quot;env LSAPI_MAX_REQS=500&amp;quot; &amp;gt;&amp;gt; /usr/local/lsws/conf/httpd_config.conf&lt;br /&gt;
echo &amp;quot;env LSAPI_MAX_IDLE=30&amp;quot; &amp;gt;&amp;gt; /usr/local/lsws/conf/httpd_config.conf&lt;br /&gt;
&lt;br /&gt;
# 3. Optimasi Database RAM (Limit 512MB)&lt;br /&gt;
if ! grep -q &amp;quot;innodb_buffer_pool_size&amp;quot; /etc/my.cnf; then&lt;br /&gt;
    sed -i &#039;/\[mysqld\]/a innodb_buffer_pool_size = 512M\ninnodb_log_file_size = 128M\nmax_connections = 100&#039; /etc/my.cnf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# 4. Membuat Script Auto-Heal (fix_503.sh)&lt;br /&gt;
cat &amp;lt;&amp;lt; &#039;EOF&#039; &amp;gt; /root/fix_503.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
FREE_RAM=$(free -m | awk &#039;/^Mem:/{print $4}&#039;)&lt;br /&gt;
if [ &amp;quot;$FREE_RAM&amp;quot; -lt 150 ]; then&lt;br /&gt;
    echo &amp;quot;$(date) - RAM Kritis ($FREE_RAM MB). Restarting...&amp;quot; &amp;gt;&amp;gt; /var/log/cyberpanel_heal.log&lt;br /&gt;
    /usr/local/lsws/bin/lswsctrl restart&lt;br /&gt;
    killall -9 lsphp&lt;br /&gt;
    systemctl restart mariadb&lt;br /&gt;
fi&lt;br /&gt;
EOF&lt;br /&gt;
chmod +x /root/fix_503.sh&lt;br /&gt;
&lt;br /&gt;
# 5. Pasang Cron Job (Cek setiap 5 Menit)&lt;br /&gt;
(crontab -l 2&amp;gt;/dev/null | grep -v &amp;quot;fix_503.sh&amp;quot; ; echo &amp;quot;*/5 * * * * /bin/bash /root/fix_503.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&amp;quot;) | crontab -&lt;br /&gt;
&lt;br /&gt;
# 6. Restart Service&lt;br /&gt;
/usr/local/lsws/bin/lswsctrl restart&lt;br /&gt;
systemctl restart mariadb&lt;br /&gt;
killall -9 lsphp&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;--- Optimasi Selesai ---&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 2. Menjalankan Script ====&lt;br /&gt;
Eksekusi script dengan perintah:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x /root/optimize_cyberpanel.sh&lt;br /&gt;
./root/optimize_cyberpanel.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Catatan Teknis ===&lt;br /&gt;
* &#039;&#039;&#039;LSAPI_MAX_REQS=500&#039;&#039;&#039;: Memaksa proses PHP untuk restart setelah menangani 500 permintaan guna membersihkan akumulasi penggunaan RAM.&lt;br /&gt;
* &#039;&#039;&#039;maxConns 15&#039;&#039;&#039;: Membatasi jumlah proses PHP simultan agar tidak melebihi kapasitas RAM 2GB.&lt;br /&gt;
* &#039;&#039;&#039;Cron Job&#039;&#039;&#039;: Melakukan pengecekan setiap 5 menit. Jika sisa RAM di bawah 150MB, layanan akan di-restart otomatis sebelum Error 503 muncul secara permanen.&lt;br /&gt;
&lt;br /&gt;
=== Monitoring ===&lt;br /&gt;
Untuk memantau log jika terjadi pembersihan otomatis oleh script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tail -f /var/log/cyberpanel_heal.log&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SysAdmin]]&lt;br /&gt;
[[Category:CyberPanel]]&lt;br /&gt;
[[Category:Proxmox]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Upgrade_Wordpress&amp;diff=2350</id>
		<title>Upgrade Wordpress</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Upgrade_Wordpress&amp;diff=2350"/>
		<updated>2026-02-20T04:45:56Z</updated>

		<summary type="html">&lt;p&gt;Robie: Melindungi &amp;quot;Upgrade Wordpress&amp;quot; ([Sunting=Hanya untuk pengurus] (selamanya) [Pindahkan=Hanya untuk pengurus] (selamanya))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tutorial Update Manual WordPress di CyberPanel &amp;amp; Penanganan Error 503 ==&lt;br /&gt;
&lt;br /&gt;
Tutorial ini disusun berdasarkan pengalaman nyata dalam melakukan pembaruan (update) manual sistem WordPress serta langkah-langkah &#039;&#039;troubleshooting&#039;&#039; ketika menghadapi kendala server di CyberPanel.&lt;br /&gt;
&lt;br /&gt;
=== 1. Tahap Persiapan File (Local Computer) ===&lt;br /&gt;
Sebelum menyentuh server, kita harus menyiapkan paket WordPress yang bersih agar data situs tidak tertimpa.&lt;br /&gt;
* &#039;&#039;&#039;Unduh WordPress:&#039;&#039;&#039; Ambil versi terbaru di [https://wordpress.org WordPress.org].&lt;br /&gt;
* &#039;&#039;&#039;Ekstrak &amp;amp; Modifikasi:&#039;&#039;&#039; Ekstrak file ZIP. Hapus folder {{code|wp-content}} dan file {{code|wp-config-sample.php}}. Hal ini sangat krusial agar konfigurasi database dan konten gambar/plugin lama Anda tetap aman.&lt;br /&gt;
* &#039;&#039;&#039;Kompres Kembali:&#039;&#039;&#039; Kompres sisa file/folder tersebut menjadi file ZIP baru (misal: {{code|wp-update.zip}}).&lt;br /&gt;
&lt;br /&gt;
=== 2. Proses Update di CyberPanel ===&lt;br /&gt;
* &#039;&#039;&#039;Akses File Manager:&#039;&#039;&#039; Login ke dashboard [https://cyberpanel.net CyberPanel], masuk ke menu &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;List Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;File Manager&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Hapus Folder Sistem Lama:&#039;&#039;&#039; Masuk ke folder {{code|public_html}}, hapus folder {{code|wp-admin}} dan {{code|wp-includes}}. &lt;br /&gt;
* &#039;&#039;&#039;Catatan Penting:&#039;&#039;&#039; Jangan menghapus folder {{code|wp-content}} atau file {{code|wp-config.php}} karena di sanalah data situs Anda berada.&lt;br /&gt;
* &#039;&#039;&#039;Upload &amp;amp; Ekstrak:&#039;&#039;&#039; Upload file ZIP baru Anda, lalu gunakan fitur &#039;&#039;&#039;Extract&#039;&#039;&#039; di File Manager.&lt;br /&gt;
&lt;br /&gt;
=== 3. Solusi Mengatasi Error 503 (Service Unavailable) ===&lt;br /&gt;
Jika setelah update situs tidak bisa diakses dan muncul pesan &amp;quot;Service Unavailable&amp;quot;, lakukan langkah-langkah diagnosa berikut:&lt;br /&gt;
&lt;br /&gt;
==== A. Isolasi Kendala Plugin dan Konfigurasi ====&lt;br /&gt;
# &#039;&#039;&#039;Nonaktifkan Plugin:&#039;&#039;&#039; Ganti nama folder {{code|plugins}} menjadi {{code|plugins_old}} di dalam direktori {{code|wp-content}}.&lt;br /&gt;
# &#039;&#039;&#039;Reset .htaccess:&#039;&#039;&#039; Ganti nama file {{code|.htaccess}} menjadi {{code|.htaccess_backup}}. Server akan mencoba menggunakan konfigurasi standar.&lt;br /&gt;
&lt;br /&gt;
==== B. Upgrade Lingkungan PHP ====&lt;br /&gt;
Pastikan versi PHP yang digunakan sesuai dengan kebutuhan WordPress terbaru. Pada dashboard CyberPanel, masuk ke bagian &#039;&#039;&#039;Manage Website&#039;&#039;&#039; dan ubah versi PHP ke &#039;&#039;&#039;PHP 8.2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== C. Aktivasi Mode Debug ====&lt;br /&gt;
Untuk mengetahui penyebab pasti error (seperti &#039;&#039;Fatal Error&#039;&#039; pada tema atau script), aktifkan log debug:&lt;br /&gt;
* Edit file {{code|wp-config.php}}.&lt;br /&gt;
* Cari baris: &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, false);&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ubah menjadi: &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, true);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== D. Perbaikan Izin File (Fix Permissions) ====&lt;br /&gt;
CyberPanel menyediakan fitur otomatis untuk memastikan ownership file benar:&lt;br /&gt;
* Klik fitur &#039;&#039;&#039;Fix Permissions&#039;&#039;&#039; pada pojok kanan atas File Manager CyberPanel.&lt;br /&gt;
&lt;br /&gt;
=== 4. Penanganan Error &amp;quot;No Space Left on Device&amp;quot; (Errcode: 28) ===&lt;br /&gt;
Jika muncul error database terkait kapasitas, artinya penyimpanan server atau partisi sementara penuh.&lt;br /&gt;
* &#039;&#039;&#039;Bersihkan Sampah Sistem:&#039;&#039;&#039; Jalankan perintah berikut melalui SSH untuk mengosongkan folder temporer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Finalisasi ===&lt;br /&gt;
Setelah situs kembali normal, pastikan untuk mengembalikan pengaturan keamanan:&lt;br /&gt;
* Ubah kembali &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, true);&amp;lt;/code&amp;gt; menjadi &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; di file {{code|wp-config.php}}.&lt;br /&gt;
* Aktifkan kembali plugin satu per satu untuk melihat apakah ada plugin spesifik yang menyebabkan bentrokan.&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Tutorial WordPress]] [[Kategori:CyberPanel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Upgrade_Wordpress&amp;diff=2349</id>
		<title>Upgrade Wordpress</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Upgrade_Wordpress&amp;diff=2349"/>
		<updated>2026-02-20T04:44:41Z</updated>

		<summary type="html">&lt;p&gt;Robie: ←Membuat halaman berisi &amp;#039;== Tutorial Update Manual WordPress di CyberPanel &amp;amp; Penanganan Error 503 ==  Tutorial ini disusun berdasarkan pengalaman nyata dalam melakukan pembaruan (update) manual sistem WordPress serta langkah-langkah &amp;#039;&amp;#039;troubleshooting&amp;#039;&amp;#039; ketika menghadapi kendala server di CyberPanel.  === 1. Tahap Persiapan File (Local Computer) === Sebelum menyentuh server, kita harus menyiapkan paket WordPress yang bersih agar data situs tidak tertimpa. * &amp;#039;&amp;#039;&amp;#039;Unduh WordPress:&amp;#039;&amp;#039;&amp;#039; Ambil ve...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tutorial Update Manual WordPress di CyberPanel &amp;amp; Penanganan Error 503 ==&lt;br /&gt;
&lt;br /&gt;
Tutorial ini disusun berdasarkan pengalaman nyata dalam melakukan pembaruan (update) manual sistem WordPress serta langkah-langkah &#039;&#039;troubleshooting&#039;&#039; ketika menghadapi kendala server di CyberPanel.&lt;br /&gt;
&lt;br /&gt;
=== 1. Tahap Persiapan File (Local Computer) ===&lt;br /&gt;
Sebelum menyentuh server, kita harus menyiapkan paket WordPress yang bersih agar data situs tidak tertimpa.&lt;br /&gt;
* &#039;&#039;&#039;Unduh WordPress:&#039;&#039;&#039; Ambil versi terbaru di [https://wordpress.org WordPress.org].&lt;br /&gt;
* &#039;&#039;&#039;Ekstrak &amp;amp; Modifikasi:&#039;&#039;&#039; Ekstrak file ZIP. Hapus folder {{code|wp-content}} dan file {{code|wp-config-sample.php}}. Hal ini sangat krusial agar konfigurasi database dan konten gambar/plugin lama Anda tetap aman.&lt;br /&gt;
* &#039;&#039;&#039;Kompres Kembali:&#039;&#039;&#039; Kompres sisa file/folder tersebut menjadi file ZIP baru (misal: {{code|wp-update.zip}}).&lt;br /&gt;
&lt;br /&gt;
=== 2. Proses Update di CyberPanel ===&lt;br /&gt;
* &#039;&#039;&#039;Akses File Manager:&#039;&#039;&#039; Login ke dashboard [https://cyberpanel.net CyberPanel], masuk ke menu &#039;&#039;&#039;Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;List Websites&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;File Manager&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Hapus Folder Sistem Lama:&#039;&#039;&#039; Masuk ke folder {{code|public_html}}, hapus folder {{code|wp-admin}} dan {{code|wp-includes}}. &lt;br /&gt;
* &#039;&#039;&#039;Catatan Penting:&#039;&#039;&#039; Jangan menghapus folder {{code|wp-content}} atau file {{code|wp-config.php}} karena di sanalah data situs Anda berada.&lt;br /&gt;
* &#039;&#039;&#039;Upload &amp;amp; Ekstrak:&#039;&#039;&#039; Upload file ZIP baru Anda, lalu gunakan fitur &#039;&#039;&#039;Extract&#039;&#039;&#039; di File Manager.&lt;br /&gt;
&lt;br /&gt;
=== 3. Solusi Mengatasi Error 503 (Service Unavailable) ===&lt;br /&gt;
Jika setelah update situs tidak bisa diakses dan muncul pesan &amp;quot;Service Unavailable&amp;quot;, lakukan langkah-langkah diagnosa berikut:&lt;br /&gt;
&lt;br /&gt;
==== A. Isolasi Kendala Plugin dan Konfigurasi ====&lt;br /&gt;
# &#039;&#039;&#039;Nonaktifkan Plugin:&#039;&#039;&#039; Ganti nama folder {{code|plugins}} menjadi {{code|plugins_old}} di dalam direktori {{code|wp-content}}.&lt;br /&gt;
# &#039;&#039;&#039;Reset .htaccess:&#039;&#039;&#039; Ganti nama file {{code|.htaccess}} menjadi {{code|.htaccess_backup}}. Server akan mencoba menggunakan konfigurasi standar.&lt;br /&gt;
&lt;br /&gt;
==== B. Upgrade Lingkungan PHP ====&lt;br /&gt;
Pastikan versi PHP yang digunakan sesuai dengan kebutuhan WordPress terbaru. Pada dashboard CyberPanel, masuk ke bagian &#039;&#039;&#039;Manage Website&#039;&#039;&#039; dan ubah versi PHP ke &#039;&#039;&#039;PHP 8.2&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== C. Aktivasi Mode Debug ====&lt;br /&gt;
Untuk mengetahui penyebab pasti error (seperti &#039;&#039;Fatal Error&#039;&#039; pada tema atau script), aktifkan log debug:&lt;br /&gt;
* Edit file {{code|wp-config.php}}.&lt;br /&gt;
* Cari baris: &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, false);&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ubah menjadi: &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, true);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== D. Perbaikan Izin File (Fix Permissions) ====&lt;br /&gt;
CyberPanel menyediakan fitur otomatis untuk memastikan ownership file benar:&lt;br /&gt;
* Klik fitur &#039;&#039;&#039;Fix Permissions&#039;&#039;&#039; pada pojok kanan atas File Manager CyberPanel.&lt;br /&gt;
&lt;br /&gt;
=== 4. Penanganan Error &amp;quot;No Space Left on Device&amp;quot; (Errcode: 28) ===&lt;br /&gt;
Jika muncul error database terkait kapasitas, artinya penyimpanan server atau partisi sementara penuh.&lt;br /&gt;
* &#039;&#039;&#039;Bersihkan Sampah Sistem:&#039;&#039;&#039; Jalankan perintah berikut melalui SSH untuk mengosongkan folder temporer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Finalisasi ===&lt;br /&gt;
Setelah situs kembali normal, pastikan untuk mengembalikan pengaturan keamanan:&lt;br /&gt;
* Ubah kembali &amp;lt;code&amp;gt;define(&#039;WP_DEBUG&#039;, true);&amp;lt;/code&amp;gt; menjadi &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; di file {{code|wp-config.php}}.&lt;br /&gt;
* Aktifkan kembali plugin satu per satu untuk melihat apakah ada plugin spesifik yang menyebabkan bentrokan.&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Tutorial WordPress]] [[Kategori:CyberPanel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2348</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2348"/>
		<updated>2026-01-13T08:06:05Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 8 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-2&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-3&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 4&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-4&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 5&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-5&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 6&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-6&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 7&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-7&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-8&lt;br /&gt;
|Core 1 - Splitter 1:8 yang ke-29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|Core 2 - Splitter 1:8 yang ke-30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|Core 3 - Splitter 1:8 yang ke-31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|Core 4 - Splitter 1:8 yang ke-32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 30 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 8 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 8 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2347</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2347"/>
		<updated>2026-01-13T07:52:08Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 8 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
|Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-2&lt;br /&gt;
|Splitter 1:8 yang ke-5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-3&lt;br /&gt;
|Splitter 1:8 yang ke-9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 4&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-4&lt;br /&gt;
|Splitter 1:8 yang ke-13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 5&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-5&lt;br /&gt;
|Splitter 1:8 yang ke-17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 6&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-6&lt;br /&gt;
|Splitter 1:8 yang ke-21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 7&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-7&lt;br /&gt;
|Splitter 1:8 yang ke-25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-8&lt;br /&gt;
|Splitter 1:8 yang ke-29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 30 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 8 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 8 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2346</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2346"/>
		<updated>2026-01-13T07:39:10Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 8 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
|Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-2&lt;br /&gt;
|Splitter 1:8 yang ke-5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-3&lt;br /&gt;
|Splitter 1:8 yang ke-9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 4&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-4&lt;br /&gt;
|Splitter 1:8 yang ke-13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 5&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-5&lt;br /&gt;
|Splitter 1:8 yang ke-17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 6&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-6&lt;br /&gt;
|Splitter 1:8 yang ke-21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 7&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-7&lt;br /&gt;
|Splitter 1:8 yang ke-25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-8&lt;br /&gt;
|Splitter 1:8 yang ke-29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 8 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 30 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 2 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2345</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2345"/>
		<updated>2026-01-13T07:37:30Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 2 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
|Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-2&lt;br /&gt;
|Splitter 1:8 yang ke-5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-3&lt;br /&gt;
|Splitter 1:8 yang ke-9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 4&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-4&lt;br /&gt;
|Splitter 1:8 yang ke-13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 5&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-5&lt;br /&gt;
|Splitter 1:8 yang ke-17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 6&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-6&lt;br /&gt;
|Splitter 1:8 yang ke-21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 7&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-7&lt;br /&gt;
|Splitter 1:8 yang ke-25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-8&lt;br /&gt;
|Splitter 1:8 yang ke-29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 8 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 30 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 2 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2344</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2344"/>
		<updated>2026-01-13T07:34:19Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 2 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
|Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-2&lt;br /&gt;
|Splitter 1:8 yang ke-5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-3&lt;br /&gt;
|Splitter 1:8 yang ke-9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 4&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:4 yang ke-4&lt;br /&gt;
|Splitter 1:8 yang ke-13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |core 5&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-5&lt;br /&gt;
|Splitter 1:8 yang ke-17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 6&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-6&lt;br /&gt;
|Splitter 1:8 yang ke-21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 7&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-7&lt;br /&gt;
|Splitter 1:8 yang ke-25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; |core 8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-8&lt;br /&gt;
|Splitter 1:8 yang ke-29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|Splitter 1:8 yang ke-32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 8 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 30 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 2 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2343</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2343"/>
		<updated>2026-01-13T07:23:23Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 2 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;16&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |2&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |3&lt;br /&gt;
|9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |4&lt;br /&gt;
|13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;16&amp;quot; |Splitter 1:4 yang ke- 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-5&lt;br /&gt;
|17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-6&lt;br /&gt;
|21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-7&lt;br /&gt;
|25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-8&lt;br /&gt;
|29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 8 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 30 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 2 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2342</id>
		<title>Survey dan Desain FTTH</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Survey_dan_Desain_FTTH&amp;diff=2342"/>
		<updated>2026-01-13T06:51:06Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Langkah awal untuk bisa membuat desain jaringan fiber optik di lapangan.Tidak serta merta ketika ada kabel langsung ditarik kabel tetapi langkah awal salah satunya untuk meminitor jaringan yang sudah terbangun dan membuat desain baru.&lt;br /&gt;
&lt;br /&gt;
Tujuannya adalah membuat desain awal sebuah topologi jaringan fiber optik berdasarkan :&lt;br /&gt;
&lt;br /&gt;
# Jumlah homedemand (pelanggan)&lt;br /&gt;
# Membuat desain awal sebuah topologi yang belum ada sebelumnya&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aturan maksimal untuk pemasangan jaringan dilapangan yang dapat jadi acuan adalah sebagai berikut :&lt;br /&gt;
&lt;br /&gt;
# Jarak maksimal ODP ke ONT (Pelanggan) adalah &#039;&#039;&#039;250 meter&#039;&#039;&#039;&lt;br /&gt;
# Tiang telkom ada dua pilihan yaitu 7 meter dan 9 meter&lt;br /&gt;
# Standar perbandingan splitter di ODC adalah 1:4, dan di ODP adalah 1:8&lt;br /&gt;
# Dalam 1 ODC diusahakan pada setiap rak bas tray (fedder dan distribusi) diberikan space kosong 2 port&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Contoh :  &lt;br /&gt;
&lt;br /&gt;
Hitung kebutuhan perangkat FO pada gambar berikut  &lt;br /&gt;
[[Berkas:Hitung-kebutuhan-fo.png|pus|jmpl|966x966px]]Maka Jawaban soal diatas adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&#039;&#039;&#039;Diketahui jumlah rumah Pelanggan&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 1&lt;br /&gt;
|140&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|Cluster 2&lt;br /&gt;
|94&lt;br /&gt;
|rumah&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|234&lt;br /&gt;
|total rumah&lt;br /&gt;
|}  &lt;br /&gt;
&lt;br /&gt;
Analisa Tabel Kebutuhan &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|24 core&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:4&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Splitter 1:8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Pelanggan ke-&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ODF&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |ODC&lt;br /&gt;
|Nomor Core (ODP)&lt;br /&gt;
|Urutan Core&lt;br /&gt;
|Core Pertama&lt;br /&gt;
|Core Terakhir&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;32&amp;quot; |1 kabel fedder berisi 24 core &lt;br /&gt;
&lt;br /&gt;
dimasukkan ke ODC 2 Core&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;16&amp;quot; |Splitter 1:4 yang ke-1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|8&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;18&amp;quot; |Cluster 1&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|9&lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|17&lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|25&lt;br /&gt;
|32&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-2&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|33&lt;br /&gt;
|40&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|41&lt;br /&gt;
|48&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|49&lt;br /&gt;
|56&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|57&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-3&lt;br /&gt;
|9&lt;br /&gt;
|9&lt;br /&gt;
|65&lt;br /&gt;
|72&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|10&lt;br /&gt;
|73&lt;br /&gt;
|80&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|11&lt;br /&gt;
|81&lt;br /&gt;
|88&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|12&lt;br /&gt;
|89&lt;br /&gt;
|96&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-4&lt;br /&gt;
|13&lt;br /&gt;
|13&lt;br /&gt;
|97&lt;br /&gt;
|104&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|14&lt;br /&gt;
|105&lt;br /&gt;
|112&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|15&lt;br /&gt;
|113&lt;br /&gt;
|120&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|16&lt;br /&gt;
|121&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;16&amp;quot; |Splitter 1:4 yang ke- 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-5&lt;br /&gt;
|17&lt;br /&gt;
|17&lt;br /&gt;
|129&lt;br /&gt;
|136&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|18&lt;br /&gt;
|137&lt;br /&gt;
|144&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|1&lt;br /&gt;
|145&lt;br /&gt;
|152&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;14&amp;quot; |Cluster 2&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|2&lt;br /&gt;
|153&lt;br /&gt;
|160&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-6&lt;br /&gt;
|21&lt;br /&gt;
|3&lt;br /&gt;
|161&lt;br /&gt;
|168&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|4&lt;br /&gt;
|169&lt;br /&gt;
|176&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|5&lt;br /&gt;
|177&lt;br /&gt;
|184&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|6&lt;br /&gt;
|185&lt;br /&gt;
|192&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-7&lt;br /&gt;
|25&lt;br /&gt;
|7&lt;br /&gt;
|193&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|8&lt;br /&gt;
|201&lt;br /&gt;
|208&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|9&lt;br /&gt;
|209&lt;br /&gt;
|216&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|10&lt;br /&gt;
|217&lt;br /&gt;
|224&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; |Splitter 1:8 yang ke-8&lt;br /&gt;
|29&lt;br /&gt;
|11&lt;br /&gt;
|225&lt;br /&gt;
|232&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|12&lt;br /&gt;
|233&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|13&lt;br /&gt;
|241&lt;br /&gt;
|248&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|14&lt;br /&gt;
|249&lt;br /&gt;
|256&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tabel Analisa Feeder dan Distribusi dalam 1 ODC&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|feeder 1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|5&lt;br /&gt;
|6&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|9&lt;br /&gt;
|10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|feeder 2&lt;br /&gt;
|11&lt;br /&gt;
|12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 1&lt;br /&gt;
|1/1&lt;br /&gt;
|1/2&lt;br /&gt;
|1/3&lt;br /&gt;
|1/4&lt;br /&gt;
|2/5&lt;br /&gt;
|2/6&lt;br /&gt;
|2/7&lt;br /&gt;
|2/8&lt;br /&gt;
|3/9&lt;br /&gt;
|3/10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 2&lt;br /&gt;
|3/11&lt;br /&gt;
|3/12&lt;br /&gt;
|4/13&lt;br /&gt;
|4/15&lt;br /&gt;
|4/16&lt;br /&gt;
|4/17&lt;br /&gt;
|5/18&lt;br /&gt;
|5/19&lt;br /&gt;
|5/20&lt;br /&gt;
|5/21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 3&lt;br /&gt;
|6/22&lt;br /&gt;
|6/23&lt;br /&gt;
|6/24&lt;br /&gt;
|6/25&lt;br /&gt;
|7/26&lt;br /&gt;
|7/27&lt;br /&gt;
|7/28&lt;br /&gt;
|7/29&lt;br /&gt;
|8/30&lt;br /&gt;
|8/31&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 4&lt;br /&gt;
|8/32&lt;br /&gt;
|8/33&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 5&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 7&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 10&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|distribusi 12&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Splitter dalam 1 ODC adalah&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|splitter 1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|splitter 2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|splitter 3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|splitter 4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|splitter 5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|splitter 6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|splitter 7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|7&lt;br /&gt;
|-&lt;br /&gt;
|splitter 8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maka didapatkan kesimpulan&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; |Dari hasil analisa diatas didapatkan bahwa&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Jumlah semua pelanggan adalah 234 pelanggan&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|Jumlah Kebutuhan&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|a. Passive splitter di ODP sejumlah 8 buah skala 1:8&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|b. Jumlah core optik pada distribusi sejumlah 30 core&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|c. Jumlah core optik pada feeder ODC sejumlah 24&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|d. Jumlah passive splitter di ODC sejumlah 2 buah skala 1:4&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|e. Kapasitas ODC yang dibutuhkan sejumlah 1&lt;br /&gt;
|}&lt;br /&gt;
[[Kategori:Upskilling Fiber Optik]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2341</id>
		<title>Mengawali Belajar Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2341"/>
		<updated>2025-11-29T22:49:50Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beberapa hal yang perlu diperhatikan dalam memulai belajar Laravel adalah menginstall beberapa aplikasi untuk mendukung proses koding dan beberapa toolsnya. &lt;br /&gt;
&lt;br /&gt;
Diantara aplikasi yang perlu dipersiapkan adalah &lt;br /&gt;
&lt;br /&gt;
* Kode editor &lt;br /&gt;
** [https://www.sublimetext.com/3 Sublime Text]&lt;br /&gt;
** [https://code.visualstudio.com/download Visual Studio Code] (recommended) &lt;br /&gt;
** [https://notepad-plus-plus.org/downloads/ Notepad++]&lt;br /&gt;
&lt;br /&gt;
* Aplikasi [https://getcomposer.org/download/ Composer]&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Tulis kode PHP Anda di sini&lt;br /&gt;
&lt;br /&gt;
$variabel = &amp;quot;Halo, dunia!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
echo $variabel;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Laravel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2340</id>
		<title>Mengawali Belajar Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2340"/>
		<updated>2025-11-29T22:45:32Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beberapa hal yang perlu diperhatikan dalam memulai belajar Laravel adalah menginstall beberapa aplikasi untuk mendukung proses koding dan beberapa toolsnya. &lt;br /&gt;
&lt;br /&gt;
Diantara aplikasi yang perlu dipersiapkan adalah &lt;br /&gt;
&lt;br /&gt;
* Kode editor &lt;br /&gt;
** [https://www.sublimetext.com/3 Sublime Text]&lt;br /&gt;
** [https://code.visualstudio.com/download Visual Studio Code] (recommended) &lt;br /&gt;
** [https://notepad-plus-plus.org/downloads/ Notepad++]&lt;br /&gt;
&lt;br /&gt;
* Aplikasi [https://getcomposer.org/download/ Composer]&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Tulis kode PHP Anda di sini&lt;br /&gt;
&lt;br /&gt;
$variabel = &amp;quot;Halo, dunia!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
echo $variabel;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Laravel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2339</id>
		<title>Mengawali Belajar Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Mengawali_Belajar_Laravel&amp;diff=2339"/>
		<updated>2025-11-29T22:44:41Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Beberapa hal yang perlu diperhatikan dalam memulai belajar Laravel adalah menginstall beberapa aplikasi untuk mendukung proses koding dan beberapa toolsnya. &lt;br /&gt;
&lt;br /&gt;
Diantara aplikasi yang perlu dipersiapkan adalah &lt;br /&gt;
&lt;br /&gt;
* Kode editor &lt;br /&gt;
** [https://www.sublimetext.com/3 Sublime Text]&lt;br /&gt;
** [https://code.visualstudio.com/download Visual Studio Code] (recommended) &lt;br /&gt;
** [https://notepad-plus-plus.org/downloads/ Notepad++]&lt;br /&gt;
&lt;br /&gt;
* Aplikasi [https://getcomposer.org/download/ Composer]&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Tulis kode PHP Anda di sini&lt;br /&gt;
$variabel = &amp;quot;Halo, dunia!&amp;quot;;&lt;br /&gt;
echo $variabel;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategori:Laravel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Halaman_Utama&amp;diff=2338</id>
		<title>Halaman Utama</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Halaman_Utama&amp;diff=2338"/>
		<updated>2025-11-19T04:17:19Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Selamat datang di Robie Wiki!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Robie Wiki adalah sebuah platform berbasis MediaWiki yang dibuat untuk berbagi pengalaman pribadi kami terkait instalasi, konfigurasi, dan troubleshooting pada saat praktek teknologi. Isi yang tersedia di situs ini merupakan hasil dari pengalaman pribadi dan mungkin tidak berlaku untuk semua situasi atau konfigurasi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Informasi di Robie Wiki:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kepersonalan:&#039;&#039;&#039; Semua panduan, tutorial, dan artikel yang dipublikasikan di Robie Wiki adalah berdasarkan pengalaman pribadi penulis. Kami berusaha memberikan informasi yang akurat dan berguna, namun kami tidak menjamin bahwa informasi tersebut bebas dari kesalahan atau kekurangan.&lt;br /&gt;
* &#039;&#039;&#039;Penggunaan:&#039;&#039;&#039; Penggunaan informasi yang terdapat di Robie Wiki sepenuhnya adalah tanggung jawab pembaca. Kami tidak bertanggung jawab atas kerugian atau kerusakan yang mungkin timbul dari penggunaan atau ketergantungan pada informasi yang disediakan di situs ini.&lt;br /&gt;
* &#039;&#039;&#039;Perubahan:&#039;&#039;&#039; Teknologi dan perangkat lunak berkembang dengan cepat. Kami tidak dapat menjamin bahwa konten yang ada di situs ini selalu diperbarui dengan informasi terbaru. Pastikan untuk memverifikasi informasi dengan sumber lain dan, jika perlu, konsultasikan dengan ahli profesional.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hak Cipta dan Lisensi:&#039;&#039;&#039; Konten di Robie Wiki dapat disebarluaskan dan digunakan oleh siapa saja apabila dianggap bermanfaat. Kami hanya meminta agar kredit yang layak diberikan kepada Robie Wiki sebagai sumber informasi. Meskipun demikian, kami tidak dapat menjamin akurasi atau relevansi konten yang disebarluaskan lebih lanjut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tautan Eksternal:&#039;&#039;&#039; Robie Wiki mungkin berisi tautan ke situs web eksternal. Kami tidak memiliki kontrol atas konten atau kebijakan privasi situs-situs tersebut dan tidak bertanggung jawab atas isi atau kerugian yang mungkin timbul dari penggunaan situs eksternal tersebut.&lt;br /&gt;
&lt;br /&gt;
Semoga informasi di situs ini bermanfaat dan membantu dalam praktik teknologi para pembaca.&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2337</id>
		<title>Melihat struktur folder proyek Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2337"/>
		<updated>2025-11-07T01:43:12Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Untuk melihat struktur folder proyek Laravel dan menyalinnya (biasanya dalam bentuk teks atau visualisasi pohon), Anda tidak memerlukan aplikasi khusus yang terpisah. Anda bisa menggunakan terminal/command line atau fitur di dalam editor kode Anda. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install tree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
untuk menjalankannya gunakan perintah &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tree -L 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perintah &amp;lt;code&amp;gt;-L 3&amp;lt;/code&amp;gt; akan membatasi tampilan hingga 3 level kedalaman folder, yang biasanya cukup untuk melihat struktur utama Laravel. Hasilnya akan berupa teks yang dapat Anda blok dan salin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
contoh hasilnya&lt;br /&gt;
&lt;br /&gt;
├── Auth&lt;br /&gt;
&lt;br /&gt;
│   ├── AuthenticatedSessionController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── ConfirmablePasswordController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── EmailVerificationNotificationController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── EmailVerificationPromptController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── NewPasswordController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── PasswordController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── PasswordResetLinkController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── RegisteredUserController.php&lt;br /&gt;
&lt;br /&gt;
│   └── VerifyEmailController.php&lt;br /&gt;
&lt;br /&gt;
├── Controller.php&lt;br /&gt;
&lt;br /&gt;
├── Guru&lt;br /&gt;
&lt;br /&gt;
│   ├── AssessmentController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── AssessmentController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardGuruController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardGuruController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── KompetensiController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── KompetensiController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── PenilaianController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── PenilaianController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── ProgresDataController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── ProgresDataController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── RefleksiController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── RefleksiController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── RubrikPenilaianController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── RubrikPenilaianController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── SertifikatValidasiController.php&lt;br /&gt;
&lt;br /&gt;
│   └── SertifikatValidasiController.txt&lt;br /&gt;
&lt;br /&gt;
├── Industri&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardController.php&lt;br /&gt;
&lt;br /&gt;
│   └── DashboardController.txt&lt;br /&gt;
&lt;br /&gt;
├── Pokja&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardPokjaController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── DashboardPokjaController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── IndustriController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── IndustriController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── LaporanPklController.php&lt;br /&gt;
&lt;br /&gt;
│   ├── LaporanPklController.txt&lt;br /&gt;
&lt;br /&gt;
│   ├── PenempatanPklController.php&lt;br /&gt;
&lt;br /&gt;
│   └── PenempatanPklController.txt&lt;br /&gt;
&lt;br /&gt;
├── ProfileController.php&lt;br /&gt;
&lt;br /&gt;
└── Siswa&lt;br /&gt;
&lt;br /&gt;
    ├── DashboardController.php&lt;br /&gt;
&lt;br /&gt;
    ├── DashboardController.txt&lt;br /&gt;
&lt;br /&gt;
    ├── RefleksiController.php&lt;br /&gt;
&lt;br /&gt;
    ├── RefleksiController.txt&lt;br /&gt;
&lt;br /&gt;
    ├── SertifikatController.php&lt;br /&gt;
&lt;br /&gt;
    ├── SertifikatController.txt&lt;br /&gt;
&lt;br /&gt;
    ├── SiswaProgresController.php&lt;br /&gt;
&lt;br /&gt;
    ├── SiswaProgresController.txt&lt;br /&gt;
&lt;br /&gt;
    ├── SkillPassportController.php&lt;br /&gt;
&lt;br /&gt;
    └── SkillPassportController.txt&lt;br /&gt;
[[Kategori:Laravel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2336</id>
		<title>Melihat struktur folder proyek Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2336"/>
		<updated>2025-11-07T01:20:09Z</updated>

		<summary type="html">&lt;p&gt;Robie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Untuk melihat struktur folder proyek Laravel dan menyalinnya (biasanya dalam bentuk teks atau visualisasi pohon), Anda tidak memerlukan aplikasi khusus yang terpisah. Anda bisa menggunakan terminal/command line atau fitur di dalam editor kode Anda. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install tree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
untuk menjalankannya gunakan perintah &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tree -L 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perintah &amp;lt;code&amp;gt;-L 3&amp;lt;/code&amp;gt; akan membatasi tampilan hingga 3 level kedalaman folder, yang biasanya cukup untuk melihat struktur utama Laravel. Hasilnya akan berupa teks yang dapat Anda blok dan salin.&lt;br /&gt;
[[Kategori:Laravel]]&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
	<entry>
		<id>https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2335</id>
		<title>Melihat struktur folder proyek Laravel</title>
		<link rel="alternate" type="text/html" href="https://wiki.robiehakim.my.id/index.php?title=Melihat_struktur_folder_proyek_Laravel&amp;diff=2335"/>
		<updated>2025-11-07T01:19:43Z</updated>

		<summary type="html">&lt;p&gt;Robie: Melindungi &amp;quot;Melihat struktur folder proyek Laravel&amp;quot; ([Sunting=Hanya untuk pengurus] (selamanya) [Pindahkan=Hanya untuk pengurus] (selamanya))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Untuk melihat struktur folder proyek Laravel dan menyalinnya (biasanya dalam bentuk teks atau visualisasi pohon), Anda tidak memerlukan aplikasi khusus yang terpisah. Anda bisa menggunakan terminal/command line atau fitur di dalam editor kode Anda. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install tree&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
untuk menjalankannya gunakan perintah &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tree -L 3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perintah &amp;lt;code&amp;gt;-L 3&amp;lt;/code&amp;gt; akan membatasi tampilan hingga 3 level kedalaman folder, yang biasanya cukup untuk melihat struktur utama Laravel. Hasilnya akan berupa teks yang dapat Anda blok dan salin.&lt;/div&gt;</summary>
		<author><name>Robie</name></author>
	</entry>
</feed>