Beberapa Paket Soal Matematika Kelas 3,4,5,6 SD

Kami menjual paket kumpulan soal mateatika untuk kelas 3, 4, 5, 6 SD.
Harga mulai dari 2.000 hingga 10.000
Untuk 5 paket, kami jual 2.000/file zip
Untuk 10 paket, kami jual 4.000/file zip
Untuk 25 paket, kami jual 6.000/file zip
Untuk 50 paket, kami jual 8.000/file zip
Untuk 100 paket, kami jual 10.000/file zip
Nah, untuk 100 pembeli pertama tiap file akan diberikan harga khusus, yaitu diskon 50%.
Silahkan menikmati.

5 Paket

10 Paket


25 Paket

100 paket Soal Matematika Kelas Campur 3,4,5,6 SD (Cuman Rp5.000 untuk 100 pertama Harga normal Rp10.000)

 Berisi : 

- Soal Matematika Kelas 3,4,5,6 SD

- 100 paket

- Tiap paket 20 soal

- Tiap paket random campur Kelas dan campur Bab

- Tiap soal ada keterangan Bab berapa dan nama Bab

- Ada kunci jawaban di lembar terakhir

- Total soal 2.000



Materi Kelas 3 SD :

Bab 1 - Bilangan Cacah sampai 1.000

Bab 2 - Kalimat Matematika

Bab 3 - Pengukuran Panjang dan Berat

Bab 4 - Unsur-Unsur Bangun Datar

Bab 5 - Penyajian Data dalam Tabel


Materi Kelas 5 SD :

Bab 1 - Bilangan Cacah sampai dengan 100.000

Bab 2 - KPK dan FPB

Bab 3 - Bilangan Pecahan

Bab 4 - Keliling Bangun Datar

Bab 5 - Luas Daerah Bangun Datar

Bab 6 - Sudut

Bab 7 - Membandingkan Ciri-Ciri Bangun Datar

Bab 8 - Data


Materi Kelas 5 SD :

Bab 1 - Bilangan Cacah sampai dengan 100.000

Bab 2 - KPK dan FPB

Bab 3 - Bilangan Pecahan

Bab 4 - Keliling Bangun Datar

Bab 5 - Luas Daerah Bangun Datar

Bab 6 - Sudut

Bab 7 - Membandingkan Ciri-Ciri Bangun Datar

Bab 8 - Data


Materi Kelas 6 SD :

Bab 1 - Pecahan dan Desimal

Bab 2 - Rasio

Bab 3 - Kubus dan Balok

Bab 4 - Peluang


3,4,5,6 SD : http://lynk.id/galihwidosamodra/2x908v2508d3

100 paket Soal Matematika Kelas 6 SD (Cuman Rp5.000 untuk 100 pertama Harga normal Rp10.000)

 Berisi : 

- Soal Matematika Kelas 6 SD

- 100 paket

- Tiap paket 20 soal

- Tiap paket random campur Bab 1 hingga Bab 4

- Tiap soal ada keterangan Bab berapa dan nama Bab

- Ada kunci jawaban di lembar terakhir

- Total soal 2.000


Materi Kelas 6 SD :

Bab 1 - Pecahan dan Desimal

Bab 2 - Rasio

Bab 3 - Kubus dan Balok

Bab 4 - Peluang


6 SD : http://lynk.id/galihwidosamodra/r3rm9pd46j01

100 paket Soal Matematika Kelas 5 SD (Cuman Rp5.000 untuk 100 pertama Harga normal Rp10.000)

 Berisi : 

- Soal Matematika Kelas 5 SD

- 100 paket

- Tiap paket 20 soal

- Tiap paket random campur Bab 1 hingga Bab 8

- Tiap soal ada keterangan Bab berapa dan nama Bab

- Ada kunci jawaban di lembar terakhir

- Total soal 2.000


Materi Kelas 5 SD :

Bab 1 - Bilangan Cacah sampai dengan 100.000

Bab 2 - KPK dan FPB

Bab 3 - Bilangan Pecahan

Bab 4 - Keliling Bangun Datar

Bab 5 - Luas Daerah Bangun Datar

Bab 6 - Sudut

Bab 7 - Membandingkan Ciri-Ciri Bangun Datar

Bab 8 - Data


5 SD : http://lynk.id/galihwidosamodra/k1lq9opmkvk0

100 paket Soal Matematika Kelas 4 SD (Cuman Rp5.000 untuk 100 pertama Harga normal Rp10.000)

 Berisi : 

- Soal Matematika Kelas 4 SD

- 100 paket

