Skip to content

Jurnalistik Website

INFORMATIKA

Primary Menu
  • PROFIL/CV
  • MAHASISWA
    • 2023-INFORMATIKA
      • TEAM A
        • Akhdan Muhana
        • Allyza Fauziyah
        • Zulfa Thafira Alfat
        • Renathan Fernando
        • Gelar Aditya Pratama
      • TEAM B
        • Muhamad Padil Firmansyah
        • Distra Helvansya
        • Alfini Rahmatillah
        • Najmi Rodibillah
        • Muhammad Rafhli Alfarizi
      • TEAM C
        • Zahra Inggriawati
        • Mirna Noviana
        • Muhammad Renaldy
        • Hadyan Syauqil Firdaus
        • Ranatri Julia Zahra
      • TEAM D
        • Risjad Hadi Cahya
        • Farhan Maksudi
        • Delfian
        • Farhan Prayoga
        • Renaldy Pramandhika
      • TEAM A (Sore)
        • DEDE SHALFA ARIANDI
        • SITI ROHIMAH
        • FRANKY CRISTIAN
        • DEWA SAEPURRAHMAN
      • TEAM B (Sore)
        • FIRAS ARIA ANDIKA
        • M TSANI NUR RAMDHAN
        • M GALLANT
        • MUHAMAD FACHRIL ILYASA
        • FAJAR RIZKI AKBAR
    • 2024-INFORMATIKA
      • Kelompok 1
        • Artikel Kelompok 1
        • Isyal Fauzi
        • Andika Wahyu Hidayat
        • Shera Nisa Shaefar
        • Muhammad Taura Abdullah Azzam
        • Rico Prima Putra
      • Kelompok 2
        • Artikel Kelompok 2
        • Sazkia Salsabila
        • Seli Nopiani
        • Sihab Abdul Hakim
        • Algariz Tegar Aziz
        • M Hasbi Hasbullah
      • Kelompok 3
        • Artikel Kelompok 3
        • Sendi Maulana
        • Kamila Eka Yantri
        • Najma Fajrian Nurul Iman
        • Syahwal Dwi Putra
        • Fadhiatul Hamid
      • Kelompok 4
        • Artikel Kelompok 4
        • Akbar Maulana
        • Imron Firmansyah
        • M. Ihsan
        • Ade Ramadhani Putra
        • Sendi Ardiansyah
      • Kelompok 1 (Sore)
        • Indra Novea Hafiz Suherman Putra
        • Widi Dwika Rahayu
        • Asep Ruliansyah
        • Raihan Rawady Rimba
        • Salma Cherani
      • kelompok 2 (Sore)
        • MUHAMMAD LUTFI YUDISWARA
        • IRSAN PERMADI
        • HISMAN GUNAWAN
        • AULIA PUTRI SOLEHA
      • kelompok 3 (Sore)
        • Nayla Putri Aulia
        • Naila Syahirah
        • Ahmad Nawawi
        • Agung Almalik Izulhaq
        • Arsil Saputra
      • kelompok 4 (Sore)
        • Restu Ardiansyah
        • Yusup Jaelani
        • Putra Arya Mas Bima
        • Achsan Amirul Bahar
        • Mochamad Maha Raden
        • Cica Cahyani
    • 2025-Informatika
      • 2025 – Reguler Pagi
        • AURA SYAHWA SOMANTRI
        • Azreal Azaki
        • Erfan Maulana Hidayat
        • Jana Maulana Fajar
        • Moh Qiral Brimasakti
        • Muhammad Rahman
        • Nauval Abdurachman
        • Redi Aditya
        • Roby Surya
        • Siti Fatimah Azzahra
      • 2025 – Reguler Sore
        • ADIL MAULANA
        • Adisti Rahayu
        • Afdhal Haq
        • MUHAMAD ALFAN FIRDAUS
        • BAYU HADI PRATAMA
        • CEPY EDUARS
        • DEVIT MAHARDIKA SAMBORA
        • MUHAMAD FAKHRI MAULIDAN
        • M. FARIDH FADHLI DZUL AKBAR
        • GALIH SAPRIATNA
        • MUHAMMAD KHAIRI BAHIR
        • M TAJUL WALI
        • MUHAMMAD ALDI AFRIZAL
        • MUHAMMAD FASYA HIDAYATULLOH
        • M. FAUZAN DWINASRULLAH
        • R DIKA PUTRA PURWANDA
        • REREN NURAENI GUNAWAN
        • REYHAN ARDIANSYAH
        • SATRIA MUHAMMAD AKMAL AULIA
        • MOHAMMAD SABIL
  • MATERI KULIAH
    • Pengantar Aplikasi Komputer
    • Logika dan Algoritma
    • Pemrograman Dasar
    • Website Fundamental
    • Jaringan Komputer
    • Keamanan Jaringan Komputer
    • Sistem Manajemen Basis Data
    • Pemrograman Basis Data
    • Pemrograman Berorientasi Objek
    • Rekayasa Web
    • Arsitektur Cloud Computing
    • Installasi Komputer (Hardware & Software)
    • Organisasi dan Arsitektur Komputer
    • Pengantar Sistem Informasi
    • Logika Informatika
    • Basis Data
    • Interaksi Manusia dan Komputer
    • Permrograman Berbasis Web
    • Sistem Operasi
    • Pengantar Teknologi Web3
    • Rekayasa Perangkat Lunak
    • Pemrograman Mobile
    • Struktur Data
    • Sistem Informasi Manajemen
    • Pengantar Kecerdasan Artifisial
    • Administrasi Server
    • Pemrogramanan Berbasis Desktop
    • Manajemen Layanan Teknologi Informasi
    • Dasar Infrastruktur TI
    • E-Bisnis
    • Pengantar Teknologi Cloud
    • Data Mining
    • Belajar di Era Digital
    • Basis Data NoSQL
    • Tata Kelola Teknologi Informasi
    • Keamanan Sistem Informasi
    • Data Warehouse
    • Proses Bisnis
    • Manajemen Resiko dan Audit Sistem Informasi
    • Komunikasi Bisnis dan Teknis
    • Bisnis Digital
    • Etika Profesi
    • Sistem Pendukung Keputusan
    • Analisis dan Perancangan Sistem
    • Arsitektur dan Perancangan Sistem Enterprise
  • E-BOOK
    • Python Programming Essentials: Dari Konsep Dasar ke Aplikasi Nyata
  • JASA/MARKET
