Pertidaksamaan

Manipulasi batas bilangan dan cara berpikir interval.

Daftar isi

Pertidaksamaan menyatakan bahwa suatu nilai berada di satu sisi batas tertentu, dan bentuk ini muncul pada hampir setiap baris kode yang memeriksa syarat, rentang, atau ambang. Topik ini membahas aturan manipulasi pertidaksamaan, penulisan himpunan penyelesaiannya sebagai interval, serta penerjemahannya ke pemeriksaan numerik pada NumPy beserta kehati-hatian toleransinya. Setelah topik ini dipahami, manipulasi batas bilangan dapat dilakukan dengan benar dan kondisi rentang pada kode dapat dirancang dengan sadar.

Aturan manipulasi pertidaksamaan#

Pertidaksamaan dapat dimanipulasi seperti persamaan, tetapi ada satu perbedaan yang menentukan kebenaran hasilnya. Menambahkan atau mengurangkan bilangan yang sama pada kedua ruas tidak mengubah arah pertidaksamaan, dan mengalikan atau membagi kedua ruas dengan bilangan positif juga mempertahankan arahnya. Perubahan arah hanya terjadi pada satu kasus, yaitu ketika kedua ruas dikalikan atau dibagi dengan bilangan negatif, sebab urutan nilai pada garis bilangan ikut terbalik.

−2<3(−2)×(−1)>3×(−1) -2 < 3 \qquad (-2) \times (-1) > 3 \times (-1)

Contoh di atas memperlihatkan bahwa −2-2 lebih kecil daripada 33, tetapi setelah keduanya dikalikan dengan −1-1, urutannya menjadi terbalik. Aturan lengkapnya dirangkum sebagai berikut.

  • Menambah atau mengurangkan bilangan yang sama pada kedua ruas mempertahankan arah pertidaksamaan.
  • Mengalikan atau membagi kedua ruas dengan bilangan positif mempertahankan arah pertidaksamaan.
  • Mengalikan atau membagi kedua ruas dengan bilangan negatif membalik arah pertidaksamaan, sehingga tanda ≤\leq berubah menjadi ≥\geq.

Penyelesaian −2x+3≤7-2x + 3 \leq 7 menggunakan ketiga aturan tersebut secara berurutan.

−2x+3≤7⇒−2x≤4⇒x≥−2 -2x + 3 \leq 7 \quad \Rightarrow \quad -2x \leq 4 \quad \Rightarrow \quad x \geq -2

Langkah kedua membagi kedua ruas dengan −2-2, sehingga tanda pertidaksamaan wajib dibalik. Himpunan penyelesaiannya adalah semua xx yang lebih besar atau sama dengan −2-2, dan bentuk inilah yang dibahas sebagai interval pada bagian berikutnya.

Interval dan garis bilangan#

Himpunan penyelesaian pertidaksamaan pada satu variabel berbentuk potongan garis bilangan yang disebut interval. Interval ditulis dengan tanda kurung yang membawa informasi tentang ujungnya, yaitu tanda kurung siku apabila ujung termasuk dan tanda kurung biasa apabila ujung tidak termasuk. Simbol ∞\infty selalu disandingkan dengan tanda kurung biasa karena tak hingga bukan bilangan yang dapat dicapai.

NotasiMaknaPadanan pertidaksamaan
[a,b][a, b]kedua ujung termasuka≤x≤ba \leq x \leq b
(a,b)(a, b)kedua ujung tidak termasuka<x<ba < x < b
[a,b)[a, b)ujung kiri termasuk, ujung kanan tidaka≤x<ba \leq x < b
(−∞,b](-\infty, b]berlanjut tanpa batas ke kirix≤bx \leq b

Diagram berikut menggambar tiga interval pada garis bilangan, dengan titik penuh untuk ujung yang termasuk dan titik kosong untuk ujung yang tidak termasuk.

Tiga interval pada garis bilangan dengan ujung terbuka dan tertutup

Perbedaan antara ujung yang termasuk dan yang tidak sering berdampak nyata pada program. Syarat x >= -2 menerima nilai −2-2, sedangkan x > -2 menolaknya, dan keputusan ini perlu disesuaikan dengan makna batas pada masalah yang diselesaikan. Syarat usia minimal pada pendaftaran contohnya menggunakan tanda ≥\geq, karena pendaftar yang berusia tepat pada batas memang dimaksudkan untuk diterima.

Menguji penyelesaian dengan kode#

Kebenaran penyelesaian pertidaksamaan dapat diuji dengan menilai pertidaksamaan asli pada sejumlah nilai uji. NumPy mengevaluasi pertidaksamaan pada seluruh elemen array sekaligus, sehingga hasilnya berupa array nilai kebenaran yang mudah dibaca. Nilai uji tidak perlu banyak, tetapi pilihannya perlu mencerminkan struktur jawaban, yaitu sekitar titik batas beserta beberapa nilai di kiri dan kanannya.

python Contoh: pengujian penyelesaian -2x + 3 <= 7
import numpy as np

uji = np.array([-3.0, -2.0, -1.0, 0.0, 5.0])
print(-2 * uji + 3 <= 7)
text Keluaran
[False  True  True  True  True]

