Sudut dan Radian

Pengukuran sudut pada lingkaran dan alasan radian lebih unggul.

Daftar isi

Topik ini membahas dua satuan pengukuran sudut, yaitu derajat dan radian, beserta hubungan keduanya pada sebuah lingkaran. Pembahasan bergerak dari definisi radian melalui panjang busur, konversi antar satuan dengan NumPy, pembuatan diagram sudut, hingga demo interaktif yang dapat langsung dicoba. Setelah topik ini selesai dibaca, sudut dapat dinyatakan dalam satuan yang tepat, dan alasan fungsi trigonometri NumPy menerima radian dapat dijelaskan dari geometrinya.

Derajat dan radian pada lingkaran#

Derajat membagi satu putaran penuh menjadi 360 bagian sama besar, sedangkan radian mengukur sudut dari panjang busur yang dibentuknya pada lingkaran. Sebuah sudut pusat bernilai satu radian apabila busur yang dibatasi kedua jari-jarinya sama panjang dengan jari-jari lingkaran. Besar sudut dalam radian oleh karena itu dinyatakan sebagai perbandingan berikut.

θ=sr \theta = \frac{s}{r}

Dengan ss menyatakan panjang busur dan rr jari-jari, hasil bagi tersebut berupa bilangan murni tanpa satuan. Satu putaran penuh menempuh busur sepanjang keliling lingkaran 2πr2\pi r, sehingga satu putaran penuh sama dengan 2π2\pi radian. Karena putaran yang sama juga berarti 360∘360^\circ, hubungan kedua satuan itu menjadi titik tolak setiap konversi.

Diagram berikut memperlihatkan sudut pusat beserta busurnya, yaitu bentuk geometri yang mendasari definisi radian. Panjang busur merah dibandingkan dengan jari-jari biru, dan perbandingan itulah nilai sudutnya dalam radian. Label pada busurnya merujuk rumus panjang busur yang diterapkan pada bagian berikutnya.

Sudut pusat beserta panjang busurnya pada sebuah lingkaran

Perbandingan tersebut membuat radian bersifat alami. Nilai sr\frac{s}{r} tidak bergantung pada besar lingkaran, sehingga sudut yang sama tetap bernilai sama apabila lingkarannya diperbesar atau diperkecil. Derajat tidak memiliki sifat ini karena angka 360 merupakan konvensi pembagian, bukan besaran yang muncul dari geometri lingkaran. Derajat tetap berguna untuk penyajian yang mudah dibaca manusia, sedangkan perhitungan pada program umumnya menggunakan radian.

Konversi derajat dan radian dengan NumPy#

Hubungan antara kedua satuan menghasilkan dua rumus konversi, satu untuk setiap arah. Faktor pengalinya berupa π180\frac{\pi}{180} untuk arah derajat ke radian dan kebalikannya untuk arah radian ke derajat. Keduanya ditulis sebagai berikut.

radian=derajat×π180,derajat=radian×180π \text{radian} = \text{derajat} \times \frac{\pi}{180}, \qquad \text{derajat} = \text{radian} \times \frac{180}{\pi}

NumPy menyediakan pasangan fungsi np.deg2rad dan np.rad2deg untuk kedua arah, sedangkan konstanta π\pi tersedia sebagai np.pi. Skrip utuh berikut menerapkan keduanya pada beberapa sudut yang sering muncul, lalu memeriksa rumus panjang busur s=rθs = r\theta. Setiap baris keluarannya dapat dihitung ulang secara manual untuk memastikan kecocokannya.

python konversi_sudut.py
import numpy as np

derajat = np.array([0.0, 30.0, 45.0, 60.0, 90.0, 180.0, 360.0])
radian = np.deg2rad(derajat)

for d, r in zip(derajat, radian):
    print(f"{d:6.1f} derajat = {r:8.4f} radian")

# satu radian dinyatakan kembali dalam derajat
print(f"1 radian = {np.rad2deg(1.0):.4f} derajat")

# rumus panjang busur s = r·θ diperiksa dengan r = 1.5 dan θ = 0.8 radian
r, t = 1.5, 0.8
print(f"busur s = r·θ pada r = {r} dan θ = {t} : {r * t:.4f}")
text Keluaran
   0.0 derajat =   0.0000 radian
  30.0 derajat =   0.5236 radian
  45.0 derajat =   0.7854 radian
  60.0 derajat =   1.0472 radian
  90.0 derajat =   1.5708 radian
 180.0 derajat =   3.1416 radian
 360.0 derajat =   6.2832 radian
1 radian = 57.2958 derajat
busur s = r·θ pada r = 1.5 dan θ = 0.8 : 1.2000

