Daftar Isi
Lihat contoh kasus konversi nilai angka ke huruf. Skenario yang terjadi adalah bila saya mengisi nilai pada edit teks lalu menekan tombol konversi nilai maka nilai pada label akan muncul sesuai ketentuan yang dibuat
procedure TForm1.btn1Click(Sender: TObject); var angka:integer; huruf:string; begin angka:=StrToInt(edt1.Text); case angka of 0..25 :huruf:='E'; 26..40 : huruf:='D'; 41..60 : huruf:='C'; 61..80 : huruf:='B'; 81..100 : huruf:='A'; else huruf:='T'; end; label2.Caption:=huruf; end.
Syarat case..of :
nilai variabelangka
tidak dapat diganti menjadistring
walau type data nya sudah diganti jadistring
Jangan galau dengan masalah ini, saya menemukan satu cara mentuk menyelesaikan masalah ini, yakni dengan menggunakan array
sebagai peng-index
string yang dibuat.
contoh kasus anak dihubungkan ke alamat masing-masing.
Langkah pertama buat fungsi untuk mengindexkan tiap baris of case dalam array lihat script dibawah
{$R *.dfm} function CoS(s:string; a:array of string):integer; begin Result:=0; while (Result < Length(a))and (a[Result]<>s)do Inc(Result); if a[Result]<>s then Result:=-1; end;
Langkah kedua buat tombol yang menggunak fungsi yang tadi di buat untuk menjalankan case of
lihat script dibawah
procedure TForm1.btn1Click(Sender: TObject); var nama,alamat:string; begin nama:=cbb1.Text; case CoS(nama,['BUDI','ADI','AYU','AHMAD','RIA']) of 0:alamat:='alamat rumah Budi'; 1:alamat:='alamat rumah Adi'; 2:alamat:='alamat rumah Ayu'; 3:alamat:='alamat rumah Ahmad'; 4:alamat:='alamat rumah Ria'; end; label2.Caption:=alamat; end;
Catatan:
contoh tersebut hanya agar dapat dengan mudah dimengerti walaupu sebenarnya untuk menentukan nilaicase
dariComboBox
dapat ditentukan dengan merujuk padaitem index
dari masing-masing item padaComboBox
tersebut Lihat kode berikut:
procedure TForm1.btn1Click(Sender: TObject); var nama:Integer; alamat:string; begin nama:=cbb1.ItemIndex; case nama of 0:alamat:='alamat rumah Budi'; 1:alamat:='alamat rumah Adi'; 2:alamat:='alamat rumah Ayu'; 3:alamat:='alamat rumah Ahmad'; 4:alamat:='alamat rumah Ria'; end; label2.Caption:=alamat; end;