50% menganggap dokumen ini bermanfaat (2 suara)
766 tayangan83 halaman

Langkah-Langkah Program Delphi Aplikasi Fisika

Follow yaa Intagram Gua : @Kihc_chik

Diunggah oleh

Chiika Mazhar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
50% menganggap dokumen ini bermanfaat (2 suara)
766 tayangan83 halaman

Langkah-Langkah Program Delphi Aplikasi Fisika

Follow yaa Intagram Gua : @Kihc_chik

Diunggah oleh

Chiika Mazhar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 83

1

BAB I

PENDAHULUAN

A. Latar Belakang

Borland Delphi 7 merupakan bahasa pemrograman berbasis Windows. Delphi 7 dapat


membantu untuk membuat berbagai macam aplikasi yang berjalan di sistem operasi
Windows, mulai dari sebuah program sederhana sampai dengan program yang
berbasiskan client/server atau jaringan. Delphi, termasuk aplikasi yang dapat digunakan
untuk mengolah teks, grafik, angka, database dan aplikasi web.
Untuk mempermudah pemrogram dalam membuat program aplikasi, Delphi
menyediakan fasilitas pemrograman yang sangat lengkap. Fasilitas pemrograman tersebut
dibagi dalam dua kelompok, yaitu object dan bahasa pemrograman. Secara ringkas object
adalah suatu komponen yang mempunyai bentuk fisik dan biasanya dapat dilihat (visual).
Object biasanya dipakai untuk melakukan tugas tertentu dan mempunyai batasan-batasan
tertentu. Sedangkan bahasa pemrograman secara singkat dapat disebut sebagai
sekumpulan teks yang mempunyai arti tertentu dan disusun dengan aturan tertentu serta
untuk menjalankan tugas tertentu. Gabungan dari object dan bahasa pemrograman ini
sering disebut sebagai bahasa pemrograman berorientasi object atau Object Oriented
Programming (OOP).
Khusus untuk pemrograman database, Delphi menyediakan object yang sangat kuat,
canggih dan lengkap, sehingga memudahkan pemrograman dalam merancang, membuat
dan menyelesaikan aplikasi database yang diinginkan. Selain itu, Delphi juga dapat
menangani data dalam berbagai format database, misalnya format MS-Access, SyBase,
Oracle, FoxPro, Informix, DB2 dan lain-lain. Format database yang dianggap asli dan
Delphi adalah Paradox dan dBase.

B. Rumusan Masalah
1. Apa pengertian Delphi?
2. Apa saja kegunaan Delphi?
3. Apa saja keunggulan dan kekurangan Delphi?
4. Bagaimana tutorial pembuatan program dengan Delphi?
2

C. Tujuan
1. Untuk mengetahui pengertian Delphi.
2. Untuk mengetahui kegunaan Delphi.
3. Untuk mengetahui keunggulan dan kekurangan Delphi.
4. Untuk mengetahui tutorial pembuatan program dengan Delphi.
3

BAB II

PEMBAHASAN

A. Mengenal Aplikasi Delphi 7


Agar anda segera mengenal dan merasakan kecanggihan Delphi, kita akan
mencoba memulai Delphi dan mengenal fungsi/kegunaan dari komponen standar Delphi
yang akan kita gunakan. Langkah awal untuk menjalankan program Borland Delphi 7,
adalah sebagai berikut :
1. Klik aplikasi Delphi 7 pada desktop.

Klik here

2. Akan tampil sebuah splash screen Borland Delphi 7. Tunggulah beberapa saat sampai
program Borland Delphi 7 tampil memenuhi dekstop.
4

3. Bidang kerja Intergrated Development Environment (IDE) Delphi 7 akan tampil


memenuhi layar monitor seperti diperlihatkan pada gambar berikut ini.

Speed Bar

ComponentPallate

Object Treeview

Objet Inspector

Code Editor

Form Designer

4. Adapun jenis-jenis komponen standar Delphi 7, yaitu :

Komponen Fungsi
Pointer Pointer adalah komponen khusus dan terdapat disetiap tab dalam
component palatte. Komponen pointer adalah komponen select yang
digunakan untuk memilih komponen dalam form designer.
Frames
Sebuah kontainer yang digunakan untuk menampung komponen frame
dapat diletakkan dalam form atau frame-frame yang lain.
MainMenu
Komponen yang digunakan untuk membuat menu bar dan menu drop
down. Komponen ini bersifat invisible.

PopUpMenu Komponen yang digunakan untuk membuat menu popup yang akan
muncul jika pemakai melakukan proses klik kanan. Komponen ini bersifat
invisible.
Label
Komponen ini hanya digunakan untuk menambahkan teks di dalam form
5

Edit Komponen yang digunakan untuk menerima satu baris teks yang
merupakan data input pemakai. Komponen ini juga dapat digunakan
untuk menampilkan teks.
Memo
Komponen Memo dipakai untuk memasukkan atau menapilkan beberapa
baris teks di dalam form.
Button Komponen yang dipakai untuk membuat button yang akan dipakai untuk
memilih pilihan di dalam aplikasi. Jika mengklik komponen button
tersebut maka suatu perintah atau kejadian akan dijalankan.
CheckBox
Komponen yang digunakan untuk memilih atau membatalkan suatu
pilihan, yaitu dengan cara mengklik komponen.

RadioButton Komponen yang digunakan untuk memberikan sekelompok pilihan dan


hanya ada satu pilihan yang dapat dipilih. Untuk memilih salah satu
pilihan adalah dengan mengklik tombol pilihan yang diinginkan.

ListBox Komponen yang digunakan untuk membuat sebuah daftar pilihan, dimana
hanya ada satu pilihan yang dapat dipilih. Untuk mencari dan kemudian
memilih salah satu pilihan yang terdapat di dalam daftar dapat
menggunakan batang penggulung.

ComboBox Komponen yang digunakan untuk membuat sebuah daftar pilihan, dimana
hanya ada satu pilihan yang dapat dipilih. Untuk mencari dan kemudian
memilih salah satu pilihan yang terdapat di dalam daftar dapat
menggunakan mengklik tombol drop down.
ScrollBar
Komponen ini mempunyai fungsi yang sama seperti batang
penggulung yang terdapat dalam program-program berbasis Windows
pada umumnya.
GroupBox
Sebuah kontainer yang dapat digunakan untuk mengelompokkan
komponen-komponen lain seperti Radio Button, CheckBox dan komponen
kontainer yang lain.
RadioGroup
Komponen ini merupakan komponen kombinasi dari GroupBox dan
didesain untuk membuat sekelompok RadioButton,
Panel
Sebuah kontainer yang dapat digunakan untuk membuat StatusBar,
ToolBar dan ToolPalette.
ActionList
Komponen yang berisi daftar action yang digunakan bersama-sama
dengan komponen dan kontrol seperti item menu dan button.

Adapun kegunaan Delphi, yaitu :


 Untuk membuat aplikasi windows
 Untuk merancang aplikasi program berbasis grafis
6

 Untuk membuat program berbasis jaringan (client/server)


 Untuk merancang program .Net (berbasis internet)
Delphi 7 memiliki keunggulan dan kekurangan Delphi. Berikut keunggulan dan
kelebihan dari Delphi.
Keunggulan dari Delphi, yaitu :
 IDE (Integrated Development Environment) atau lingkungan pengembangan
aplikasi sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat
menu – menu yang memudahkan kita untuk membuat suatu proyek program.
 Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi,
maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan
terpisah.
 Mudah digunakan, source kode delphi yang merupakan turunan dari pascal,
sehingga tidak diperlukan suatu penyesuain lagi.
 Bersifat multi purphase, artinya bahasa pemograman Delphi dapat digunakan untuk
mengembangkan berbagai keperluan pengembangan aplikasi.

Kekurangan dari Delphi antara lain:


 Partial single vendor lock-in (Borland dapat menetapkan standar bahasa,
kompatibilitas yang harus mengikutinya)
 Akses pada platform dan library pihak ketiga membutuhkan file-file header yang
diterjemahkan ke dalam bahasa pascal
 Dokumentasi atas platform dan teknik-teknik yang menyertainya sulit ditemukan
dalam bahasa pascal (contoh akses COM dan Win32)
7

B. Aplikasi - aplikasi Delphi


Berikut macam-macam aplikasi yang penulis buat, yaitu :
1. Aplikasi Kalkulator Ilmiah Sederhana
Berikut langkah-langkah kerja pembuatan kalkulator ilmiah sederhana adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 1 buah panel, bentuk panel seperti gambar di bawah ini.

c. Ubahlah caption yang terletak pada object inspector dengan angka 0 seperti gambar di
bawah ini.
8

d. Kemudian, tambahkan 26 buah button dan rubah caption setiap button tersebut
seperti gambar dibawah ini.

e. Berikut nama komponen-komponen yang di gunakan dalam membuat kalkulator


ilmiah sederhana.

Komponen Name Text Caption


TPanel Hasil - 0
Button1 Button1 - 1
Button2 Button2 - 2
Button3 Button3 - 3
Button4 Button4 - 4
Button5 Button5 - 5
Button6 Button6 - 6
Button7 Button7 - 7
Button8 Button8 - 8
Button9 Button9 - 9
Button10 Button10 - 0
Button11 Button11 - Sin
Button12 Button12 - Cos
Button13 Button13 - Tan
Button14 Button14 - Log
Button15 Button15 - +
9

Button16 Button16 - %
Button17 Button17 - X^2
Button18 Button18 - .
Button19 Button19 - Akar
Button20 Button20 - ÷
Button21 Button21 - =
Button22 Button22 - -
Button23 Button23 - Off
Button24 Button24 - C
Button25 Button25 - +/-
Button26 Button26 - X
Label1 Label1 - casian

f. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.
Komponen Caption Kode
Button1 1 procedure TForm1.Button1Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='1' else
Hasil.Caption:='1';
end
else
Hasil.Caption:=Hasil.Caption+'1';
end;
Button2 2 procedure TForm1.Button2Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='2';
if MemOperator<>'' then Hasil.Caption:='2' else
10

Hasil.Caption:='2';
end
else
Hasil.Caption:=Hasil.Caption+'2';
end;
Button3 3 procedure TForm1.Button3Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>' ' then Hasil.Caption:='3' else
Hasil.Caption:='3';
end
else
Hasil.Caption:=Hasil.Caption+'3';
end;
Button4 4 procedure TForm1.Button4Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='4' else
Hasil.Caption:='4';
end
else
Hasil.Caption:=Hasil.Caption+'4';
end;
Button5 5 procedure TForm1.Button5Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='5' else
Hasil.Caption:='5';
end
else
Hasil.Caption:=Hasil.Caption+'5';
11

