Sunday, September 18, 2022

Program Latihan berhitung untuk anak

Mengajarkan Dasar matematika dengan program




Seperti yang kita tahu matematika dasar seperti penjumlahan, perkalian, pengurangan, dan pembagian adalah dasar matematika yang mana untuk menguasainya butuh hapalan, latihan yang berulang - ulang sehingga otak kita akan secara refleks menjawab. 

Dalam penguasaan matematika setelahnya tetap akan tergantung oleh kemampuan ini, dan contoh saja jika soal matematika rumusnya kita hapal dan cara kita tau tapi salah hitungannya ya tetap saja salah, apalagi jika sedang ujian tidak ada kata dikit lagi benar.

oleh karena itu seperti yang saya jeaskan kita butuh latihan, nah latihan membutuhkan waktu dan perhatian kita jika bisa menggunakan software akan sangat membantu. nah berikut adalah softwarenya yang dibuat dengan delphi. simple program tapi cukup berguna.



jadi di sini ada 5 macam latihan : sesuai dengan tulisannya jika penjumlahan hanya akan ada soal penjumlahan saja dan seterusnya kecuali yang acak akan memberikan keempat latihan secara acak.

pada umumnya anak akan di berikan 2 sesi per hari jangan terlalu banyak nanti bosan per sesi rentang waktunya adalah 15 menit. rata2 anak jika sudah bisa mencapai 200 - 250 tanpa salah soal berarti sudah terbiasa.

untuk mempertahankan gunakan acak 1 sesi per hari jika terjadi penurunan maka kembali cek per latihan mana yang menurun dan lakukan 2 sesi per hari (kayak minim obat ya ada resepnya). ini sih yang saya lakukan pada anak saya dan berhasil.

jadi silahkan di download software nya  disini, {tidak perlu di install langsung saja di klik}