Watch Video
  • Home
  • 2021
  • February
  • 6
  • Studi Kasus “Form Login”: Pemrograman Berorientasi Objek (OOP) Menggunakan PHP
  • Artikel
  • Berita
  • Materi Kuliah

Studi Kasus “Form Login”: Pemrograman Berorientasi Objek (OOP) Menggunakan PHP

Ahmad Gunawan February 6, 2021 6 minutes read
image

Deskripsi Umum

Materi ini dirancang untuk membantu mahasiswa memahami konsep Pemrograman Berorientasi Objek (Object Oriented Programming / OOP) menggunakan bahasa PHP, melalui studi kasus pembuatan halaman login beserta database. Penyajian dibuat bertahap, konseptual, dan praktis, sehingga mudah dipahami mahasiswa dan mudah dijelaskan dosen.


Capaian Pembelajaran Mata Kuliah (Contoh)

Setelah mempelajari materi ini, mahasiswa mampu:

  1. Menjelaskan konsep dasar OOP (class, object, attribute, method).
  2. Menerapkan prinsip OOP dalam pemrograman PHP.
  3. Menggunakan OOP untuk mengelola koneksi database.
  4. Mengimplementasikan sistem login sederhana berbasis OOP.

A. Konsep Dasar OOP

1. Pengertian OOP

Pemrograman Berorientasi Objek adalah paradigma pemrograman yang berfokus pada objek, yaitu representasi dari entitas nyata yang memiliki:

  • Atribut (data)
  • Method (perilaku/fungsi)

Contoh dalam dunia nyata:

  • Objek: User
  • Atribut: username, password
  • Method: login(), logout()

2. Konsep Utama OOP

a. Class

Class adalah cetak biru (blueprint) untuk membuat objek.

b. Object

Object adalah hasil instansiasi dari class.

c. Property (Atribut)

Variabel yang berada di dalam class.

d. Method

Fungsi yang berada di dalam class.

e. Encapsulation

Pembungkusan data dan method dalam satu class (menggunakan access modifier).

f. Inheritance (Pewarisan)

Class dapat mewarisi sifat dari class lain.

g. Polymorphism

Method dengan nama sama tetapi perilaku berbeda.


B. Studi Kasus: Sistem Login Mahasiswa

Gambaran Sistem

Sistem login digunakan untuk:

  • Memverifikasi username dan password
  • Mengambil data user dari database
  • Menentukan apakah user dapat login atau tidak

