Kamis, 03 Mei 2012

Menambah dan Menghapus data Via Array

posting baru lagi lah,lumayan panjang sumpah ni listing kodenya,
kali ini tentang bagaimana menghapus dan menambhan data memakai Array.
skrinsut nya bisa dilihat seperti gambar dibawah ini :

 oke sekarang kita ke tahapan pembuatannya . . .

1. rancang form seperti diatas dengan 3 buah button,1 buah edit text dan 1 buah StringGrid.
StringGrid dapat ditemukan di pallete Additional


 2. pada stringgrid nya beri nilai 1 pada properties ColCount nya


3. sekarang ke kodenya,pertama-tama tambahkan konstanta maks dengan nilai 10 pada bagian bawah jajaran uses,
lalu pada deklarasi privat,deklarasikan variabel jum dengan tipe integer dan array kota 1 sampai maks dengan tipe string. dan pada deklarasi publik,tambahkan sebuah prosedur dengan nama tampil
lihat susu nan nya seperti dibawah ini :


unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids;

const
  maks = 10;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    btntambah: TButton;
    btnexit: TButton;
    btnhapus: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btntambahClick(Sender: TObject);
    procedure btnhapusClick(Sender: TObject);
    procedure btnexitClick(Sender: TObject);
  private
    { Private declarations }
    kota : array[1..maks] of string;
    jum : integer;
  public
    { Public declarations }
    procedure Tampil;
  end; 
 
 4. sebelumnya,kita beri kode dulu pada prosedur tampil tersebut,kodenya seperti ini :
 
procedure TForm1.Tampil;
var
 i : integer;
begin
 StringGrid1.RowCount:=jum+1;
 StringGrid1.Cells[0,0]:='Daftar Kota';
 for I := 1 to jum do
   StringGrid1.Cells[0,i]:=kota[i];
end; 
 
5. berilah event pada Form tersebut dengan event OnCreate

lalu isikan kode berikut :
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 kota[1]:='Bandung';
 kota[2]:='Ciamis';
 kota[3]:='Jakarta';
 kota[4]:='Semarang';
 jum:=4;
 tampil;
end; 
 
NB : Nama kota bebas lah asal berurutan abjadnya
6. coba jalankan segitu dulu
7. sekarang pada button untuk tambah isikan kode ini :
 
procedure TForm1.btntambahClick(Sender: TObject);
var
 i,j : integer;
 posisi : integer;
begin
 //cek jika kosong
 if Trim(edit1.Text) = '' then
  begin
   showmessage('Nama Kota tidak boleh kosong');
   exit;
  end;

 //cek array penuh atau tidak
 if jum = maks then
  begin
   showmessage('Array Pinuh');
   exit;
  end;

 //cek jika sama
 for I := 1 to jum do
   if edit1.Text = kota[i] then
    begin
     showmessage('kota sudah ada');
     exit;
    end;


 //cari posisi
 posisi:=0;
 for I := 1 to jum do
  if edit1.Text < kota[i] then
   begin
    posisi:=i;
    break;
   end;

 if posisi = 0 then
  begin
   jum:=jum+1;
   kota[jum]:=edit1.Text;
  end
 else
  begin
   for j := jum downto posisi do
    kota[j+1]:=kota[j];
    //sisipkan
    kota[posisi]:=edit1.Text;
    jum:=jum+1;
  end;

 tampil;
end;
 
 
8. lalu pada button hapus kodenya seperti ini : 
 
procedure TForm1.btnhapusClick(Sender: TObject);
var
 i,j : integer;
 posisi : integer;
begin
 //cari posisi penghapusan
 posisi:=0;
 for I := 1 to jum do
  if edit1.Text = kota[i] then
   begin
    posisi:=i;
    break;
   end;

 //kalau tidak ditemukan
 if posisi = 0 then
  begin
   showmessage('nama kota tidak ditemukan');
   exit;
  end;

  //hapus kota
  if posisi = jum then
   begin
    //hapus kota di bagian akhir
    jum:=jum-1;
   end
  else
   begin
    //geser keatas
    for j := posisi+1 to jum do
     kota[j-1]:=kota[j];
   jum:=jum-1;
   end;

 tampil;
end;
    
 9. pada tombol hapus bisa close atau application.terminate
10. oke selesai silahkan di Run dan coba hapus atau tambah
11. semoga bermanfaat

0 komentar:

Posting Komentar