bagi yang ingin membuat programnya saya sediakan listingnya :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    grp1: TGroupBox;
    lbl1: TLabel;
    lbl3: TLabel;
    lbl2: TLabel;
    lbl4: TLabel;
    edt1: TEdit;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    btn5: TButton;
    btn6: TButton;
    btn7: TButton;
    btn8: TButton;
    btn9: TButton;
    btn10: TButton;
    btn11: TButton;
    btn12: TButton;
    lbl5: TLabel;
    tmr1: TTimer;
    lbl6: TLabel;
    rg1: TRadioGroup;
    procedure FormCreate(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn12Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
    procedure btn6Click(Sender: TObject);
    procedure btn7Click(Sender: TObject);
    procedure btn8Click(Sender: TObject);
    procedure btn9Click(Sender: TObject);
    procedure btn10Click(Sender: TObject);
    procedure btn11Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure edt1KeyPress(Sender: TObject; var Key: Char);
    procedure edt1Change(Sender: TObject);
    procedure rg1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

    jawab : string;
    i,hasil_pembagi : byte;
    benar,salah,total : word;
    waktu : word;

    tabel1 : array [2..10,2..10] of Integer;

    procedure acak_soal ();
  end;

const
  A : array [1..10] of byte = (11,12,13,14,15,16,17,18,19,20);
var
  Form1: TForm1;

implementation

uses Math;

{$R *.dfm}

procedure Tform1.acak_soal ();
var
  c1 : integer;
  x,y : Byte;
begin
  //Randomize;
  if rg1.ItemIndex < 2 then
    begin
      c1 := RandomRange(11,21);
      lbl1.Caption := IntToStr(c1);

      c1 := RandomRange(4,11);
      lbl2.Caption := IntToStr(c1);
    end;
  if rg1.ItemIndex = 2 then
    begin
      c1 := RandomRange(2,11);
      lbl1.Caption := IntToStr(c1);

      c1 := RandomRange(2,11);
      lbl2.Caption := IntToStr(c1);
    end;
  if rg1.ItemIndex = 3 then
    begin
      x := RandomRange(2,11);
      y := RandomRange(2,11);
      lbl1.Caption := inttostr(tabel1[x,y]);
      lbl2.Caption := IntToStr(y);
      hasil_pembagi := x;
    end;      
  if rg1.ItemIndex = 4 then
    begin
      c1 := RandomRange(1,5);
      case c1 of
        1 : begin
              lbl3.Caption := '+';
              c1 := RandomRange(11,21);
              lbl1.Caption := IntToStr(c1);

              c1 := RandomRange(4,11);
              lbl2.Caption := IntToStr(c1);
            end;
        2 : begin
              lbl3.Caption := '-';
              c1 := RandomRange(11,21);
              lbl1.Caption := IntToStr(c1);

              c1 := RandomRange(4,11);
              lbl2.Caption := IntToStr(c1);
            end;
        3 : begin
              lbl3.Caption := 'x';
              c1 := RandomRange(2,11);
              lbl1.Caption := IntToStr(c1); 
              c1 := RandomRange(2,11);
              lbl2.Caption := IntToStr(c1);
            end;
        4 : begin
              lbl3.Caption := ':';
              x := RandomRange(2,11);
              y := RandomRange(2,11);
              lbl1.Caption := inttostr(tabel1[x,y]);
              lbl2.Caption := IntToStr(y);
              hasil_pembagi := x;
            end;
      end;
    end;

end;

procedure TForm1.FormCreate(Sender: TObject);
var
x,y : Byte;
begin
  waktu := 0;   tmr1.Enabled := false; btn1.Enabled := false;
  jawab := ''; lbl1.Caption := '';  lbl2.Caption := ''; lbl5.Caption := 'Benar = 0 Salah = 0 Total = 0';
  edt1.Text := jawab;
  Randomize;
  acak_soal;
  benar := 0;  salah := 0; total := 0;
  if rg1.ItemIndex = 0 then lbl3.Caption := '+';

  // menyiapkan tabel
  for x := 2 to 10 do
    begin
      for y := 2 to 10 do
        begin
          tabel1[x,y] := x*y;
        end;
    end;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  jawab := jawab + '1';
  edt1.Text := jawab;
end;

procedure TForm1.btn12Click(Sender: TObject);
begin
  jawab := '';
  edt1.Text := jawab;
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
  jawab := jawab + '2';
  edt1.Text := jawab;
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
  jawab := jawab + '3';
  edt1.Text := jawab;
end;

procedure TForm1.btn5Click(Sender: TObject);
begin
  jawab := jawab + '4';
  edt1.Text := jawab;
end;

procedure TForm1.btn6Click(Sender: TObject);
begin
  jawab := jawab + '5';
  edt1.Text := jawab;
end;

procedure TForm1.btn7Click(Sender: TObject);
begin
  jawab := jawab + '6';
  edt1.Text := jawab;
end;

procedure TForm1.btn8Click(Sender: TObject);
begin
  jawab := jawab + '7';
  edt1.Text := jawab;
end;

procedure TForm1.btn9Click(Sender: TObject);
begin
  jawab := jawab + '8';
  edt1.Text := jawab;
end;

procedure TForm1.btn10Click(Sender: TObject);
begin
  jawab := jawab + '9';
  edt1.Text := jawab;
end;

procedure TForm1.btn11Click(Sender: TObject);
begin
  jawab := jawab + '0';
  edt1.Text := jawab;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  x,y : word;
begin
  if rg1.ItemIndex = 0 then
    begin
      x := strtoint(lbl1.Caption) + strtoint(lbl2.Caption);
    end;
  if rg1.ItemIndex = 1 then
    begin
      x := strtoint(lbl1.Caption) - strtoint(lbl2.Caption);
    end;
  if rg1.ItemIndex = 2 then
    begin
      x := tabel1[strtoint(lbl1.Caption),strtoint(lbl2.Caption)];
    end;
  if rg1.ItemIndex = 3 then
    begin
      x := hasil_pembagi;
    end;
  if rg1.ItemIndex = 4 then
    begin
      if lbl3.Caption = '+' then x := strtoint(lbl1.Caption) + strtoint(lbl2.Caption);
      if lbl3.Caption = '-' then x := strtoint(lbl1.Caption) - strtoint(lbl2.Caption);
      if lbl3.Caption = 'x' then  x := tabel1[strtoint(lbl1.Caption),strtoint(lbl2.Caption)];
      if lbl3.Caption = ':' then x :=  hasil_pembagi;
    end;

  if edt1.Text = '' then edt1.Text := '0';  // jika kosong rubah jadi 0
  y := strtoint(edt1.Text);

  if x = y then
    begin
      inc(benar);
      edt1.Text := '';
    end
  else inc(salah);
  total := benar + salah ;
  acak_soal;
  lbl5.Caption := 'Benar = '+inttostr(benar)+' Salah = '+inttostr(salah)+ ' Total = '+ inttostr(total);

  jawab := '';
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
  inc(waktu);
  lbl6.Caption := inttostr(900 - waktu);
  if waktu >= 900 then
    begin
      tmr1.Enabled := false;
      waktu := 0; btn1.Enabled := false;
      ShowMessage('Waktu sudah habis catat berapa benar dan salah kirimkan ke wa ayah');
    end;
end;

procedure TForm1.edt1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in['0'..'9',#8,#13,#32]) then
     begin
       key:=#0;
       showmessage('inputan hanya angka bro');
     end;
end;

procedure TForm1.edt1Change(Sender: TObject);
begin
  jawab := edt1.Text;
end;

procedure TForm1.rg1Click(Sender: TObject);
begin
  tmr1.Enabled := false;
  lbl6.Caption := '900';
  if rg1.ItemIndex = 0 then lbl3.Caption := '+';
  if rg1.ItemIndex = 1 then lbl3.Caption := '-';
  if rg1.ItemIndex = 2 then lbl3.Caption := 'X';
  if rg1.ItemIndex = 3 then lbl3.Caption := ':';
  if rg1.ItemIndex = 4 then ;
  ShowMessage('Lama test adalah 15 menit, dan dimulai setelah di kilk OK');
  waktu := 0;
  acak_soal;
  tmr1.Enabled := true; btn1.Enabled := true;
end;

end.




No comments:

Post a Comment