Cover Image

Tutorial Membuat Affiliate Tracking System dengan PHP & MySQL: Referral, Komisi & Dashboard Lengkap (Production Ready 2026)

Pendahuluan

Affiliate marketing adalah salah satu sistem monetisasi paling powerful di 2026. Dengan sistem referral yang rapi, Anda bisa meningkatkan penjualan tanpa biaya iklan besar.

Harga Terus Naik, Kenapa Hidup Banyak Orang Terasa Semakin Berat?

Dalam tutorial ini kita akan membangun Affiliate Tracking System lengkap dengan:

  • Referral Code Unik
  • Tracking Klik Otomatis
  • Tracking Konversi
  • Sistem Komisi (%)
  • Dashboard Affiliate
  • Status Payout
  • Proteksi Keamanan Dasar

1. Struktur Folder


/affiliate-system
│
├── config/
│   └── database.php
│
├── auth/
│   ├── register.php
│   ├── login.php
│
├── affiliate/
│   ├── dashboard.php
│   └── generate_link.php
│
├── track.php
└── index.php

2. Database Structure


CREATE DATABASE affiliate_system;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(100),
  email VARCHAR(150) UNIQUE,
  password VARCHAR(255),
  referral_code VARCHAR(50) UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE referrals (
  id INT AUTO_INCREMENT PRIMARY KEY,
  referrer_id INT,
  referred_user_id INT,
  commission DECIMAL(10,2),
  status ENUM('pending','approved','paid') DEFAULT 'pending',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE clicks (
  id INT AUTO_INCREMENT PRIMARY KEY,
  referrer_id INT,
  ip_address VARCHAR(50),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3. Koneksi Database


<?php
$conn = new mysqli("localhost","root","","affiliate_system");
if ($conn->connect_error) {
    die("Connection failed");
}
?>

4. Register + Generate Referral Code


<?php
include "../config/database.php";

$username = htmlspecialchars($_POST['username']);
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$ref_code = substr(md5(uniqid()),0,8);

$stmt = $conn->prepare("INSERT INTO users (username,email,password,referral_code) VALUES (?,?,?,?)");
$stmt->bind_param("ssss",$username,$email,$password,$ref_code);
$stmt->execute();

echo "Register berhasil";
?>

5. Generate Link Affiliate


session_start();
include "../config/database.php";

$user_id = $_SESSION['user_id'];

$stmt=$conn->prepare("SELECT referral_code FROM users WHERE id=?");
$stmt->bind_param("i",$user_id);
$stmt->execute();
$data=$stmt->get_result()->fetch_assoc();

echo "Link Affiliate Anda: ";
echo "https://domainanda.com/track.php?ref=".$data['referral_code'];

6. Tracking Klik (track.php)


include "config/database.php";

$ref_code = $_GET['ref'];

$stmt=$conn->prepare("SELECT id FROM users WHERE referral_code=?");
$stmt->bind_param("s",$ref_code);
$stmt->execute();
$user=$stmt->get_result()->fetch_assoc();

if($user){
    $ip=$_SERVER['REMOTE_ADDR'];

    $stmt=$conn->prepare("INSERT INTO clicks (referrer_id,ip_address) VALUES (?,?)");
    $stmt->bind_param("is",$user['id'],$ip);
    $stmt->execute();

    setcookie("referrer_id",$user['id'],time()+86400*30,"/");
}

header("Location: register.html");

7. Tracking Konversi Saat Register


if(isset($_COOKIE['referrer_id'])){
    $referrer_id = $_COOKIE['referrer_id'];
    $commission = 50000;

    $stmt=$conn->prepare("INSERT INTO referrals (referrer_id,referred_user_id,commission) VALUES (?,?,?)");
    $stmt->bind_param("iid",$referrer_id,$new_user_id,$commission);
    $stmt->execute();
}

8. Dashboard Affiliate


session_start();
include "../config/database.php";

$user_id=$_SESSION['user_id'];

$result=$conn->query("SELECT SUM(commission) as total FROM referrals 
WHERE referrer_id=$user_id AND status='approved'");

$data=$result->fetch_assoc();

echo "Total Komisi Disetujui: Rp ".$data['total'];

9. Approve & Payout (Admin)


UPDATE referrals 
SET status='approved' 
WHERE id=1;

UPDATE referrals 
SET status='paid' 
WHERE id=1;

10. Production Security Checklist

  • ✔ Gunakan Prepared Statement
  • ✔ Validasi IP untuk mencegah spam klik
  • ✔ Rate Limit Tracking
  • ✔ Validasi Cookie
  • ✔ Logging Aktivitas
  • ✔ HTTPS aktif

Pengembangan Lanjutan

  • Multi-level affiliate
  • Persentase komisi dinamis
  • Minimum payout threshold
  • Integrasi ke sistem membership
  • Integrasi ke SaaS
  • Statistik klik & konversi grafik

Dengan sistem ini, Anda sudah memiliki Affiliate Tracking System Production Ready yang bisa digabung dengan SaaS atau Membership.

Tutorial Membuat SaaS Multi-Tenant dengan PHP & MySQL: Sistem Subscription, Billing & Role Management (Production Ready 2026)