Pertanyaan analisis jarang berbunyi “berapa jumlahnya?” saja; ia lebih sering berbunyi “pada nilai berapa sesuatu terjadi?” Berapa gelas kopi harus terjual agar toko impas? Pada harga berapa permintaan turun separuh? Berapa anggaran iklan sebelum keuntungan berhenti tumbuh? Semua pertanyaan semacam itu diterjemahkan menjadi persamaan atau pertidaksamaan — pernyataan bahwa dua besaran sama nilainya, atau satu lebih besar dari yang lain. Pada chapter ini kita melatih penyelesaiannya secara bertahap, lalu memverifikasi setiap jawaban dengan substitusi dan loop di Python, persis seperti kebiasaan seorang analis yang tidak percaya angka sebelum angka itu lolos pemeriksaan ulang.
Persamaan Linear Satu Variabel #
Kita mulai dari kasus Toko Kopi Kita. Biaya tetap operasional bulanan adalah 450000 rupiah dan setiap gelas kopi susu memberi laba kotor 9000 rupiah, sehingga laba bersih mengikuti persamaan laba = 9000x - 450000 dengan x jumlah gelas terjual. Pemilik toko menetapkan target laba 900000 rupiah; pertanyaannya, berapa gelas yang harus terjual?
Penyelesaiannya adalah rangkaian pemindahan suku yang sudah kita kuasai pada chapter Aljabar Dasar : tambahkan 450000 ke kedua sisi, lalu bagi kedua sisi dengan 9000:
def laba(x):
"""Laba (Rp) dari penjualan x gelas kopi susu."""
biaya_tetap = 450000
laba_per_gelas = 9000
return laba_per_gelas * x - biaya_tetap
# Pertanyaan: berapa gelas agar laba mencapai 900000?
# 9000*x - 450000 = 900000
# 9000*x = 1350000 (kedua sisi ditambah 450000)
# x = 150 (kedua sisi dibagi 9000)
x = 1350000 / 9000
print(f"Solusi : x = {x} gelas")
print(f"Verifikasi laba(150) : Rp{laba(150)}")Output yang Dihasilkan:
Solusi : x = 150.0 gelas
Verifikasi laba(150) : Rp900000Baris terakhir adalah kebiasaan yang layak dibentuk sejak sekarang: setelah menemukan solusi, substitusikan kembali ke rumus aslinya. Fungsi laba() dipanggil dengan x = 150 dan hasilnya 900000 rupiah — sama dengan target, sehingga solusi terbukti benar. Pemeriksaan semacam ini murah tetapi menyelamatkan kita dari kesalahan pindah suku yang nyaris selalu muncul saat rumus mulai panjang.
Persamaan Kuadrat dan Diskriminan #
Persamaan kuadrat muncul ketika model memuat suku x^2 — misalnya pola penjualan musiman dari chapter Fungsi dan Grafik
. Bentuk umumnya adalah ax^2 + bx + c = 0, dan rumus pencari akarnya:
x = ( -b +- akar(b^2 - 4ac) ) / (2a)Bagian di dalam tanda akar, D = b^2 - 4ac, disebut diskriminan, dan nilainya memberi tahu jumlah solusi sebelum kita menghitung apa pun:
| Nilai diskriminan | Akar real | Makna pada grafik |
|---|---|---|
D > 0 | Dua akar berbeda | Parabola memotong sumbu-x di dua titik |
D = 0 | Satu akar kembar | Parabola menyinggung sumbu-x di satu titik |
D < 0 | Tidak ada akar real | Parabola tidak menyentuh sumbu-x |
Kita terapkan pada model penjualan mingguan s(x) = -x^2 + 8x + 5 (ribu gelas). Pada pekan ke berapa penjualan menyentuh 17 ribu gelas? Persamaan -x^2 + 8x + 5 = 17 disusun ulang menjadi x^2 - 8x + 12 = 0 — ingat, memindahkan seluruh suku ke satu sisi adalah langkah baku sebelum memakai rumus:
# Model penjualan mingguan (ribu gelas): s(x) = -x^2 + 8x + 5
# Pertanyaan: pada pekan ke berapa penjualan menyentuh 17 ribu gelas?
# -x^2 + 8x + 5 = 17 -> x^2 - 8x + 12 = 0
a, b, c = 1, -8, 12
d = b**2 - 4*a*c
x1 = (-b - d**0.5) / (2*a)
x2 = (-b + d**0.5) / (2*a)
print(f"Persamaan : x^2 - 8x + 12 = 0")
print(f"Diskriminan : {d}")
print(f"Akar-akar : x1 = {x1}, x2 = {x2}")
def s(x):
return -x**2 + 8*x + 5
print(f"Verifikasi : s(2) = {s(2)}, s(6) = {s(6)}")
print(f"Nilai puncak: s(4) = {s(4)}")Output yang Dihasilkan:
Persamaan : x^2 - 8x + 12 = 0
Diskriminan : 16
Akar-akar : x1 = 2.0, x2 = 6.0
Verifikasi : s(2) = 17, s(6) = 17
Nilai puncak: s(4) = 21Mari kita telaah baris-baris kode di atas:
- Baris 5-8 (
a, b, c = 1, -8, 12dst.): koefisien persamaan diambil dari hasil penyusunan ulang, lalu diskriminan dihitung lebih dulu — nilainya 16, positif, sehingga kita tahu ada dua akar real sebelum mencarinya. - Baris 9-10 (
x1,x2): rumus kuadrat diterjemahkan apa adanya;d**0.5adalah akar kuadrat, dan pemakaian tanda minus dan plus secara bergantian memberi dua akar: 2.0 dan 6.0. - Baris 16-17 (verifikasi): kedua akar disubstitusikan ke model asli
s(x)dan keduanya menghasilkan 17 — jawabannya, penjualan menyentuh 17 ribu gelas pada pekan ke-2 dan pekan ke-6. - Baris 18: nilai puncak
s(4) = 21berada tepat di tengah kedua akar, konsisten dengan simetri parabola yang sudah kita amati pada chapter fungsi.
Pertidaksamaan: Ketika Solusi Berupa Rentang #
Persamaan mencari titik; pertidaksamaan mencari rentang. Ketika pemilik toko bertanya “berapa gelas agar toko untung?”, yang dicari bukan satu angka melainkan seluruh kumpulan x yang memenuhi laba(x) > 0. Aljabarnya sama: 9000x - 450000 > 0 disusun ulang menjadi x > 50. Bedanya pada hasil: solusi berupa rentang, bukan titik. Karena hasil berupa rentang, verifikasi paling jujur dilakukan dengan mencoba beberapa nilai di sekitar batas:
def laba(x):
return 9000 * x - 450000
# Pertidaksamaan: laba(x) > 0
# 9000*x - 450000 > 0 -> 9000*x > 450000 -> x > 50
print("Nilai x yang diperiksa terhadap syarat laba(x) > 0:")
for x in range(48, 54):
status = "memenuhi" if laba(x) > 0 else "tidak"
print(f" x = {x} -> laba = Rp{laba(x):8d} ({status})")Output yang Dihasilkan:
Nilai x yang diperiksa terhadap syarat laba(x) > 0:
x = 48 -> laba = Rp -18000 (tidak)
x = 49 -> laba = Rp -9000 (tidak)
x = 50 -> laba = Rp 0 (tidak)
x = 51 -> laba = Rp 9000 (memenuhi)
x = 52 -> laba = Rp 18000 (memenuhi)
x = 53 -> laba = Rp 27000 (memenuhi)Pemindaian kecil ini mengonfirmasi dua hal sekaligus. Pertama, batas berada tepat di antara x = 50 dan x = 51, sesuai solusi aljabar x > 50. Kedua, x = 50 sendiri tidak memenuhi syarat — laba nol berarti impas, bukan untung — karena tanda yang dipakai adalah > yang ketat, bukan >=.
Pola verifikasi yang kita pakai di chapter ini — hitung aljabarnya, uji dengan substitusi, pindai nilai di sekitar batas — adalah pola yang akan terus kita pakai dengan peralatan yang lebih besar nanti: model machine learning pun pada dasarnya persamaan berparameter banyak, dan pengujian tetap dilakukan dengan cara yang sama yaitu menghitung ulang pada data.
Rangkuman #
- Persamaan linear satu variabel diselesaikan dengan memindahkan suku selangkah demi selangkah; selalu verifikasi dengan substitusi kembali.
- Diskriminan
D = b^2 - 4acmemberi tahu jumlah akar real persamaan kuadrat sebelum akarnya dihitung. - Rumus kuadrat diterjemahkan ke Python apa adanya;
d**0.5menghitung akar kuadrat. - Pertidaksamaan menghasilkan rentang solusi; verifikasinya dengan mencoba nilai di sekitar batas.
- Membagi pertidaksamaan dengan bilangan negatif membalik arah tanda.
Hingga titik ini semua persamaan kita hanya bermain dengan satu variabel x. Data sesungguhnya hadir dengan banyak variabel sekaligus — harga, volume, kalori, dan puluhan kolom lain yang berjajar dalam satu tabel. Untuk itu kita perlu dua struktur matematika yang dirancang persis untuk mengatur banyak angka sekaligus: vektor dan matriks, bahan chapter berikutnya.