C. Desain Database

1. Nama Database

db_login_oop

2. Tabel users

FieldTipe DataKeterangan
idINT (PK)ID user
usernameVARCHAR(50)Username login
passwordVARCHAR(255)Password terenkripsi
namaVARCHAR(100)Nama lengkap

3. SQL Pembuatan Tabel

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50) NOT NULL,

password VARCHAR(255) NOT NULL,

nama VARCHAR(100) NOT NULL

);


D. Struktur Folder Aplikasi

login_oop/

│

├── config/

│ └── Database.php

│

├── classes/

│ └── User.php

│

├── login.php

└── proses_login.php


E. Implementasi OOP pada PHP

1. Class Database

Tujuan: Mengelola koneksi database menggunakan OOP

Konsep OOP yang digunakan:

  • Class
  • Property
  • Method
  • Encapsulation

Penjelasan:

  • Class Database menyimpan konfigurasi database
  • Method connect() digunakan untuk membuka koneksi

2. Class User

Tujuan: Mengelola data dan proses login user

Atribut:

  • username
  • password

Method:

  • login(): memeriksa kecocokan data user

Konsep OOP:

  • Object sebagai representasi user
  • Pemisahan logika program

F. Alur Proses Login

  1. User mengisi form login
  2. Data dikirim ke proses_login.php
  3. Object User dibuat
  4. Method login() dipanggil
  5. Sistem mengecek database
  6. Jika sesuai → login berhasil
  7. Jika tidak → login gagal

G. Keuntungan Menggunakan OOP pada Studi Kasus Login

  1. Kode lebih terstruktur
  2. Mudah dikembangkan
  3. Mudah dipelihara
  4. Aman dan rapi
  5. Cocok untuk aplikasi skala besar

H. Tips Penjelasan untuk Dosen

  • Gunakan analogi class = cetakan, object = hasil cetakan
  • Jelaskan alur login sebelum masuk ke kode
  • Tunjukkan pemisahan file sebagai kelebihan OOP
  • Praktikkan secara bertahap

I. Latihan untuk Mahasiswa

  1. Tambahkan field role pada tabel users
  2. Buat method cekRole() pada class User
  3. Tampilkan nama user setelah login berhasil

J. Ringkasan Materi

  • OOP membantu pengelolaan program menjadi rapi
  • PHP mendukung penuh OOP
  • Studi kasus login adalah contoh paling efektif
  • Pemisahan class Database dan User memudahkan pemahaman

—————————————————————————————————————————–

📄 Script Database.php

<?php
class Database
{
    // Property (atribut)
    private $host     = "localhost";
    private $db_name  = "db_login_oop";
    private $username = "root";
    private $password = "";
    private $conn;

    // Method untuk koneksi database
    public function connect()
    {
        $this->conn = null;

        try {
            $this->conn = new PDO(
                "mysql:host=" . $this->host . ";dbname=" . $this->db_name,
                $this->username,
                $this->password
            );

            // set error mode PDO
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        } catch (PDOException $e) {
            echo "Koneksi database gagal: " . $e->getMessage();
        }

        return $this->conn;
    }
}
?>

📄 Script User.php

<?php
class User
{
    // Property (atribut)
    private $conn;
    private $table = "users";

    public $username;
    public $password;
    public $nama;

    // Constructor: menerima koneksi database
    public function __construct($db)
    {
        $this->conn = $db;
    }

    // Method untuk proses login
    public function login()
    {
        // Query mencari user berdasarkan username
        $query = "SELECT * FROM " . $this->table . " WHERE username = :username LIMIT 1";

        $stmt = $this->conn->prepare($query);

        // Bind parameter
        $stmt->bindParam(":username", $this->username);

        // Eksekusi query
        $stmt->execute();

        // Cek apakah user ditemukan
        if ($stmt->rowCount() > 0) {
            $row = $stmt->fetch(PDO::FETCH_ASSOC);

            // Verifikasi password
            if (password_verify($this->password, $row['password'])) {
                $this->nama = $row['nama'];
                return true;
            }
        }

        return false;
    }
}
?>

