Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
    • Data & AI
      • Data Analyst
      • Data Scientist
      • AI Engineer
      • Data Engineer
      • Business Intelligence (BI) Specialist
    • Infrastruktur & Keamanan
      • Network Engineer
      • System Engineer
      • DevOps Engineer
      • Security Engineer
      • Cloud Engineer
    • Programming & Web Development
      • Web & App Developer
      • Web Developer
      • WordPress Developer
      • Mobile Developer
    • Spesialisasi
      • Blockchain Engineer
      • IOT Engineer
      • Digital Marketing Specialist
  • Elearning
  • Blog
  • Portfolio

Memindahkan Aplikasi PHP ke Cloud: Studi Kasus Deployment BloodConnect ke Hosting Publik

  • September 17, 2026
  • oleh Devina Ghea Amanda

Sebuah website biasanya dikembangkan terlebih dahulu di komputer lokal. Selama masih berada di lingkungan lokal, website tersebut hanya dapat digunakan pada komputer atau jaringan tertentu.

Agar aplikasi dapat digunakan melalui internet, aplikasi perlu dipindahkan ke server yang dapat diakses secara publik. Proses inilah yang disebut deployment.

Pada artikel ini saya akan membahas proses deployment BloodConnect, sebuah website pendaftaran donor darah untuk PMI (Palang Merah Indonesia) yang saya kembangkan di lingkungan lokal (XAMPP) kemudian dipindahkan menuju hosting publik InfinityFree.

💡 Gambaran Singkat
BloodConnect dikembangkan dan diuji terlebih dahulu di lingkungan lokal menggunakan XAMPP (Apache + PHP + MySQL). Setelah aplikasi berjalan dengan baik, seluruh file website beserta database dipindahkan ke hosting InfinityFree agar aplikasi dapat diakses melalui internet oleh siapa saja.

1. Mengenal Project BloodConnect

BloodConnect merupakan website sistem pendaftaran donor darah untuk PMI. Website ini memungkinkan calon pendonor mendaftar secara online, sementara panitia dapat meninjau, menyetujui, atau menolak pendaftaran tersebut melalui dashboard khusus.

Beberapa halaman utama yang terdapat pada BloodConnect antara lain:

  • Login & Register pengguna
  • Login Panitia (dashboard terpisah)
  • Halaman utama (Home)
  • Informasi seputar PMI & kegiatan donor darah
  • Informasi event/jadwal donor
  • Form pendaftaran donor darah
  • Dashboard panitia (approve/reject peserta)
  • Profile pengguna
  • Saran dan Kontak

Teknologi yang Digunakan

Project ini menggunakan beberapa teknologi web, yaitu:

  • HTML — membuat struktur halaman.
  • CSS — mengatur tampilan website.
  • JavaScript — menangani fungsi pada sisi client, termasuk komunikasi ke server (fetch API).
  • PHP — menangani proses pada sisi server (login, register, pendaftaran donor, approval).
  • MySQL — menyimpan data pengguna dan data pendaftaran donor darah.
  • InfinityFree Hosting — menyediakan server publik gratis agar website dapat diakses melalui internet dengan dukungan HTTPS.
📌 Catatan
Sebelum melakukan deployment, saya memastikan BloodConnect sudah dapat berjalan dengan baik pada server lokal (XAMPP). Dengan begitu, error terkait logika aplikasi dapat diperbaiki terlebih dahulu sebelum aplikasi dipindahkan ke hosting.

2. Menyiapkan Project Sebelum Deployment

Langkah pertama adalah memastikan semua file project sudah lengkap dan berada dalam satu folder utama agar proses pemindahan ke server lebih mudah.

Struktur folder project BloodConnect adalah sebagai berikut:

PendaftaranDonorDarah_/
├── login.html
├── register.html
├── daftar.html          (form pendaftaran donor)
├── home.php
├── health.php           (health check endpoint)
├── admin/               (dashboard & login panitia)
├── auth/                (proses login, register, middleware)
├── config/              (konfigurasi database & env loader)
├── css/
├── js/
├── images/
├── mail/                (PHPMailer, notifikasi email)
├── docs/                (dokumentasi)
├── .env                 (kredensial database, tidak diupload ke publik)
└── README.md

