Jumat, 19 Juni 2015

MATERI DASAR

  • Var digunakan untuk merubah Edit1: TEdit1; menjadi variabel nantinya atau Mendefinisikan sebuah variabel
  • Integer untuk merubah tipe data bilangan bulat yang hanya mengenal bilangan decimal dan tidak dapat mengenal bilangan pecahan
  • StrToInt digunakan untuk merubah tipe data string ke tipe data integer.
  • IntToStr untuk merubah tipe data integer ke tipe data string.
  • Caption untuk Membuat caption pada table
  • End; untuk mengakhiri sebuah script namun masih ada lanjutannya
  • End. Untuk mengakhiri sebuah script
  • Begin untuk memulai suatu penulisan scrip pada program
  • String Merupakan Tipe data yang isinya berupa Anumerik yang tidak dapat diberikan operator perhitungan karena bukan bersifat numerik value
  • If untuk membuat pengandaian atau membuat pernyataan sesuai dengan kondisi
  • For todo untuk membuat perulangan angka berurutan atau merupakan struktur pengulangan dimana aksi dilakukan sebanyak hitungan pencacah pengulangan atau for variable := nilai_awal to nilai_akhir do pernyataan
  • For downto do for variable := nilai_awal downto nilai_akhir do pernyataan
  • While do memasukan fungsi pada awal program
  • Repeat until untuk membuat program menjadi perulangan atau struktu pengulangan dimana aksi dilakukan hingga kondisi ( persyaratan ) berhenti terpenuhi.
  • While I do struktur pengulangan dimana selama kondisi ( persyaratan ) pengulangan masih benar, maka aksi dikerjakan
  • Integer = berlaku hanya untuk bilangan bulat
  • Real = untuk bilangan campuran desimal
  • Tanda petik (‘ ‘) setelah write = digunakan untuk menulis teks (apa adanya)
  • Writeln = untuk mencetak hasil (output)
  • Readln = untuk mencetak / (meng-input) nilai konstanta
  • Luas : 10 : 1 = angka 1 adalah untuk mengatur banyaknya angka dibelekang koma, itu dikarenakan kita menggunakan kode real pada luas
  • Tanda titik koma (;) adalah untuk meng-akhiri sebuah program

LATIHAN 1

1. Buat susunan tampilan seperti ini











2. Klik ganda Button HASIL dan tulis scriptnya seperti dibawah ini












var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
gaji,tot,tunjangan:integer;
begin
gaji:=StrToInt(tGaji.Text);
if tGol.Text = 'A' then tunjangan:=10000;
if tGol.Text = 'B' then tunjangan:=20000;
if tGol.Text = 'C' then tunjangan:=30000;
Tunj.Caption := IntToStr (tunjangan);
tot:=Tunjangan+Gaji;
Total.Caption := IntToStr(Tot);
end;

end.
3. Program berhasil dijalankan



LATIHAN 2

1. Buat aplikasi dengan tampilan sebagai berikut!



2. Ubah properti dari object inspector!







3. Buat kode Program!
a. Klik ganda Button INPUT










procedure TForm1.Button1Click(Sender: TObject);
Var i: integer;
Nama1,nama2 :array [1..5] of string;
S: string;
begin
s:=inputbox('input data','masukkan jumlah data :','0');
For i:=1 to strtoint(s) do
Begin
nama1[i]:=inputbox('data ke:'+inttostr(i),'nama awal','');
nama2[i]:=inputbox('data ke:'+inttostr(i),'nama belakang','');
LBData.Items.Add(nama1[i]+''+nama2[i]);
Edit1.text:=inttostr(LBData.Items.count);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
LBData.Clear;
Edit1.text:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.

b. Klik ganda Button CLEAR










procedure TForm1.Button2Click(Sender: TObject);
begin
LBData.Clear;
Edit1.text:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.

c. Klik ganda Button CLOSE










procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.

4. Klik Button Running atau tekan tombol F9 pada keyboard untuk melihat hasilnya.










  • Masukkan jumlah data










  • Masukkan nama awal










  • Masukkan nama akhir











  • Maka akan ditampilkan daftar nama seperti dibawah ini

LATIHAN 3

REKURSI atau recursion adalah proses dari suatu subprogram (dapat berupa fungsi atau prosedur) yang memanggil dirinya sendiri. Proses rekursi untuk beberapa kasus merupakan algoritma yang baik dan dapat membuat pemecahan masalah lebih mudah. Akan tetapi sebagai imbalannya, proses rekursi ini harus dibayar mahal dengan memori yang banyak digunakan, dikarenakan setiap kali suatu subprogram dipanggil, maka diperlukan sejumlah tambahan memori.
Jika kita menulis siatu fungsi atau prosedur rekursi, yang perlu diperhatikan adalah fungsi atau prosedur tersebut harus mengandung suatu kondisi akhir dari proses rekursi. Kondisi ini diperlukan untuk mencegah terjadinya proses rekursi yang tidak berujung (indefinite), yaitu proses rekursi akan dilakukan tanpa henti.

Berikut ini contoh program : Rekursi mengurutkan data metode quick sort dalam bentuk prosedur.