Keluaran tersebut memuat beberapa nilai yang patut dikenali. Sudut 90∘90^\circ setara π2\frac{\pi}{2} radian yang tercetak 1.57081.5708, sedangkan satu radian setara 57.295857.2958 derajat, jauh lebih besar daripada satu derajat. Baris terakhir menghitung panjang busur untuk r=1.5r = 1.5 dan θ=0.8\theta = 0.8, dan hasilnya 1.21.2 persis sama dengan hasil kali keduanya. Rumus busur bekerja tanpa faktor koreksi karena radian memang diturunkan dari perbandingan busur terhadap jari-jari.

Menghasilkan diagram sudut dari kode#

Diagram lingkaran pada bagian pertama dibuat oleh skrip matplotlib berikut. Lingkaran penuh digambar dari 400 titik hasil np.linspace pada rentang 00 sampai 2π2\pi, sedangkan busur merah tebal menggunakan rentang yang lebih pendek dari 00 sampai θ\theta. Pemanggilan ax.set_aspect("equal") menjaga skala kedua sumbu tetap sama, sehingga lingkaran tidak berubah bentuk menjadi elips.

python gambar_sudut.py
import numpy as np
import matplotlib

matplotlib.use("Agg")  # backend tanpa jendela, cocok untuk menyimpan berkas
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(5, 5))
ax.set_aspect("equal")

r = 1.0
theta = np.deg2rad(52.0)

# lingkaran penuh berwarna abu-abu
t = np.linspace(0.0, 2 * np.pi, 400)
ax.plot(r * np.cos(t), r * np.sin(t), color="#999999", linewidth=1.5)

# dua jari-jari biru yang membentuk sudut pusat
ax.plot([0, r], [0, 0], color="#1f77b4", linewidth=2.2)
ax.plot([0, r * np.cos(theta)], [0, r * np.sin(theta)], color="#1f77b4", linewidth=2.2)
ax.plot(0, 0, "o", color="#444444", markersize=4)

# busur merah tebal di antara kedua jari-jari
busur = np.linspace(0.0, theta, 120)
ax.plot(r * np.cos(busur), r * np.sin(busur), color="#d62728", linewidth=4.0)

# label
ax.text(0.42, -0.10, "r", color="#1f77b4", fontsize=14, ha="center")
ax.text(0.26, 0.50, "r", color="#1f77b4", fontsize=14, ha="center")
ax.text(0.41, 0.21, "θ", fontsize=14, ha="center", color="#444444")
ax.text(0.66, 0.32, "s = r·θ", color="#d62728", fontsize=13, ha="center")

ax.set_xlim(-1.25, 1.25)
ax.set_ylim(-1.25, 1.25)
ax.axis("off")
plt.tight_layout()
plt.savefig("sudut-radian.svg")

Skrip berjalan penuh pada lingkungan tanpa layar karena matplotlib.use("Agg") memilih backend yang hanya menyimpan berkas tanpa membuka jendela. Hasilnya adalah berkas sudut-radian.svg, yaitu berkas yang sama dengan diagram yang telah ditampilkan sebelumnya. Komentar pada setiap kelompok baris menandai bagian yang digambar, sehingga skripnya mudah diubah untuk sudut atau warna yang berbeda. Pola semacam ini berlaku secara umum untuk menggambar bentuk geometri apa pun pada jalur ini.

Mencoba konversi secara interaktif#

Demo berikut mengulang konversi derajat ke radian pada sebuah kanvas. Geser penggesernya dari 0 sampai 360 derajat, kemudian amati tiga baris nilai di bawah kanvas, yaitu nilai radian, panjang busur pada lingkaran satuan, dan bagian dari satu putaran penuh. Dua nilai pertama selalu sama angkanya karena lingkaran satuan berjari-jari tepat satu, sehingga busurnya persis sepanjang sudutnya. Perubahan terkecil pada penggeser langsung memperbarui ketiganya.

