Halaman

Rabu, 19 Maret 2025

Javascript - random tempat jawaban ABCD

function RandomMyArray(Arr){

/* ---- RANDOM isi Array ---- */

/* Global */

for (i=0; i<Arr.length; i++){

r = Math.floor(Math.random() * Arr.length);

a = Arr[i];

Arr[i] = Arr[r];

Arr[r] = a;

}

return Arr

}

function NoJawabanBenar(Arr, jwb){

for (i=0; i<Arr.length; i++){

if (Arr[i]==jwb){

return i;

break;

}

}

}

function GetABCD(no){

var ABCD = ["A","B","C","D"]

return ABCD[no]

}


function GetSoal1(){

var ss, Ar, jawab, noBenar, textSoal, textJawab, ArFix;

ss = "Bilangan p dan q bilangan cacah dan p + q = p, maka ... </p>";

Ar = [];

Ar.push("p unsur identitas penjumlahan");

Ar.push("p unsur identitas perkalian");

Ar.push("q unsur identitas penjumlahan");

Ar.push("q unsur identitas perkalian");

jawab = Ar[2];


Ar=RandomMyArray(Ar);


noBenar = NoJawabanBenar(Ar, jawab);

textSoal = ss+" <p>A. "+Ar[0]+" <br>B. "+Ar[1]+" <br>C. "+Ar[2]+" <br>D. "+Ar[3]+"</p>";

textJawab = jawab+"</p>";


ArFix = []

ArFix.push(textSoal);

ArFix.push(textJawab);

//ArFix.push(noBenar);

ArFix.push(GetABCD(noBenar));

//console.log(ArFix);

return ArFix

}


var ss;

var ss = GetSoal1();

document.write("<p>"+ss[0]+"</p>");

document.write("Jawaban : "+ss[2]);




Untuk melihat hasil : https://galihwidosamodra.blogspot.com/2025/03/soal-random-abcd-01-identitas-operasi.html << Refresh link untuk random ABCD

Coba html dan javascript

Soal Random Jawaban

Bilangan p dan q bilangan cacah dan p + q = p, maka ...

A. p unsur identitas penjumlahan
B. p unsur identitas perkalian
C. q unsur identitas penjumlahan
D. q unsur identitas perkalian

Jawaban : C

Selasa, 18 Maret 2025

Python - membuat soal SPLDV - beserta jawaban

 import random

a1 = 1

a2 = 2

b1 = 1

b2 = 2


def rdmKoef():

    return random.randint(1, 5)


def rdmSoal():

    return random.randint(1, 10)


while a1/a2== b1/b2 :

    x = rdmSoal()

    y = rdmSoal()

    a1 = rdmKoef()

    b1 = rdmKoef()

    a2 = rdmKoef()

    b2 = rdmKoef()


    c1 = a1*x + b1*y

    c2 = a2*x + b2*y


if a1==1: strA1 = "x"

else: strA1 = str(a1)+"x"

if b1==1: strB1 = "y"

else: strB1 = str(b1)+"y"

if a2==1: strA2 = "x"

else: strA2 = str(a2)+"x"

if b2==1: strB2 = "y"

else: strB2 = str(b2)+"y"


pers1 = strA1+" + "+strB1+" = "+str(c1)

pers2 = strA2+" + "+strB2+" = "+str(c2)

jawab = "x = "+str(x)+" dan y = "+str(y)


print(pers1)

print(pers2)

print(jawab)







Python - KPK beberapa angka

 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)


def Long_get_kpk(*arr):

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

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

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

 return a


kpk = Long_get_kpk(2,3,9)

print(kpk)




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)