Minggu, 11 Januari 2015

Belajar Operator dan Tipe Data di Delphi (Kalkulator Sederhana)

Belajar operator bilangan dan tipe data kadang dianggap membosankan dan membuat pusing bagi sebagian calon progamer khususnya pejuang-pejuang tercinta saya. Tapi kalau belajarnya sambil bermain-main membuat kalkulator sederhana, akan terasa jadi lebih mudah diingat dan menyenangkan kan? kan? kan?

Ok, untuk langkah awal silahkan membuat design kalkulator sederhana yang terdiri dari :
a. 4 label
b. 3 edit (dalam VB namanya text field Gan) untuk menempatkan bilangan pertama, kedua, dan hasil operasi bilangan
c. 4 button untuk tombol penjumlahan, pengurangan, perkalian, dan pembagian.
Contoh designnya seperti di bawah ini (agan bisa membuat design sendiri yang lebih menarik) :
Gambar 1. Design Kalkulator

  • Edit 1 ubah name-nya menjadi EdBil1, Edit 2 ubah name-nya menjadi EdBil2, Edit 3 ubah name-nya menjadi EdHasil. Kemudian untuk Text-nya dikosongkan semua ya Gan? (Name dan Text dicari di object inspector ya Gan?)
  • Button 1 ubah caption-nya menjadi "Jumlah", Button 2 ubah caption-nya menjadi "Kurang", Button 3 ubah caption-nya menjadi "Bagi" dan Button 4 ubah caption-nya menjadi "Kali" (Caption dicari di object inspector masing-masing object ya Gan?)
  • Label 1 ubah caption-nya menjadi Bilangan A, Label 2 ubah caption-nya menjadi Bilangan B, Label 3 ubah caption-nya menjadi Hasil

Sekarang kita akan mulai memberikan koding. Jangan sampai salah menempatkan koding ya Gan? Ntar pas user pakai kalkulator agan dan diklik button yang ada caption penjumlahan tapi hasilnya jadi perkalian kan bisa gawat (kesalahan yang terlihat kecil tapi berakibat besar)

1. Double klik Button 1 (caption Jumlah), kita isikan koding penjumlahan seperti di bawah ini Gan :


procedure TForm1.Button1Click(Sender: TObject);
var bil_a:integer;
bil_b:integer;
hasil:integer;
begin
bil_a:=strtoint(EdBil1.Text);
bil_b:=strtoint(EdBil2.Text);
hasil:=bil_a+bil_b;
EdHasil.Text:=inttostr(hasil);
end;

*Penjelasan koding :
a. koding warna biru :

  • Kita harus mendefinisikan objek yang akan diproses. Dalam hal ini kita ibaratkan bil_a, bil_b, dan hasil
  • Bilangan yang akan kita proses di latihan kita adalah bilangan bulat jadi tipe data yang digunakan adalah "integer" yang merupakan tipe data untuk bilangan bulat. Kita variabel-kan bil_a, bil_b, dan hasil dengan integer

b. koding warna merah :
  • Dalam delphi, semua yang diinputkan pada Form, bertipe data String (tipe data untuk huruf) , sehingga jika suatu program membutuhkan proses perhitungan, harus ada konversi data dari string ke dalam bentuk tipe data numerik
  • Kita akan mengkonversi tipe data string input di EdBil1 dan EdBil2 menjadi integer jadi kita menggunakan konversi strtoint. Syntaxnya adalah nama_variabel :=konversi(komponeninput)
  • bil_a merupakan konversi string ke integer dari semua bilangan yang diinputkan di EdBil1.Text dan bil_b merupakan konversi string ke integer dari semua bilangan yang diinputkan di EdBil2.Text


c. koding warna hijau :

  • Setelah input, saatnya membuat koding untuk prosesnya
  • hasil merupakan penjumlahan bil_a dan bil_b

d. koding warna ungu :

  • Kalau tadi pada saat mengolah input kita menggunakan bilangan jadi membutuhkan tipe data integer, maka sekarang kita menampilkan hasil input yang sudah diproses ke dalam EdHasil.Text yang berupa huruf (tipe data string)
  • Konversi yang digunakan adalah integer ke string (inttostr). Syntax-nya adalah komponen_output:=konversi(nama_variabel)
  • EdHasil.Text adalah hasil konversi output dari integer ke string hasil

e. koding warna hitam :

  • itu sih koding utama Gan hehehehe.... ^_^



2. Sekarang klik di Button 2 (caption Kurang). Masukkan koding di bawah ini :


procedure TForm1.Button2Click(Sender: TObject);
var bil_a,bil_b,hasil:integer;
begin
bil_a:=strtoint(EdBil1.Text);
bil_b:=strtoint(EdBil2.Text);
hasil:=bil_a - bil_b;
EdHasil.Text:=inttostr(hasil);
end; 


*Penjelasan  :
kodingnya hampir sama dengan koding penjumlahan Gan, tapi lihat di koding proses warna hijau. Penjumlahan diganti pengurangan.

3. Klik Button 4 (caption Kali). Masukkan koding di bawah ini :


procedure TForm1.Button4Click(Sender: TObject);
var bil_a,bil_b,hasil:integer;
begin
bil_a:=strtoint(EdBil1.Text);
bil_b:=strtoint(EdBil2.Text);
hasil:=bil_a * bil_b;
EdHasil.Text:=inttostr(hasil);
end;

