Pengertian Prescriptive Analytics
Prescriptive Analytics adalah jenis analisis data yang bertujuan untuk memberikan rekomendasi tindakan berdasarkan prediksi dan simulasi. Analisis ini tidak hanya memprediksi apa yang mungkin terjadi di masa depan, tetapi juga menyarankan langkah-langkah optimal yang harus diambil untuk mencapai tujuan tertentu. Prescriptive Analytics sering digunakan dalam optimasi, seperti optimasi rantai pasok, manajemen inventaris, atau alokasi sumber daya.
Langkah-Langkah dalam Proyek Prescriptive Analytics
a. Mengumpulkan Data
- Kumpulkan data historis dan data terkait masalah yang ingin dioptimasi.
- Pastikan data mencakup variabel yang memengaruhi keputusan.
b. Membangun Model Prediktif
- Gunakan Predictive Analytics untuk memprediksi hasil dari berbagai skenario.
c. Membuat Model Optimasi
- Gunakan teknik optimasi seperti linear programming, integer programming, atau algoritma heuristik.
- Tentukan tujuan (misalnya meminimalkan biaya atau memaksimalkan keuntungan) dan batasan yang ada.
d. Memberikan Rekomendasi
- Hasilkan rekomendasi tindakan berdasarkan hasil optimasi.
Contoh Proyek Prescriptive Analytics
Studi Kasus: Optimasi Produksi
Kita akan membuat model untuk mengoptimalkan produksi suatu perusahaan yang memproduksi dua jenis produk (Produk A dan Produk B) dengan tujuan memaksimalkan keuntungan. Terdapat batasan pada bahan baku dan jam kerja.
Implementasi dengan Python
a. Mengimpor Library yang Dibutuhkan
from scipy.optimize import minimize import numpy as np
b. Menentukan Variabel dan Batasan
- Variabel Keputusan: Jumlah Produk A (x1) dan Produk B (x2) yang akan diproduksi.
- Fungsi Tujuan: Memaksimalkan keuntungan.
- Batasan:
- Bahan baku: 2×1 + 4×2 ≤ 100
- Jam kerja: 3×1 + 2×2 ≤ 90
- Produk A minimal 10 unit, Produk B minimal 5 unit.
# Fungsi tujuan (negatif karena kita ingin memaksimalkan) def fungsi_tujuan(x): return -(40 * x[0] + 30 * x[1]) # Keuntungan: 40 per Produk A, 30 per Produk B # Batasan batasan = [ {'type': 'ineq', 'fun': lambda x: 100 - (2 * x[0] + 4 * x[1])}, # Bahan baku {'type': 'ineq', 'fun': lambda x: 90 - (3 * x[0] + 2 * x[1])}, # Jam kerja {'type': 'ineq', 'fun': lambda x: x[0] - 10}, # Produk A minimal 10 {'type': 'ineq', 'fun': lambda x: x[1] - 5} # Produk B minimal 5 ] # Nilai awal (tebakan awal) x0 = [20, 20]
c. Menyelesaikan Masalah Optimasi
# Menyelesaikan masalah optimasi solusi = minimize(fungsi_tujuan, x0, method='SLSQP', constraints=batasan) # Menampilkan hasil print("Jumlah Produk A yang Diproduksi:", solusi.x[0]) print("Jumlah Produk B yang Diproduksi:", solusi.x[1]) print("Keuntungan Maksimal:", -solusi.fun)
Output:
Jumlah Produk A yang Diproduksi: 20.0 Jumlah Produk B yang Diproduksi: 15.0 Keuntungan Maksimal: 1250.0
d. Interpretasi Hasil
Berdasarkan hasil optimasi:
- Perusahaan harus memproduksi 20 unit Produk A dan 15 unit Produk B.
- Keuntungan maksimal yang dapat dicapai adalah 1.250 juta.
Latihan
- Cari masalah optimasi sederhana (misalnya alokasi anggaran, penjadwalan, atau distribusi sumber daya).
- Tentukan variabel keputusan, fungsi tujuan, dan batasan.
- Gunakan library seperti
scipy.optimize
untuk menyelesaikan masalah optimasi. - Berikan rekomendasi berdasarkan hasil optimasi.
Kesimpulan
Prescriptive Analytics membantu kita membuat keputusan yang optimal dengan mempertimbangkan berbagai batasan dan tujuan. Dalam proyek ini, kita menggunakan Python untuk mengoptimalkan produksi suatu perusahaan. Dengan teknik ini, kita dapat memberikan rekomendasi yang berdampak positif pada kinerja bisnis.
Contoh Lain: Optimasi Rute Pengiriman
Berikut adalah contoh lain menggunakan Prescriptive Analytics untuk mengoptimalkan rute pengiriman:
a. Masalah
- Sebuah perusahaan logistik ingin mengoptimalkan rute pengiriman untuk meminimalkan jarak tempuh.
- Terdapat 4 lokasi yang harus dikunjungi (termasuk gudang).
b. Implementasi
from itertools import permutations # Jarak antar lokasi (dalam km) jarak = { ('Gudang', 'Lokasi A'): 10, ('Gudang', 'Lokasi B'): 15, ('Gudang', 'Lokasi C'): 20, ('Lokasi A', 'Lokasi B'): 5, ('Lokasi A', 'Lokasi C'): 12, ('Lokasi B', 'Lokasi C'): 8 } # Fungsi untuk menghitung total jarak rute def hitung_jarak(rute): total = 0 for i in range(len(rute) - 1): total += jarak.get((rute[i], rute[i+1]), jarak.get((rute[i+1], rute[i]))) return total # Daftar semua rute yang mungkin lokasi = ['Gudang', 'Lokasi A', 'Lokasi B', 'Lokasi C'] semua_rute = permutations(lokasi[1:]) # Mencari rute terpendek rute_terpendek = None jarak_terpendek = float('inf') for rute in semua_rute: rute_lengkap = ('Gudang',) + rute + ('Gudang',) jarak_rute = hitung_jarak(rute_lengkap) if jarak_rute < jarak_terpendek: jarak_terpendek = jarak_rute rute_terpendek = rute_lengkap print("Rute Terpendek:", rute_terpendek) print("Jarak Tempuh:", jarak_terpendek, "km")
Output:
Rute Terpendek: ('Gudang', 'Lokasi A', 'Lokasi B', 'Lokasi C', 'Gudang') Jarak Tempuh: 43 km
Kesimpulan Umum
Prescriptive Analytics adalah alat yang sangat berguna untuk membuat keputusan yang optimal. Dengan menggabungkan prediksi dan optimasi, kita dapat memberikan rekomendasi yang berdampak signifikan pada bisnis atau organisasi.