Keluaran tersebut menunjukkan False hanya pada nilai −3-3, sedangkan empat nilai lainnya memenuhi pertidaksamaan. Pola ini sesuai dengan penyelesaian x≥−2x \geq -2 pada bagian pertama, karena −3-3 adalah satu-satunya nilai uji yang berada di luar interval tersebut. Nilai uji yang baik mencakup titik batas itu sendiri beserta nilai di kiri dan kanannya, karena perbedaan <= dan < hanya terlihat tepat pada batas. Nilai −2-2 pada contoh sengaja disertakan untuk memastikan ujung interval benar-benar termasuk. Prinsip yang sama berlaku ketika pertidaksamaannya lebih rumit, karena nilai uji tetap dinilai pada bentuk aslinya tanpa perlu menyederhanakan aljabarnya terlebih dahulu. Pengujian semacam ini berbiaya kecil dan menangkap kekeliruan tanda yang paling sering terjadi pada manipulasi manual.

Batas nilai dan toleransi epsilon#

Banyak program perlu menahan nilai agar tetap berada dalam rentang tertentu, dan operasi ini disebut clipping. NumPy menyediakan np.clip yang memotong nilai di bawah batas bawah ke batas bawah, serta di atas batas atas ke batas atas. Rentang suhu yang sah pada pencatatan sensor contohnya langsung diterjemahkan menjadi pasangan batas bawah dan batas atas pada fungsi tersebut.

python Contoh: penahanan nilai ke dalam rentang dengan np.clip
import numpy as np

suhu = np.array([-12.0, -3.4, 0.0, 8.7, 30.2])
print(np.clip(suhu, -5.0, 25.0))
text Keluaran
[-5.  -3.4  0.   8.7 25. ]

Nilai −12-12 ditahan ke −5-5, nilai 30.230.2 ditahan ke 25.025.0, dan tiga nilai di dalam rentang dibiarkan apa adanya. Operasi ini setara dengan penerapan dua pertidaksamaan sekaligus, yaitu nilai >= bawah dan nilai <= atas, lalu penyesuaian nilai yang melanggar batas tersebut.

Perbandingan pertidaksamaan pada bilangan float juga memerlukan toleransi. Persamaan 0.1 + 0.2 == 0.3 bernilai False karena selisih hampiran, tetapi pertidaksamaan dengan toleransi memberikan ruang untuk selisih kecil semacam itu.

python Contoh: perbandingan dengan toleransi epsilon
import numpy as np

a = 0.1 + 0.2
print(a == 0.3)
print(np.isclose(a, 0.3))
print(abs(a - 0.3) < 1e-9)
text Keluaran
False
True
True

Bentuk abs(a - 0.3) < 1e-9 adalah pola dasar pemeriksaan dengan toleransi, yaitu selisih dinyatakan sebagai pertidaksamaan terhadap nilai epsilon yang dipilih. Fungsi np.isclose membungkus pola tersebut dengan toleransi bawaan yang wajar untuk kebanyakan kasus.

Di mana hal ini ditemui dalam kode#

Pertidaksamaan berfungsi sebagai gerbang logika pada hampir semua program. Validasi masukan memeriksa rentang seperti 0 < banyaknya < 100 sebelum data diproses lebih lanjut, dan kondisi perulangan while sisa > 0 menentukan kapan perulangan berhenti. Pada machine learning, ambang keputusan seperti probabilitas >= 0.5 mengubah keluaran model menjadi kelas akhir, sedangkan penjadwalan ulang percobaan sering menggunakan batas seperti waktu_tunggu <= 60. Pola penahanan nilai juga muncul pada pengaturan volume, rentang indeks, dan normalisasi warna agar hasil tetap sah. Pemeriksaan yang melibatkan seluruh data, misalnya memastikan semua selisih bernilai positif, dirangkai dari pertidaksamaan serupa melalui fungsi seperti np.all.

Cara berpikir interval juga terbawa ke dalam kode. Penyaringan data pada rentang tanggal adalah interval tertutup, ambang kesabaran ulang adalah interval setengah terbuka, dan rentang probabilitas [0,1][0, 1] menjadi batas sah yang wajib dijaga. Ketika program dirancang dengan menyebutkan intervalnya secara eksplisit, pemeriksaan batas menjadi lebih mudah dibaca, diuji, dan dipertahankan daripada gabungan kondisi yang tersebar tanpa pola. Kebiasaan tersebut juga memudahkan penulisan uji, karena setiap ujung interval dapat diberi satu kasus uji tersendiri.

Ringkasan#

  • Menambah bilangan yang sama pada kedua ruas mempertahankan arah pertidaksamaan, sedangkan perkalian atau pembagian dengan bilangan negatif wajib membalik arahnya.
  • Himpunan penyelesaian ditulis sebagai interval, dengan kurung siku untuk ujung yang termasuk dan kurung biasa untuk ujung yang tidak termasuk.
  • Penyelesaian dapat diuji dengan menilai pertidaksamaan pada array nilai uji, dan np.clip menerapkan batas bawah serta batas atas pada data sekaligus.
  • Perbandingan float memerlukan toleransi berupa pola abs(selisih) < epsilon atau np.isclose, dengan epsilon yang dipilih sesuai skala data.

Referensi#