{"id":68382,"date":"2026-10-05T14:54:57","date_gmt":"2026-10-05T07:54:57","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=68382"},"modified":"2026-10-05T14:59:50","modified_gmt":"2026-10-05T07:59:50","slug":"belajar-python-part-16","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-16\/","title":{"rendered":"Belajar Python Part 16: Cara Deploy Aplikasi Flask"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dalam seri belajar Python <strong><a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-15\/\" target=\"_blank\" rel=\"noopener\">part 15<\/a><\/strong>, kita telah membuat aplikasi Flask dengan tampilan yang lebih menarik menggunakan Bootstrap. Namun, aplikasi tersebut masih berjalan di <code>localhost<\/code>, sehingga belum bisa diakses oleh pengguna lain melalui internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pada Part 16 ini, kita akan melangkah lebih jauh dengan mempelajari cara <em>deploy <\/em>aplikasi Flask agar dapat diakses secara online. Dengan begitu, aplikasi yang sebelumnya hanya berjalan di komputer sendiri dapat digunakan dan diuji melalui internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lalu, bagaimana cara <em>deploy <\/em>aplikasi Flask ke server? Yuk, simak langkah-langkahnya pada tutorial berikut.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Apa Itu <em>Deployment<\/em>?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Selama ini, aplikasi Flask yang kita buat masih berjalan di komputer sendiri melalui <code>localhost<\/code>. Agar aplikasi tersebut bisa diakses oleh orang lain melalui internet, kita perlu melakukan <em>deployment<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Deployment <\/em>adalah proses memindahkan aplikasi dari lingkungan pengembangan ke server yang dapat diakses melalui internet. Setelah berhasil di-<em>deploy<\/em>, aplikasi Flask akan memiliki alamat URL yang bisa dibuka dari perangkat lain, misalnya <code>https:\/\/nama-aplikasi.onrender.com<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan begitu, aplikasi yang sebelumnya hanya bisa dijalankan di komputer sendiri kini dapat diakses secara online.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pilihan Layanan Hosting untuk Flask<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ada beberapa layanan yang populer untuk aplikasi Flask, terutama untuk pemula:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Layanan<\/strong><\/td><td><strong>Kelebihan<\/strong><\/td><td><strong>Cocok Untuk<\/strong><\/td><\/tr><tr><td><strong>PythonAnywhere<\/strong><\/td><td>Gratis, khusus Python, sangat<br \/>mudah untuk pemula<\/td><td>Belajar &amp; proyek kecil<\/td><\/tr><tr><td><strong>VPS<\/strong><\/td><td>Kontrol penuh, fleksibel, tidak<br \/>ada batasan resource dari platform<\/td><td>Aplikasi production skala kecil <br \/>menengah<\/td><\/tr><tr><td><strong>Shared Hosting<\/strong><\/td><td>Murah, sudah termasuk domain<br \/>&amp; email, antarmuka cPanel yang<br \/>familiar\u00a0<\/td><td>Website portofolio atau aplikasi<br \/>sederhana<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Di artikel ini kita akan fokus ke tiga metode: <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>PythonAnywhere<\/strong> (paling simpel, tanpa <em>command line<\/em> yang rumit, cocok untuk pemula), <\/li>\n\n\n\n<li><strong>VPS<\/strong> (lebih fleksibel dan mendekati cara kerja server production sesungguhnya, cocok kalau ingin belajar lebih dalam soal server) serta,<\/li>\n\n\n\n<li><strong>Shared Hosting<\/strong> (opsi praktis jika ingin mengelola web Flask sekaligus domain dan email dalam satu dasbor cPanel).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Persiapan Aplikasi Sebelum Deploy<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum di-<em>deploy<\/em>, ada beberapa hal yang perlu disiapkan terlebih dahulu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Pastikan Struktur Folder Rapi<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Struktur folder aplikasi Flask kita kurang lebih seperti ini:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"202\" height=\"306\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-10.png\" alt=\"Struktur folder aplikasi Flask \" class=\"wp-image-68387\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-10.png 202w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-10-198x300.png 198w\" sizes=\"auto, (max-width: 202px) 100vw, 202px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Buat File requirements.txt<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">File ini berisi daftar<em> library <\/em>yang dipakai aplikasi kita, supaya server hosting tahu apa saja yang perlu di-install. Buat file ini dengan menjalankan perintah berikut di terminal (pastikan sudah berada di folder proyek dan virtual environment aktif):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip freeze &gt; requirements.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isinya kurang lebih akan seperti ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Flask==3.0.3\nJinja2==3.1.4\nWerkzeug==3.0.3\ngunicorn==22.0.0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau gunicorn belum ada, dapat diinstal terlebih dahulu dengan command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install gunicorn<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gunicorn adalah web server yang digunakan untuk menjalankan aplikasi Flask di lingkungan<em> production<\/em> (server flask run bawaan hanya cocok untuk development, bukan untuk<em> production<\/em>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Nonaktifkan Mode Debug<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Di app.py, pastikan mode debug dimatikan saat production, karena mode debug bisa membocorkan informasi sensitif ke publik dengan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if __name__ == \"__main__\":\n app.run(debug=False)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Pindahkan Data Rahasia ke Environment Variable<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau ada SECRET_KEY atau kredensial lain di kode, sebaiknya jangan ditulis langsung di app.py. Gunakan environment variable:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import os\n app.secret_key = os.environ.get(\"SECRET_KEY\", \"kunci-default-untuk-development\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nantinya nilai SECRET_KEY ini akan diisi lewat pengaturan <em>environment <\/em>variable di layanan hosting\/VPS, bukan ditulis di kode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Deploy Flask<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum masuk ke langkah deployment, pastikan proyek Flask sudah berjalan lancar di localhost tanpa error, seluruh dependency telah tercatat rapi dalam file <code>requirements.txt<\/code>, serta variabel sensitif seperti API key dan kredensial database sudah dipisahkan ke dalam file .env demi keamanan aplikasi di server produksi. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Berikut, beberapa cara untuk <em>deploy <\/em>flask agar dapat diakses <em>online<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Opsi 1: Deploy Menggunakan PythonAnywhere<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PythonAnywhere adalah pilihan paling mudah karena semuanya dilakukan lewat browser, tanpa perlu install apa pun di komputer. Ikuti langkah berikut untuk deployment:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Daftar akun di <a href=\"https:\/\/www.pythonanywhere.com\/\" target=\"_blank\" rel=\"noopener\">pythonanywhere<\/a> (pilih paket Beginner\/gratis).<\/li>\n\n\n\n<li>Setelah login, buka menu <strong>Files<\/strong>, lalu upload seluruh file proyek (atau clone dari GitHub lewat menu Consoles -> Bash menggunakan git clone).<\/li>\n\n\n\n<li>Buka menu Consoles, jalankan Bash console, lalu masuk ke folder proyek dan install dependensi:&nbsp;<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&nbsp;&nbsp;&nbsp;cd myapp\n&nbsp;&nbsp;&nbsp;pip install --user -r requirements.txt<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Buka menu Web, klik Add a new web app, pilih Flask, dan arahkan ke file app.py milik kita.<\/li>\n\n\n\n<li>Edit file WSGI configuration yang otomatis dibuat, sesuaikan bagian import supaya mengarah ke aplikasi Flask kita, contohnya:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>import sys\npath = '\/home\/username\/myapp'\nif path not in sys.path:\n    sys.path.append(path)\nfrom app import app as application\n<\/code><\/pre>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>Klik tombol Reload pada halaman Web, lalu buka URL yang diberikan (misalnya <em>yayacips.pythonanywhere.com<\/em>).<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-1024x506.png\" alt=\"Tampilan website python anywhere - belajar python\" class=\"wp-image-68383\" style=\"aspect-ratio:2.0316742081447963;width:449px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-1024x506.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-300x148.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-766x379.png 766w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-270x134.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-370x183.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-570x282.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7-740x366.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-7.png 1357w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Opsi<strong> 2: Deploy Menggunakan VPS<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">VPS (<em>Virtual Private Server<\/em>) memberi kita kontrol penuh atas server, sehingga cara ini lebih mendekati praktik production sungguhan. Di sini kita akan pakai kombinasi <strong>Gunicorn<\/strong> (menjalankan aplikasi Flask) + <strong>Nginx<\/strong> (<em>reverse proxy<\/em>) yang merupakan setup paling umum dipakai.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step <strong>1. Sewa dan Akses VPS<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah membeli <a href=\"https:\/\/www.rumahweb.com\/vps-indonesia\/\" target=\"_blank\" rel=\"noopener\"><strong>VPS<\/strong> <\/a>(pilih OS <strong>Ubuntu 22.04<\/strong> karena paling banyak dukungan tutorialnya), akses server lewat SSH dari terminal komputer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh root@alamat_ip_vps<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2. Update Server dan Install Dependensi Dasar<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum melakukan deploy, kita harus melakukan update dan install dependensi dasar yang akan digunakan, dengan menjalankan perintah berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update &amp;&amp; apt upgrade -y<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install python3-pip python3-venv nginx -y<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step <strong>3. Upload\/Clone Proyek ke Server<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau proyek sudah ada di GitHub, langsung <em>clone <\/em>saja dengan menjalankan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/home<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/username\/myapp.git<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cd myapp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau belum ada di GitHub,&nbsp; bisa upload file lewat scp dari komputer lokal dengan perintah SCP berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scp -r myapp\/ root@alamat_ip_vps:\/home\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk cara lengkap melakukan perintah SCP dapat dipelajari pada panduan <a href=\"https:\/\/www.rumahweb.com\/journal\/apa-itu-scp-adalah\/\" target=\"_blank\" rel=\"noopener\">berikut.<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Step <strong>4. Buat Virtual Environment dan Install Library<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Virtual environment<\/em> berfungsi untuk membatasi proyek Python beserta seluruh <em>library<\/em> yang diinstal agar versi ketergantungannya (<em>dependency<\/em>) tidak bertabrakan dengan proyek lain atau sistem utama server. Berikut perintah pembuatannya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 -m venv venv\nsource venv\/bin\/activate<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lalu jalankan command berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install -r requirements.txt<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Step <strong>5. Tes Jalankan dengan Gunicorn<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Pastikan aplikasi bisa jalan dulu secara manual dengan menjalankan perintah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gunicorn --bind 0.0.0.0:8000 app:app<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jika muncul tanpa error, buka http:\/\/alamat_ip_vps:8000 di browser untuk memastikan aplikasi sudah tampil. Setelah itu, tekan Ctrl+C untuk menghentikannya dan selanjutnya kita akan jalankan Gunicorn sebagai service agar tetap aktif meski terminal ditutup. Berikut tampilan pada VPS yang sudah berhasil diakses secara online:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"507\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-1024x507.png\" alt=\"Tampilan website pada VPS menggunakan port\" class=\"wp-image-68384\" style=\"aspect-ratio:2.0194174757281553;width:624px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-1024x507.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-300x149.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-767x380.png 767w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-270x134.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-370x183.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-570x282.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8-740x366.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-8.png 1365w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Step <strong>6. Buat Gunicorn sebagai Systemd Service<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah ini dilakukan untuk mendaftarkan Gunicorn sebagai layanan sistem agar aplikasi Flask dapat berjalan secara otomatis di latar belakang (<em>background<\/em>) dan langsung <em>online <\/em>kembali jika server <em>reboot<\/em> atau mengalami <em>crash<\/em>. Buat file service baru:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/systemd\/system\/myapp.service<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isi dengan konfigurasi berikut (sesuaikan path dan nama):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Unit]\n\nDescription=Gunicorn instance untuk menjalankan aplikasi Flask\n\nAfter=network.target\n\n&#91;Service]\n\nUser=root\n\nWorkingDirectory=\/home\/myapp\n\nEnvironment=\"SECRET_KEY=isi_secret_key_kamu\"\n\nExecStart=\/home\/myapp\/venv\/bin\/gunicorn --workers 3 --bind unix:myapp.sock -m 007 app:app\n\n&#91;Install]\n\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aktifkan dan jalankan service-nya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl start myapp\n\nsystemctl enable myapp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cek statusnya untuk memastikan berjalan dengan baik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status myapp<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 7. Konfigurasi Nginx sebagai Reverse Proxy<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Buat file konfigurasi Nginx baru:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/nginx\/sites-available\/myapp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isi dengan konfigurasi berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n\n&nbsp;&nbsp;&nbsp;&nbsp;listen 80;\n\n&nbsp;&nbsp;&nbsp;&nbsp;server_name alamat_ip_vps_atau_domain_kamu;\n\n&nbsp;&nbsp;&nbsp;&nbsp;location \/ {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;include proxy_params;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass http:\/\/unix:\/home\/myapp\/myapp.sock;\n\n&nbsp;&nbsp;&nbsp;&nbsp;}\n\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aktifkan konfigurasi dan restart Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ln -s \/etc\/nginx\/sites-available\/myapp \/etc\/nginx\/sites-enabled\n\nnginx -t\n\nsystemctl restart nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jangan lupa buka akses firewall untuk Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ufw allow 'Nginx Full'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sekarang aplikasi Flask kamu sudah bisa diakses lewat http:\/\/alamat_ip_vps tanpa perlu menyertakan port lagi.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-1024x506.png\" alt=\"Tampilan website pada VPS  tanpa port\" class=\"wp-image-68385\" style=\"aspect-ratio:2.0303030303030303;width:536px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-1024x506.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-300x148.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-766x379.png 766w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-370x183.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-270x134.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-570x282.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9-740x366.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/image-9.png 1365w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Opsi 3: Deploy Menggunakan Hosting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Metode deploy pada hosting, cocok untuk yang menginginkan solusi serba ada dengan biaya terjangkau, di mana bisa mengelola aplikasi Flask, domain, dan email profesional sekaligus melalui antarmuka visual cPanel yang familiar. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Untuk panduan langkah demi langkah mengenai konfigurasi <em>Setup Python App<\/em>, pembuatan file WSGI, hingga pengaturan <em>environment<\/em> di cPanel, kita dapat membaca panduan lengkapnya di <a href=\"https:\/\/www.rumahweb.com\/journal\/setup-flask-python-framework-cpanel\/?utm_source=gemini\" target=\"_blank\" rel=\"noopener\">Tutorial Setup Flask Python Framework di cPanel<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perbandingan PythonAnywhere, VPS, dan Shared Hosting untuk Flask<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PythonAnywhere<\/strong> cocok kalau ingin cara paling cepat tanpa perlu paham konfigurasi server, cukup upload file lewat browser dan aplikasi langsung online.<\/li>\n\n\n\n<li><strong>VPS<\/strong> cocok kalau ingin belajar lebih dalam soal cara kerja server production sungguhan (Gunicorn, Nginx, systemd), serta butuh kontrol penuh atas resource, domain, dan konfigurasi server \u2014 tapi butuh effort setup yang lebih besar di awal.<\/li>\n\n\n\n<li><strong>Shared Hosting<\/strong> cocok kalau ingin opsi serba ada yang ramah di kantong, di mana kita bisa mengelola aplikasi Flask, domain, database, dan email profesional langsung dari antarmuka visual cPanel \u2014 meskipun opsi kustomisasi servernya terbatas dan butuh penyesuaian awal pada konfigurasi WSGI.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Source Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sebagai rangkuman dari materi belajar Python part 16, berikut adalah keseluruhan kode aplikasi Flask yang sudah kita bangun. Lihat <a href=\"https:\/\/github.com\/frayacode\/flask-crud\" target=\"_blank\" rel=\"noopener\"><em>source code<\/em>.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pada seri belajar Python part 16, kita telah mempelajari cara <em>deploy <\/em>aplikasi Flask sehingga aplikasi yang sebelumnya hanya berjalan di <code>localhost<\/code> kini dapat diakses secara online melalui internet. Dengan deployment, aplikasi Flask menjadi lebih siap untuk digunakan dan dikembangkan lebih lanjut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jangan berhenti di Part 16. Selanjutnya, pada Belajar Python <strong><a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-17\/\" target=\"_blank\" rel=\"noopener\">Part 17<\/a><\/strong> kami akan membahas tentang cara menghubungkan Flask dengan database, kita akan mempelajari cara menghubungkan aplikasi Flask dengan database agar dapat menyimpan dan mengelola data. Tetap ikuti seri belajar Python Rumahweb Journal untuk meningkatkan skill Python Anda secara bertahap melalui berbagai tutorial dan praktik langsung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalam seri belajar Python part 15, kita telah membuat aplikasi Flask dengan tampilan yang lebih menarik menggunakan Bootstrap. Namun, aplikasi tersebut masih berjalan di localhost, sehingga belum bisa diakses oleh pengguna lain melalui internet. Pada Part 16 ini, kita akan melangkah lebih jauh dengan mempelajari cara deploy aplikasi Flask agar dapat diakses secara online. Dengan [&hellip;]<\/p>\n","protected":false},"author":354,"featured_media":68735,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[2483,1446,1176,2485],"class_list":["post-68382","post","type-post","status-publish","format-standard","has-post-thumbnail","category-web-programming","tag-belajar-python","tag-flask","tag-python","tag-python-dasar"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Amiratur Rafifah\"\/>\n\t<meta name=\"google-site-verification\" content=\"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ\" \/>\n\t<meta name=\"keywords\" content=\"belajar python,flask,python,python dasar\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-16\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"id_Id\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Belajar Python Part 16: Cara Deploy Aplikasi Flask \u2013 Rumahweb\" \/>\n\t\t<meta property=\"og:description\" content=\"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-16\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"631\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-05T07:54:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-05T07:59:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RumahwebIndonesia\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Belajar Python Part 16: Cara Deploy Aplikasi Flask \u2013 Rumahweb\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Belajar Python Part 16: Cara Deploy Aplikasi Flask \u2013 Rumahweb","description":"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python","canonical_url":"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-16\/","robots":"max-image-preview:large","keywords":"belajar python,flask,python,python dasar","webmasterTools":{"google-site-verification":"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ","miscellaneous":""},"schema":null,"og:locale":"id_Id","og:site_name":"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server","og:type":"article","og:title":"Belajar Python Part 16: Cara Deploy Aplikasi Flask \u2013 Rumahweb","og:description":"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python","og:url":"https:\/\/www.rumahweb.com\/journal\/belajar-python-part-16\/","og:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp","og:image:secure_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp","og:image:width":1200,"og:image:height":631,"article:published_time":"2026-10-05T07:54:57+00:00","article:modified_time":"2026-10-05T07:59:50+00:00","article:publisher":"https:\/\/www.facebook.com\/RumahwebIndonesia\/","twitter:card":"summary_large_image","twitter:site":"@rumahwebtweet","twitter:title":"Belajar Python Part 16: Cara Deploy Aplikasi Flask \u2013 Rumahweb","twitter:description":"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python","twitter:creator":"@rumahwebtweet","twitter:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Belajar-Python-Part-16.webp"},"aioseo_meta_data":{"post_id":"68382","title":"#post_title #separator_sa Rumahweb","description":"Pelajari cara deploy aplikasi Flask agar bisa diakses online melalui internet, mulai dari deployment hingga aplikasi siap digunakan di seri belajar Python","keywords":null,"keyphrases":{"focus":{"keyphrase":"Belajar Python","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-09-22 09:49:30","updated":"2026-10-05 07:59:50","seo_analyzer_scan_date":null,"focus_keyword":"Belajar Python","additional_keywords":null,"truseo_locale":"id_ID"},"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/68382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/354"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=68382"}],"version-history":[{"count":7,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/68382\/revisions"}],"predecessor-version":[{"id":68749,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/68382\/revisions\/68749"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=68382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=68382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=68382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}