program sort;
{$APPTYPE CONSOLE}

uses SysUtils;

type
tipelarik=string[20];
larikUrut=array[1..1000] of Tipelarik;

Procedure QuickSort (var x : LarikUrut;bawah,atas:word);

var
I,J:word;
sementara:TipeLarik;
begin
  While atas>Bawah Do
begin
I:=Bawah;
J:=Atas;
sementara:=x[bawah];
{memecak larik menjadi dua bagian}
while I<J Do
begin
while x[j]>sementara do
J:=J-1;
x[i]:=x[j];
while (I<J) and (x[i]<=sementara) do
I:=I+1;
x[j]:=x[i];
end;
x[i]:=sementara;
{urutkan rekursi}
quicksort(x,bawah,I-2);
bawah:=I+1;
end;
end;
var
  nama:larikurut;
  N,I:word;
begin
  write ('jumlah data akan diurutkan ?');readln(n);
  writeln;
  writeln('masukkan data = ');
  for I:=1 to N do
begin
  write ('data ke',I,'?');readln(nama[I]);
end;
{urutkan dengan procedure quick sort}
quicksort (nama,1,N);
{tampilkan data yang urut}
writeln;
writeln ('data yang telah urut = ');
for I:=1 to n do
writeln (nama[I]);
readln;
end.

LATIHAN 4

1. Buatlah tampilan program seperti dibawah ini















2. Buat Kode Program!
a. Klik ganda Button PROSES, lalu tuliskan script dibawah ini.










procedure TForm1.btnProsesClick(Sender: TObject);
var
a,i,c,b:integer;
begin
a:=strtoint(Edit1.text);
Memo1.Clear;
i:=-1;
c:=-2;
while i<=a do
begin
b:=i;
Memo1.Lines.Add(inttostr(b));
i:=(b+c)*-1;
c:=c*-1;
end;
end;

end.

b. Klik ganda Button TUTUP, lalu tuliskan script dibawah ini.










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

end.

3. Jalankan aplikasi!












  • Masukkan angka 10













  • Klik PROSES, dan muncullah deretan angka dengan pola -1, 3, -5, 7, -9












  • Klik TUTUP untuk mengakhiri program

LATIHAN 5

1. Buatlah tampilan seperti dibawah ini!














2. Buat Kode Program!
  • Tulis script pada form unit1.pas seperti dibawah ini.


















unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edit1: TEdit;
edit2: TEdit;
edit3: TEdit;
btnPANGKAT1: TButton;
btnPANGKAT2: TButton;
btnPANGKAT3: TButton;
btnPANGKAT4: TButton;
Label4: TLabel;
Button1: TButton;
procedure btnPANGKAT1Click(Sender: TObject);
procedure btnPANGKAT2Click(Sender: TObject);
procedure btnPANGKAT3Click(Sender: TObject);
procedure btnPANGKAT4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure pangkat1(p,l:string);
function pangkat2(p,l:string):string;
function pangkat3(m,n:integer):integer;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

  • Klik ganda button PANGKAT1 dan tulis script ini :











procedure TForm1.btnPANGKAT1Click(Sender: TObject);
var
a,b,i,c:integer;
begin
i:=1;
c:=1;
a:=strtoint(edit2.Text);
b:=strtoint(edit1.Text);
While i<=a do
begin
c:=c*b;
i:=i+1;
end;
edit3.Text:=inttostr(c);
end;

procedure TForm1.pangkat1(p,l:string);
var
a,b,c,i:integer;
begin
i:=1;
c:=1;
a:=strtoint(p);
b:=strtoint(l);
while i<=a do
begin
c:=c*b;
i:=i+1;
end;
edit3.Text:=inttostr(c);
end;

function TForm1.pangkat2(p,l:string):string;
var
a,b,c,i:integer;
begin
i:=1;
c:=1;
a:=strtoint(p);
b:=strtoint(l);
while i<=a do
begin
c:=c*b;
i:=i+1;
end;
pangkat2:=inttostr(c);
end;
function TForm1.pangkat3(m,n:integer):integer;
var
c,i:integer;
begin
i:=1;
c:=1;
while i<=n do
begin
c:=c*m;
i:=i+1;
end;
pangkat3:=c;
end;

  • Klik ganda button PANGKAT2 dan tulis script ini :











procedure TForm1.btnPANGKAT2Click(Sender: TObject);
begin
pangkat1(edit2.Text,edit1.Text);
end;

  • Klik ganda button PANGKAT3 dan tulis script ini :











procedure TForm1.btnPANGKAT3Click(Sender: TObject);
begin
edit3.Text:=pangkat2(edit2.Text,edit1.Text);
end;

  • Klik ganda button PANGKAT4 dan tulis script ini :











procedure TForm1.btnPANGKAT4Click(Sender: TObject);
var
a,b,c:integer;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
c:=pangkat3(a,b);
edit3.text:=inttostr(c);
end;

  • Klik ganda button CLOSE dan tulis script ini :










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

end.