- Tiap paket 20 soal

- Tiap paket random campur Bab 1 hingga Bab 6

- Tiap soal ada keterangan Bab berapa dan nama Bab

- Ada kunci jawaban di lembar terakhir

- Total soal 2.000


Materi Kelas 4 SD :

Bab 1 - Bilangan Cacah sampai 10.000

Bab 2 - Pecahan

Bab 3 - Pola Gambar dan Pola Bilangan

Bab 4 - Pengukuran Luas dan Volume

Bab 5 - Bangun Datar

Bab 6 - Piktogram dan Diagram Batang


4 SD : http://lynk.id/galihwidosamodra/vmgyr5no1lng

100 paket Soal Matematika Kelas 3 SD (Cuman Rp5.000 untuk 100 pertama Harga normal Rp10.000)

Berisi : 

- Soal Matematika Kelas 3 SD

- 100 paket

- Tiap paket 20 soal

- Tiap paket random campur Bab 1 hingga Bab 5

- Tiap soal ada keterangan Bab berapa dan nama Bab

- Ada kunci jawaban di lembar terakhir

- Total soal 2.000


Materi Kelas 3 SD :

Bab 1 - Bilangan Cacah sampai 1.000

Bab 2 - Kalimat Matematika

Bab 3 - Pengukuran Panjang dan Berat

Bab 4 - Unsur-Unsur Bangun Datar

Bab 5 - Penyajian Data dalam Tabel



3 SD : http://lynk.id/galihwidosamodra/zkr2pwr15m8p

Website SoulMath di github

Selamat sore

Saya baru saja membuat website yang berisi kumpulan soal matematika SD dan SMP.

Berikut alamatnya:
Versi Indonesia
galihw.github.io/SoulMath/index.html
Versi English
galihw.github.io/SoulMathEn/index.html

Ada 3 bagian :
1. Generator Soal (manual memilih soal)
2. Kumpulan Soal (tiap kelas - per bab)
3. Random Soal (otomatis random 20 soal)

Disertai kunci jawaban. Dari ketiganya bisa di print ke pdf.

Demikian, semoga bisa digunakan untuk meningkatkan kemampuan dalam bidang matematika tingkat SD dan SMP.

Terimakasih
Galih


Website isi beberapa metode menggunakan kumpulan soal

 Kami buat beberapa metode untuk menggunakan kumpulan soal. Berikut link nya : https://galihw.github.io/SoulMath/

Dan ini tampilan screenshootnya : 


Generator Soal Matematika SD

Ketika mengajar, namun mau membahas soal yang sama tapi hanya beda angkanya saja, atau varian lsin dari soal tersebut, bisa menggunakan generator soal ini.

Sudah dikumpulkan database soal sebanyak 403 buah, dan selanjutnya dibuat menggunakan coding berbahasa html dan javascript.

Isinya ada 23 Bab untuk tingkat SD kelas 3, 4, 5, dan 6.

Ini link generator soalnya : https://galihw.github.io/DatabaseSoalSD/GeneratorSoalMatematikaSD.html

Adapun 23 Bab tersebut adalah :

Kelas 3 (total 84)

  1. Bilangan Cacah sampai 1.000 (13)
  2. Kalimat Matematika (12)
  3. Pengukuran Panjang dan Berat (30)
  4. Unsur-Unsur Bangun Datar (14)
  5. Penyajian Data dalam Tabel (15)

Kelas 4 (total 102)

  1. Bilangan Cacah sampai 10.000 (12)
  2. Pecahan (24)
  3. Pola Gambar dan Pola Bilangan (16)
  4. Pengukuran Luas dan Volume (18)
  5. Bangun Datar (16)
  6. Piktogram dan Diagram Batang (16)

Kelas 5 (total 158)

  1. Bilangan Cacah sampai dengan 100.000 (20)
  2. KPK dan FPB (20)
  3. Bilangan Pecahan (20)
  4. Keliling Bangun Datar (20)
  5. Luas Daerah Bangun Datar (20)
  6. Sudut (17)
  7. Membandingkan Ciri-Ciri Bangun Datar (17)
  8. Data (24)

Kelas 6 (total 59)

  1. Pecahan dan Desimal (20)
  2. Rasio (11)
  3. Balok Dan Kubus (18)
  4. Peluang (10)

Mau dibuatkan seperti ini? Email saja ke galih.widosamodra@gmail.com


Galih Widosamodra, S.Si

SoulMathOnline

galih.widosamodra@gmail.com



Generator Soal Matematika SMP