Kode sumber demo
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<title>Demo konversi derajat ke radian</title>
<style>
  body { font-family: sans-serif; margin: 0; padding: 10px; color: #222; }
  canvas { background: #fafafa; border: 1px solid #ddd; max-width: 100%; }
  .kontrol { margin-top: 8px; }
  .baris { margin-top: 4px; font-size: 14px; }
  .nilai { display: inline-block; min-width: 130px; font-weight: bold; }
</style>
</head>
<body>
<canvas id="kanvas" width="460" height="280"></canvas>
<div class="kontrol">
  <label for="sudut">Sudut: <span id="teksSudut">52</span>°</label>
  <input type="range" id="sudut" min="0" max="360" value="52" style="width: 100%">
  <div class="baris">Nilai radian: <span class="nilai" id="nilaiRadian"></span></div>
  <div class="baris">Busur pada lingkaran satuan (r = 1): <span class="nilai" id="nilaiBusur"></span></div>
  <div class="baris">Bagian dari satu putaran penuh: <span class="nilai" id="nilaiBagian"></span></div>
</div>
<script>
  const kanvas = document.getElementById('kanvas');
  const ctx = kanvas.getContext('2d');
  const slider = document.getElementById('sudut');
  const pusatX = 110, pusatY = 140, jari = 80;

  function gambar() {
    const derajat = Number(slider.value);
    const radian = derajat * Math.PI / 180;
    ctx.clearRect(0, 0, kanvas.width, kanvas.height);

    // lingkaran penuh berwarna abu-abu
    ctx.beginPath();
    ctx.arc(pusatX, pusatY, jari, 0, 2 * Math.PI);
    ctx.strokeStyle = '#999999';
    ctx.lineWidth = 1.5;
    ctx.stroke();

    // busur merah dari sudut nol sampai sudut terpilih
    ctx.beginPath();
    ctx.arc(pusatX, pusatY, jari, 0, -radian, true);
    ctx.strokeStyle = '#d62728';
    ctx.lineWidth = 4;
    ctx.stroke();

    // dua jari-jari biru
    ctx.beginPath();
    ctx.moveTo(pusatX, pusatY);
    ctx.lineTo(pusatX + jari, pusatY);
    ctx.moveTo(pusatX, pusatY);
    ctx.lineTo(pusatX + jari * Math.cos(radian), pusatY - jari * Math.sin(radian));
    ctx.strokeStyle = '#1f77b4';
    ctx.lineWidth = 2.2;
    ctx.stroke();

    document.getElementById('teksSudut').textContent = String(derajat);
    document.getElementById('nilaiRadian').textContent = radian.toFixed(4) + ' rad';
    document.getElementById('nilaiBusur').textContent = radian.toFixed(4) + ' kali jari-jari';
    document.getElementById('nilaiBagian').textContent = (derajat / 360).toFixed(4) + ' putaran';
  }

  slider.addEventListener('input', gambar);
  gambar();
</script>
</body>
</html>

Pada kode sumbernya, konversi dikerjakan oleh satu ekspresi derajat * Math.PI / 180 yang sesuai dengan rumus pada bagian sebelumnya. Kanvas menggambar busur merah dari sudut nol sampai sudut terpilih, sedangkan dua jari-jari biru menandai batas sudutnya. Sumbu vertikal kanvas menghadap ke bawah, sehingga sudut positif digambar melalui argumen sudut negatif pada fungsi arc agar arahnya tetap menghadap ke atas.

Di mana hal ini ditemui dalam kode#

Konstanta π\pi dan fungsi trigonometri NumPy adalah titik temu paling sering antara topik ini dan pekerjaan pemrograman sehari-hari. Fungsi np.sin dan np.cos menganggap argumennya radian, sedangkan data sudut dari berkas konfigurasi atau masukan pengguna sering berbentuk derajat. Konversi yang terlewat tidak memicu error apa pun karena derajat tetap merupakan angka yang sah. Perbedaannya hanya muncul kemudian pada angka hasil yang keliru secara diam-diam.

python Contoh: argumen derajat yang diperlakukan sebagai radian
import numpy as np

t = np.linspace(0.0, np.pi, 5)
print(np.sin(t))
print(np.sin(np.rad2deg(t)))
text Keluaran
[0.00000000e+00 7.07106781e-01 1.00000000e+00 7.07106781e-01
 1.22464680e-16]
[ 0.          0.85090352  0.89399666  0.08836869 -0.80115264]

Baris pertama berisi nilai sinus yang benar untuk sudut 00, π4\frac{\pi}{4}, π2\frac{\pi}{2}, 3π4\frac{3\pi}{4}, dan π\pi. Baris kedua mengalikan setiap sudut dengan 180π\frac{180}{\pi} terlebih dahulu, sehingga fungsi np.sin menerima derajat dan memperlakukannya sebagai radian. Nilai 9090 pada argumen kedua, yang seharusnya menghasilkan 11, justru terbaca sebagai 9090 radian dan menghasilkan 0.893996660.89399666.

Di luar NumPy, radian juga muncul pada rotasi grafika dan fase sinyal. Pustaka grafika umumnya menerima sudut rotasi dalam radian, sedangkan antarmuka yang menghadap pengguna sering menyediakan derajat lalu mengonversinya sebelum digunakan dalam perhitungan. Sinyal audio dan catatan sensor periodik menyatakan fasenya dalam radian pula, sehingga rumus seperti 2πft2\pi f t langsung ditulis tanpa konversi apa pun.

Ringkasan#

  • Radian didefinisikan sebagai perbandingan panjang busur terhadap jari-jari, sehingga satu putaran penuh bernilai 2π2\pi radian dan nilai sudutnya tidak bergantung pada besar lingkaran.
  • Konversi dua arah menggunakan faktor π180\frac{\pi}{180}, baik secara manual maupun melalui np.deg2rad dan np.rad2deg.
  • Panjang busur s=rθs = r\theta bekerja tanpa faktor koreksi karena radian diturunkan langsung dari geometri lingkaran.
  • np.sin dan np.cos menerima radian, sehingga argumen derajat wajib dikonversi terlebih dahulu agar hasilnya tidak keliru secara diam-diam.

Referensi#