Koneksi Basis Data dengan Aplikasi

image

1. πŸ“Œ Pengertian Koneksi Basis Data

Koneksi basis data adalah proses menghubungkan aplikasi (misalnya PHP) dengan database (misalnya MySQL) agar aplikasi dapat:

  • Mengambil data
  • Menyimpan data
  • Mengubah data
  • Menghapus data

2. 🎯 Tujuan Koneksi Database

  • Mengintegrasikan aplikasi dengan database
  • Mendukung aplikasi dinamis (web/app)
  • Mengelola data secara real-time

3. 🧩 Arsitektur Koneksi Aplikasi – Database

https://images.openai.com/static-rsc-4/nQGpJ2aqIDYU269ajwp2uzS9ihVxIOI1_MimJeTFd9aNkcGrmbQ72hHKtjoMNyDHfybTuY-Zqlh-5N8yJdch7r9lkTWzk9X7uRj7F7My4XcS_WErhzaN0difP7bHgdRjE2dhnKcS0M0T1VbSVQDzR6BwYngsAbuwmKjkcn8w44UhQVIpbMf8j8Quw03AOE2B?purpose=fullsize
https://images.openai.com/static-rsc-4/hbjPwm1ssj1uaiJVw-2NypFd4dKNEyfPkBuC0vgjFCKTnS7_sZYyjGalA1MUqZrY4mzoDne4hLv-_9sKalo1uS3Zj_w-8dA9whqHZP1GEb_mPYSuIjT_FQrIM-yiweydlDRELTDmeDNjL0-6Poe5pDsNJUv3l1iTUKlx4ccoiToSaEpnvHB8hE7lq5iErUuU?purpose=fullsize
https://images.openai.com/static-rsc-4/t3tSYIRi6LqMnxljHpK-MV94Q5_Ktmo321s1tuASTgN5onXARAvCtO_o_BH2pE8KJTN5z-K9RqjCcE1xGH-07j1asBCB7NrjN7w-d6YTsKg0aUsWhc341V9xtLer2-RnaLnbVCNOLnyTwfvb4IV44nubdEZlbmjThuuVMhJIIULg9yPrAlVR2KO0p8XwocqG?purpose=fullsize

6

πŸ“Œ Alur:

  1. User β†’ Browser
  2. Browser β†’ Server (PHP)
  3. PHP β†’ Database (MySQL)
  4. Database β†’ PHP β†’ Browser

4. βš™οΈ Teknologi yang Digunakan

πŸ“Œ Bahasa:

  • PHP

πŸ“Œ Database:

  • MySQL

πŸ“Œ Server:

  • Apache (XAMPP / Laragon)

5. πŸ”Œ Cara Koneksi PHP ke MySQL


5.1 πŸ“Œ Menggunakan mysqli_connect()

<?php
$conn = mysqli_connect("localhost", "root", "", "kampus");if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
echo "Koneksi berhasil!";
?>

πŸ“Œ Penjelasan:

  • localhost β†’ server database
  • root β†’ username
  • "" β†’ password
  • kampus β†’ nama database

6. 🧱 Struktur Koneksi yang Baik

https://images.openai.com/static-rsc-4/69knae9Y2cbfxWvky9Ie2YU7QhmvzJ2ZcSXf78DwW7tKkiU5gEAtgL4knQEYhDb3So77cneFmPSyYfQb1F1_vp3DVudTsMIiA0mBIQAtFAgy6WNLIlHpiMRihzgJ8GZllFLo_SMYXRO4dE1sAL6o1_G-3C9Nu9tsVkIyplduZ28FR4orMZMWP3DGcIVTIUnr?purpose=fullsize
https://images.openai.com/static-rsc-4/U_DeurjGiBAQgIBq9jrLUARRiHkUhd83GdrZPadrFsyqpPM-OC-NpOrG6kbNxx7bmqldewgFntADgz53KP_ipgXULTuQXZ5B393rHgC7z8_H2boj0hA4uqqauyYme3egnhaeABwVBruhKE3NaZXpEtKtWlSOl332E4iGDqigeAeCo8-aHNgR7uO2xBwLffKn?purpose=fullsize
https://images.openai.com/static-rsc-4/zv8qgfzrHhe4GPi9a_b5rSrfZ2_KdDK9NT_XPYvMVmofkeiFbmE_y96xIAZXuEJX6m1bWkn242VCdpySUbSw16UI4mRyNr9MRkP-Nyzam8XIc2k6-JRwJNgTVty0zPpQ-oT1FlzysdxOxeroCwSZh29-bjJB1IgVCbQJVsWkNgOCGum0zHK2kY0Jt5TA4rNY?purpose=fullsize

8

πŸ“Œ File:

  • koneksi.php (config database)
  • index.php (aplikasi utama)

πŸ“Œ Contoh koneksi.php

<?php
$conn = mysqli_connect("localhost","root","","kampus");
?>

πŸ“Œ Menggunakan di file lain

<?php
include 'koneksi.php';
?>

7. πŸ”„ Operasi CRUD dengan Koneksi


πŸ“Œ INSERT

mysqli_query($conn, "INSERT INTO mahasiswa VALUES ('001','Andi','TI')");

πŸ“Œ SELECT

$result = mysqli_query($conn, "SELECT * FROM mahasiswa");while($row = mysqli_fetch_assoc($result)){
echo $row['nama']."<br>";
}