Ketika mengajar, namun mau membahas soal yang sama tapi hanya beda angkanya saja, atau varian lsin dari soal tersebut, bisa menggunakan generator soal ini.

Sudah dikumpulkan database soal sebanyak 333 buah, dan selanjutnya dibuat menggunakan coding berbahasa html dan javascript.

Isinya ada 19 Bab untuk tingkat SMP.

Ini link generator soalnya : https://galihw.github.io/DatabaseSoal/MainGenerator.html

Adapun 19 Bab tersebut adalah :

  1. Himpunan (15)
  2. Teori Bilangan (20)
  3. Aljabar (23)
  4. PLSV (20)
  5. PLDV (13)
  6. Aritmatika Sosial (30)
  7. Perbandingan (20)
  8. Persamaan Garis Lurus (19)
  9. Garis dan Sudut (10)
  10. Segitiga dan Pythagoras (20)
  11. Segiempat (20)
  12. Kesebangunan (20)
  13. Lingkaran (20)
  14. Bangun Ruang (20)
  15. Persamaan Kuadrat (8)
  16. Peluang (10)
  17. Statistika (10)
  18. Fungsi (15)
  19. Barisan dan Deret (20)

Mau dibuatkan seperti ini? Email saja ke galih.widosamodra@gmail.com


Galih Widosamodra, S.Si

SoulMathOnline

galih.widosamodra@gmail.com


Generator - si Database Soal Matematika SMP

Saya sudah membuat Database Soal Matematika SMP dalam bentuk Generator Soal. 
Apa itu Generator Soal? Ini adalah alat untuk menyusun soal matematika SMP sebanyak 20 soal dari database yang sudah tersedia.

Adapun Database itu saya ambil di blog ini, kemudian di ubah menjadi data yang siap di ambil satu per satu soal yang dibutuhkan. (soulmathonline.blogspot.com dan databasesoalsoalmatematika.blogspot.com)

Tersedia 333 soal dari 19 bab yang bisa dipilih.

Untuk apa sih? Bisa untuk bahan ajar bagi guru les privat matematika SMP. Bisa juga untuk bahan latihan soal bagi siswa SMP.

Generator soal nya bisa di buka dimana? ini dia https://galihw.github.io/DatabaseSoal/MainGenerator.html

Tampilan Generator Soal Matematika SMP

Silahkan gunakan bagi yang membutuhkan. 


Demikian
SoulMathOnline.blogpsot.com
galih.widosamodra@gmail.com

Les Privat Online Matematika - Bu Endah

Untuk saat ini, les privat online matematika sama Bu Endah saja ya. Levelnya SD dan SMP saja. Untuk SMA tidak diadakan dulu.
Nomor kontak 08986989406

Demikian, 
SoulMathOnline

Cuman Goceng - Latihan Soal Matematika

Cuman Goceng (Rp5.000 per bab - 10 paket)

Soal latihan matematika SMP


Lynkid nya :

Bab 1 Himpunan

link http://lynk.id/galihwidosamodra/nzjl64z9186k

Bab 2 Teori Bilangan

link http://lynk.id/galihwidosamodra/x5y9z1j71xdy

Bab 3 Aljabar

link http://lynk.id/galihwidosamodra/pljozn99x7dk

Bab 4 Persamaan Linier Satu Variabel (PLSV)

link http://lynk.id/galihwidosamodra/grw861jj6jqm

Bab 5 Persamaan Linier Dua Variabel (PLDV)

link http://lynk.id/galihwidosamodra/g952g6qepqk4

Bab 6 Aritmatika Sosial

link http://lynk.id/galihwidosamodra/xxj47d2k0xxr

Bab 7 Perbandingan

link http://lynk.id/galihwidosamodra/xk71wnk2ww85

Bab 8 Persamaan Garis Lurus

link http://lynk.id/galihwidosamodra/z20qn1jp1e9j

Bab 9 Garis dan Sudut

link http://lynk.id/galihwidosamodra/r4y8vn5j0rzk

Bab 10 Segitiga dan Pythagoras

link http://lynk.id/galihwidosamodra/3wxj716yjw1j

Bab 11 Segiempat

link http://lynk.id/galihwidosamodra/v8qg9zzl9e1z

Bab 12 Kesebangunan

link http://lynk.id/galihwidosamodra/rv604yg3ngvn

Bab 13 Lingkaran

link http://lynk.id/galihwidosamodra/e7y6ngp9r24p

Bab 14 Bangun Ruang

link http://lynk.id/galihwidosamodra/0dp9y5g95y0e

Bab 15 Persamaan Kuadrat