end;
Button6 6 procedure TForm1.Button6Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='6' else
Hasil.Caption:='6';
end
else
Hasil.Caption:=Hasil.Caption+'6';
end;
Button7 7 procedure TForm1.Button7Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='7' else
Hasil.Caption:='7';
end
else
Hasil.Caption:=Hasil.Caption+'7';
end;
Button8 8 procedure TForm1.Button8Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='8' else
Hasil.Caption:='8';
end
else
Hasil.Caption:=Hasil.Caption+'8';
end;
Button9 9 procedure TForm1.Button9Click(Sender: TObject);
begin
if hasil.Caption='0' then
12

hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
MemLogic:='1';
if MemOperator<>'' then Hasil.Caption:='9' else
Hasil.Caption:='9';
end
else
Hasil.Caption:=Hasil.Caption+'9';
end;
Button10 0 procedure TForm1.Button10Click(Sender: TObject);
begin
if hasil.Caption='0' then
hasil.Caption:='';
if Hasil.Caption<>' ' then
if MemLogic='0' then
begin
if MemOperator<>'' then Hasil.Caption:='0' else
if Hasil.Caption='0' then Hasil.Caption:='0' else
begin
Hasil.Caption:=Hasil.Caption+'0';
MemLogic:='1';
end;
end
else
Hasil.Caption:=Hasil.Caption+'0';
end;
Button11 Sin procedure TForm1.Button11Click(Sender: TObject);
var sudut : real;
begin
if Hasil.Caption<>' ' then
begin
sudut:=strtofloat(Hasil.Caption);
sudut:=sudut*pi/180;
Hasil.Caption := floattostr(sin(sudut));
end;
end;
Button12 Cos procedure TForm1.Button12Click(Sender: TObject);
var sudut:real;
begin
if hasil.Caption<>'' then
begin
sudut:=strtofloat(hasil.Caption);
sudut:=sudut*pi/180;
hasil.Caption := floattostr(cos(sudut));
13

MemLogic :='0';
end;
end;
Button13 Tan procedure TForm1.Button13Click(Sender: TObject);
var sudut,a,b:real;
begin
if hasil.Caption<>'' then
begin
sudut:=strtofloat(hasil.Caption);
sudut:=sudut*pi/180;
a:=sin(sudut);
b:=cos(sudut);
sudut:=a/b;
hasil.Caption := floattostr((sudut));
MemLogic :='0';
end;
end;
Button14 Log procedure TForm1.Button14Click(Sender: TObject);
var angka:real;
begin
angka:=StrToFloat(hasil.Caption);
angka:=ln(10)/ln(angka);
hasil.Caption:=FloatToStr(angka);
end;
Button15 + procedure TForm1.Button15Click(Sender: TObject);
begin
MemOperator:='';
if (hasil.Caption<>'') then
if MemLogic='0' then MemOperator:='+' else
if (MemOperator='') then
begin
MemOperator:='+';
MemLogic:='0';
MemAngka:=hasil.Caption;
end
else
begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
if MemOperator='mod' then hasil.Caption:=inttostr(strtoint(MemAngka) mod
14

strtoint(hasil.Caption));
if MemOperator='div' then hasil.Caption:=inttostr(strtoint(MemAngka)div
strtoint(hasil.Caption));
if MemOperator='^' then
hasil.Caption:=floattostr(exp(strtofloat(hasil.Caption)*ln(strtofloat(MemAngka))));
MemAngka:=hasil.Caption;
MemOperator:='+';
MemLogic:='0';
end;
end;
Button16 % procedure TForm1.Button16Click(Sender: TObject);
var angka:real;
begin
angka:=StrToFloat(hasil.Caption);
angka:=angka/100;
hasil.Caption:=FloatToStr(angka);
end;
Button17 X^2 procedure TForm1.Button17Click(Sender: TObject);
var pangkat: real;
begin
pangkat:=StrToFloat(hasil.Caption);
pangkat:=sqr(pangkat);
hasil.Caption:=FloatToStr(pangkat)
end;
Button18 . procedure TForm1.Button18Click(Sender: TObject);
begin
if hasil.Caption<>'' then
hasil.Caption:=hasil.Caption + ',';
end;
Button19 Akar procedure TForm1.Button19Click(Sender: TObject);
begin
if hasil.Caption<>'' then
hasil.Caption:=floattostr(sqrt(strtofloat(hasil.Caption)));
end;
Button20 ÷ procedure TForm1.Button20Click(Sender: TObject);
begin
MemOperator:='';
if (hasil.Caption<>'') then
if MemLogic='0' then MemOperator:='/' else
if (MemOperator='') then
begin
MemOperator:='/';
MemLogic:='0';
MemAngka:=hasil.Caption;
end
else
15

begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
if MemOperator='mod' then hasil.Caption:=inttostr(strtoint(MemAngka) mod
strtoint(hasil.Caption));
if MemOperator='div' then hasil.Caption:=inttostr(strtoint(MemAngka)div
strtoint(hasil.Caption));
if MemOperator='^' then
hasil.Caption:=floattostr(exp(strtofloat(hasil.Caption)*ln(strtofloat(MemAngka))));
MemAngka:=hasil.Caption;
MemOperator:='/';
MemLogic:='0';
end;
end;
Button21 = procedure TForm1.Button21Click(Sender: TObject);
begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
MemAngka:=hasil.Caption;
MemLogic:='0';
end;
Button22 - procedure TForm1.Button22Click(Sender: TObject);
begin
MemOperator:='';
if (hasil.Caption<>'') then
if MemLogic='0' then MemOperator:='-' else
if (MemOperator='') then
begin
MemOperator:='-';
MemLogic:='0';
MemAngka:=hasil.Caption;
end
else
begin
16

if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
if MemOperator='mod' then hasil.Caption:=inttostr(strtoint(MemAngka) mod
strtoint(hasil.Caption));
if MemOperator='div' then hasil.Caption:=inttostr(strtoint(MemAngka)div
strtoint(hasil.Caption));
if MemOperator='^' then
hasil.Caption:=floattostr(exp(strtofloat(hasil.Caption)*ln(strtofloat(MemAngka))));
MemAngka:=hasil.Caption;
MemOperator:='-';
MemLogic:='0';
end;
end;
Button23 Off procedure TForm1.Button23Click(Sender: TObject);
begin
Close;
end;
Button24 C procedure TForm1.Button24Click(Sender: TObject);
begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
MemAngka:=hasil.Caption;
MemLogic:='0';
end;
Button25 +/- procedure TForm1.Button25Click(Sender: TObject);
begin
MemOperator:='';
if (hasil.Caption<>'') then
if MemLogic='0' then MemOperator:='-' else
if (MemOperator='') then
begin
MemOperator:='-';
MemLogic:='0';
MemAngka:=hasil.Caption;
17

end
else
begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
if MemOperator='mod' then hasil.Caption:=inttostr(strtoint(MemAngka) mod
strtoint(hasil.Caption));
if MemOperator='div' then hasil.Caption:=inttostr(strtoint(MemAngka)div
strtoint(hasil.Caption));
if MemOperator='^' then
hasil.Caption:=floattostr(exp(strtofloat(hasil.Caption)*ln(strtofloat(MemAngka))));
MemAngka:=hasil.Caption;
MemOperator:='-';
MemLogic:='0';
end;
end;
Button26 X procedure TForm1.Button29Click(Sender: TObject);
begin
MemOperator:='';
if (hasil.Caption<>'') then
if MemLogic='0' then MemOperator:='x' else
if (MemOperator='') then
begin
MemOperator:='x';
MemLogic:='0';
MemAngka:=hasil.Caption;
end
else
begin
if MemOperator='+' then
hasil.Caption:=floattostr(strtofloat(MemAngka)+strtofloat(hasil.Caption));
if MemOperator='-' then hasil.Caption:=floattostr(strtofloat(MemAngka)-
strtofloat(hasil.Caption));
if MemOperator='x' then
hasil.Caption:=floattostr(strtofloat(MemAngka)*strtofloat(hasil.Caption));
if MemOperator='/' then
hasil.Caption:=floattostr(strtofloat(MemAngka)/strtofloat(hasil.Caption));
if MemOperator='mod' then hasil.Caption:=inttostr(strtoint(MemAngka) mod
strtoint(hasil.Caption));
if MemOperator='div' then hasil.Caption:=inttostr(strtoint(MemAngka)div
18

strtoint(hasil.Caption));
if MemOperator='^' then
hasil.Caption:=floattostr(exp(strtofloat(hasil.Caption)*ln(strtofloat(MemAngka))));
MemAngka:=hasil.Caption;
MemOperator:='x';
MemLogic:='0';
end;
end;
end.

g. Selanjutnya, edit form sesuai dengan kreativitas anda. Kemudian, klik Run seperti
gambar dibawah ini.

h. Kalkulator ilmiah sederhana siap digunakan.


19

2. Aplikasi Fisika
Berikut langkah-langkah kerja pembuatan aplikasi fisika sederhana adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 13 buah button, 21 edit, 45 label dan 6 grup box. Edit form
sekreativitas anda contohnya seperti gambar di bawah ini.

c. Berikut nama komponen-komponen yang di gunakan dalam membuat Aplikasi


Fisika.

Komponen Name Text Caption


Label1 Label1 - Celsius
Label2 Label2 - Reamur
Label3 Label3 - Fahrenheit
20

Label4 Label4 - Kelvin


Label5 Label5 - Jarak
Label6 Label6 - Waktu
Label7 Label7 - Hasil
Label8 Label8 - Massa
Label9 Label9 - Kecepatan
Label10 Label10 - Hasil
Label11 Label11 - Massa
Label12 Label12 - Percepatan
Label13 Label13 - Tinggi
Label14 Label14 - Hasil
Label15 Label15 - Gravitasi
Label16 Label16 - Massa
Label17 Label17 - Volume
Label18 Label18 - Hasil
Label19 Label19 - Massa Jenis
Label20 Label20 - Gravitasi
Label21 Label21 - Volume
Label22 Label22 - Hasil
Label23 Label23 - Percepatan
Label24 Label24 - Aplikasi Fisika
Label25 Label25 - Kg
Label26 Label26 - m3
Label27 Label27 - Kg/m3
Label28 Label28 - m
Label29 Label29 - s
Label30 Label30 - m/s
Label31 Label31 - Kg
Label32 Label32 - m/s
Label33 Label33 - Kg.m/s
21