3. Tampilkan hasilnya dengan klik tombol Running!














  • Ketikkan angka pada kolom BILANGAN. Misalnya angka 4, lalu masukkan PANGKAT 1. Untuk melihat hasilnya, klik button PANGKAT1. 

















  • Coba hingga PANGKAT4 dengan cara yang sama.







  • Klik Button CLOSE untuk keluar dari aplikasi.

LATIHAN 6

Cara menggunakan fungsi procedure
contoh script
program Procedure2;

{$APPTYPE CONSOLE}
uses
SysUtils;
procedure tambah;
var
a,b,c : integer;
begin
write('Masukkan Nilai A= '); readln(a);
write('Masukkan Nilai B= '); readln(b);
c:=a+b;
writeln('A+B= ',c:2);
end;
begin
tambah;
readln;
{ TODO -oUser -cConsole Main : Insert code here }

end.

LATIHAN 7

Buat program untuk menghitung penjumlahan deret dengan rumus d=a+b/c, dengan menggunakan function. nilai a, b ,c adalah hasil penjumlahan deret 1+2+3 . . .
nilai a, b, c minimal 1
contoh
jika :
a=3, b=5, c=6
maka :
a=1+2+3=6
b=1+2+3+4+5=15
c=1+2+3+4+5+6=21

d = 6+15/21
d =0.95

berikut langkah-langkahnya.
1. Buat dulu interface program seperti gambar dibawah ini. kemudian klik 2 kali button 'PROSES' selanjutnya lihat gambar Listing Program 1 dan 2.








2. Tulis Listing Program seperti gambar dibawah ini.










Function Pangkat(m,n:integer):integer;
m mewakili bilangan bernilai integer/bilangan bulat
n mewakili pangkat bernilai integer/bilangan bulat
sedangkan Function Pangkat adalah hasil perpangkatan itu sendiri yang bernilai integer/bilangan bulat

3. Setelah selesai, jalankan program dengan tekan "F9" dan running program berjalan seperti gambar dibawah ini.














Gambar 1 menunjukkan awal program yang sedang berjalan, gambar 2 menunjukkan kotak a, b, dan c diisi dengan angka masing-masing 2 dan gambar 3 menunjukkan button 'PROSES' menghasilkan keluaran d menjadi 1,5

LATIHAN 8

cara menggunakan fungsi faktorial
Contoh script
program Project2;

{$APPTYPE CONSOLE}
uses
SysUtils;
Procedure Faktorial (var fak,hasil:integer);
var
i:integer; {variabel lokal}
begin
hasil:=1;
for i := 2 to fak do
hasil:=hasil*i;
end;
var
N,F : integer; {Variabel Global}
begin
write('Berapa Faktorial ? ');readln(N);
Faktorial(N,F);
writeln(N,' Faktorial = ',F);
readln;
{ TODO -oUser -cConsole Main : Insert code here }

end.

LATIHAN 9

cara menggunakan procedur by Refrence
contoh script
program Project2;

{$APPTYPE CONSOLE}
uses
SysUtils;
var
x,y,z:integer;
Procedure tambah (var a,b,c:integer);
begin
c:=a+b;
end;
begin
write('Masukkan Nilai X = ');readln(x);
write('Masukkan Nilai Y = ');readln(y);
tambah(x,y,z);
writeln('X+Y = ',z:10);
readln;
{ TODO -oUser -cConsole Main : Insert code here }

end.

LATIHAN 10

menggunakan fungsi procedure by valve
Contoh script
program Project2;

{$APPTYPE CONSOLE}
uses
SysUtils;
var
x,y : integer;
Procedure tambah(a,b:integer);
var
c:integer;
begin
c:=a+b;
writeln('Hasil Penjumlahan = ',c:10);
end;
begin
write('Masukkan Nilai X = ');readln(x);
write('Masukkan Nilai Y = ');readln(y);
tambah(x,y);
readln;
{ TODO -oUser -cConsole Main : Insert code here }

end

LATIHAN 11

1. Buat program seperti dibawah ini :





















2. Tulis scriptnya 












unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    txtA: TEdit;
    txtB: TEdit;
    txtC: TEdit;
    txtD: TEdit;
    btnProses: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure btnProsesClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    Function Pangkat(m,n:integer):integer;
  end;

var
  Form1: TForm1;
  hasil:integer;
  D:real;
implementation

{$R *.dfm}
Function TForm1.Pangkat(m,n:integer):integer;
var
a,b,i:integer;
begin
i:=1;
hasil:=1;
while i<=n do
begin
hasil:=hasil*m;
i:=i+1;
end;
pangkat:=hasil;
end;

procedure TForm1.btnProsesClick(Sender: TObject);
var
A2,B3,C3,A,B,C:integer;
begin
 a:=strtoint(txtA.Text);
 B:=strtoint(txtB.Text);
 C:=strtoint(txtC.Text);
 A2:=Pangkat(A,2);
 B3:=Pangkat(B,3);
 C3:=Pangkat(C,3);

 D:=(A2+B3)/C3;
 txtD.Text:=floattostr(d);
end;

end.

3. Jalankan aplikasi

















4. Masukkan angka lalu klik button PROSES, maka akan muncul hasilnya.