Menggunakan TStringList untuk Data Bertipe Array

Tidak selamanya variabel hanya berisi satu data. Ada suatu saat, kita memerlukan satu variabel berisi banyak data. Sebagai contoh, andai kita membuat program perkalian matrix. Matrik terdiri dari banyak kolom dan baris. Jika kita menyimpan setiap data tersebut dalam satu variabel, alangkah repotnya. Bayangkan saja, matrik 3 x 3 saja mempunyai sembilan data, bagaimana dengan matrik yang lebih komplek?

Untungnya, Delphi menyediakan TStringList yang menyebabkan kita dapat membuat satu nama variabel tetapi mempunyai banyak data di dalamnya.

TStringList adalah sebuah class. Oleh karena itu kita memperlakukannya juga sebagai class. Sebelum menggunakannya, kita harus meng-instan-kan ke dalam memori terlebih dahulu

var
    slData : TStringList;
begin
    slData := TStringList.Create;
end;

Ayo, langsung kita praktekkan. Kita akan membuat suatu data dengan TStringList. Kemudian data itu nantinya akan kita isikan ke dalam TMemo.

Sebuah Memo dapat diisi dengan cara biasa seperti ini:

Memo1.Lines.Add('Rumah');
Memo1.Lines.Add('Mobil'); 
Memo1.Lines.Add('Sepeda'); 
Memo1.Lines.Add('Bunga'); 

Kita dapat memanfaatkan TStringList untuk mengisi Memo. Seperti yang kita ketahui, Memo menyimpan data di dirinya denga TStringList, sehingga kita dapat mengisi variabel TStringList terlebih dahulu sebelum memasangkan ke Memo. Jangan lupa untuk menghapus variabel TStringList secara manual di akhir pemakaian dengan perintah FreeAndNil(nama_variabel).

var
    slData : TStringList;

procedure TForm1.Memo1Click(Sender: TObject);
begin
    slData := TStringList.Create;
    slData.Add('Rumah');
    slData.Add('Mobil');
    slData.Add('Sepeda');
    slData.Add('Bunga');

   Memo1.Lines := slData;

   FreeAndNil(slData);
end;


Sort: Mengurutkan data
Tidak urut? Ingin mengurutkan data? Gampang! Pakai saja property Sort milik TStringList. Sebagai contoh hal ini, tambahkan satu Button pada form. Tulis kode berikut pada event OnClick

slData.Sort;


Anda tentu masih ingat bahwa Sort yang kita pakai adalah milik TStringList. Agar perubahan urutan data terlihat di memo, kita perlu mengisi memo dengan data dari TStringList setelah diurutkan dengan menjalankan Sort, yaitu dengan

Memo1.Lines := slData;
 
Sebelum melanjutkan tentang TStringList, buatlah fungsi berikut terlebih dahulu agar kata di Memo disorot oleh penunjuk.

procedure PilihBaris(const ObyekMemo:TMemo;TheLine: integer);
begin
   with ObyekMemo do
   begin
       SelStart := Perform(EM_LINEINDEX, TheLine, 0);
       SelLength:=Length(Lines[TheLine]);
       SetFocus;
    end;
end;

 
Sebelum diurutkan:
 
  
Sesudah diurutkan



Find: Mendapatkan data kembali
Untuk mendapatkan data kembali, kita dapat memakai fungsi FIND. Yang perlu diingat, FIND hanya dapat dipakai setelah StringList diurutkan dengan SORT.

Ubah tampilan form. Tambahkan satu Edit dan satu Button menjadi seperti ini:



Pada OnClick button Cari, berilah kode ini:

var
    baris : Integer;
begin
    slData.Find(trim(edit1.Text), baris);
    slData[baris];
    PilihBaris(Memo1, baris);
end;


Kompile program diatas. Sekarang cobalah untuk menge-klik button cari sebelum diurutkan dan sesudah diurutkan.
 


SaveToFile: Menyimpan data ke dalam file text
Data-data di StringList juga dapat disimpan ke dalam bentuk text. Anda dapat memakai fungsi SaveToFile untuk berbagai keperluan. Saya sering menggunakan fungsi SaveToFile untuk memeriksa query. Query yang saya curigai salah saya simpan ke dalam text file kemudian saya jalankan pada Access (jika query tersebut milik Access) atau SQL Query Analyzer (jika memakai MS SQL Server).

Perintahnya cukup sederhana:  

slData.SaveToFile('D:\Query.txt');


Kode program selengkapnya 

Menggunakan TStringList untuk Data Bertipe Array Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.