Label34 Label34 - Kg
Label35 Label35 - m/s2
Label36 Label36 - m
Label37 Label37 - Joule
Label38 Label38 - ‘C
Label39 Label39 - ‘R
Label40 Label40 - ‘F
Label41 Label41 - ‘K
Label42 Label42 - Kg.m3
Label43 Label43 - m/s2
Label44 Label44 - m3
Label45 Label45 - N
Edit1 Edit1 - -
Edit2 Edit2 - -
Edit3 Edit3 - -
Edit4 Edit4 - -
Edit5 Edit5 - -
Edit6 Edit6 - -
Edit7 Edit7 - -
Edit8 Edit8 - -
Edit9 Edit9 - -
Edit10 Edit10 - -
Edit11 Edit11 - -
Edit12 Edit12 - -
Edit13 Edit13 - -
Edit14 Edit14 - -
Edit15 Edit15 - -
Edit16 Edit16 - -
Edit17 Edit17 - -
Edit18 Edit18 - -
22

Edit19 Edit19 - -
Edit20 Edit20 - -
Edit21 Edit21 - -
Groupbox1 Groupbox1 - Konversi suhu
Groupbox2 Groupbox2 - Kecepatan
Groupbox3 Groupbox3 - Momentum
Groupbox4 Groupbox4 - Energi Potensial
Groupbox5 Groupbox5 - Massa Jenis
Groupbox6 Groupbox6 - Hukum Archimedes
Butoon1 Butoon1 - Hitung
Butoon2 Butoon2 - Hapus
Butoon3 Butoon3 - Hitung
Butoon4 Butoon4 - Hapus
Butoon5 Butoon5 - Hitung
Butoon6 Butoon6 - Hapus
Butoon7 Butoon7 - Hitung
Butoon8 Butoon8 - Hapus
Butoon9 Butoon9 - Hitung
Butoon10 Butoon10 - Hapus
Butoon11 Butoon11 - Hitung
Butoon12 Butoon12 - Hapus
Button13 Button13 - Keluar
23

d. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.

Komponen Caption Kode


procedure TForm1.Button1Click(Sender:TObject);
var c,f,r,k:real;
begin
c:=strtofloat(edit1.Text);
f:=9/5*c+32;
Butoon1 Hitung r:=4/5*c;
k:=273+c;
edit2.Text:=floatToStr(r);
edit3.Text:=floatToStr(f);
edit4.Text:=floatToStr(k);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:='';
Butoon2 Hapus Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
end;
procedure TForm1.Button3Click(Sender: TObject);
var t,s:Real;
begin
Butoon3 Hitung t:=StrtoFloat(edit5.text);
s:=StrtoFloat(edit6.text);
edit7.text:=Floattostr(t/s);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Butoon4 Hapus Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
end;
procedure TForm1.Button5Click(Sender: TObject);
var m,v:Real;
begin
Butoon5 Hitung m:=StrtoFloat(edit8.text);
v:=StrtoFloat(edit9.text);
edit10.text:=Floattostr(m*v);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Butoon6 Hapus Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
end;
procedure TForm1.Button7Click(Sender: TObject);
var m,g,h:real;
begin
Butoon7 Hitung m:=StrtoFloat(edit11.text);
g:=StrtoFloat(edit12.text);
h:=StrtoFloat(edit13.Text);
edit14.text:=Floattostr(m*g*h);
end;
procedure TForm1.Button8Click(Sender: TObject);
Butoon8 Hapus begin
Edit11.Text:='';
Edit12.Text:='';
24

Edit13.Text:='';
Edit14.Text:='';
end;
procedure TForm1.Button9Click(Sender: TObject);
var m,v:real;
begin
Butoon9 Hitung m:=StrtoFloat(edit15.text);
v:=StrtoFloat(edit16.text);
edit17.text:=Floattostr(m/v);
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Butoon10 Hapus Edit15.Text:='';
Edit16.Text:='';
Edit17.Text:='';
end;
procedure TForm1.Button11Click(Sender: TObject);
var rho,g,v:real;
begin
rho:=StrtoFloat(edit18.text);
Butoon11 Hitung g:=StrtoFloat(edit19.text);
v:=StrtoFloat(edit20.Text);
edit21.text:=Floattostr(rho*g*v);
end;

procedure TForm1.Button12Click(Sender: TObject);


begin
Edit18.Text:='';
Butoon12 Hapus Edit19.Text:='';
Edit20.Text:='';
Edit21.Text:='';
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
Application.MessageBox('Thank you so much, Allah
always bless you',
Button13 Keluar 'Bye Fans~', MB_OK + MB_ICONINFORMATION);
Application.Terminate;
end;

end.

e. Kemudian, klik Run seperti gambar dibawah ini.


25

f. Aplikasi Fisika siap digunakan.


26

3. Aplikasi Case Of
Berikut langkah-langkah kerja pembuatan aplikasi case of adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 1 buah button, 4 buah label, 1 buah combobox, dan 1 buah edit.
Edit form sesuai dengan kreativitas anda, contoh seperti gambar dibawah ini.

c. Berikut nama komponen-komponen yang di gunakan dalam membuat aplikasi case


of.

Komponen Name Text Caption


Button1 Button1 - Keluar
ComboBox1 ComboBox1 - -
Edit1 Edit1 - -
Label1 Label1 - Nama Organisasi Pencinta Alam
Label2 Label2 - SMA/SMK/MA Se-kota Mataram
Label3 Label3 - Nama Sispala
Label4 Label4 - Asal Sekolah
27

d. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('PALANTEK');
ComboBox1.Items.Add('PALASKADA');
ComboBox1.Items.Add('ASTAPALA');
ComboBox1.Items.Add('MANSAPALA');
ComboBox1.Items.Add('SEASAPALA');
ComboBox1.Items.Add('PALASMA');
ComboBox1.Items.Add('SAMPALA');
ComboBox1.Items.Add('KOPALASTA');
ComboBox1.Items.Add('SMANCAPALA');
ComboBox1.Items.Add('PALASMIK');
ComboBox1.Items.Add('SWAMAPALA');

end;

procedure TForm1.ComboBox1Change(Sender: TObject);


begin
case ComboBox1.ItemIndex of
0:edit1.Text:='SMKN 3 MATARAM';
1:edit1.Text:='SMKN 2 MATARAM';
2:edit1.Text:='SMKN 8 MATARAM';
3:edit1.Text:='MAN 1 MATARAM';
4:edit1.Text:='SMKN 1 MATARAM';
5:edit1.Text:='SMAN 1 MATARAM';
6:edit1.Text:='SMAN 2 MATARAM';
7:edit1.Text:='SMAN 7 MATARAM';
8:edit1.Text:='SMAN 4 MATARAM';
9:edit1.Text:='SMKN 5 MATARAM';
10:edit1.Text:='SMAN 5 MATARAM';

end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate;
end;

end.

e. Klik Run dan aplikasi bisa digunakan.


28

4. Aplikasi Konversi Suhu menggunakan Fungsi Repeat


Berikut langkah-langkah kerja pembuatan aplikasi Konversi Suhu
menggunakan Fungsi Repeat sederhana adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 1 label, 6 button, dan 1memo. Edit form sesuai keinginan anda,
contoh seperti gambar dibawah ini.

c. Berikut nama komponen-komponen yang di gunakan dalam membuat aplikasi


konversi suhu dengan menggunakan fungsi repeat.

Komponen Name Text Caption


Button1 Button1 - Celsius
Button2 Button2 - Fahrenheit
Button3 Button3 - Reamur
Button4 Button4 - Kelvin
Button5 Button5 - New
Button6 Button6 - Keluar
29

Label1 Label1 - Konversi suhu


Memo1 Memo1 - -

d. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.
procedure TForm1.Button1Click(Sender: TObject);
var n: integer;
f,r,k : real;
begin
n:=1;
Memo1.Lines.Append('Celcius'+' '+'Fahrenheid'+' '+'Reamor'+'
'+'Kelvin');
repeat
f:=9/5*n;
r:=4/5*n;
k:=273+n;
Memo1.Lines.Append(inttostr(n)+' '+formatfloat('0.#',f)+'
'+formatfloat('0.#',r)+' '+formatfloat('0.#',k));
inc(n);
until n > 100;
end;

procedure TForm1.FormCreate(Sender: TObject);


begin
Memo1.Clear;
end;

procedure TForm1.Button5Click(Sender: TObject);


begin
Memo1.Clear;
end;

procedure TForm1.Button2Click(Sender: TObject);


var n: integer;
c,r,k : real;
begin
n:=1;
Memo1.Lines.Append('Fahrenheid'+' '+'Celcius'+' '+'Reamor'+'
'+'Kelvin');
repeat
c:=5/9*n;
r:=4/9*n;
k:=273+(5/9*n);
Memo1.Lines.Append(inttostr(n)+' '+formatfloat('0.#',c)+'
'+formatfloat('0.#',r)+' '+formatfloat('0.#',k));
inc(n);
until n > 100;
end;
procedure TForm1.Button3Click(Sender: TObject);
var n: integer;
c,f,k : real;
begin
n:=1;
Memo1.Lines.Append('Reamor'+' '+'Fahrenheid'+' '+'celcius'+'
'+'Kelvin');
repeat
30

c:=5/4*n;
f:=9/4*n;
k:=273+c;
Memo1.Lines.Append(inttostr(n)+' '+formatfloat('0.#',f)+'
'+formatfloat('0.#',c)+' '+formatfloat('0.#',k));
inc(n);
until n > 100;
end;

procedure TForm1.Button4Click(Sender: TObject);


var n: integer;
f,r,c : real;
begin
n:=1;
Memo1.Lines.Append('Kelvin'+' '+'Fahrenheid'+' '+'Reamor'+'
'+'Celsius');
repeat
c:=n-273;
f:=9/5*c;
r:=4/5*c;
Memo1.Lines.Append(inttostr(n)+' '+formatfloat('0.#',f)+'
'+formatfloat('0.#',r)+' '+formatfloat('0.#',c));
inc(n);
until n > 100;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if(Application.MessageBox('Yakin mau keluar? Jangan nyesel yaa
','konfirmasi',MB_YesNo)=ID_Yes)then
Application.Terminate;
end;

end.

procedure TForm1.FormCreate(Sender: TObject);


begin
Memo1.Clear;
end;
end;

end.

e. Klik Run, dan aplikasi konversi suhu bisa digunakan.


31

5. Aplikasi Kartu Hasil Studi


Berikut langkah-langkah kerja pembuatan Aplikasi Kartu Hasil Studi
adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 16 buah label, 27 buat edit, 2 image, 1 speed button, 1 panel, dan 1
button. Kemudian edit seperti gambar dibawah ini.

c. Berikut nama komponen-komponen yang di gunakan dalam membuat aplikasi


kartu hasil studi mahasiswa.

Komponen Name Text Caption


Label1 Label1 - Fisika Komputasi
Label2 Label2 - Fisika Eksperimen
Label3 Label3 - Listrik Magnet
Label4 Label4 - P3F
Label5 Label5 - Telaah Kurikulum Fisika
32

Label6 Label6 - Kajian Sekolah Menengah


Pengembangan Media
Label7 Label7 -
Pembelajaran Fisika
Label8 Label8 - Sejarah Fisika
Label10 Label10 - AM
Label13 Label13 - SKS
Label14 Label14 - NILAI
Label15 Label15 - KARTU HASIL STUDI
MENGGUNAKAN FUNGSI
Label16 Label16 -
PERCABANGAN
Edit1 Edit1 - -
Edit2 Edit2 - -
Edit3 Edit3 - -
Edit1 Edit1 - -
Edit2 Edit2 - -
Edit3 Edit3 - -
Edit4 Edit4 - -
Edit5 Edit5 - -
Edit6 Edit6 - -
Edit7 Edit7 - -
Edit8 Edit8 - -
Edit9 Edit9 - -
Edit10 Edit10 - -
Edit11 Edit11 - -
Edit12 Edit12 - -
Edit13 Edit13 - -
Edit14 Edit14 - -
Edit15 Edit15 - -
Edit16 Edit16 - -
Edit17 Edit17 - -
33

Edit18 Edit18 - -
Edit19 Edit19 - -
Edit20 Edit20 - -
Edit21 Edit21 - -
Edit22 Edit22 - -
Edit23 Edit23 - -
Edit24 Edit24 - -
Edit25 Edit25 - -
Edit26 Edit26 - -
Edit27 Edit27 - -
Image1 Image1 - -
Image2 Image2
SpeedButton1 SpeedButton1 - -
Panel1 Panel1 - -
Button1 Button1 - Keluar
Button2 Button2 - New

d. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.
procedure TForm1.SpeedButton1Click(Sender: TObject);
var Rt : double;
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,ip: real;
begin
a:= StrToFloat (edit1.Text);
b:= StrToFloat (edit2.Text);
c:= StrToFloat (edit3.Text);
d:= StrToFloat (edit4.Text);
e:= StrToFloat (edit5.Text);
f:= StrToFloat (edit6.Text);
g:= StrToFloat (edit7.Text);
h:= StrToFloat (edit8.Text);
i:= StrToFloat (edit11.Text);
j:= StrToFloat (edit12.Text);
k:= StrToFloat (edit13.Text);
l:= StrToFloat (edit14.Text);
m:= StrToFloat (edit15.Text);
n:= StrToFloat (edit16.Text);
o:= StrToFloat (edit17.Text);
p:= StrToFloat (edit18.Text);
Rt:= ((a*i+b*j+c*k+d*l+e*m+f*n+g*o+h*p));
Ip:= ((Rt)/(i+j+k+l+m+n+o+p));
edit9.Text := formatfloat('0.##',Ip);
edit10.Text := formatfloat('0.##',Rt);
34

if a = 4 then
edit20.Text := 'A'
else if a = 3.5 then
edit20.Text := 'B+'
else if a = 3 then
edit20.Text := 'B'
else if a = 2.5 then
edit20.Text := 'C+'
else if a = 2 then
edit20.Text := 'C'
else if a = 1.5 then
edit20.Text := 'D+'
else if a = 1 then
edit20.Text := 'D'
else if (a < 1) then
edit20.Text := 'E';
if b = 4 then
edit21.Text := 'A'
else if b = 3.5 then
edit21.Text := 'B+'
else if b = 3 then
edit21.Text := 'B'
else if b = 2.5 then
edit21.Text := 'C+'
else if b = 2 then
edit21.Text := 'C'
else if b = 1.5 then
edit21.Text := 'D+'
else if b = 1 then
edit21.Text := 'D'
else if (b < 1) then
edit21.Text := 'E';
if c = 4 then
edit22.Text := 'A'
else if c = 3.5 then
edit22.Text := 'B+'
else if c = 3 then
edit22.Text := 'B'
else if c = 2.5 then
edit22.Text := 'C+'
else if c = 2 then
edit22.Text := 'C'
else if c = 1.5 then
edit22.Text := 'D+'
else if c = 1 then
edit22.Text := 'D'
else if (c < 1) then
edit22.Text := 'E';
if d = 4 then
edit23.Text := 'A'
else if d = 3.5 then
edit23.Text := 'B+'
else if d = 3 then
edit23.Text := 'B'
else if d = 2.5 then
edit23.Text := 'C+'
else if d = 2 then
edit23.Text := 'C'
else if d = 1.5 then
edit23.Text := 'D+'
else if d = 1 then
edit23.Text := 'D'
35

else if (d < 1) then


edit23.Text := 'E';
if e = 4 then
edit24.Text := 'A'
else if e = 3.5 then
edit24.Text := 'B+'
else if e = 3 then
edit24.Text := 'B'
else if e = 2.5 then
edit24.Text := 'C+'
else if e = 2 then
edit24.Text := 'C'
else if e = 1.5 then
edit24.Text := 'D+'
else if e = 1 then
edit24.Text := 'D'
else if (e < 1) then
edit24.Text := 'E';
if f = 4 then
edit25.Text := 'A'
else if f = 3.5 then
edit25.Text := 'B+'
else if f = 3 then
edit25.Text := 'B'
else if f = 2.5 then
edit25.Text := 'C+'
else if f = 2 then
edit25.Text := 'C'
else if f = 1.5 then
edit25.Text := 'D+'
else if f = 1 then
edit25.Text := 'D'
else if (f < 1) then
edit25.Text := 'E';
if g = 4 then
edit26.Text := 'A'
else if g = 3.5 then
edit26.Text := 'B+'
else if g = 3 then
edit26.Text := 'B'
else if g = 2.5 then
edit26.Text := 'C+'
else if g = 2 then
edit26.Text := 'C'
else if g = 1.5 then
edit26.Text := 'D+'
else if g = 1 then
edit26.Text := 'D'
else if (g < 1) then
edit26.Text := 'E';
if h = 4 then
edit27.Text := 'A'
else if h = 3.5 then
edit27.Text := 'B+'
else if h = 3 then
edit27.Text := 'B'
else if h = 2.5 then
edit27.Text := 'C+'
else if h = 2 then
edit27.Text := 'C'
else if h = 1.5 then
edit27.Text := 'D+'
36

else if h = 1 then
edit27.Text := 'D'
else if (h < 1) then
edit27.Text := 'E';
if (n >= 3) and (n<=4) then
edit19.Text := '24'
else if (n >= 2.50) and (n<= 2.99) then
edit19.Text := '22'
else if (n >= 2) and (n<= 2.49) then
edit19.Text := '20'
else if (n >= 1.50) and (n<= 1.99) then
edit19.Text := '18'
else if (n < 1.50) then
edit19.Text := '16'

end;

procedure TForm1.Button2Click(Sender: TObject);


begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit6.Clear;
edit7.Clear;
edit8.Clear;
edit9.Clear;
edit10.Clear;
edit11.Clear;
edit12.Clear;
edit13.Clear;
edit14.Clear;
edit15.Clear;
edit16.Clear;
edit17.Clear;
edit18.Clear;
edit19.Clear;
edit20.Clear;
edit21.Clear;
edit22.Clear;
edit23.Clear;
edit24.Clear;
edit25.Clear;
edit26.Clear;
edit27.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
Application.Terminate;
end;

end.
37

e. Klik Run, dan aplikasi bisa digunakan.


38

6. Aplikasi Grafik Gelombang


Berikut langkah-langkah kerja pembuatan aplikasi grafik gelombang adalah :
a. Klik aplikasi Delphi7 pada desktop.

Klik here

b. Tambahkan 7 buah label, 4 buah button, 1 buah timer, 1 buah image, 1 buah shape, 5 buah
scroll bar. dan 1 buah checkbox. Kemudian di edit seperti gambar dibawah ini.

c. Berikut nama komponen-komponen yang di gunakan dalam membuat aplikasi kartu


hasil studi mahasiswa.

Komponen Name Text Caption


Label1 Label1 - Panjang Gelombang
Label2 Label2 - Amplitudo
39

Label3 Label3 - Jumlah Gelombang


Label4 Label4 - Label4
Label5 Label5 - Label5
Label6 Label6 - Label6
Label9 Label9 - GRAFIK GELOMBANG
Button1 Button1 - Sin
Button2 Button2 - Tengah
Button3 Button3 - Cos
Button4 Button4 - Superposisi
ScrollBar1 ScrollBar1 - -
ScrollBar2 ScrollBar2 - -
ScrollBar3 ScrollBar3 - -
ScrollBar4 ScrollBar4 - -
ScrollBar5 ScrollBar5 - -
Shape1 Shape1 - -
Timer1 Timer1 - -
CheckBox1 CheckBox1 - Axis
Image1 Image1 - -

d. Kemudian, klik ganda pada setiap button dan lengkapi kode program seperti
dibawah ini.
procedure TForm1.Button1Click(Sender: TObject);
begin
gambar:=TBitmap.Create;
gambar.Width:=Image1.Width;
gambar.Height:=Image1.Height;
gelombang:=ScrollBar5.Position;
Label6.Caption:=IntToStr(ScrollBar5.Position);
Label8.Caption:=IntToStr(ScrollBar1.Position);
Label7.Caption:=IntToStr(-ScrollBar2.Position);
Label4.Caption:=floatToStr(ScrollBar3.Position/rentangtitik);
Label5.Caption:=floatToStr(ScrollBar4.Position/rentangtitik);
sx:=Round(gambar.Height/2);
sy:=Round(gambar.Width/2);
sumbuX:=sx+ScrollBar2.Position;
sumbuY:=sy+ScrollBar1.Position;

gambar.Canvas.MoveTo(sumbuY,0);
gambar.Canvas.LineTo(sumbuY,image1.Height);
gambar.Canvas.MoveTo(0,sumbuX);
gambar.Canvas.LineTo(image1.Width,sumbuX);
40

panjanglengansumbuX:=20*round((image1.Width/2)/rentangtitik);
panjanglengansumbuY:=20*round((image1.Height/2)/rentangtitik);

//X Y
for i:=1 to panjanglengansumbux do
begin
gambar.Canvas.Ellipse(sumbuY+rentangtitik*i-1,sumbuX-5,sumbuY+rentangtitik*i+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*i,sumbuX+10,IntToStr(i));
gambar.Canvas.Ellipse(sumbuY+rentangtitik*(-i)-1,sumbuX-5,sumbuY+rentangtitik*(-i)+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*(-i),sumbuX+10,IntToStr(-i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*i-1,sumbuY+5,sumbuX+rentangtitik*i+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(-i),IntToStr(i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*(-i)-1,sumbuY+5,sumbuX+rentangtitik*(-i)+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(i),IntToStr(-i));
end;
for i := 0 to gelombang*ScrollBar3.Position do
begin
nil_sin:=Round( ScrollBar4.Position *-sin( 2 * pi * i /ScrollBar3.Position));
gambar.Canvas.Pixels[i+sumbuy, nil_sin+ sumbuX]:=clblue;
if (i mod 2 =0) and (CheckBox1.Checked) then
begin
gambar.Canvas.MoveTo(i+sumbuy,sumbuX);
gambar.Canvas.LineTo(i+sumbuy, nil_sin + sumbuX);
end;
end;
image1.Picture.Assign(gambar);
gambar.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);


begin
ScrollBar1.Position:=0;
ScrollBar2.Position:=0;
end;

procedure TForm1.FormCreate(Sender: TObject);


begin
rentangtitik:=25;

ScrollBar1.Max:=Round(Image1.Width/2);
ScrollBar1.Min:=-Round(Image1.Width/2);
ScrollBar2.Max:=Round(Image1.Height/2);
ScrollBar2.Min:=-Round(Image1.Height/2);

ScrollBar3.Position:=1*rentangtitik;
ScrollBar4.Position:=1*rentangtitik;
Label4.Caption:=floatToStr(ScrollBar3.Position/rentangtitik);
Label5.Caption:=floatToStr(ScrollBar4.Position/rentangtitik);
end;

procedure TForm1.ScrollBar5Change(Sender: TObject);


begin
button1.Click;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);


begin
button1.Click;
end;

procedure TForm1.Timer1Timer(Sender: TObject);


41

begin
Shape1.Brush.Color:=RGB(random(255),random(255),random(255));
end;

procedure TForm1.Button3Click(Sender: TObject);


begin
gambar:=TBitmap.Create;
gambar.Width:=Image1.Width;
gambar.Height:=Image1.Height;
gelombang:=ScrollBar5.Position;
Label6.Caption:=IntToStr(ScrollBar5.Position);
Label8.Caption:=IntToStr(ScrollBar1.Position);
Label7.Caption:=IntToStr(-ScrollBar2.Position);
Label4.Caption:=floatToStr(ScrollBar3.Position/rentangtitik);
Label5.Caption:=floatToStr(ScrollBar4.Position/rentangtitik);
sx:=Round(gambar.Height/2);
sy:=Round(gambar.Width/2);
sumbuX:=sx+ScrollBar2.Position;
sumbuY:=sy+ScrollBar1.Position;

gambar.Canvas.MoveTo(sumbuY,0);
gambar.Canvas.LineTo(sumbuY,image1.Height);
gambar.Canvas.MoveTo(0,sumbuX);
gambar.Canvas.LineTo(image1.Width,sumbuX);

panjanglengansumbuX:=20*round((image1.Width/2)/rentangtitik);
panjanglengansumbuY:=20*round((image1.Height/2)/rentangtitik);

//XY
for i:=1 to panjanglengansumbux do
begin
gambar.Canvas.Ellipse(sumbuY+rentangtitik*i-1,sumbuX-5,sumbuY+rentangtitik*i+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*i,sumbuX+10,IntToStr(i));
gambar.Canvas.Ellipse(sumbuY+rentangtitik*(-i)-1,sumbuX-5,sumbuY+rentangtitik*(-i)+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*(-i),sumbuX+10,IntToStr(-i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*i-1,sumbuY+5,sumbuX+rentangtitik*i+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(-i),IntToStr(i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*(-i)-1,sumbuY+5,sumbuX+rentangtitik*(-i)+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(i),IntToStr(-i));
end;
for i := 0 to gelombang*ScrollBar3.Position do
begin
nil_cos:=Round( ScrollBar4.Position *-cos( 2 * pi * i /ScrollBar3.Position));
gambar.Canvas.Pixels[i+sumbuy, nil_cos+ sumbuX]:=clred;
if (i mod 2 =0) and (CheckBox1.Checked) then
begin
gambar.Canvas.MoveTo(i+sumbuy,sumbuX);
gambar.Canvas.LineTo(i+sumbuy, nil_cos + sumbuX);
end;
end;
image1.Picture.Assign(gambar);
gambar.Free;
end;

procedure TForm1.Button4Click(Sender: TObject);


begin
gambar:=TBitmap.Create;
gambar.Width:=Image1.Width;
gambar.Height:=Image1.Height;
gelombang:=ScrollBar5.Position;
Label6.Caption:=IntToStr(ScrollBar5.Position);
Label8.Caption:=IntToStr(ScrollBar1.Position);
42

Label7.Caption:=IntToStr(-ScrollBar2.Position);
Label4.Caption:=floatToStr(ScrollBar3.Position/rentangtitik);
Label5.Caption:=floatToStr(ScrollBar4.Position/rentangtitik);
sx:=Round(gambar.Height/2);
sy:=Round(gambar.Width/2);
sumbuX:=sx+ScrollBar2.Position;
sumbuY:=sy+ScrollBar1.Position;

gambar.Canvas.MoveTo(sumbuY,0);
gambar.Canvas.LineTo(sumbuY,image1.Height);
gambar.Canvas.MoveTo(0,sumbuX);
gambar.Canvas.LineTo(image1.Width,sumbuX);

panjanglengansumbuX:=20*round((image1.Width/2)/rentangtitik);
panjanglengansumbuY:=20*round((image1.Height/2)/rentangtitik);

//Membuat titik koordinat X dan Y


for i:=1 to panjanglengansumbux do
begin
gambar.Canvas.Ellipse(sumbuY+rentangtitik*i-1,sumbuX-5,sumbuY+rentangtitik*i+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*i,sumbuX+10,IntToStr(i));
gambar.Canvas.Ellipse(sumbuY+rentangtitik*(-i)-1,sumbuX-5,sumbuY+rentangtitik*(-i)+1,sumbuX+5);
gambar.Canvas.TextOut(sumbuY-3+rentangtitik*(-i),sumbuX+10,IntToStr(-i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*i-1,sumbuY+5,sumbuX+rentangtitik*i+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(-i),IntToStr(i));
gambar.Canvas.Ellipse(sumbuY-5,sumbuX+rentangtitik*(-i)-1,sumbuY+5,sumbuX+rentangtitik*(-i)+1);
gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+rentangtitik*(i),IntToStr(-i));
end;
for i := 0 to gelombang*ScrollBar3.Position do
begin
nil_sin:=Round( ScrollBar4.Position *-sin( 2 * pi * i /ScrollBar3.Position));
gambar.Canvas.Pixels [i+sumbuy, nil_sin+ sumbuX]:=clblue;
nil_cos:=Round( ScrollBar4.Position *-cos( 2 * pi * i /ScrollBar3.Position));
gambar.Canvas.pixels[i+sumbuy, nil_cos+ sumbuX]:=clred;
if (i mod 2 =0) and (CheckBox1.Checked) then
begin
gambar.Canvas.MoveTo(i+sumbuy,sumbuX);
gambar.Canvas.LineTo(i+sumbuy, nil_sin + sumbuX);
gambar.Canvas.LineTo(i+sumbuy, nil_cos + sumbuX);
end;
end;
image1.Picture.Assign(gambar);
gambar.Free;
end;

procedure TForm1.ScrollBar2Change(Sender: TObject);


begin
button1.Click;
end;

procedure TForm1.ScrollBar1Change(Sender: TObject);


begin
button1.Click;
end;

procedure TForm1.ScrollBar3Change(Sender: TObject);


begin
button1.Click;
end;

procedure TForm1.ScrollBar4Change(Sender: TObject);


43

begin
button1.Click;
end;

end.
//THANKS FANS

e. Klik Run, dan aplikasi siap digunakan. Berikut macam-macam gelombangnya :


 Gelombang Sinus

 Gelombang Cosinus

 Gelombang Superposisi
44

7. Membuat Aplikasi Untuk Mencari Akar Kuadrat


Berikut langkah-langkah pembuatan aplikasi tersebut, yaitu :
a. Design form seperti gambar dibawah ini

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya sebagai berikut :

Objek Properti Nilai Properti


Label1 Caption Persamaan Akar Kuadrat
Label2 Caption Ax^2+Bx+C=0
Label3 Caption A
Label4 Caption B
Label5 Caption C
Label6 Caption X1
Label7 Caption X2
Label 8 Caption -
Edit1 Text -
Edit2 Text -
45

Edit3 Text -
Edit4 Text -
Edit5 Text -
Button1 Caption,Name PROSES
Button2 Caption,Name DELETE
Button3 Caption,Name CLOSE
Image1 - -

c. Kemudian masukkan coding berikut ini pada masing-masing button


BUTTON 1 var a,b,c,d,x1,x2,e,f :real;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
c:=StrToFloat(edit3.Text);
d:=(b*b)-(4*a*c);
if d=0 then
begin
label8.caption:='Mempunyai Satu Akar Real, x1 = x2';
x1:=(-b)/2*a;
x2:=(-b)/2*a;
edit4.text:=FloatToStr(x1);
edit5.text:=FloatToStr(x2);
end
else
if d>0 then
begin
label8.caption:='Mempunyai Dua Akar Real yang Berlainan';
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
edit4.text:=FloatToStr(x1);
edit5.text:=FloatToStr(x2);
end
else
if d<0 then
begin
label8.Caption:='Mempunyai Akar-akar Imajiner';
e:=(-b/2*a);
f:=(sqrt(-1*d)/2*a);
46

edit4.text:=FloatToStr(e)+'+'+FloatToStr(f)+'i';
edit5.text:=FloatToStr(e)+'-'+FloatToStr(f)+'i';
end;
end;
BUTTON 2 procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Clear;
edit2.Clear;
edit3.Clear;
edit4.Clear;
edit5.Clear;
end;
BUTTON 3 procedure TForm1.Button3Click(Sender: TObject);
begin
application.Terminate;
end;

d. Run program dan aplikasi yang telah dibuat muncul seperti gambar dibawah ini.
47

8. Membuat Aplikasi Untuk Mencari Akar Himpunan Dengan Metode Interaksi Titik
Tetap
Berikut langkah-langkah membuat aplikasi tersebut, yaitu :
a. Design form seperti gambar dibawah ini

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya sebagai berikut :

Objek Properti Nilai Properti


Label1 Caption Mencari Akar Himpunan
Label2 Caption (x)+cosx*2
Label3 Caption Dengan Metode Interaksi Tetap
Label4 Caption x0
Label5 Caption n
Label6 Caption Interaksi
Label7 Caption X0
Label8 Caption X1
Label9 Caption E
Label10 Caption Akar Himpunan
Edit1 Text -
Edit2 Text -
48

Edit3 Text -
Listbox1 - -
Listbox2 - -
Listbox3 - -
Listbox4 - -
Button1 Caption, Name Proses
Botton2 Caption,Name Close

c. Kemudian masukkan koding sebagai berikut


BUTTON 1 procedure TForm1.Button1Click(Sender: TObject);
Var x0,x1,e,p,q : real;
i,n : integer;
begin
x0:=strtofloat(edit1.Text);
e:=0.0001;
i:=0;
n:=strtoint(edit2.Text);
repeat
i:=i+1;
listbox1.Items.add(inttostr(i));
listbox2.Items.add(floattostr(x0));
x1:=sqrt(cos(x0));
listbox3.Items.add(floattostr(x1));
p:=(x1-x0)/x1;
q:=abs(p);
listbox4.Items.add(floattostr(q));
x0:=x1;
until
q<e;
edit3.Text:=floattostr(x1);
end;
BUTTON2 Procedure TForm1.Button3Click(Sender: TObject);
begin
application.Terminate;
end;
49

d. Run program dan aplikasi yang telah dibuat tampak seperti gambar dibawah ini
50

9. Membuat Aplikasi Untuk Membuat Akar Persamaan Numerik Dan Grafik Fungsi
Menggunakan Delphi
Berikut langkah-langkah membuat aplikasi tersebut, yaitu :
a. Design Form seperti gambar dibawah ini

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya
Objek propertis Nilai Propertis
Label1 Caption Akar Persamaan
Label2 Caption input
Label3 Caption Tkritis
Label4 Caption Pkritis
Label5 Caption Tekanan
Label6 Caption Temperatur
Label7 Caption Output
Label8 Caption Vestimasi
Label9 Caption Awal
Label10 Caption Akhir
Edit1 Text -
Edit2 Text -
51

Edit3 Text -
Edit4 Text -
Edit5 Text -
Memo1 Text -
Memo2 Text -
Button1 Caption,Name Hitung
Button2 Caption,Name Grafik
Botton3 Caption,Name Ulang
Button4 Caption,Name Keluar
Tchart - -

c. Masukkan koding berikut pada masing-masing button


Const dx = 0.001;
presisi = 1e-5; {epsilon}
R = 8.314;
Var p, T, pc, Tc, a, b, awal, akhir,Va,Vb :
extended;
n : integer;
Form1: TForm1;
implementation
{$R *.dfm}
BUTTON 1 procedure TForm1.Button1Click(Sender:
TObject);
function f(x : extended) : extended;
begin
f :=(p*x*x*x)-((b*p+R*T)*x*x)+(a*x)-(a*b);
end;
Function df(x : extended) : extended;
begin
df := (f(x+dx) - f(x-dx))/(2*dx);
end;
Procedure Hitung_abVa;
begin
a := (27*sqr(R)*sqr(Tc))/(64*pc);
52

b := (R*Tc)/(8*pc);
Va := (R*T)/p;
end;
Procedure Newton(var Va,Vb : extended);
begin
Vb := Va - (f(Va)/df(Va));
awal := Va;
akhir := Vb;
Va := Vb;
end;
begin
if edit1.Text =' ' then
messagedlg('Data belum
diisi',mtError,[mbok],0)
else
begin
Tc := strtofloat(edit1.Text);
pc := strtofloat(edit2.Text);
p := strtofloat(edit3.Text);
T := strtofloat(edit4.Text);
Hitung_abVa;
edit5.Text := floattostr(Va);
n := 1;
repeat
Newton(Va,Vb);
Memo1.Lines.Add(floattostr(awal));
Memo2.Lines.Add(floattostr(akhir));
inc(n,1);
until abs(akhir-awal) < presisi;
edit1.SetFocus;
end;
edit1.SetFocus;
end;
BUTTON 2 procedure TForm1.Button2Click(Sender:
TObject);
var n : integer;
function fn(n : integer) : extended;
53

begin
fn :=(p*n*n*n)-((b*p+R*T)*n*n)+(a*n)-(a*b);
end;
begin
series1.Clear;
if edit1.Text ='' then messagedlg('Data belum
diisi',mtError,[mbok],0)
else
begin
for n := -100 to 100 do
begin
series1.add(fn(n));
end;
end;
edit1.SetFocus;
end;
BUTTON 3 procedure TForm1.Button3Click(Sender:
TObject);
begin
edit1.Text := ' ';
edit2.Text := ' ';
edit3.Text := ' ';
edit4.Text := ' ';
edit5.Text := ' ';
memo1.Clear;
memo2.Clear;
edit1.SetFocus;
end;
BUTTON 4 procedure TForm1.Button4Click(Sender:
TObject);
begin
Application.Terminate;
end;
54

d. Run program dan aplikasi yang telah dibuat tampah seperti gambar dibawah ini
55

10. Membuat Program Untuk Mencari Akar Polinomial Menggunakan Delphi


Berikut langkah-langkah membuat aplikasi tersebut, yaitu:
a. Design Form seperti gambar dibawah ini :

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya
Objek Propertis Nilai Propertis
Label1 Caption Mencari Akar Polinomial dan Fungsi
Label2 Caption Masukkan Nilai X0
Label3 Caption Masukkan nilai X1
Label4 Caption Masukkan nilai n
Label5 Caption Akar Fungsi
Label6 Caption Nilai Fungsi
Label7 Caption Interaksi Ke
Button1 Caption,Name -
Edit1 Text -
Edit2 Text -
Edit3 Text -
Edit4 Text -
Edit5 Text -
Edit6 Text -
56

image - -

c. Masukkan Koding berikut


var
Form1: TForm1;
x0,x1,x2,f0,f1,f2:real;
i,n : integer;
implementation
{$R *.dfm}

function f(x:real):real;
begin
f:=x*x*x*x-31*x*x*x+230*x*x-452*x-144;
{f:=x*x*x-4*x*x-x+2;}
end;

BUTTON 1 procedure TForm1.Button1Click(Sender: TObject);


var i,j: integer;
begin
x0:=strToFloat(edit1.text);
x1:=strToFloat(edit2.text);
n:=strToint(edit3.Text);
f0:=f(x0);
f1:=f(x1);
for i:=0 to n do
begin
j:=i;
if((f1-f0)<>0)then x2:=x1-(f1*(x1-x0))/(f1-f0)
else
begin
j:=n;
end;
f2:=f(x2); x0:=x1;f0:=f1; x1:=x2;f1:=f2;
edit4.Text:=FloatTostr(x2);
edit5.text:=floattostr(f2);
edit6.Text:=inttostr(i);
end;
end;
end.
57

d. Run Program dan aplikasi yang telah dibuat tampak seperti gambar dibawah
58

11. Membuat Program Gabungan dengan Menggunakan Aplikasi Delphi7


Berikut Langkah-langkah pembuatan aplikasi tersebut, yaitu :
a. Design form seperti gambar di bawah ini:

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya

Objek Properti Nilai Properti


Edit1 Text -
Edit2 Text -
Edit3 Text -
Edit4 Text -
Edit5 Text -
Edit6 Text -
Edit7 Text -
Edit8 Text -
Edit9 Text -
Edit10 Text -
Edit11 Text -
Edit12 Text -
59

Edit13 Text -
Edit14 Text -
Edit15 Text -
Edit16 Text -
Edit17 Text -
Edit18 Text -
Edit19 Text -
Button1 Caption,Name Jenis Akar
Button2 Caption,Name Clear
Button3 Caption,Name Proses
Button4 Caption.Name Clear
Button5 Caption,Name Proses
Button6 Caption,Name Clear
Button7 Caption,Name Proses
Button8 Caption,Name Grafik
Button9 Caption,Name Clear
Button10 Caption,Name Close
Label1 Caption Akar-akar persamaan kuadrat
Label2 Caption X2+
Label3 Caption X+
Label4 Caption =0
Label5 Caption Mencari akar hampiran
Label6 Caption X1=
Label7 Caption X2=
Label8 Caption F(x)-cosx-x2
Label9 Caption Dengan metode iterasi tetap
Label10 Caption X0=
Label11 Caption n=
Label12 Caption Iterasi
Label13 Caption X0
60

Label14 Caption X1
Label15 Caption e
Label16 Caption Akar Hampiran
Label17 Caption Mencari akar polinomialdengan
fungsi
Label18 Caption Masukan nial X0
Label19 Caption Masukan nilai X1
Label20 Caption Masukan nilai N
Label21 Caption Akar Fungsi
Label22 Caption Nilai Fungsi
Label23 Caption Interaksi ke
Label24 Caption T kritis
Label25 Caption P Kritis
Label26 Caption Tekanan
Label27 Caption Temperatur
Label28 Caption V estimasi
Label29 Caption Awal
Label30 Caption Akhir
Groupbox1 Caption Proses
Image1 - -
StaticText1 Caption Akar persamaan
StaticText2 Caption Input
StaticText3 Caption Output
ListBox1 Name ListBox1
ListBox2 Name ListBox2
ListBox3 Name ListBox3
ListBox4 Name ListBox4
Memo1 Name Memo1
Memo2 Name Memo2
Chart1 Name Chart1
61

c. Masukkan Koding berikut:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, TeEngine, Series,
TeeProcs, Chart;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
GroupBox1: TGroupBox;
Label6: TLabel;
Label7: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Button1: TButton;
Edit6: TEdit;
Button2: TButton;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit7: TEdit;
Edit8: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
ListBox1: TListBox;
ListBox2: TListBox;
62

ListBox3: TListBox;
ListBox4: TListBox;
Label16: TLabel;
Edit9: TEdit;
Button3: TButton;
Button4: TButton;
Label17: TLabel;
Image1: TImage;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Button5: TButton;
Button6: TButton;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Chart1: TChart;
Series1: TAreaSeries;
Memo1: TMemo;
Memo2: TMemo;
63

Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
procedure Button1Click(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 Button10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const dx = 0.001;
presisi = 1e-5; {epsilon}
R = 8.314;
var
p, T, pc, Tc, a, b, awal, akhir,Va,Vb : extended;
n : integer;
Form1: TForm1;

implementation

{$R *.dfm}
BUTTON 1 procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:integer;
D,AD,akr1,akr2,e,f:real;
begin
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
D:=(b*b-4*a*c);
if(D>0)then
AD:=sqrt(b*b-4*a*c);
64

begin
akr1:=(-b+AD)/(2*a);
akr2:=(-b-AD)/(2*a);
Edit4.Text:=FloatToStr(akr1);
Edit5.Text:=FloatToStr(akr2);
Edit6.Text:='Real Berlainan';
end;
if(D=0)then

begin
akr1:= -b/(2*a);
akr2:= -b/(2*a);
Edit4.Text:=FloatToStr(akr1);
Edit5.Text:=FloatToStr(akr2);
Edit6.Text:='Real dan Sama';
end;
if(D<0)then
begin
e:=-b/(2*a);
f:=sqrt(-D)/(2*a);
Edit4.Text:=formatfloat('0.#',e)+' + i' +
formatfloat('0.#',f);
Edit5.Text:=formatfloat('0.#',e)+' - i' +
formatfloat('0.#',f);
Edit6.Text:='Real Imajiner'
end;

end;

BUTTON 2 procedure TForm1.Button2Click(Sender: TObject);


begin
edit1.text:=' ';
edit2.text:=' ';
edit3.text:=' ';
edit4.text:=' ';
edit5.text:=' ';
edit6.text:=' ';
end;
BUTTON 3 procedure TForm1.Button3Click(Sender: TObject);
var
x0,x1,e,p,q:real;
65

i,n:integer;
begin
x0:=strtofloat(edit7.Text);
e:=0.0001;
i:=0;
n:=strtoint(edit8.Text);
repeat
i:=i+1;
listbox1.Items.add(inttostr(i));
listbox2.Items.add(floattostr(x0));
x1:=sqrt(cos(x0));
listbox3.Items.add(floattostr(x1));
p:=(x1-x0)/x1;
q:=abs(p);
listbox4.Items.add(floattostr(q));
x0:=x1;
until
q<e;
edit9.Text:=floattostr(x1);
end;
BUTTON 4 procedure TForm1.Button4Click(Sender: TObject);
begin
edit7.Clear;
edit8.Clear;
edit9.Clear;
ListBox1.Clear;
ListBox2.Clear;
ListBox3.Clear;
ListBox3.Clear;
ListBox4.Clear;
end;
function f(x:real):real;
begin
f:=x*x*x*x-31*x*x*x+230*x*x-452*x-144;
{f:=x*x*x-4*x*x-x+2;}
end;
BUTTON 5 procedure TForm1.Button5Click(Sender: TObject);
var
x0,x1,x2,f0,f1,f2:real;
i,n,j : integer;
begin
66

x0:=strtofloat(edit10.text);
x1:=strtofloat(edit11.text);
n:=strtoint(edit12.Text);
f0:=f(x0);
f1:=f(x1);
for i:=0 to n do
begin
j:=i;
if((f1-f0)<>0)then
x2:=x1-(f1*(x1-x0))/(f1-f0)
else
begin
j:=n;
end;
f2:=f(x2);
x0:=x1;f0:=f1;
x1:=x2;f1:=f2;
edit13.Text:=floattostr (x2);
edit14.Text:=floattostr(f2);
edit15.Text:=inttostr (i);
end;

end;
BUTTON 6 procedure TForm1.Button6Click(Sender: TObject);
begin
edit10.Clear;
edit11.Clear;
edit12.Clear;
edit13.Clear;
edit14.Clear;
edit15.Clear;
end;
BUTTON 7 procedure TForm1.Button7Click(Sender: TObject);
function f(x : extended) : extended;
begin
f :=(p*x*x*x)-((b*p+R*T)*x*x)+(a*x)-(a*b);
end;
Function df(x : extended) : extended;
begin
df := (f(x+dx) - f(x-dx))/(2*dx);
end;
67

Procedure Hitung_abVa;
begin
a := (27*sqr(R)*sqr(Tc))/(64*pc);
b := (R*Tc)/(8*pc);
Va := (R*T)/p;
end;
Procedure Newton(var Va,Vb : extended);
begin
Vb := Va - (f(Va)/df(Va));
awal := Va;
akhir := Vb;
Va := Vb;
end;
begin
if edit16.Text =' ' then
messagedlg('Data belum diisi',mtError,[mbok],0)
else
begin
Tc := strtofloat(edit16.Text);
pc := strtofloat(edit17.Text);
p := strtofloat(edit18.Text);
T := strtofloat(edit19.Text);
Hitung_abVa;
edit20.Text := floattostr(Va);
n := 1;
repeat
Newton(Va,Vb);
Memo1.Lines.Add(floattostr(awal));
Memo2.Lines.Add(floattostr(akhir));
inc(n,1);
until abs(akhir-awal) < presisi;
edit16.SetFocus;
end;
edit1.SetFocus;
end;
BUTTON 8 procedure TForm1.Button8Click(Sender: TObject);
var n : integer;
function fn(n : integer) : extended;
begin
fn :=(p*n*n*n)-((b*p+R*T)*n*n)+(a*n)-(a*b);
end;
68

begin
series1.Clear;
if edit16.Text ='' then
messagedlg('Data belum diisi',mtError,[mbok],0)
else
begin
for n := -100 to 100 do
begin
series1.add(fn(n));
end;
end;
edit16.SetFocus;
end;
BUTTON 9 procedure TForm1.Button9Click(Sender: TObject);
begin
edit16.Text := ' ';
edit17.Text := ' ';
edit18.Text := ' ';
edit19.Text := ' ';
edit20.Text := ' ';
memo1.Clear;
memo2.Clear;
edit16.SetFocus;
end;
BUTTON 10 procedure TForm1.Button10Click(Sender: TObject);
begin
application.Terminate;
end;

end.
69

d. Run Program dan aplikasi yang telah dibuat tampak seperti gambar dibawah
70

12. Membuat Program Interaksi Numerik Dengan Metode Trapesium, Titik Tengah, Dan
Simpson
LANGKAH-LANGKAH
a. Design Form seperti gambar dibawah ini :

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah propertiesnya


Objek Propertis Nilai Propertis
Label1 Caption Integrasi numerik
Metode : Trapesium, titik
Label2 Caption
tengah, simpson
Label3 Caption Batas atas (a)
Label4 Caption Batas bawah (b)
Label5 Caption Jumlah pias (n)
Button1 Caption,Name Trapezium
Button2 Caption,Name Titik tengah
Button3 Caption,Name Simpson 1/3
Button4 Caption,Name Simpson 3/8
Edit1 Text -
Edit2 Text -
Edit3 Text -
Edit4 Text -
71

Edit5 Text -
Edit6 Text -
Edit6 Text -
image - -

c. Masukkan Koding berikut


var
Form1: Tform1;

implementation
function F(var c:double):double;
begin
F:=1/c;
end;
{$R *.dfm}
BUTTON 1 procedure TForm1.Button1Click(Sender: TObject);
var a,b,h,x,sigma,integral:double;
i,n:integer;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
n:=StrToInt(edit3.Text);

h:=(b-a)/n;
x:=a;
Integral:=F(a)+F(b);
sigma:=0;

for i:=1 to n-1 do

begin
x:=x+h;
sigma:=sigma+2*F(x);
end;
Integral:=(Integral+sigma)*h/2;
edit4.text:=FloatToStr(Integral) ;
end;
BUTTON 2 procedure TForm1.Button2Click(Sender: TObject);
72

var a,b,h,x,sigma,integral:double;
i,n:integer;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
n:=StrToInt(edit3.Text);

h:=(b-a)/n;
x:=a+h/2;
sigma:=f(x);

for i:=1 to n-1 do


begin
x:=x+h;
sigma:=sigma+F(x);
end;
Integral:=Integral+sigma*h;
edit5.text:=FloatToStr(Integral) ;
end;
BUTTON 3 procedure TForm1.Button3Click(Sender: TObject);
var a,b,h,x,sigma,integral,fak:double;
i,n:integer;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
n:=StrToInt(edit3.Text);

h:=(a-b)/N;
sigma:=f(a)+f(b);
fak:=2;

for i:=1 to n-1 do


begin
x:=b+i*h;
if(fak=2) then fak:=4
else
fak:=2;
sigma:=sigma+fak*f(x);
end;
Integral:=h/3*sigma*-1;
edit6.Text:=FloatToStr(Integral);
73

end;
BUTTON 4 procedure TForm1.Button4Click(Sender: TObject);
var a,b,h,x,sigma,integral,fak:double;
i,n:integer;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
n:=StrToInt(edit3.Text);

h:=(a-b)/n;
sigma:=f(a)+f(b);

for i:=1 to n-1 do


begin
x:=b+i*h;
if(i mod 3 =2) then fak:=3
else
if i mod 3=1 then fak:=3
else
fak:=2;
sigma:=sigma+fak*f(x);
end;
Integral:=3/8*h*sigma*-1;
edit8.text:=FloatToStr(Integral);
end;
end.

d. Run Program dan aplikasi yang telah dibuat tampak seperti gambar dibawah
74

13. Membuat Program Diferensial Biasa


LANGKAH-LANGKAH
a. Design Form seperti gambar dibawah ini

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah propertiesnya


Objek propertis Nilai Propertis
Label1 Caption Zat A
Label2 Caption Ke-2
Label3 Caption Ke-1
Label4 Caption Zat C
Label5 Caption Zat B
Edit1 Text -
Edit2 Text -
Edit3 Text -
Edit4 Text -
Edit5 Text -
Edit 6 Text -
Reaksi konsekutif : A ---> B ---
SpeedButton1 Caption,Name
> ---> C
SpeedButton2 Caption,Name Konsentrasi awal
SpeedBotton3 Caption,Name Konstanta laju reaksi
SpeedButton4 Caption,Name Sumbu X
75

SpeedButton5 Caption,Name Sumbu Y


SpeedButton6 Caption,Name Hitung
SpeedButton7 Caption,Name Keluar
RadioButton1 Caption,Name Grafik
RadioButton2 Caption,Name Digital
RadioButton3 Caption,Name Euler
RadioButton4 Caption,Name Runge Kuta 4
GroupBox1 -
Tchart -

c. Masukkan koding berikut pada masing-masing button


Var i,j,N,zat : integer;
t,h,t0,tf,k1,k2,k3,k4,k5 : real;
y,y0,yt,yEuler,m1,m2,m3,m4 : mat;

var
Form1: TForm1;

implementation

{$R *.dfm}
SPEEDBUTTON 6 Procedure Euler;
var i: integer;
Begin
for i:= 1 to dim do m1[i]:= fx(i,t,y);
for i:= 1 to dim do yEuler[i]:= y[i]+ (h*m1[i]);
for i:= 1 to dim do m2[i]:= fx(i,t+h,yEuler);
for i:= 1 to dim do y[i]:= y[i]+
0.5*h*(m1[i]+m2[i]);
for i:= 1 to dim do yt[i]:= y[i]+ j*plot;

if radiobutton1.Checked = true then


begin
Panel2.Visible := false;
Panel1.Visible := true;
Memo1.Visible := false;
Memo2.Visible := false;
Chart1.Visible := true;
series1.Add(yt[zat]);
end;

if radiobutton2.Checked = true then


begin
Panel1.Visible := false;
Panel2.Visible := true;
Series1.Clear;
Chart1.Visible := false;
Memo1.Visible := true;
Memo2.Visible := true;

if j <= N/2 then


Memo1.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
else
76

Memo2.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
end;
t:= t0 + j*h;
end;

Procedure RungeKutta4;
var i: integer;
Begin
for i:= 1 to dim do m1[i]:= fx(i,t,y);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m1[i]/2);
for i:= 1 to dim do m2[i]:= fx(i,t+h/2,yEuler);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m2[i]/2);
for i:= 1 to dim do m3[i]:= fx(i,t+h/2,yEuler);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m3[i]);
for i:= 1 to dim do m4[i]:= fx(i,t+h,yEuler);
for i:= 1 to dim do y[i]:= y[i]+
(h/6)*(m1[i]+2*m2[i]+2*m3[i]+m4[i]);
for i:= 1 to dim do yt[i]:= y[i]+ j*plot;

if radiobutton1.Checked = true then


begin
Panel2.Visible := false;
Panel1.Visible := true;
Memo1.Visible := false;
Memo2.Visible := false;
Chart1.Visible := true;
series1.Add(yt[zat]);
end;

if radiobutton2.Checked = true then


begin
Panel1.Visible := false;
Panel2.Visible := true;
Series1.Clear;
Chart1.Visible := false;
Memo1.Visible := true;
Memo2.Visible := true;

if j <= N/2 then


Memo1.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
else
Memo2.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
end;
t:= t0 + j*h;
end;

begin
series1.Clear;
Memo1.Clear;
memo2.Clear;
Edit7.SetFocus;
zat:= strtoint(edit7.Text);
N:= strtoint(edit6.Text);

t0:= 1;
tf:= N;
t := t0;

y0[1]:= strtofloat(Edit1.Text);
y0[2]:= strtofloat(Edit2.Text);
y0[3]:= strtofloat(Edit3.Text);

k1 := StrToFloat(Edit4.Text);
k2 := StrToFloat(Edit5.Text);
77

y:= y0;
h:= (tf-t0)/N;

for j := 1 to N do
Begin
if radiobutton3.Checked = true then Euler;
if radiobutton4.Checked = true then
RungeKutta4;
end;
Edit7.SetFocus;
end;
SPEED BUTTON 7 procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
Close;
end;

d. Run program dan aplikasi yang telah dibuat tampah seperti gambar dibawah ini
78

14. APLIKASI METODE EULER UNTUK SOAL NO. 3


LANGKAH-LANGKAH
a. Design Form seperti gambar dibawah ini

b. Kemuadian Tempatkan komponen-komponen pada form dan ubahlah


propertiesnya
Objek propertis Nilai Propertis
Label1 Caption X0
Label2 Caption Nilai B
Label3 Caption Nilai A
Label5 Caption Y0
Edit1 Text -
Edit2 Text -
Edit4 Text -
Edit5 Text -
Edit6 Text -
Edit 7 Text -
SpeedButton1 Caption,Name Metode Euler
SpeedButton2 Caption,Name Kecepatan Awal
SpeedBotton3 Caption,Name konstanta
SpeedButton4 Caption,Name Waktu
SpeedButton5 Caption,Name Variable
SpeedButton6 Caption,Name Hitung
SpeedButton7 Caption,Name Keluar
79

RadioButton1 Caption,Name Grafik


RadioButton2 Caption,Name Digital
RadioButton3 Caption,Name Euler
RadioButton4 Caption,Name Runge Kuta 4
GroupBox1 -
Tchart -

c. Masukkan koding berikut pada masing-masing Speedbutton


Var i,j,N,zat : integer;
t,h,t0,tf,k1,k2,k3,k4,k5 : real;
y,y0,yt,yEuler,m1,m2,m3,m4 : mat;

var
Form1: TForm1;

implementation

{$R *.dfm}
SPEEDBUTTON 6 Procedure Euler;
var i: integer;
Begin
for i:= 1 to dim do m1[i]:= fx(i,t,y);
for i:= 1 to dim do yEuler[i]:= y[i]+ (h*m1[i]);
for i:= 1 to dim do m2[i]:= fx(i,t+h,yEuler);
for i:= 1 to dim do y[i]:= y[i]+
0.5*h*(m1[i]+m2[i]);
for i:= 1 to dim do yt[i]:= y[i]+ j*plot;

if radiobutton1.Checked = true then


begin
Panel2.Visible := false;
Panel1.Visible := true;
Memo1.Visible := false;
Memo2.Visible := false;
Chart1.Visible := true;
series1.Add(yt[zat]);
end;

if radiobutton2.Checked = true then


begin
Panel1.Visible := false;
Panel2.Visible := true;
Series1.Clear;
Chart1.Visible := false;
Memo1.Visible := true;
Memo2.Visible := true;

if j <= N/2 then


Memo1.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
else
Memo2.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
end;
t:= t0 + j*h;
end;

Procedure RungeKutta4;
80

var i: integer;
Begin
for i:= 1 to dim do m1[i]:= fx(i,t,y);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m1[i]/2);
for i:= 1 to dim do m2[i]:= fx(i,t+h/2,yEuler);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m2[i]/2);
for i:= 1 to dim do m3[i]:= fx(i,t+h/2,yEuler);
for i:= 1 to dim do yEuler[i]:= y[i]+
(h*m3[i]);
for i:= 1 to dim do m4[i]:= fx(i,t+h,yEuler);
for i:= 1 to dim do y[i]:= y[i]+
(h/6)*(m1[i]+2*m2[i]+2*m3[i]+m4[i]);
for i:= 1 to dim do yt[i]:= y[i]+ j*plot;

if radiobutton1.Checked = true then


begin
Panel2.Visible := false;
Panel1.Visible := true;
Memo1.Visible := false;
Memo2.Visible := false;
Chart1.Visible := true;
series1.Add(yt[zat]);
end;

if radiobutton2.Checked = true then


begin
Panel1.Visible := false;
Panel2.Visible := true;
Series1.Clear;
Chart1.Visible := false;
Memo1.Visible := true;
Memo2.Visible := true;

if j <= N/2 then


Memo1.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
else
Memo2.Lines.Add(' '+inttostr(j)+'--
>'+floattostr(yt[zat]))
end;
t:= t0 + j*h;
end;

begin
series1.Clear;
Memo1.Clear;
memo2.Clear;
Edit7.SetFocus;
zat:= strtoint(edit7.Text);
N:= strtoint(edit6.Text);

t0:= 1;
tf:= N;
t := t0;

y0[1]:= strtofloat(Edit1.Text);
y0[2]:= strtofloat(Edit2.Text);
y0[3]:= strtofloat(Edit3.Text);

k1 := StrToFloat(Edit4.Text);
k2 := StrToFloat(Edit5.Text);

y:= y0;
h:= (tf-t0)/N;

for j := 1 to N do
Begin
if radiobutton3.Checked = true then Euler;
81

if radiobutton4.Checked = true then


RungeKutta4;
end;
Edit7.SetFocus;
end;
SPEED BUTTON 7 procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
Close;
end;

d. Run program dan aplikasi yang telah dibuat tampah seperti gambar dibawah ini
82

BAB III

PENUTUP

A. Kesimpulan
Dari Uraian pengenalan Program Delphi di atas penulis dapat mengambil
kesimpulan bahwa program ini mudah digunakan oleh seorang programmer
pemula. Adapun sejumlah kelebihan Delphi antara lain meliputi:
1. IDE (Integrated Development Environment) atau lingkungan pengembangan aplikasi
sendiri adalah satu dari beberapa keunggulan delphi, didalamnya terdapat menu–
menu yang memudahkan kita untuk membuat suatu proyek program.
2. Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi,
maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.
3. Mudah digunakan, source kode delphi yang merupakan turunan dari pascal, sehingga
tidak diperlukan suatu penyesuain lagi.
4. Bersifat multi purphase, artinya bahasa pemrograman Delphi dapat digunakan untuk
mengembangkan berbagai keperluan pengembangan aplikasi.

Delphi adalah bahasa pemrograman yang sangat menarik bagi para programer.
Dari sisi bahasa, Delphi merupakan salah satu bahasa pemrograman tingkat tinggi
sehingga relatif lebih mudah untuk dipahami dan lebih komunikatif. Dari segi fasilitas,
delphi menyediakan fasilitas cukup lengkap, dari segi tampilan program. Delphi mampu
membuat program yang cukup cantik dan menarik.
83

DAFTAR PUSTAKA

http://muhimatul-azka.blogspot.com/2012/12/makalah-pengenalan-delphi.html

Anda mungkin juga menyukai