Struktur folder yang rapi seperti ini membantu memudahkan proses upload dan verifikasi setelah file dipindahkan ke hosting.

Hal yang Perlu Dicek

  • Halaman utama (login.html, home.php) sudah berjalan lancar di localhost.
  • File CSS dan JavaScript dapat dimuat tanpa error.
  • Form pendaftaran donor berhasil menyimpan data ke database.
  • File PHP (auth, admin, mail) sudah lengkap.
  • File konfigurasi database (config/database.php dan .env) sudah disiapkan.

3. Menyiapkan Hosting Publik (InfinityFree)

Setelah project siap, langkah selanjutnya adalah mendaftar dan menyiapkan hosting publik. Saya memilih InfinityFree karena mendukung PHP dan MySQL secara gratis, serta dapat diakses selama 24 jam tanpa perlu perangkat pribadi tetap menyala.

Beberapa informasi koneksi yang perlu dicatat dari dashboard hosting meliputi:

FTP Host: ftpupload.net

FTP Username: if0_xxxxxxx

FTP Password: (sesuai akun hosting)

Port: 21

Informasi tersebut nantinya digunakan untuk menghubungkan komputer dengan server hosting melalui FTP.


4. Menghubungkan FileZilla dengan Hosting

Untuk memindahkan file BloodConnect, saya menggunakan FileZilla, sebuah aplikasi FTP client gratis yang memudahkan proses transfer file antara komputer lokal dan server hosting.

Pada bagian atas FileZilla, saya memasukkan informasi koneksi dari hosting:

Host      : ftpupload.net
Username  : if0_xxxxxxx
Password  : ********
Port      : 21

Setelah semua data dimasukkan, klik Quickconnect untuk menghubungkan FileZilla dengan server. Jika muncul peringatan sertifikat, saya mencentang “Always trust this certificate” lalu klik OK.


5. Mengupload File BloodConnect

Setelah berhasil terhubung, FileZilla menampilkan dua panel: panel kiri berisi file di komputer lokal, dan panel kanan berisi file pada server (folder htdocs).

✅ Tips
Pada InfinityFree, folder utama website bernama htdocs. Pastikan seluruh file, termasuk folder seperti css/, js/, admin/, auth/, benar-benar terupload — bukan hanya file tunggal di root saja.

Saya memilih seluruh folder project di panel kiri, lalu klik kanan dan pilih Upload untuk memindahkannya ke folder htdocs pada server.


6. Menyiapkan Database

Karena BloodConnect menggunakan database MySQL untuk menyimpan data pengguna dan pendaftaran donor, file website saja belum cukup. Database juga harus disiapkan pada hosting.

Langkah yang saya lakukan adalah:

  1. Membuat database baru melalui menu MySQL Databases di dashboard InfinityFree.
  2. Membuka phpMyAdmin dari dashboard hosting.
  3. Memilih database yang telah dibuat (formatnya if0_xxxxxxx_pmi_connect).
  4. Melakukan import file pmi_connect.sql melalui tab Import.
  5. Memastikan seluruh tabel (users, login_logs, donor_registrations) berhasil masuk melalui tab Struktur.

Mau Kuasai Memindahkan Aplikasi PHP ke Cloud: Studi Kasus Deployment BloodConnect ke Hosting Publik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

⚠️ Kendala yang Ditemui
Proses import awalnya gagal dengan pesan “Access denied for user … to database ‘pmi_connect'”. Penyebabnya, file SQL berisi perintah CREATE DATABASE pmi_connect; dan USE pmi_connect;, padahal hosting gratis hanya mengizinkan nama database sesuai yang sudah dibuat sistem (dengan awalan if0_xxxxxxx_). Solusinya, kedua baris perintah tersebut dihapus dari file SQL sebelum import ulang dilakukan.

7. Mengatur Konfigurasi Database

Konfigurasi database pada server berbeda dengan konfigurasi saat aplikasi masih dijalankan secara lokal (localhost). Pada BloodConnect, kredensial database dipisahkan ke dalam file .env agar tidak tertulis langsung di kode program.

Contoh konfigurasi .env setelah disesuaikan untuk hosting:

