You are on page 1of 16

DEPAN | About | Agenda | Forum | Foto | Buku Tamu | Webmail | Sitemap | Log in

Pembuatan Aplikasi Kalkulator Menggunakan Bahasa Pemrograman Lazarus


May 28th, 2010 | KATEGORI : Pemrograman, Tutorial 17 Komentar Penulis : Jain Rahman

Berikut ini cuma contoh aplikasi sangat sederhana yaitu pembuatan aplikasi kalkulator sederhana menggunakan bahasa pemrograman lazarus. Fasilitas yang disediakan adalah fasilitas penghitungan paling sederhana (penjumlahan,pengurangan, perkalian dan pembagian dengan bilangan pecahan dan bilangan negatif. Disini dijelaskan deklarasi variabel & prosedur-prosedur yang penting dalam pembuatan aplikasi tersebut : unit u_calculator; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

StdCtrls, ExtCtrls, Menus; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button10: TButton; Button11: TButton; Button13: TButton; Button14: TButton; Button15: TButton; Button16: TButton; Button17: TButton; Button18: TButton; Button19: TButton; Button2: TButton; Button20: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Edit1: TEdit; MainMenu1: TMainMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button17Click(Sender: TObject); procedure Button18Click(Sender: TObject); procedure Button19Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button20Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure MenuItem2Click(Sender: TObject); procedure MenuItem3Click(Sender: TObject); procedure proses_hitung(); procedure proses_inc(kar : Char); procedure proses_array(kar : Char); procedure FormCreate(Sender: TObject); private { private declarations } public { public declarations } end; // //DEKLARASI VARIABLE GLOBAL var Form1: TForm1; posisi : Byte; tempstr : String; hasil : Real; temp : array[1..20] of String; ketik : boolean; keterangan fungsi masing-masing variabel : # posisi : menunjukkan posisi penempatan angka atau simbol ke dalam variabel penampung. variabel penampung tersebut bernama temp. # tempstr : variabel untuk menampung yang membantu agar pemakai dapat memasukkan angka lebih dari satu digit # hasil : variabel penampung hasil penghitungan # temp : variable array untuk menampung angka & tanda penghitungan # ketik : variable boolean sebagai penanda apakah pengguna sudah menekan tombol tanda hitung implementation { TForm1 } // //FORM CREATE procedure TForm1.FormCreate(Sender: TObject); begin hasil := 0; tempstr := ; posisi := 1;

edit1.Text:= FloatToStr(hasil); ketik:=false; end; Prosedur FormCreate bertujuan memberikan nilai variable-variable pada pertama kali aplikasi dijalankan. Fungsi FloatToStr() berfungsi untuk mengubah nilai angka pecahan menjadi String dan ditampilkan pada komponen edit1. // //PENEKANAN TOMBOL ANGKA procedure TForm1.proses_inc(kar : Char); begin if (ketik = false) then Edit1.Text := ; tempstr:=Edit1.Text; tempstr:=tempstr+kar; hasil:=StrToFloat(tempstr); Edit1.Text:=FloatToStr(hasil); ketik:=true; end; Penekanan tombol angka pada mulanya melakukan pemeriksaan apakah sebelum penekanan tombol tersebut ditekan tombol tanda hitung. Jika baru saja ditekan tanda hitung maka angka dianggap operan yang baru. Kemudian nilai yang ditampilkan dimasukkan ke variable tempstr untuk kemudian digabung dengan karakter angka yang baru saja ditekan. Kemudian hasil penggabungan tadi dijadikan nilai angka untuk mencegah angka 0 berada di depan bilangan dan akhirnya ditampilkan pada komponen edit1 dengan bantuan fungsi FloatToStr(). //MENEKAN TOMBOL ANGKA 0 procedure TForm1.Button1Click(Sender: TObject); begin proses_inc(0); end; //MENEKAN TOMBOL ANGKA 1 procedure TForm1.Button2Click(Sender: TObject); begin proses_inc(1); end; //MENEKAN TOMBOL ANGKA 2 procedure TForm1.Button3Click(Sender: TObject); begin proses_inc(2); end; //MENEKAN TOMBOL ANGKA 3

procedure TForm1.Button4Click(Sender: TObject); begin proses_inc(3); end; //MENEKAN TOMBOL ANGKA 4 procedure TForm1.Button5Click(Sender: TObject); begin proses_inc(4); end; //MENEKAN TOMBOL ANGKA 5 procedure TForm1.Button6Click(Sender: TObject); begin proses_inc(5); end; //MENEKAN TOMBOL ANGKA 6 procedure TForm1.Button7Click(Sender: TObject); begin proses_inc(6); end; //MENEKAN TOMBOL ANGKA 7 procedure TForm1.Button8Click(Sender: TObject); begin proses_inc(7); end; //MENEKAN TOMBOL ANGKA 8 procedure TForm1.Button9Click(Sender: TObject); begin proses_inc(8); end; //MENEKAN TOMBOL ANGKA 9 procedure TForm1.Button10Click(Sender: TObject); begin proses_inc(9); end; //TOGGLE TANDA NEGATIF procedure TForm1.Button20Click(Sender: TObject); begin if Edit1.Text <> 0 then if (LeftStr(Edit1.Text, 1) = -) then Edit1.Text := RightStr(Edit1.Text, Length(Edit1.Text)-1) else Edit1.Text:=- + Edit1.Text; end;

Tanda negatif akan ditampilkan bersifat toggle setiap pengguna menekan tombol tanda +/-, yaitu pada pertama kali memeriksa apakah angka yang tampil cuma angka nol (0), jika cuma angka nol tanda negatif tidak ditampilkan. Kemudian dilakukan pengecekan apakah sudah berstatus angka negatif dengan cara mengambil 1 karakter paling kiri dengan bantuan fungsi LeftStr(). Jika ya, maka kita hilangkan tanda negatif tersebut dengan hanya mengambil angkanya saja dengan bantuan fungsi RightStr(). Jika bilangan tersebut berstatus angka positif, maka kita cuma perlu menambahkan tanda negatif di depan bilangan tersebut. //PENEKANAN TANDA TITIK procedure TForm1.Button14Click(Sender: TObject); begin if (pos(., Edit1.Text) = 0) then Edit1.Text:=Edit1.Text+.'; end; Penggunaan tanda titik sebagai penanda bahwa bilangan tersebut bilangan pecahan hanya memakai satu kali tanda titik saja. Jika pengguna menekan tanda titik maka perlu dilakukan pengecekan apakah sudah terdapat tanda titik pada bilangan tersebut dengan bantuan fungsi pos() yang menghasilkan nilai boolean. //PENEKANAN TOMBOL BACKSPACE procedure TForm1.Button11Click(Sender: TObject); var pjgkata : Byte; begin pjgkata := Length(Edit1.Text); Edit1.Text:=LeftStr(Edit1.Text, pjgkata-1); if (Edit1.Text = ) then Edit1.Text := 0; end; Tombol backspace berfungsi untuk menghapus angka satuan pada suatu bilangan. Pertama kali dilakukan penghitungan panjang bilangan. Kemudian dilakukan pemotongan sampai 1 digit sebelum akhir bilangan dengan bantuan fungsi LeftStr(). //PENEKANAN TOMBOL CLEAR procedure TForm1.Button13Click(Sender: TObject); var i : Byte; begin posisi := 1; tempstr := ; hasil := 0; for i := 1 to 20 do temp[i] := ;

Edit1.Text:=0; ketik:=false; end; Penekanan tombol Clear selain mengubah nilai yang ditampilkan pada komponen edit1 menjadi angka nol (0) juga mereset nilai variable-variable yang ada. // //MEMASUKKAN ANGKA & TANDA HITUNG KE VARIABLE ARRAY PENAMPUNG procedure TForm1.proses_array(kar : Char); begin if (ketik = true) then begin temp[posisi] := Edit1.Text; temp[posisi+1]:=kar; posisi += 2; ketik:=false; end; end; Prosedur proses_array berfungsi memasukkan suatu bilangan beserta tanda hitung pada variable penampung temp yang berbentuk array. Bilangan dimasukkan pada variable temp pada nilai posisi dan tanda hitung pada nilai posisi + 1. Karena posisinya berubah 2 angka, maka variable posisi kita tambahkan dengan nilai 2. //MENEKAN TANDA + procedure TForm1.Button16Click(Sender: TObject); begin proses_array(+); end; //MENEKAN TANDA procedure TForm1.Button17Click(Sender: TObject); begin proses_array(-); end; //MENEKAN TANDA x procedure TForm1.Button18Click(Sender: TObject); begin proses_array(x); end; //MENEKAN TANDA / procedure TForm1.Button19Click(Sender: TObject); begin proses_array(/);

end; // //PROSES PENGHITUNGAN AKHIR procedure TForm1.proses_hitung(); var i : Byte; begin if (temp[posisi-1] <> +) or (temp[posisi-1] <> -) or (temp[posisi-1] <> x) or (temp[posisi-1] <> /) then begin temp[posisi]:=Edit1.Text; inc(posisi); hasil := StrToFloat(temp[1]); for i := 2 to posisi-1 do if (temp[i] = +) then hasil := hasil + StrToFloat(temp[i+1]) else if (temp[i] = -) then hasil := hasil StrToFloat(temp[i+1]) else if (temp[i] = x) then hasil := hasil * StrToFloat(temp[i+1]) else if (temp[i] = /) then hasil := hasil / StrToFloat(temp[i+1]); Edit1.Text:=FloatToStr(hasil); end; end; Prosedur proses_hitung() dijalankan jika pengguna menekan tanda sama dengan (=) yang kemudian akan dilakukan penghitungan hasil akhir dari penghitungan yang dilakukan. pertama-tama bilangan pertama dimasukkan pada variable penampung hasil. Kemudian dilakukan penghitungan sesuai tanda hitung dengan membaca setiap nilai pada variable array temp. //MENEKAN TOMBOL SAMA DENGAN (=) procedure TForm1.Button15Click(Sender: TObject); begin proses_hitung(); end; // //PILIH MENU ABOUT procedure TForm1.MenuItem3Click(Sender: TObject); begin ShowMessage(Kalkulator Palinukan+#13#10#13#10+- JAIN RAHMAN -); end;

Prosedur ini untuk menampilkan About dengan bantuan prosedur ShowMessage().

//PILIH MENU KELUAR procedure TForm1.MenuItem2Click(Sender: TObject); begin Close; end; Prosedur ini untuk menutup aplikasi dengan menjalankan prosedur Close. initialization {$I u_calculator.lrs} end.

Untuk mendownload, silahkan klik di sini


Share Trackback URI | Comments RSS

17 Responses to Pembuatan Aplikasi Kalkulator Menggunakan Bahasa Pemrograman Lazarus

1. Using

# 1 budimeeong Says:
May 28th, 2010 at 7:05 pm Using Mozilla Firefox 3.6 on Linux

Mozilla Firefox 3.6 on

Linux

mantap nah.rajahihi nice post

2.

# 2 Jain Rahman Says:

May 28th, 2010 at 8:16 pm Using Google Chrome 5.0.375.38 on

Linux

Using

Google Chrome 5.0.375.38 on

Linux

@ budi : tarima kasih sdh malajari cara mposting. hahaha, maklum gagap teknologi

3. Using

# 3 budimeeong Says:
May 28th, 2010 at 9:56 pm Using Mozilla Firefox 3.6 on Linux

Mozilla Firefox 3.6 on

Linux

bahsitu low profil banaraipadahal muantep jua

4. Using

# 4 Reza Arieswan Says:


May 28th, 2010 at 10:01 pm Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

langsung di coba.,.

5. Using

# 5 Reza Arieswan Says:


May 28th, 2010 at 10:10 pm Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

kada paham nah.,. screenshotnya kurang.,., hee.,. tapi di coba dulu.,.

6. Using

# 6 budimeeong Says:
May 28th, 2010 at 10:11 pm Using Mozilla Firefox 3.6 on Linux

Mozilla Firefox 3.6 on

Linux

@reza : sipsekalian gasan tugas

7. Using

# 7 budimeeong Says:
May 28th, 2010 at 10:15 pm Using Mozilla Firefox 3.6 on Linux

Mozilla Firefox 3.6 on

Linux

@reza : bisa download scriptnya tuh diatastinggal di edit ja

8. Using

# 8 alam Says:
May 28th, 2010 at 10:44 pm Using Blackberry 8320

Blackberry 8320

Hanyar membaiki judulnya td..supaya nyaman dilihat.hehe,memantau hj nh..sambil begadang

9. Using

# 9 Agustin Nurul Fahmi Says:


May 29th, 2010 at 12:12 am Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

Kereeen.umpat mengopi skripnya gasan belajar..

10. Using

# 10 budimeeong Says:
May 29th, 2010 at 11:45 am Using Mozilla Firefox 3.0.8 on Linux

Mozilla Firefox 3.0.8 on

Linux

mantap ga.

11. Using

# 11 Jain Rahman Says:


May 30th, 2010 at 1:17 pm Using Google Chrome 5.0.375.38 on Linux

Google Chrome 5.0.375.38 on

Linux

@ all : masih ada bug. sudah pang diperbaiki, tapi balum ta upload. nih masih mupload foto buhan palinukan bajalanan ke pagat batu benawa. jadi jangan dibawamahitung lah, kaina salah hasil @ budi : aq dasar gagap teknologi bud ae

12. Using

# 12 Agustin Nurul Fahmi Says:


May 30th, 2010 at 4:45 pm Using Mozilla Firefox 3.5.4 on Fedora Linux

Mozilla Firefox 3.5.4 on

Fedora Linux

Ditunggu tutorial selanjutnyakd bisa baulah program saurang pang, jadi menunggu source code open ampun urang ae hehehe

13. Using

# 13 budimeeong Says:
May 30th, 2010 at 8:27 pm Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

sama ja om aeuntung jua kita baisi programer muda kayak jain nimudahan jain mangaluarakan program2 lainnyaaminnnnnn

14. Using

# 14 Muhammad Taufiqurrahman Says:


May 30th, 2010 at 11:43 pm Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

MANTABBBBB banar Om Jain salute you 1000%. Ulun mahadang ja nah.karena kada bisa bujur. kena ulun baguru lah??? he

15. Using

# 15 syams Says:
May 31st, 2010 at 5:48 pm Using Mozilla Firefox 3.6.3 on Ubuntu Linux

Mozilla Firefox 3.6.3 on

Ubuntu Linux

mantappp

16. Using

# 16 Jain Rahman Says:


May 31st, 2010 at 5:59 pm Using Google Chrome 5.0.375.38 on Linux

Google Chrome 5.0.375.38 on

Linux

@ all : sama haja masih balajar. program yg sdh dibaiki bug nya blum sempat ta upload, maklum kadada akses inet drumah, harus kwarnet dhulu. bila sdh diupload ada ja mahabari. @ pak syams : pak pian adakah tutorial mnyambung ke database? bila batamu ulun baastilah handak baguru anu pian sebagai masternya lah

17. Using

# 17 cecep Says:
May 27th, 2011 at 10:00 pm Using Opera 9.80 on Windows XP

Opera 9.80 on

Windows XP

@Jain, umpat balajar ulun nah

Leave a Reply
Name (required) Mail (will not be published) (required) Website

Submit Comment

CAPTCHA Code*

Tags
bahasa C barabai bash birayang C++ Calculator Driver Error FOSS Hardisk history install VGA Kalkulator kandangan Kernel kopdar Lazarus linux Local lucid MAN 2 Barabai Mount nautilus open source open terminal pascal
10.04 Acer 4540 amd aplikasi atheros Ati Radeon

pemograman portable program Repository Slackware sman 3 Sosialisasi

terminal Ubuntu ubuntu-

10.04 wifi windows Zenwalk

Random Photos

Halaman
About Agenda Kegiatan Anggota Palinukan Buku Tamu Downloads Forum Photos Inkscape Kopdar 03 Agustus 20010 Kopdar Palinukan & KPLI Kandangan Kopdar Palinukan (23-04-2010) Sosialisasi FOSS di MAN 2 Barabai Sosialisasi OpenSource SosWorkShop Depkominfo Survey for HelpDesk Ubuntu 10.04 Produk Kami Checkout Transaction Results Your Account

Kategori
Animasi Antivirus Berita Blender FOSS-ID Gimp

Inkscape Jaringan Kernel PCLinuxOS Pemrograman Slackware Tulisan Tutorial Ubuntu _agenda

ISO Linux
Foss-ID Kambing

Facebook Connect
Already a member? Login Login using Facebook:
LAST VISITORS

view more...
Gabung milis palinuka Join

Depan | Tentang Kami | Kontak | Tanya Jawab | Mailing List | Sitemap palinukan.org 2010

You might also like