1. Dasar Fungsi sin dalam Bahasa C
Dalam bahasa C, perhitungan fungsi trigonometri dapat dilakukan dengan menggunakan pustaka standar math.h
. Di antaranya, fungsi sin
digunakan untuk menghitung nilai sinus dari suatu sudut. Artikel ini akan membahas secara rinci cara menggunakan fungsi sin
di C, penerapannya, serta cara mengimplementasikan fungsi sin
buatan sendiri.
1.1 Apa itu fungsi sin?
Fungsi sin
menerima sudut dalam satuan radian dan mengembalikan nilai sinus dari sudut tersebut. Radian adalah satuan sudut berbasis konstanta π, dan memerlukan konversi jika ingin diubah ke derajat.
2. Dasar Pustaka math.h di Bahasa C
Untuk menggunakan fungsi trigonometri, sertakan math.h
. Dengan ini, Anda dapat menggunakan fungsi sin
dan fungsi matematika lainnya.
#include <stdio.h>
#include <math.h>
int main() {
double angle = 1.57; // Radian yang setara dengan 90 derajat
double result = sin(angle);
printf("sin(1.57) = %fn", result);
return 0;
}
Kode ini akan menghasilkan output nilai sinus dari 90 derajat (1.57 radian), yaitu 1.000000.
2.1 Konversi Derajat ke Radian
Gunakan rumus berikut untuk mengubah derajat menjadi radian:
#define DEG_TO_RAD(deg) ((deg) / 180.0 * 3.141592653589793)
int main(void) {
double deg = 90.0;
double rad = DEG_TO_RAD(deg);
printf("sin(%f derajat) = %fn", deg, sin(rad));
return 0;
}
Program ini mengonversi 90 derajat menjadi radian dan menghitung nilai sinusnya menggunakan fungsi sin
.

3. Contoh Penerapan: Membuat Gelombang Sinus
Gelombang sinus sering digunakan dalam sintesis suara dan pemrosesan sinyal. Kode berikut membuat gelombang sinus dan mencetak nilai setiap sampelnya.
#include <stdio.h>
#include <math.h>
int main() {
int samples = 100;
double frequency = 1.0;
double amplitude = 1.0;
double phase = 0.0;
double sampleRate = 100.0;
for (int i = 0; i < samples; i++) {
double t = i / sampleRate;
double value = amplitude * sin(2 * M_PI * frequency * t + phase);
printf("Sampel %d: %fn", i, value);
}
return 0;
}
Program ini membuat gelombang sinus berdasarkan frekuensi dan laju sampel yang ditentukan. Data yang dihasilkan dapat digunakan untuk audio atau pemrosesan sinyal lainnya.
4. Implementasi Fungsi sin Buatan: Ekspansi Maclaurin
Dalam bahasa C, Anda dapat membuat fungsi sin
sendiri. Hal ini berguna ketika pustaka standar tidak tersedia atau ketika dibutuhkan fungsi khusus. Ekspansi Maclaurin adalah metode pendekatan yang menyatakan fungsi sin
dalam bentuk polinomial.
4.1 Fungsi sin dengan Ekspansi Maclaurin
Rumus pendekatan fungsi sin
dengan Ekspansi Maclaurin adalah:
Berikut contoh kode C berdasarkan rumus tersebut:
#include <stdio.h>
#include <math.h>
double factorial(int n) {
double result = 1.0;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
double my_sin(double x) {
double result = 0.0;
for (int i = 0; i < 10; i++) { // Hitung hingga 10 suku
int power = 2 * i + 1;
double term = pow(x, power) / factorial(power);
if (i % 2 == 0) {
result += term;
} else {
result -= term;
}
}
return result;
}
int main() {
double angle = 1.57;
printf("sin(1.57) = %fn", my_sin(angle));
return 0;
}
Program ini menghitung nilai sinus menggunakan Ekspansi Maclaurin. Tingkat ketelitian bergantung pada jumlah suku yang dihitung, dan sekitar 10 suku biasanya sudah cukup untuk akurasi tinggi.
5. Kesalahan dan Hal yang Perlu Diperhatikan
Perhitungan dengan tipe data floating-point dapat mengalami masalah akurasi pada nilai yang sangat kecil atau sangat besar. Dalam implementasi sin
buatan, semakin banyak suku yang dihitung maka semakin tinggi pula biaya komputasinya. Selain itu, untuk sudut besar (misalnya lebih dari ±π), akurasi perhitungan dapat menurun, sehingga disarankan melakukan normalisasi sudut ke dalam rentang yang tepat.
6. Kesimpulan
Artikel ini membahas penggunaan dasar fungsi sin
di bahasa C, contoh penerapannya, serta pembuatan fungsi sin
sendiri menggunakan Ekspansi Maclaurin. Dengan memanfaatkan fungsi trigonometri di bahasa C, Anda dapat mengembangkan berbagai aplikasi seperti simulasi fisika dan pemrosesan audio. Membuat fungsi sendiri juga membantu memahami cara kerja fungsi tersebut secara mendalam. Semoga bermanfaat untuk proyek Anda.