Trigonometri & Pemrograman, Persahabatan yang Klop

Saat mendengar sin, kos, tangen, atau sini ke kos aku kangen sinus, kosinus, tangen, kita akan berpikir sebuah episode horor matematika.

Saya sendiri waktu SMA pun ikut merinding kalau masuk ke pelajaran trigonometri. Masalahnya saya juga nggak ngerti. 😞

Tetapi saya justru baru paham trigonometri pas masuk ke dunia programming. Dan ternyata sama sekali nggak susah, seenggaknya untuk kebutuhan dasar. Saya sendiri suka pake kok.

Tapi kenapa harus trigonometri? Kenapa nggak pake alternatif lain yang lebih nggak horor?

Kenapa Harus Trigonometri?

Kenapa harus ada trigonometri alias sin kos tan? Ternyata itu kepake banget buat nentuin sebuah posisi, terutama kalau bentuknya lingkaran.

Saya yakin kita semua bisa tentuin posisi X, Y sebuah titik di bidang lurus kayak persegi atau segitiga, tapi kalau lingkaran?

Contoh, bayangkan garis panjangnya 10cm, di mana posisi titik setengah garis tersebut? Pasti pada jawab 5cm. Gampang.

Sekarang di mana posisi sebuah titik pada sudut 45 derajat lingkaran dengan radius 10cm? Nah loh!

Nah, saatnya sin dan cos langsung action.

Lihat sekarang sebuah jam dinding yang analog ya, bukan digital. Pertanyaan saya, di mana posisi titik jam 1?

Gampang kok. Sekarang jarak setiap jam itu kan 30 derajat ya, berarti jam 1 itu 30 derajat, jam 2 itu 60 derajat, jam 3 itu 90 derajat, dst.

Nah, posisi X jam 1 yang 30 derajat itu cukup sinus dari 30 derajat ajah.

Posisi Y nya dari jam 1, cukup kosinus dari 30 derajat juga (kalau hasilnya kebalik tinggal dikasih tanda minus aja, soalnya kordinat Y kosinus mulai dari bawah btw).

Kelar udah. Serius, kelar udah.

Tapi sinus 30 derajat itu berapa? Ya tinggal pake kalkulator aja. Hidup kok dibikin ribet. 😝

Intinya di mana ada lingkaran atau persudutan, di situ ada trigonometri.

Derajat dan Radian

Di sekolah, kita sering belajar derajat sebuah sudut. Misalnya setengah lingkaran itu sudutnya 180 derajat, satu lingkaran penuh itu 360 derajat.

Masalahnya, komputer nggak kenal apa itu derajat. Komputer cuma kenal radian.

Lho, kenapa komputer milih radian daripada derajat? Mungkin supaya lebih gampang perhitungannya? Entah.

Radian itu apa sih? Radian adalah satuan pengganti sudut, yang berasal dari jari-jari lingkaran.

Udah itu aja.

Misalnya setengah lingkaran itu kan 180 derajat, sama dengan 3.14 radian atau satu PI radian. Kalau satu lingkaran penuh berarti 360 derajat atau 6.28 radian (2 PI radian).

Yoi, 1 PI (π) itu kan 3.14. Jadi 3.14 radian ya sama aja 1 PI radian.

Biar gampang, simak animasi gif yang saya comot dari wikipedia berikut.

Trigonometri

Tapi jangan khawatirin itunya plis. Soalnya saya juga bakal pusing kalau mikirin angka yang ribet-ribet wakakak.

Konversi

Nah, kayak tadi. Kita kan udah bisa nentuin posisi X dan Y dari jam 1 pake sinus kosinus, cuma masih pake derajat, sedangkan komputer maunya pake radian gak mau pake derajat.

Sekarang, gimana caranya ubah derajat ke radian?

Tadi kita paham kalau 180 derajat itu adalah 3.14 radian atau satu PI radian, ya tinggal rasio-in aja, mirip kayak kita ubah ke persen.

radian = derajat × PI / 180

Begitu aja kok rumusnya. Tinggal kita adaptasi aja ke bahasa pemrograman favorit kita. Ini contohnya kalau pakai JS:

function derajatKeRadian(derajat) {
    return derajat * Math.PI / 180
}

Nah kalau udah dikonversi, tinggal pake deh.

Misal tadi, berapa sinus dari 30 derajat kalau pake radian? Ini kalau pakai JS:

function derajatKeRadian(derajat) {
    return derajat * Math.PI / 180
}

let derajat = 30
let radian30 = derajatKeRadian(derajat)

let x = Math.sin(radian30)
let y = -Math.cos(radian30)
// Kosinusnya pake minus karena ya tadi, kosinus mulai kordinat Ynya dari bawah, sedangkan kita kan pengen mulai dari atas

Gampangnya coba lihat interaktif berikut.

Penerapan

Udah gitu doang? Iya. Udah gitu doang. Prinsip dasarnya memang cuma gitu doang.

Tapi kok pas saya coba kode di atas posisi jam satunya jadi kecil banget? Ya iyalah skupnya kan cuma dari 0 sampe 1 doang. Kalau kita pengen gedein, misalnya kita pengen ukuran jam dindingnya itu 100 piksel, ya tinggal kali aja 50 atau setengah dari diameter jamnya.

Jangan lupa kita posisi-in di posisi yang kita suka.

function derajatKeRadian(derajat) {
    return derajat * Math.PI / 180
}

let derajat = 30
let radian30 = derajatKeRadian(derajat)

let radius = 30 // Misalnya kita ingin diameter jamnya 60px
let posisiX = 100 // Misalnya kita pengen jamnya ada di posisi 100px
let posisiY = 100 // Posisi Ynya juga. Bebas, tentuin aja sesuka hati

// Jangan lupa kasih radius ukuran sama posisi yang kita pengen
let x = Math.sin(radian30) * radius + posisiX
let y = -Math.cos(radian30) * radius + posisiY

Silakan bermain-main dengan interaktif berikut:

Lho, dari interaktif di atas, bedanya sin sama cos apa? Kok gerakannya sama aja? Kalau tan kan grabak-grebek.

Bedanya, titik mulai dia geraknya. Udah itu aja. Makanya kalau sin sama cos digabung, gerakannya akan jadi lingkaran. Yang tadi saya bilang, di mana ada lingkaran, di situ ada trigonometri.

Tantangan

Nah, kalau kita udah paham bahwa segampang itu prinsip dasar trigonometri, boleh dong kita matengin lagi…?

Sekarang coba kita buat segi lima, segi enam, segi delapan, atau segi berapa pun pake sinus kosinus itu. Posisiin aja titik-titiknya, di mana posisi X dan Y dari masing-masing titiknya. Gak usah pake garis juga nggak apa-apa.

Selamat mencoba. 😉

Ciyyeee langsung jadi master sin kos tan deh ~

Sebelumnya
Bitwise? Apa Itu? Yuk Kenalan, Gak Galak Kok...

Berikutnya
Regex, Apakah Sehoror Urban Legend?

0 Jejak Manis yang Ditinggalkan

Minta Komentarnya Dong...

Silakan tulis komentar kalian di sini, yang ada bintangnya wajib diisi ya...
Dan jangan khawatir, email kalian tetap dirahasiakan. 😉

Kembali
Ke Atas