DB_HOST=sql302.infinityfree.com
DB_USER=if0_xxxxxxx
DB_PASS=********
DB_NAME=if0_xxxxxxx_pmi_connect
DB_CHARSET=utf8mb4

File config/database.php kemudian membaca nilai-nilai tersebut melalui fungsi loadEnv(), sehingga kredensial tidak pernah ditulis langsung di kode program:

<?php
require_once __DIR__ . '/env_loader.php';
loadEnv(__DIR__ . '/../.env');

define('DB_HOST', $_ENV['DB_HOST'] ?? 'localhost');
define('DB_USER', $_ENV['DB_USER'] ?? 'root');
define('DB_PASS', $_ENV['DB_PASS'] ?? '');
define('DB_NAME', $_ENV['DB_NAME'] ?? 'pmi_connect');
⚠️ Perhatikan
File .env wajib dimasukkan ke dalam .gitignore sehingga tidak ikut terunggah ke repository GitHub publik. Kredensial database bersifat sensitif dan tidak boleh terekspos.


8. Mengecek Path File

Setelah aplikasi dipindahkan, masalah yang saya temui adalah tampilan website menjadi polos tanpa gaya sama sekali, seolah CSS tidak terbaca.

Setelah ditelusuri menggunakan Developer Tools (tab Network) di browser, ternyata folder css/ dan js/ memang belum ikut terupload ke server saat proses upload sebelumnya. Contoh pemanggilan file CSS pada BloodConnect:

<link rel="stylesheet" href="css/style.css">
<script src="js/register.js"></script>

Solusinya, saya mengupload ulang folder css/, js/, beserta folder pendukung lain (admin, auth, config, mail, images) melalui FileZilla, kemudian memastikan tampilan kembali normal.


9. Testing BloodConnect di Hosting Publik

Setelah semua file dan database selesai dipindahkan, aplikasi diuji kembali langsung dari alamat hosting untuk memastikan semua fitur berjalan sebagaimana mestinya.

Halaman yang Diuji

Selain tampilan halaman, saya juga memeriksa langsung isi database melalui phpMyAdmin untuk memastikan data pendaftaran donor benar-benar tersimpan, bukan hanya menampilkan pesan sukses di layar.


10. Masalah yang Ditemui Saat Deployment

Deployment BloodConnect tidak berjalan mulus sepenuhnya. Berikut beberapa masalah nyata yang saya temui, beserta cara mengatasinya.

Folder CSS & JS Tidak Terupload

Tampilan website menjadi polos tanpa styling karena folder css/ dan js/ belum sepenuhnya terupload ke server.

Solusi: memeriksa isi folder htdocs di FileZilla, lalu mengupload ulang seluruh folder pendukung yang belum ada.

Gagal Import Database

Import database gagal dengan pesan “Access denied to database” karena file SQL berisi perintah pembuatan database dengan nama yang tidak diizinkan hosting.

Solusi: menghapus baris CREATE DATABASE dan USE dari file SQL, lalu mengimpor ulang ke database yang sudah dibuat lewat dashboard hosting.

Data Tidak Muncul Saat Diakses dari Perangkat Mobile

Saat form pendaftaran donor disubmit dari HP menggunakan jaringan data seluler, aplikasi menampilkan pesan sukses namun data tidak tersimpan di database.

Solusi: mengaktifkan HTTPS pada domain hosting dan memverifikasi ulang beberapa saat kemudian. Masalah ini kemungkinan disebabkan keterlambatan sinkronisasi pada infrastruktur hosting gratis serta koneksi HTTP biasa yang rentan terhadap gangguan proxy jaringan operator seluler.


11. Hasil Deployment

Setelah file aplikasi, database, dan konfigurasi berhasil dipindahkan, BloodConnect kini dapat diakses secara publik melalui:

🔗 https://bloodconnectpmi.free.nf/login.html

Alur deployment yang dilakukan dapat digambarkan secara sederhana seperti berikut:

LOCAL (XAMPP)
  │
  │ Upload via FileZilla
  ▼
INFINITYFREE HOSTING
  │
  │ Import Database + Konfigurasi .env
  ▼
BLOODCONNECT (HTTPS)
  │
  ▼