πŸ“Œ UPDATE

mysqli_query($conn, "UPDATE mahasiswa SET nama='Andi Baru' WHERE nim='001'");

πŸ“Œ DELETE

mysqli_query($conn, "DELETE FROM mahasiswa WHERE nim='001'");

8. ⚠️ Error Handling

https://images.openai.com/static-rsc-4/Fg06-no-3qmfbJDYjGLr5N2k1OadjyOcv8UY8uLfMd5NekUkLybRFcoAC7rRjb0jWfWmb-yfyRGDdXAcjDj5x3nen3z4uyP31GS8odIzYxJt28pjKRszvwwGqCYzPpO_JQiaxATJqcc8AARBWP-49ZjUP_GzHUvR5asjkyRVRhOhAs13fP-6P4EZ_1jUMyKZ?purpose=fullsize
https://images.openai.com/static-rsc-4/B3QY3lu8l-g3URCQzN5aF1D8Hxa_HZ8DBFPdnbi-MQhmp3EtiheZQ_qoE5ndkMgyAyNdMIWk4rz4YkbDXP6DrecA39Q0KDh6kKBwm5y2nXUafnkwnJQjNPU1ZRk1bhWS3oRkyFH9YnzALPLgoUD9aeQb0E_HibG8lhJ3ss3RNoLyO32eItpn118N427mbg8n?purpose=fullsize
https://images.openai.com/static-rsc-4/PXrLK8W16myuNGu4JVD4-Vy5NzIL4oS0mZng2TbXtnTVSNZ4zmrxqb_CwwzHvQ_tqXN9EwL7BY28eYHG09RlEjtbmQPIYSnlN1rNmPWGv54EjNsHHo3nzQAOKdLlRz75aMBymEUjKc7HZdckriW1gr1i0463Tv06EXOqJr6KFofCkRLGN_tCsaaRB0H1rBFQ?purpose=fullsize

6

if(!$conn){
echo "Error: " . mysqli_connect_error();
}

9. πŸ”’ Keamanan Koneksi Database

⚠️ Masalah:

  • SQL Injection
  • Password tidak aman

βœ… Solusi:

  • Prepared Statement
  • Validasi input
  • Password hashing

πŸ“Œ Contoh Prepared Statement

$stmt = $conn->prepare("INSERT INTO mahasiswa (nim, nama) VALUES (?, ?)");
$stmt->bind_param("ss", $nim, $nama);$nim = "002";
$nama = "Budi";$stmt->execute();

10. 🧠 Studi Kasus

Sistem Mahasiswa:

  • Input data mahasiswa
  • Tampilkan data
  • Update data
  • Delete data

➑️ Semua menggunakan koneksi PHP + MySQL


11. πŸ§ͺ Latihan Sederhana


🎯 Latihan 1:

Buat koneksi database:

  • Database: kampus

🎯 Latihan 2:

Tampilkan data tabel:

  • Mahasiswa

🎯 Latihan 3:

Tambahkan data menggunakan PHP


12. πŸ“ Tugas Praktikum


🎯 Tugas: Aplikasi Data Karyawan

https://images.openai.com/static-rsc-4/OK045M7RN_gQ7DT9kULsKYmIK6DRPjfUDwqCcxJmT3mxJKgeQuB9tfs-6Ed-sVIveVDHSiVneKOIcKMZkPSz7c-YJ-YagX3Om-EEhzLnnIijUkkRu_GFPwFoSxSTxo0XG9QDK6fB0JBVeOeTecW36t8N0dx3HE1NC10-7fCCafJBLvfRCCS2rPXkVhtilGTf?purpose=fullsize
https://images.openai.com/static-rsc-4/I0MNcinj8f-bAytT6I7PH_8NFqkhpmBIUAD3c9cwtLBJedGFdkowsw2iW-0JpycE66cPSD0AprGrPHmGeE3qZvNf4hdgGVGMYhSDbLV4T-f0AxDLH7mhJjlzgWzFKNcWkAAknfGBOb1RUKpOFBETPZLW_Fc30q73gv2LcXcbdOLkv_V2mALrKGZjN244aoFd?purpose=fullsize
https://images.openai.com/static-rsc-4/g27W9Qrtm7MCQn6NA29MZEGnwodUMf41Fsx0x1e8cq7rfuENpP7T-ewRE4nofLzDvcOndZRfD45uNjtC9RJmC-uvs9SfZZiiqYqLjNcUJz8cLKYiqbcm_FuerQitYKzj2JcP73W9bQ8M5OMpYbNOYdvNS5S2I0mVszr3q64kX_WJH8b4DF3Zj62LMssk28Vx?purpose=fullsize

7

πŸ“Œ Ketentuan:

  1. Buat database karyawan
  2. Buat tabel:
    • id
    • nama
    • jabatan
    • gaji
  3. Buat aplikasi PHP:
    • Form input
    • Tampilkan data
    • Edit
    • Hapus

13. 🎯 Kesimpulan

  • Koneksi database adalah jembatan antara aplikasi dan data
  • PHP + MySQL sering digunakan untuk aplikasi web
  • Keamanan dan struktur kode sangat penting

14. πŸ“š Diskusi

  1. Apa fungsi koneksi database?
  2. Apa itu mysqli_connect()?
  3. Mengapa prepared statement penting?
  4. Apa risiko jika tidak ada validasi input?