Skip to content

Commit ae9c367

Browse files
fix: memperbaiki algoritma (#335)
* fix: memperbaiki algoritma * fix: tidak menggunakan numpy
1 parent fe21540 commit ae9c367

1 file changed

Lines changed: 23 additions & 13 deletions

File tree

math/sin.py

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from math import pi, e
1+
# Menghitung sinus dengan deret taylor
2+
# https://en.wikipedia.org/wiki/Taylor_series#Trigonometric_functions
3+
import math
24

35

46
def factorial(n: int) -> int:
@@ -10,29 +12,37 @@ def factorial(n: int) -> int:
1012
return n * factorial(n - 1)
1113

1214

13-
def sinus(x: float | int, iterable: int = 4):
15+
def sinus(sudut : float | int, iterable: int = 10):
1416
"""
1517
Sinus ini merupakan perhitungan dasar yang ada pada
1618
teori pythagoras
1719
Args:
18-
x (float | int): input ini merupakan value dari sudut yang kita
20+
sudut (float | int): input ini merupakan value dari sudut yang kita
1921
inputkan
20-
iterable (int, optional): paramater ini untuk jumlah data yang kuta sum kan
21-
Defaults to 4.
2222
Returns:
23-
complex: hasil dari pembagian numerator (complex) dengan denominator
23+
(float): hasil dari pembagian numerator dengan denominator
24+
25+
>>> sinus(0)
26+
0.0
27+
>>> sinus(30)
28+
0.49999999999999994
29+
>>> sinus(45)
30+
0.7071067811865475
31+
>>> sinus(60)
32+
0.8660254037844385
33+
>>> sinus(90)
34+
1.0
2435
"""
25-
result = 0
36+
result = 0.0
37+
radian = sudut * math.pi / 180
2638
for n in range(iterable):
27-
numerator = (e ** (complex(0, pi / 180) * x)) - (
28-
e ** (-complex(0, pi / 180) * x)
29-
)
39+
numerator = math.pow(radian, 2 * n + 1) * math.pow(-1, n)
3040
denominator = factorial(2 * n + 1)
3141
result += numerator / denominator
32-
return result
42+
return float(result)
3343

3444

3545
if __name__ == "__main__":
36-
list_sudut = [0, pi / 2, pi * 3 / 4, pi]
46+
list_sudut = [0, 30, 45, 60, 90]
3747
for sudut in list_sudut:
38-
print("Sudut:", sudut, "Sin:", sinus(sudut))
48+
print(f"Sudut : {sudut}, Sin : {sinus(sudut)}")

0 commit comments

Comments
 (0)