Arsip: [ASK] Memperpendek Coding

 
user image
more 18 years ago

lord_kimm

procedure TFrmTambahGuru.btnTambahTutupClick(Sender: TObject);
var
  TambahGuruSQL : string;
begin
  if length(trim(edNama.Text))=0 then
    begin
      kosong;
      edNama.Setfocus;
    end
  else if (cbAgama.ItemIndex=-1) or (length(trim(cbAgama.Text))=0) then
    begin
      kosong;
      cbAgama.SetFocus;
    end
  else if rgJnsKelamin.ItemIndex=-1 then
    begin
      kosong;
      rgJnsKelamin.SetFocus;
    end
  else if length(trim(edAlamat.Text))=0 then
    begin
      kosong;
      edAlamat.SetFocus;
    end
  else if length(trim(edTTL.Text))=0 then
    begin
      kosong;
      edTTL.SetFocus;
    end
  else if rgStatus.ItemIndex=-1 then
    begin
      kosong;
      rgStatus.SetFocus;
    end
  else if rgStsPegawai.ItemIndex=-1 then
    begin
      kosong;
      rgStsPegawai.SetFocus;
    end
  else if length(trim(edPangkat.Text))=0 then
    begin
      kosong;
      edPangkat.SetFocus;
    end
  else if length(trim(edJabatan.Text))=0 then
    begin
      kosong;
      edJabatan.SetFocus;
    end
  else if length(trim(edNoTelpon.Text))=0 then
    begin
      kosong;
      edNoTelpon.SetFocus;
    end
  else if length(trim(edNoHP.Text))=0 then
    begin
      kosong;
      edNoHP.SetFocus;
    end
  else if length(trim(edRwytSD.Text))=0 then
    begin
      kosong;
      edRwytSD.SetFocus;
    end
  else if length(trim(edRwytSMP.Text))=0 then
    begin
      kosong;
      edRwytSMP.SetFocus;
    end
  else if length(trim(edRwytSMA.Text))=0 then
    begin
      kosong;
      edRwytSMA.SetFocus;
    end
  else if length(trim(edKuliah1.Text))=0 then
    begin
      kosong;
      edKuliah1.SetFocus;
    end
  else if length(trim(edKuliah2.Text))=0 then
    begin
      kosong;
      edKuliah2.SetFocus;
    end
  else if length(trim(edKuliah3.Text))=0 then
    begin
      kosong;
      edKuliah3.SetFocus;
    end
  else
    begin
      TambahGuruSQL:='insert into GURU(NIP,NAMA,JNSKELAMIN,AGAMA,TTL,ALAMAT,STATUS,PANGKAT,JABATAN,STSPEGAWAI,NOTELPON,NOHP,RWYTSD,RWYTSMP,RWYTSMA,KULIAH1,KULIAH2,KULIAH3)'+
      'values('''+edNIP.Text+''','''+edNama.Text+''','''+IntToStr(rgJnsKelamin.ItemIndex)+''','''+IntToStr(cbAgama.ItemIndex)+''','''+ edTTL.Text+''','''+ edAlamat.Text +''','''+IntToStr(rgStatus.ItemIndex)+''','''+edPangkat.Text+''','''+edJabatan.Text+''','''+IntToStr(rgSTSPegawai.ItemIndex)+''','''+edNoTelpon.Text+''','''+edNoHP.Text +''','''+edRwytSD.Text+''','''+edRwytSMP.Text+''','''+edRwytSMA.Text+''','''+edKuliah1.Text+''','''+edKuliah2.Text+''','''+edKuliah3.Text+''')';
      DM.QueryUtama.Close;
      DM.QueryUtama.SQL.Clear;
      DM.QueryUtama.SQL.Add(TambahGuruSQL);
      DM.QueryUtama.ExecSQL;
      FrmDataGuru.tGuru.Refresh;
      Application.MessageBox('Data berhasil ditambah','Sukses ! !',MB_IconInformation);
      Close;
    end;
end;
Kira2 dari source code diatas bisa diperpendek lagi gak? Biar gak ngebebanin program :D BTW kalau dikasih fungsi silahkan saja yang penting bisa pendek :P
user image
more 18 years ago

amyra

Coba seperti gini:

For x:=0 to form1.components.count-1 do
 begin
case form1.components[x].tag of
1..4: //semua komponen yg bertipe TEdit diberi nomor tag 1 s/d 4
        if length((form1.components[x] as tEdit).text)=0 then
        with (form1.componenst[x] as tEdit) do 
   begin
   setfocus;
   break;
   end;
5..7: //yang TCombobox di kasih nomor 5 s/d 7
       if (form1.componenst[x] as TCombobox).itemindex=-1 then
       With componenst[x] as TCombobox do
       begin
       SetFocus;
       break;
       end;
end; //end case
 end; // end for
begitu dan seterusnya silahkan kembangkan sendiri.
user image
more 18 years ago

lord_kimm

Mas bisa diperjelas lagi gak? kok saya pas ngekompil malah ERROR pada syntax :
For x:=0 to form1.components.count-1 do
Kata si Delphi setelah tulisan components gak boleh ada titik bolehnya tanda " [" Bisa bantu saya kan mas? diperjelas lagi dunk :D
','''+€02à©"©Ü
user image
more 18 years ago

