Halaman

Selasa, 18 Maret 2025

Python - FPB beberapa angka

 def findFPB(a,b):

    if b==0:

        return a

    else :

        return findFPB(b, a%b)

  

def Long_get_FPB(*arr):

 a = findFPB(arr[0],arr[1])

 for i in range(len(arr)-2):

  a = findFPB(a,arr[i+2])

 return a

 

 

FPB = Long_get_FPB(16,48,8,144)

print ("FPB = " ,FPB)

FPB = Long_get_FPB(1,15,20,40,35)

print ("FPB = " ,FPB)




Senin, 17 Maret 2025

Python - Statistik - Mean, Median, Modus - data tunggal

import random


#random data -------------------------------

mydata = [[10,1],[20,1],[30,1],[40,1],[50,1],[60,1],[70,1],[80,1],[90,1],[100,1]]

frek = [1,2,3,4,5,5,6,7,8,9]

nn = len(frek)


def acakfrek(_frek):

    nn = int(len(_frek))

    for i in range(nn):

        m = random.randint(0, nn-1)

        n = random.randint(0, nn-1)

        temp = _frek[m]

        _frek[m] = _frek[n]

        _frek[n] = temp

    return _frek  

frek = acakfrek(frek)


#mengisi data khusus frekuensi

def isiDataf(_data, _frek):

    _mydata = _data

    for i in range(nn):

        _mydata[i][1] = frek[i]



#mencari total frekuensi

def totf(arr):

    totalf = 0

    for i in range(len(arr)):

        totalf += arr[i]

    return totalf

    


#mean ------------------------------------

def meanf(arr,totf):

    totnil = 0

    for i in range(len(arr)):

        totnil += arr[i][0]*arr[i][1]

    _mean = totnil/totf 

    return _mean



#median ----------------------------------

def fkumulatif(arr):

    ffk = []

    for i in range(len(arr)):

        tfk = 0

        for j in range(i+1):

            tfk+=arr[j]

        ffk.append(tfk)

    return ffk


def medianf(arrdata,totf):

    a1 = 0

    a2 = 0

    cektotal = totf%2

    if cektotal==0 :

        #ada2

        a1 = int(totf/2)

        a2 = a1+1 

    else :

        #ada1

        a1 = int((totf+1)/2)

        a2 = a1

    med1=0

    med2=0

    i=0

    while a1>fk[i] :

        i+=1

    med1 = i

    i=0

    while a2>fk[i] :

        i+=1

    med2 = i

    _median = (1/2)*(arrdata[med1][0]+arrdata[med2][0])

    return _median



#modus ------------------------------------

def modusf(arrdata):

    _modus = arrdata[0][0]

    fmodus = arrdata[0][1]

    for i in range(nn):

        if fmodus<arrdata[i][1]:

            fmodus = arrdata[i][1]

            _modus = arrdata[i][0]

    return _modus

 

 

isiDataf(mydata, frek)

totalfrek = totf(frek)

fk = fkumulatif(frek)

mean = meanf(mydata,totalfrek)

median = medianf(mydata, totalfrek)

modus = modusf(mydata)

print("mydata     = ",mydata)

print("totalfrek  = ",totalfrek)

print("fkumulatif = ",fk)

print("Mean       = ",mean)

print("Median     = ",median)    

print("Modus      = ",modus)




Minggu, 16 Maret 2025

Python - mencari KPK dua bilangan

def get_kpk(a,b): 

 m=a

 n=b

 p = m%n

 if p == 0: 

  return a

 elif m<n :

  m=b

  n=a

  return get_kpk(m,n)

 else :

  while m%n != 0 :

   m+=a

  return get_kpk(m,n)

  


KPK = get_kpk(12,15)

print("KPK dari 12 dan 15 adalah ", KPK)

Python - mencari fpb 2 bilangan dengan euclid dan rekursif

def find_fpb(a,b): 

 if b == 0: 

  return a

 else: 

  return find_fpb(b,a%b)


myFPB = find_fpb(6,8)

print("FPB dari 6 dan 8 adalah",myFPB)



Sumber : https://koding.alza.web.id/algoritma-untuk-mencari-faktor-persekutuan-terbesar-fpb/


x y dan trigonometri

Posisi x dan y jika diketahui xpusat, ypusat, sudut, dan jarak


x = xpusat + jarak*cos(sudut*Pi/180)

y = ypusat + jarak*sin(sudut*Pi/180)

Python - pola bilangan segitiga

def PolaSegitiga(n):

 return int(n*(n+1)/2)


def PrintPolaNsuku(n):

 for i in range(n):

  print(PolaSegitiga(i+1), end=" ")


PrintPolaNsuku(10)

Python - pola bilangan persegipanjang

def PolaPersegiPanjang(n):

 return n*(n+1)


def PrintPolaNsuku(n):

 for i in range(n):

  print(PolaPersegiPanjang(i+1), end=" ")


PrintPolaNsuku(10)