📄 Script login.php

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Login Sistem OOP PHP</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f2f2f2;
        }
        .login-box {
            width: 350px;
            margin: 100px auto;
            padding: 20px;
            background: #ffffff;
            border-radius: 5px;
            box-shadow: 0px 0px 10px #aaa;
        }
        h2 {
            text-align: center;
        }
        input[type=text],
        input[type=password] {
            width: 100%;
            padding: 10px;
            margin: 8px 0;
            box-sizing: border-box;
        }
        input[type=submit] {
            width: 100%;
            padding: 10px;
            background: #2c7be5;
            color: white;
            border: none;
            cursor: pointer;
        }
        input[type=submit]:hover {
            background: #1a5dcc;
        }
        .info {
            text-align: center;
            color: red;
        }
    </style>
</head>
<body>

<div class="login-box">
    <h2>Login</h2>

    <form method="POST" action="proses_login.php">
        <label>Username</label>
        <input type="text" name="username" required>

        <label>Password</label>
        <input type="password" name="password" required>

        <input type="submit" name="login" value="Login">
    </form>
</div>

</body>
</html>

📄 Script proses_login.php

<?php
// Mulai session
session_start();

// Panggil file class
require_once "config/Database.php";
require_once "classes/User.php";

// Cek apakah tombol login ditekan
if (isset($_POST['login'])) {

    // Ambil data dari form
    $username = $_POST['username'];
    $password = $_POST['password'];

    // Buat koneksi database
    $database = new Database();
    $db = $database->connect();

    // Buat object user
    $user = new User($db);

    // Set data user
    $user->username = $username;
    $user->password = $password;

    // Proses login
    if ($user->login()) {

        // Simpan data ke session
        $_SESSION['login'] = true;
        $_SESSION['username'] = $user->username;
        $_SESSION['nama'] = $user->nama;

        // Redirect ke halaman dashboard (contoh)
        header("Location: dashboard.php");
        exit();

    } else {
        // Jika login gagal
        echo "<script>
                alert('Username atau Password salah!');
                window.location='login.php';
              </script>";
    }

} else {
    // Jika file diakses langsung tanpa form
    header("Location: login.php");
    exit();
}
?>

TUGAS

Buatlah Form Login seperti dibawah ini:

setelah sukses LOGIN, muncul dashboard seperti ini:

ada 3 pilihan/tombol, yaitu:

  1. Website Rental Mobil
  2. Website Rental Motor
  3. Logout

ketika klik tombol/link Website Rental Mobil, muncul seperti ini:

ketika klik tombol/link Website Rental Motor, muncul seperti ini:

About the Author

Ahmad Gunawan

Administrator

Visit Website View All Posts

Post navigation

Previous: PERANGKAT JARINGAN KOMPUTER
Next: Menguasai Open Broadcaster Software (OBS)

Related Stories

image
  • Artikel
  • Berita
  • Materi Kuliah

Network Administrator

Ahmad Gunawan September 2, 2026
112
  • Artikel
  • Berita
  • Materi Kuliah

Mengenal Ekosistem Web Development: Front-End, Back-End, Database, API, Framework, hingga DevOps

Ahmad Gunawan August 28, 2026
image
  • Artikel
  • Berita
  • Materi Kuliah

Testing dan Implementasi Sistem

Ahmad Gunawan August 10, 2026

Recent Posts

  • Network Administrator
  • Mengenal Ekosistem Web Development: Front-End, Back-End, Database, API, Framework, hingga DevOps
  • Testing dan Implementasi Sistem
  • Revolusi Multimedia Digital 2026: AI Generatif, Video Instan, dan Teknologi yang Sedang Mengubah Dunia
  • AI untuk Mahasiswa dan Dosen

Archives

  • September 2026
  • August 2026
  • July 2026
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • June 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019

Categories

  • Artikel
  • Berita
  • Materi Kuliah

You may have missed

image
  • Artikel
  • Berita
  • Materi Kuliah

Network Administrator

Ahmad Gunawan September 2, 2026
112
  • Artikel
  • Berita
  • Materi Kuliah

Mengenal Ekosistem Web Development: Front-End, Back-End, Database, API, Framework, hingga DevOps

Ahmad Gunawan August 28, 2026
image
  • Artikel
  • Berita
  • Materi Kuliah

Testing dan Implementasi Sistem

Ahmad Gunawan August 10, 2026
image
  • Artikel
  • Berita
  • Materi Kuliah

Revolusi Multimedia Digital 2026: AI Generatif, Video Instan, dan Teknologi yang Sedang Mengubah Dunia

Ahmad Gunawan July 7, 2026
Copyright © All rights reserved. | by AF themes.
imunify-bot-check