*Penjelasan :
kodingnya hampir sama juga Gan, bedanya di bagian proses koding warna hijau diganti tanda (*) yang berarti kali

4. Klik Button 3 (caption Bagi). Masukkan koding di bawah ini :


procedure TForm1.Button3Click(Sender: TObject);
var bil_a, bil_b:integer;
hasil:real;
begin
bil_a:=strtoint(EdBil1.Text);
bil_b:=strtoint(EdBil2.Text);
hasil:=bil_a / bil_b;
EdHasil.Text:=floattostr(hasil);
end;

*Penjelasan :
Ternyata ada beberapa perbedaan ya Gan? Pada variabel hasil koding warna merah, proses warna hijau, dan koversi output koding warna ungu. Berikut saya uraikan :
a. Pada pembagian, tidak mungkin jika hasilnya selalu bulat. Contohnya 1 dibagi 2 hasilnya adalah 0,5 (bilangan pecahan atau desimal) Sehingga kita harus memberi tipe data untuk bilangan desimal atau pecahan pada hasil yaitu dengan variabel real (variabel untuk pecahan atau desimal).
b. Pada proses warna hijau, karena kita akan membuat koding pembagian maka tandanya diganti menjadi (/) yang berarti bagi.
c. Pada hasil, karena dia merupakan tipe data real maka pada saat akan ditampilkan konversinya dari tipe data real ke string. Kita gunakan konversi floattostr.

Sekarang saatnya kita run program kita. Hasilnya seperti di bawah ini :
Gambar 2. Hasil Kalkulator Sederhana
Bagaimana? Mudah dan menyenangkan kan Gan? Agan juga bisa menambahkan operator yang lain untuk membuat kalkulator agan lebih lengkap. Berikut Jenis operator yang bisa agan tambahkan :
* Derajat Operator :
1.  @, not
2.  *,/,div,mod,and,shl,shr,as
3.  +,-,or,xor
4.  =,<,>,<=,>=,<>,in,is

* Operator Assigment:

Operator Fungsi Tipe yang diproses Tipe hasil proses
* >> Perkalian >> Integer, real Integer, Real
/  >> Pembagian >> real Integer, real Integer, Real
+ >> Penjumlahan >> Integer, real Integer, Real
- >> Pengurangan >> Integer, real Integer, Real
Div >> Pembagian >> integer Integer Integer
Mod >> Sisa hasil bagi >> Integer integer
//Contoh penerapan :
Angka : = 15 * 2, {Hasil 30}
Angka : = 18 / 2, {Hasil 9}
Angka : = 5 + 2, {Hasil 7}
Angka : = 5 - 2, {Hasil 3}
Angka : = 10 Div 2; {Hasil 5}
Angka : = 10 mod 2; {Hasil 0}

* Operator Relasi :

Operator relasi berfungsi untuk membandingkan suatu nilai (ekspresi) dengan nilai (ekspresi) lain yang akan menghasilkan suatu nilai logika (boolean) yaitu True atau False. Kedua data nilai yang dibandingkan tersebut harus memiliki tipe data yang sama.

*Operator Logika :

AND >> Dan >> Integer Boolean
OR >> Atau >> Integer Boolean
Not >> Tidak >> Integer Boolean
Xor >> Exclusive Or >> Integer Boolean
Shl >> Geser Ke kiri >> Integer Boolean
Shr >> Geser ke Kanan >> Integer Boolean

*Operator Boolean :

And >> Dan >> Boolean Boolean
Or >> Atau >> Boolean Boolean
Not >>Tidak >> Boolean Boolean
Xor >> Exclusive Or >> Boolean Boolean

*Berikut contoh konversi tipe data dalam delphi.
• String ke Integer Strtoint
• String ke Real strtofloat
• String ke currency strtocurr
• Integer ke String inttostr
• Real ke String floattostr
• Currency ke String currtostr

Demikian Game kita kali ini. Silahkan dicoba.... ^_^

referensi : Pemrograman Delphi, Agus Sunarso, S. Kom







16 komentar:

  1. bu wahyu ini alamat web saya yuliwulan.esy.es

    BalasHapus
    Balasan
    1. ok, pada bagian artikel kok title-nya kontak ya?

      Hapus
  2. Alamat Website : oiwawan.16mb.com

    BalasHapus
  3. ariamedda.890m.com
    hosting sayha bu...Ari /semester 2 /S1-TI

    BalasHapus
  4. http://rindyfatika.esy.es/ ==> RINDY FATIKASARI /S1 /SISTEM INFORMASI /2

    BalasHapus
  5. ini website saya bu,,
    namikaze-cahya.esy.es

    BalasHapus
  6. iranarin.esy.es
    maaf bu, komentar alamat saya yang pertama salah :D
    /Irana Dwi Hapsari/Sistem Informasi/

    BalasHapus
    Balasan
    1. ok. pantas saja tidak ketemu. ternyata salah alamatny ya? ^_^

      Hapus
  7. bu.. ini alamat web hosting saya
    https://sites.google.com/site/sekartaji2015

    BalasHapus
  8. Balasan
    1. Aduh pakdos pakar Java terlalu memuji, saya tak seahli itu hehe. Terima kasih kunjungannya Pak Bos Nanung ^_^

      Hapus