INTERNET
  │
  ▼
PENGGUNA (laptop & HP)

Sebelumnya BloodConnect hanya dapat diakses dari komputer lokal saya sendiri. Setelah deployment, aplikasi dapat diakses siapa saja, dari perangkat apa saja — sudah diuji dan berhasil dibuka dari laptop maupun HP dengan jaringan berbeda.


12. Hubungan Deployment dengan DevOps & Cloud

Deployment BloodConnect merupakan contoh sederhana dari workflow DevOps. Selain proses deployment manual ini, saya juga menerapkan beberapa praktik DevOps lain pada project yang sama, yaitu:

  • CI/CD Pipeline — GitHub Actions yang otomatis mengecek syntax seluruh file PHP setiap kali kode di-push.
  • Logging System — pencatatan otomatis aktivitas login pengguna ke file activity.log.
  • Health Check Endpoint — halaman health.php yang menampilkan status server dan database dalam format JSON.
  • Automated Backup — script backup.sh/backup.bat untuk mencadangkan database secara otomatis.
  • Environment Configuration — pemisahan kredensial sensitif ke file .env yang tidak ikut terunggah ke GitHub.
DEVELOPMENT (localhost)
     ↓
   TESTING
     ↓
  DEPLOYMENT (FileZilla → InfinityFree)
     ↓
CONFIGURATION (.env, database)
     ↓
   TESTING ULANG (lintas device)
     ↓
PUBLIC ACCESS (HTTPS)

🚀 Bisa Dikembangkan Lagi
Deployment manual menggunakan FileZilla pada project BloodConnect dapat menjadi langkah awal sebelum mempelajari deployment otomatis (Continuous Deployment) menggunakan GitHub Actions dan FTP Action, sehingga proses upload tidak perlu dilakukan manual lagi di masa depan.


Kesimpulan

Memindahkan aplikasi PHP dari server lokal ke hosting publik merupakan salah satu tahap penting dalam pengembangan website. Pada project BloodConnect, proses deployment dilakukan dengan mempersiapkan file aplikasi, mengupload file melalui FileZilla, menyiapkan database di InfinityFree, menyesuaikan konfigurasi lewat file .env, dan melakukan testing berulang kali hingga aplikasi benar-benar dapat diakses secara konsisten dari berbagai perangkat.

Dari proses tersebut, saya belajar bahwa aplikasi yang berjalan dengan baik di komputer lokal belum tentu langsung berjalan dengan baik ketika dipindahkan ke server publik. Perbedaan aturan penamaan database, struktur folder yang harus lengkap, hingga perilaku jaringan yang berbeda antar perangkat, semuanya perlu diperhatikan dan diuji satu per satu.

Deployment BloodConnect menjadi praktik nyata untuk memahami bagaimana sebuah aplikasi berpindah dari lingkungan development menuju lingkungan yang dapat digunakan secara publik, sekaligus menjadi fondasi untuk mempelajari praktik DevOps yang lebih lanjut seperti Continuous Deployment, containerization, dan cloud computing.

penulis : Devina Ghea Amanda

Mau Kuasai Memindahkan Aplikasi PHP ke Cloud: Studi Kasus Deployment BloodConnect ke Hosting Publik Sampai Bisa Praktik Langsung?

Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.

Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →

Tags: activity.logBloodconnectDatabaseDeploymentFileZillaFTPInfinityFreeJSPath FilePHP
Previous Post
Next Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Mencari Produk yang Sering Dibeli Bersamaan Menggunakan SQL
  • Memindahkan Aplikasi PHP ke Cloud: Studi Kasus Deployment BloodConnect ke Hosting Publik
  • Kenapa Query SQL Kamu Ribet Banget Cuma untuk Cari “Top 3 per Kategori”? Kenalan dengan Window Function
  • Aplikasi Bisa Berjalan, Tapi Tidak Bisa Diakses? Cek dengan Wireshark
  • Tips Presentasi Final Project Data Analysis

Arsip

  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP python security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2026 | Privacy Policy | Site Map | Portfolio Magang | Butuh tim kami langsung yang mengerjakan? Lihat layanan implementasi →

All Right Reserved

WhatsApp us