lord_kimm

procedure TFrmTambahGuru.btnTambahTutupClick(Sender: TObject);
var
  TambahGuruSQL : string;
begin
  if length(trim(edNama.Text))=0 then
    begin
      kosong;
      edNama.Setfocus;
    end
  else if (cbAgama.ItemIndex=-1) or (length(trim(cbAgama.Text))=0) then
    begin
      kosong;
      cbAgama.SetFocus;
    end
  else if rgJnsKelamin.ItemIndex=-1 then
    begin
      kosong;
      rgJnsKelamin.SetFocus;
    end
  else if length(trim(edAlamat.Text))=0 then
    begin
      kosong;
      edAlamat.SetFocus;
    end
  else if length(trim(edTTL.Text))=0 then
    begin
      kosong;
      edTTL.SetFocus;
    end
  else if rgStatus.ItemIndex=-1 then
    begin
      kosong;
      rgStatus.SetFocus;
    end
  else if rgStsPegawai.ItemIndex=-1 then
    begin
      kosong;
      rgStsPegawai.SetFocus;
    end
  else if length(trim(edPangkat.Text))=0 then
    begin
      kosong;
      edPangkat.SetFocus;
    end
  else if length(trim(edJabatan.Text))=0 then
    begin
      kosong;
      edJabatan.SetFocus;
    end
  else if length(trim(edNoTelpon.Text))=0 then
    begin
      kosong;
      edNoTelpon.SetFocus;
    end
  else if length(trim(edNoHP.Text))=0 then
    begin
      kosong;
      edNoHP.SetFocus;
    end
  else if length(trim(edRwytSD.Text))=0 then
    begin
      kosong;
      edRwytSD.SetFocus;
    end
  else if length(trim(edRwytSMP.Text))=0 then
    begin
      kosong;
      edRwytSMP.SetFocus;
    end
  else if length(trim(edRwytSMA.Text))=0 then
    begin
      kosong;
      edRwytSMA.SetFocus;
    end
  else if length(trim(edKuliah1.Text))=0 then
    begin
      kosong;
      edKuliah1.SetFocus;
    end
  else if length(trim(edKuliah2.Text))=0 then
    begin
      kosong;
      edKuliah2.SetFocus;
    end
  else if length(trim(edKuliah3.Text))=0 then
    begin
      kosong;
      edKuliah3.SetFocus;
    end
  else
    begin
      TambahGuruSQL:='insert into GURU(NIP,NAMA,JNSKELAMIN,AGAMA,TTL,ALAMAT,STATUS,PANGKAT,JABATAN,STSPEGAWAI,NOTELPON,NOHP,RWYTSD,RWYTSMP,RWYTSMA,KULIAH1,KULIAH2,KULIAH3)'+
      'values('''+edNIP.Text+''','''+edNama.Text+''','''+IntToStr(rgJnsKelamin.ItemIndex)+''','''+IntToStr(cbAgama.ItemIndex)+''','''+ edTTL.Text+''','''+ edAlamat.Text +''','''+IntToStr(rgStatus.ItemIndex)+''','''+edPangkat.Text+''','''+edJabatan.Text+''','''+IntToStr(rgSTSPegawai.ItemIndex)+''','''+edNoTelpon.Text+''','''+edNoHP.Text +''','''+edRwytSD.Text+''','''+edRwytSMP.Text+''','''+edRwytSMA.Text+''','''+edKuliah1.Text+''','''+edKuliah2.Text+''','''+edKuliah3.Text+''')';
      DM.QueryUtama.Close;
      DM.QueryUtama.SQL.Clear;
      DM.QueryUtama.SQL.Add(TambahGuruSQL);
      DM.QueryUtama.ExecSQL;
      FrmDataGuru.tGuru.Refresh;
      Application.MessageBox('Data berhasil ditambah','Sukses ! !',MB_IconInformation);
      Close;
    end;
end;
Kira2 dari source code diatas bisa diperpendek lagi gak? Biar gak ngebebanin program :D BTW kalau dikasih fungsi silahkan saja yang penting bisa pendek :P
user image
more 18 years ago

amyra

Coba seperti gini:

For x:=0 to form1.components.count-1 do
 begin
case form1.components[x]
              
user image
more 18 years ago

deLogic

langsung aja: For x:=0 to form1.ComponentCount-1 do
user image
more 18 years ago

lord_kimm

Mas saya masih kurang mengerti, yang jadi pertanyaan saya gimana jika tEdit lengtnya bukan 0 dan tComboBox itemindex bukan -1 lagi maka akan terjadi procedure atau perintahlah, istilahnya ada kata ELSE gitu. Berarti kita kodingnya kayak gimana? Maaf banget saya masih pemula belum bisa tingkat yang agak tinggi, mohon bimbingannya.
For x:=0 to form1.componentcount-1 do
 begin
case form1.components[x].tag of
1..4: //semua komponen yg bertipe TEdit diberi nomor tag 1 s/d 4
        if length((form1.components[x] as tEdit).text)=0 then
        with (form1.components[x] as tEdit) do 
   begin
   setfocus;
   break;
   end;
 
5..7: //yang TCombobox di kasih nomor 5 s/d 7
       if (form1.components[x] as TCombobox).itemindex=-1 then
       With components[x] as TCombobox do
       begin
       SetFocus;
       break;
       end;
 
end; //end case
 end; // end for 
user image
more 18 years ago

amyra

He..he..he Improvisasi dong, coba-coba TRIAL AND ERROR kerennya, pasti bisa
user image
more 18 years ago

lord_kimm

@amyra bukannya saya males nyoba2 tapi saya udah nyoba2 , saya juga kurang begitu ngerti masalah logika pengulangan atau syntaxnya delphi , saya ini baru banget belajar Delphi jadi mohon bimbingannya.
user image
more 18 years ago

yayaretina

atau bisa di buatkan fugsi sendiri untuk mengecek apakah ada kolom yg wajib di isi kosong...

private
    { Private declarations }
    function oke:boolean;
....................
....................
function TFTambahGuru.Oke:boolean;
begin
  Result:=true;
  if Result then Result:=length(trim(edNama.Text))<>0;
  if Result then Result:=length(trim(cbAgama.Text))<>0;
  if Result then Result:=length(trim(edAlamat.Text))<>0;
  if Result then Result:=length(trim(edTTL.Text))<>0;
  if .........//dst pada kolom yg wajib di isi...
  ............................................................
  if not Result then
  begin
    MessageBox(Handle,'Ada kolom wajib yang belum di isi..!!','Error',
      MB_ICONERROR);
  end;
end;
untuk pemanggilan fungsi :

procedure TFrmTambahGuru.btnTambahTutupClick(Sender: TObject);
begin
  if Oke then
  begin
  .................//perintah eksekusi
  end;
end;
besok2 kalo posting di kasih spasi ya.. biar gak puanjang ke kanan... capek deh harus geser-geser... kekekekek....
more ...
  • Pages:
  • 1
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com