link http://lynk.id/galihwidosamodra/786o5jdpm98o

Bab 16 Peluang

link http://lynk.id/galihwidosamodra/y762qkd1kqno

Bab 17 Statistika

link http://lynk.id/galihwidosamodra/dn0zq3vp1qdp

Bab 18 Fungsi

link http://lynk.id/galihwidosamodra/04r2g9p8gwmx

Bab 19 Barisan dan Deret

link http://lynk.id/galihwidosamodra/9wg0zkx6zm8n

Code 6 - Gambar besar dipotong jadi 4 buah - tampilkan 1 buah

Pertemuan#06 - Membuat sebuah soal bangun ruang dimana ada 4 pilihan dalam 1 gambar sprite

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Mendapatkan Data soal
function MyFungsi6(){ var pil = RandomAngkaAtoB(-1,4); var arrSalah = [32, 28, 24, 20 ] var ArSisi = [pil]; var benar = arrSalah[pil]; do{ var arrSalah = RandomMyArray(arrSalah); var ff1 = arrSalah[0]==benar || arrSalah[1]==benar || arrSalah[2]==benar; }while(ff1); return [ArSisi,benar,arrSalah]; }
    1. Memasukkan gambar ke canvas
function Gambar6(nmcanvas,Arr){ const canvas = document.getElementById(nmcanvas); const ctx = canvas.getContext("2d"); // menambahkan image pada canvas // let base_image = new Image(); base_image.src = "Gambar6.png"; base_image.onload = function () { ctx.drawImage(base_image, 0, 0-Arr[0]*142,base_image.width, base_image.height); } return 0; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal6(){ const MyData = MyFungsi6(); var ArSisi=MyData[0]; var benar=MyData[1]; var arrSalah=MyData[2]; const DrawPGL = Gambar6("myCanvas6",ArSisi); var ss ss = "Gambar di atas adalah mainan anak-anak yang berbentuk balok. <br>Tersusun dari kubus-kubus satuan yang kongruen. <br>Jika seluruh permukaan balok tersebut di cat, banyaknya kubus satuan yang terkena cat pada dua sisinya saja ada ... "; var Ar = []; // jawaban Ar[0] = benar; Ar[1] = arrSalah[0]; Ar[2] = arrSalah[1]; Ar[3] = arrSalah[2]; var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+" buah<br>B. "+Ar[1]+" buah<br>C. "+Ar[2]+" buah<br>D. "+Ar[3]+" buah</p>"; var textJawab = jawab+"</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); return ArFix; }
    1. Nomor soal dan kalimat sebelum gambar
document.write("<p>6. Perhatikan gambar!<p>");
    1. Menyiapkan canvas untuk gambar
<canvas id="myCanvas6" width="190" height="142" style="border:0px solid grey;"> </canvas>
    1. Mencetak soal
var ss ss = GetSoal6(); document.write("<p>"+ss[0]+"</p>"); document.write("Jawaban : "+ss[1]);
-------------------------------------------

Code 5 - Gambar semua - kecuali kunci

Pertemuan#05 - Membuat sebuah soal pecahan berikut gambar pecahan untuk soal dan jawaban

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Mendapatkan Data soal
function MyFungsi5(){ do{ var a1 = RandomAngkaAtoB(3,10); var a2 = RandomAngkaAtoB(3,9); var b1 = RandomAngkaAtoB(0,5); var b2 = RandomAngkaAtoB(0,5); var aafix1 = a2; var aafix2 = a1; var aafix3 = a1*b2-a2*b1; }while(aafix3<1 || b1==b2**2 || b1==b2) var benar = [a1,a2,b1,b2,"–",aafix1,"+",aafix2,"–",aafix3]; var salah1 = [a1,a2,b1,b2,"–",aafix1,"+",aafix2,"+",aafix3]; var salah2 = [a1,a2,b1,b2,"–",aafix1,"–",aafix2,"+",aafix3]; var salah3 = [a1,a2,b1,b2,"–",aafix1,"–",aafix2,"–",aafix3]; var salah4 = [a1,a2,b1,b2,"+",aafix1,"+",aafix2,"–",aafix3]; var salah5 = [a1,a2,b1,b2,"+",aafix1,"–",aafix2,"+",aafix3]; arrsalah = [salah1,salah2,salah3,salah4,salah5]; arrsalah = RandomMyArray(arrsalah); return [a1,a2,b1,b2,benar,arrsalah]; }
    1. Memasukkan gambar ke canvas
function Gambar5(nmcanvas,ss,arr,ar1,ar2,ar3,ar4){ const canvas = document.getElementById(nmcanvas); const ctx = canvas.getContext("2d"); // menambahkan image pada canvas // let base0_image = new Image(); let base1_image = new Image(); base0_image.src = "Gambar5-0.png"; base1_image.src = "Gambar5-0abcd.png"; base0_image.onload = function () { ctx.drawImage(base0_image, 0, 0,base0_image.width, base0_image.height); base1_image.onload = function () { var Abjad = ["A","B","C","D"]; for(var i=0;i<4;i++){ var yy = 110+50*i; ctx.drawImage(base1_image, 0, yy,base1_image.width, base1_image.height); ctx.font = "16px Times New Roman"; ctx.textAlign = "left"; ctx.fillText(Abjad[i],0,yy+30); } InsertText(arr); } } function InsertText(arr){ ctx.font = "16px Times New Roman"; ctx.textAlign = "left"; ctx.fillText(ss,0,80); ctx.textAlign = "center"; ctx.fillText(arr[0],35,15); ctx.fillText("x² \u2212 "+arr[2],35,40); ctx.fillText(arr[1],125,15); ctx.fillText("x \u2212 "+arr[3],125,40); var Abjad = ["A","B","C","D"]; var arrPil = [ar1,ar2,ar3,ar4] var ynext = 90; for(i=0;i<4;i++){ ctx.font = "16px Times New Roman"; ctx.textAlign = "center"; //mengubah min jadi simbol min if(arrPil[i][4]=="–") ctx.fillText(arrPil[i][4]+""+arrPil[i][5]+"x² "+arrPil[i][6]+" "+arrPil[i][7]+"x "+arrPil[i][8]+" "+arrPil[i][9],100,ynext+50*i+40); else ctx.fillText(""+arrPil[i][5]+"x² "+arrPil[i][6]+" "+arrPil[i][7]+"x "+arrPil[i][8]+" "+arrPil[i][9],100,ynext+50*i+40); ctx.fillText("(x² \u2212 "+arrPil[i][2]+")(x \u2212 "+arrPil[i][3]+")",100,ynext+50*i+65); } } return 0; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal5(){ const MyData = MyFungsi5(); //[a1,a2,b1,b2,benar,arrsalah]; var a1=MyData[0]; var a2=MyData[1]; var b1=MyData[2]; var b2=MyData[3]; var benar=MyData[4]; var arrsalah=MyData[5]; var Ar = []; Ar[0] = benar; Ar[1] = arrsalah[0]; Ar[2] = arrsalah[1]; Ar[3] = arrsalah[2]; var ss //15. Tentukan bentuk sederhana dari (8 / x^2-4) - (2 / x-1) ! ss = "Tentukan bentuk sederhana dari bentuk aljabar di atas! "; var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+"<br>B. "+Ar[1]+"<br>C. "+Ar[2]+"<br>D. "+Ar[3]+"</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); const soal = Gambar5("myCanvas5",ss,[a1,a2,b1,b2],Ar[0],Ar[1],Ar[2],Ar[3]); return ArFix; }
    1. Menyiapkan canvas untuk gambar
<canvas id="myCanvas5" width="400" height="320" style="border:0px solid grey;"> </canvas>
    1. Mencetak soal
var ss ss = GetSoal5(); document.write("<br>"+"Jawaban : "+ss[1]+"<br>");
-------------------------------------------

Code 3 - Untuk teks di atas gambar

Pertemuan#03 - Membuat sebuah soal bangun ruang untuk mencari luas permukaan bangun ruang berikut gambar ilustrasi

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Memecah n-digit angka menjadi array
function SplitString(ff){ var gg = new Array(); var strff = ""+ff; var len = strff.length; for (var i=0; i<len; i++){ gg.push(strff.substr(i,1)); } return gg; }
    1. Membuat angka ribuan menjadi ada titik seperti 1234 menjadi 1.234
function StringRibuan(str){ var strfix = ""; var arfix = new Array(); var StrArray = SplitString(str); for (var i=0; i<StrArray.length; i++){ arfix.push(StrArray[i]); } var ct = 0; var m = 0; var n = 0; var ctmax = StrArray.length; var arct = new Array(); for (var i=StrArray.length-1; i>=0; i--){ ct++; ctmax--; if(ct==3){ ct = 0; m++; arct.push(3); } } var n = StrArray.length - 3*arct.length; var iter=-1; strfix=""; for (var i=0; i<n; i++){ iter++; strfix += arfix[iter]; } if (n>0) strfix += "."; for (var i=0; i<m; i++){ for (j=0; j<3; j++){ iter++; strfix += arfix[iter]; } strfix += "."; } var leng = strfix.length; strfix = strfix.substr(0, leng-1); return strfix }
    1. Mendapatkan Data soal
function MyFungsi3(){ var pyth = [[4,3,5],[12,5,13],[6,8,10],[24,7,25],[8,15,17]]; var pil = RandomAngkaAtoB(-1,5); var dd = RandomAngkaAtoB(2,9); var aa = dd+pyth[pil][0]; do{ var bb = RandomAngkaAtoB(2,4); var cc = pyth[pil][2]; var tt = pyth[pil][1]; }while(bb==cc); var luas = 2*(aa+dd)/2*tt + dd*bb + aa*bb + bb*cc + bb*tt; var luas1 = (aa+dd)/2*tt + dd*bb + aa*bb + bb*cc + bb*tt; var luas2 = 2*(aa+dd)/2*tt + dd*bb + aa*bb + bb*cc; var luas3 = 2*(aa+dd)/2*tt + dd*bb + aa*bb + bb*tt; var luas4 = 2*(aa+dd)*tt + dd*bb + aa*bb + bb*cc + bb*tt; var ArSisi = [aa,bb,cc,dd]; var benar = luas; var salah1 = luas1; var salah2 = luas2; var salah3 = luas3; var salah4 = luas4; var arrSalah = [salah1,salah2,salah3,salah4]; arrSalah = RandomMyArray(arrSalah); return [ArSisi,benar,arrSalah]; }
    1. Memasukkan gambar ke canvas
function Gambar3(nmcanvas,Arr){ const canvas = document.getElementById(nmcanvas); const ctx = canvas.getContext("2d"); // menambahkan image pada canvas // let base_image = new Image(); base_image.src = "Gambar3.png"; base_image.onload = function () { ctx.drawImage(base_image, 0, 0,base_image.width, base_image.height); InsertText(Arr); } function InsertText(Arr){ ctx.font = "bold 12px Times New Roman"; ctx.textAlign = "center"; ctx.fillText(Arr[0]+" cm",105,190); ctx.fillText(Arr[1]+" cm",225,193); ctx.fillText(Arr[2]+" cm",213,97); ctx.fillText(Arr[3]+" cm",123,30); } return 0; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal3(){ const MyData = MyFungsi3(); var ArSisi=MyData[0]; var benar=MyData[1]; var arrSalah=MyData[2]; const DrawPGL = Gambar3("myCanvas3",ArSisi); var ss ss = "Luas permukaan bangun tersebut adalah ... "; var Ar = []; // jawaban Ar[0] = benar; Ar[1] = arrSalah[0]; Ar[2] = arrSalah[1]; Ar[3] = arrSalah[2]; Ar[0] = StringRibuan(Ar[0]); Ar[1] = StringRibuan(Ar[1]); Ar[2] = StringRibuan(Ar[2]); Ar[3] = StringRibuan(Ar[3]); var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+" cm²<br>B. "+Ar[1]+" cm²<br>C. "+Ar[2]+" cm²<br>D. "+Ar[3]+" cm²</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); return ArFix; }
    1. Nomor soal dan kalimat sebelum gambar
document.write("<p>4. Perhatikan bangun prisma trapesium siku-siku berikut!<p>");
    1. Menyiapkan canvas untuk gambar
<canvas id="myCanvas3" width="277" height="215" style="border:0px solid grey;"> </canvas>
    1. Mencetak soal
var ss ss = GetSoal3(); document.write("<p>"+ss[0]+"</p>"); document.write("Jawaban : "+ss[1]);
-------------------------------------------

Code 4 - Untuk beberapa macam kumpulan jawaban

Pertemuan#04 - Membuat sebuah soal himpunan untuk mencari kalimat yang merupakan himpunan

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Mendapatkan Data soal
function MyFungsi4(){ //Kumpulan-kumpulan berikut ini yang merupakan himpunan adalah ... //jawaban: berparas cantik/berkacamata/berbadan pendek/berbadan tinggi var arr0 = ["Kumpulan siswi berkacamata","Kumpulan siswi cantik","Kumpulan siswi berbadan pendek","Kumpulan siswi berbadan tinggi"]; var arr1 = ["Kumpulan buku berwarna merah","Kumpulan buku tebal","Kumpulan buku tipis","Kumpulan buku bagus"]; var arr2 = ["Kumpulan bilangan prima","Kumpulan bilangan besar","Kumpulan bilangan kecil","Kumpulan bilangan penting"]; var arr=[arr0,arr1,arr2]; var a1,a2,a3,a4,a5; a1 = RandomAngkaAtoB(-1,3); var benar = arr[a1][0]; var salah1 = arr[a1][1]; var salah2 = arr[a1][2]; var salah3 = arr[a1][3]; var arrSalah = [salah1,salah2,salah3]; return [a1,benar,arrSalah]; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal1(){ const MyData = MyFungsi4(); //[a0,a1,a2,a3,benar,arrSalah]; var a0=MyData[0]; var a1=MyData[1]; var a2=MyData[2]; var a3=MyData[3]; var benar=MyData[4]; var arrSalah=MyData[5]; //1. Sekelompok siswa terdiri dari 25 orang. //Terdapat 14 orang gemar berenang, //15 orang gemar sepakbola, //dan yang tidak gemar keduanya 5 orang. //Banyak siswa yang gemar keduanya adalah ... var Ekskul = NamaEkskul(); var ss ss = "Sekelompok siswa terdiri dari "+a0+" orang. "; ss += "Terdapat "+a1+" orang gemar "+Ekskul[0]+", "; ss += ""+a2+" orang gemar "+Ekskul[1]+", "; ss += "dan yang tidak gemar keduanya "+a3+" orang. "; ss += "Banyak siswa yang gemar keduanya adalah ... "; var Ar = []; // jawaban Ar[0] = benar; Ar[1] = arrSalah[0]; Ar[2] = arrSalah[1]; Ar[3] = arrSalah[2]; var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+"<br>B. "+Ar[1]+"<br>C. "+Ar[2]+"<br>D. "+Ar[3]+"</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); return ArFix; }
    1. Mencetak soal
var ss ss = GetSoal4(); document.write("<p>"+ss[0]+"</p>"); document.write("Jawaban : "+ss[1]);
-------------------------------------------

Code 2 - Untuk teks dan gambar

Pertemuan#02 - Membuat sebuah soal lingkaran untuk mencari keliling persegi berikut gambar ilustrasi

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Mendapatkan Data soal
function MyFungsi2(){ var dia = 14*RandomAngkaAtoB(0,4); var kelO = 22/7*dia; var kel1 = dia*4; var kel2 = dia*2; var kel3 = dia/2; var kel4 = dia; var kel5 = dia/2; var kel6 = dia*8; var ArSisi = [kelO]; var benar = kel1; var salah1 = kel2; var salah2 = kel3; var salah3 = kel4; var salah4 = kel5; var salah5 = kel6; var arrSalah = [salah1,salah2,salah3,salah4,salah5]; do{ arrSalah = RandomMyArray(arrSalah); var ff1 = arrSalah[0]==benar || arrSalah[1]==benar || arrSalah[2]==benar; var ff2 = arrSalah[0]==arrSalah[1] || arrSalah[0]==arrSalah[2]; var ff3 = arrSalah[1]==arrSalah[2]; }while(ff1 || ff2 || ff3); return [ArSisi,benar,arrSalah]; }
    1. Memasukkan gambar ke canvas
function Gambar2(nmcanvas,Arr){ const canvas = document.getElementById(nmcanvas); const ctx = canvas.getContext("2d"); // menambahkan image pada canvas // let base_image = new Image(); base_image.src = "Gambar2.png"; base_image.onload = function () { ctx.drawImage(base_image, 0, 0,base_image.width, base_image.height); } return 0; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal2(){ const MyData = MyFungsi2(); var ArSisi=MyData[0]; var benar=MyData[1]; var arrSalah=MyData[2]; const DrawPGL = Gambar2("myCanvas2",ArSisi); var ss ss = "Perhatikan gambar! <br>"; ss += "Keempat sisi persegi disinggung oleh sebuah lingkaran seperti gambar. <br>" ss += "Jika keliling lingkaran "+ArSisi[0]+" cm, maka keliling persegi adalah ..."; var Ar = []; // jawaban Ar[0] = benar; Ar[1] = arrSalah[0]; Ar[2] = arrSalah[1]; Ar[3] = arrSalah[2]; Ar[0] = StringRibuan(Ar[0]); Ar[1] = StringRibuan(Ar[1]); Ar[2] = StringRibuan(Ar[2]); Ar[3] = StringRibuan(Ar[3]); var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+" cm<br>B. "+Ar[1]+" cm<br>C. "+Ar[2]+" cm<br>D. "+Ar[3]+" cm</p>"; var textJawab = jawab+"</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); return ArFix; }
    1. Menyiapkan canvas untuk gambar
<canvas id="myCanvas2" width="172" height="170" style="border:0px solid grey;"> </canvas>
    1. Mencetak soal
var ss ss = GetSoal2(); document.write("<p>"+ss[0]+"</p>"); document.write("Jawaban : "+ss[1]);
-------------------------------------------

Code 1 - Untuk teks saja

Pertemuan#01 - Membuat sebuah soal himpunan untuk mencari banyak siswa yang gemar kedua ekstrakulikuler

  1. Bagian pendukung :
    1. Mendapatkan sebuah angka acak
function RandomAngkaAtoB(a,b){ var r = a+Math.ceil(Math.random() * b); return r; }
    1. Mengacak isi sebuah array
function RandomMyArray(Arr){ for (var i=0; i<Arr.length; i++){ var r = Math.floor(Math.random() * Arr.length); var a = Arr[i]; Arr[i] = Arr[r]; Arr[r] = a; } return Arr }
    1. Mendapatkan nomor urut jawaban benar
function NoJawabanBenar(Arr, jwb){ for (var i=0; i<Arr.length; i++){ if (Arr[i]==jwb){ return i; break; } } }
    1. Mendapatkan huruf jawaban
function GetABCD(no){ var ABCD = ["A","B","C","D"] return ABCD[no] }
    1. Mendapatkan nama ekskul acak
function NamaEkskul(){ var Ekskul = ["berenang", "sepakbola", "pencak silat", "komputer", "bola voli", "bola basket", "panahan", "pramuka", "catur", "menari", "PMR"]; Ekskul = RandomMyArray(Ekskul); return Ekskul; }
    1. Mendapatkan Data soal
function MyFungsi1(){ //1. Sekelompok siswa terdiri dari 25 orang. //Terdapat 14 orang gemar berenang, //15 orang gemar sepakbola, //dan yang tidak gemar keduanya 5 orang. //Banyak siswa yang gemar keduanya adalah ... var a0,a1,a2,a3,a4,a5; var arDari = ["≤","≥"]; arDari = RandomMyArray(arDari); do{ a0 = 25; a1 = RandomAngkaAtoB(10,6); a2 = RandomAngkaAtoB(10,6); a3 = RandomAngkaAtoB(2,9); a4 = (a1+a2)-(a0-a3); }while (a1==a2 || a4<3) var soal = a1+"x + "+a2+" "+arDari[0]+" "+a4; var benar = a4; var salah1 = a4+1; var salah2 = a4+2; var salah3 = a4+3; var salah4 = a4-1; var salah5 = a4-2; var salah6 = a4-3; var arrSalah = [salah1,salah2,salah3,salah4,salah5,salah6]; arrSalah = RandomMyArray(arrSalah); return [a0,a1,a2,a3,benar,arrSalah]; }
-------------------------------------------
  1. Bagian utama :
    1. Program Utama
function GetSoal1(){ const MyData = MyFungsi1(); //[a0,a1,a2,a3,benar,arrSalah]; var a0=MyData[0]; var a1=MyData[1]; var a2=MyData[2]; var a3=MyData[3]; var benar=MyData[4]; var arrSalah=MyData[5]; //1. Sekelompok siswa terdiri dari 25 orang. //Terdapat 14 orang gemar berenang, //15 orang gemar sepakbola, //dan yang tidak gemar keduanya 5 orang. //Banyak siswa yang gemar keduanya adalah ... var Ekskul = NamaEkskul(); var ss ss = "Sekelompok siswa terdiri dari "+a0+" orang. "; ss += "Terdapat "+a1+" orang gemar "+Ekskul[0]+", "; ss += ""+a2+" orang gemar "+Ekskul[1]+", "; ss += "dan yang tidak gemar keduanya "+a3+" orang. "; ss += "Banyak siswa yang gemar keduanya adalah ... "; var Ar = []; // jawaban Ar[0] = benar; Ar[1] = arrSalah[0]; Ar[2] = arrSalah[1]; Ar[3] = arrSalah[2]; var jawab = Ar[0]; Ar = RandomMyArray(Ar); var noBenar = NoJawabanBenar(Ar, jawab); var textSoal = ss+" <p>A. "+Ar[0]+"<br>B. "+Ar[1]+"<br>C. "+Ar[2]+"<br>D. "+Ar[3]+"</p>"; var ArFix = []; ArFix.push(textSoal); ArFix.push(GetABCD(noBenar)); return ArFix; }
    1. Mencetak soal
var ss ss = GetSoal1(); document.write("<p>"+ss[0]+"</p>"); document.write("Jawaban : "+ss[1]);
-------------------------------------------