Untuk membuat interface pada file 'FORM' lihat gambar dibawah ini
bila belum bisa membuka file 'FORM' bisa dilihat disini
Gambar pada angka 1 berisi 'Panjang, Lebar, dan Luas' yang berasal dari menu 'LABEL' bisa dilihat dari panah yang segaris dengan angka 1.
gambar pada angka 2 berisi 'kotak' yaitu kotak untuk mengisi angka-angka pada program, dan kotak tersebut berasal dari menu 'EDIT' bisa dilihat dari panah yang segaris dengan angka 2.
gambar pada angka 3 adalah Button 'Hitung' untuk memproses penghitungan program, dan Button tersebut berasal dari menu 'BUTTON' bisa dilihat dari panah yang segaris dengan angka 3.
Untuk gambar disamping berikut penjelasannya.
untuk membuat 'DATA NAMA PESERTA dan JUMLAH DATA' bisa dilihat pada garis merah dan kuning yang mengarah pada menu 'LABEL'
selanjutnya untuk membuat Button 'Input, Clear, dan Close' bisa dilihat pada garis hijau yang mengarah pada menu 'BUTTON'
dan yang terakhir adalah 'Listbox' (kotak besar berwarna abu-abu) yaitu untuk menampilkan keluaran data yang telah diproses, bisa dilihat pada garis biru yang mengarah pada menu 'LISTBOX'. dan untuk kotak berwarna putih adalah kotak 'EDIT' yang sudah dijelaskan pada gambar diatas.
**********Selamat Mencoba**********
Latihan 7 Quick Sort (pengurutan cepat)
buat interface seperti gambar dibawah ini.
Petunjuk pembuatan interfacenya coba disini
komponen yang terdapat didalamnya yaitu :
- Button1
- Button2
- Button3
- Edit1
- Label1
- Label2
- Label3
- Label4
- Listbox1
- Listbox2
Keterangan :
pada BUTTON1 berisi ;
var
nilai:integer
begin
//menambahkan nilai ke listbox____________tanda // atau remark menunjukkan
if TryStrToInt(Edit1.Text,Nilai) then penjelasan rumus bisa diganti
ListBox1.Items.Add(IntToStr(nilai)); dengan tanda {}
//membersihkan komponen inputan nilai
Edit1.Clear;
//focus kursor ke inputan nilai
Edit1.SetFocus;___________________SetFocus membuat kursor berpindah dan
end; tampak
pada BUTTON2 berisi ;
var
indek:Word;
begin
//menentukan panjang array
SetLength(Data,ListBox1.Items.Count);
//pemasukan nilai ke array
for indek:=0 to ListBox1.Items.Count-1 do
Data[indek]:=StrToInt(ListBox1.Items[indek]);
//proses pengurutan/sorting
QuickSort(data,Low(Data),High(Data));
//kosongkan hasil
ListBox2.Items.Clear;
//memasukkan nilai hasil
for indek:=0 to ListBox1.Items.Count-1 do
ListBox2.Items.Add(IntToStr(data[indek]));
end;
pada BUTTON3 berisi ;
begin
close;
Pada gambar 1 menunjukkan awal program yang sedang berjalan. pada gambar 2 mulai memasukkan angka yang akan diurutkan. pada gambar 3 terdapat angka 3, 9, dan 1 yang telah dimasukkan di kotak 'Data' untuk diproses pada program. pada gambar 4 telihat hasil pengurutan data dari yang terkecil ke terbesar pada kotak 'Hasil'.
buat interface seperti gambar dibawah ini.
Petunjuk pembuatan interfacenya coba disini
interface program |
- Button1
- Button2
- Button3
- Edit1
- Label1
- Label2
- Label3
- Label4
- Listbox1
- Listbox2
listing program1 |
listing program 2 |
listing program 3 |
pada BUTTON1 berisi ;
var
nilai:integer
begin
//menambahkan nilai ke listbox____________tanda // atau remark menunjukkan
if TryStrToInt(Edit1.Text,Nilai) then penjelasan rumus bisa diganti
ListBox1.Items.Add(IntToStr(nilai)); dengan tanda {}
//membersihkan komponen inputan nilai
Edit1.Clear;
//focus kursor ke inputan nilai
Edit1.SetFocus;___________________SetFocus membuat kursor berpindah dan
end; tampak
pada BUTTON2 berisi ;
var
indek:Word;
begin
//menentukan panjang array
SetLength(Data,ListBox1.Items.Count);
//pemasukan nilai ke array
for indek:=0 to ListBox1.Items.Count-1 do
Data[indek]:=StrToInt(ListBox1.Items[indek]);
//proses pengurutan/sorting
QuickSort(data,Low(Data),High(Data));
//kosongkan hasil
ListBox2.Items.Clear;
//memasukkan nilai hasil
for indek:=0 to ListBox1.Items.Count-1 do
ListBox2.Items.Add(IntToStr(data[indek]));
end;
pada BUTTON3 berisi ;
begin
close;
running program |
**********Selamat Mencoba**********
Berikut cara membuat program untuk menghitung penjumlahan deret dengan rumus d=a+b/c, dengan menggunakan function-faktorial. 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 =. . .
berikut langkah-langkahnya.
pertama buat dulu interface program seperti gambar dibawah ini. kemudian klik 2 kali button 'PROSES' selanjutnya lihat gambar Listing Program 1 dan 2.
Listing Program1 |
Listing Program 2 |
Listing Program 3 |
-----------------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
DA,DB,DC,A,B,C:integer;
D:real;
begin
A:=strtoint(Edit1.Text);
B:=strtoint(Edit2.Text);
C:=strtoint(Edit3.Text);
DA:=deret(A);
DB:=deret(B);
DC:=deret(C);
D:=(DA+DB)/DC;
Edit4.Text:=floattostr(D);
end;
-----------------------------------------------------------------------------------------
Running Program |
_________________________________________________________________________________
Dan berikut ini adalah program yang sama dengan rumus yang berbeda yaitu menggunakan Function dan berpangkat jadi hasilnya pun akan berbeda.
berikut tampilan programnya.
interface |
Listing Program 1 |
Listing Program 2 |
-------------------------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
A2,B3,C3,A,B,C:integer;
D:real;
begin
A:=strtoint(txtA.Text);
B:=strtoint(txtB.Text);
C:=strtoint(txtC.Text);
A2:=pangkat(A,2); -------> nilai 'A' berpangkat 2
B3:=pangkat(B,3); -------> nilai 'B' berpangkat 3
C3:=pangkat(C,3); -------> nilai 'C' berpangkat 3
D:=(A2+B3)/C3;
txtD.Text:=floattostr(D);
end;
-------------------------------------------------------------------------------------------------
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
Setelah selesai, jalankan program dengan tekan "F9" dan running program berjalan seperti gambar dibawah ini.
Running Program |
**********Selamat Mencoba**********
Latihan 5 mencoba membuat program pangkat 1, 2, 3, dan 4
berikut langkah-langkah programnya.
buat interface seperti gambar disamping
lalu klik 2 kali pada button 'PANGKAT 1'
kemudian akan muncul lembar Listing program dan tulis perintah program seperti gambar dibawah ini.
Listing 1 |
Listing 2 |
pada
public
{Public declarations}
Procedure pangkat1(p,l:string); -----> mewakili program
function pangkat2(p,l:string):string; -----> mewakili variabel
function pangkat3(m,n:integer);integer; -----> mewakili variabel
Listing 3 |
Listing 4 |
Listing 5 |
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;
Saat klik 2kali pada BUTTON2 ;
procedure TForm1.btnPANGKAT2Click(Sender: TObject);
begin
pangkat1(edit2.Text,edit1.Text);
end;
Saat klik 2kali pada BUTTON3 ;
procedure TForm1.btnPANGKAT3Click(Sender: TObject);
begin
edit3.Text:=pangkat2(edit2.Text,edit1.Text);
end;
Saat klik 2kali pada BUTTON4 ;
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;
Saat klik 2kali pada BUTTON CLEAR ;
procedure TForm1.btnCLEARClick(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
Setelah selesai menulis perintah-perintah seperti gambar Listing 1 s.d 5 lalu lakukan running program dengan menekan "F9" pada keyboard. berikut adalah hasil running programnya.
hasil running program |
Gambar disamping menunjukkan fungsi tombol pangkat 1, 2, 3, dan 4.
gambar 1 menunjukkan saat memproses angka dengan tombol 'PANGKAT1' dan menghasilkan keluaran 64
gambar 2 menunjukkan saat memproses angka dengan tombol 'PANGKAT2' dan menghasilkan keluaran 64
gambar 3 menunjukkan saat memproses angka dengan tombol 'PANGKAT3' dan menghasilkan keluaran 64
gambar 4 menunjukkan saat memproses angka dengan tombol 'PANGKAT4' dan menghasilkan keluaran 64
ini menunjukkan button memiliki fungsi yang sama tetapi setiap tombol memiliki rumus yang berbeda
**********Selamat Mencoba**********
Latihan 4 (Listing Program tombol PROSES [btnProses])
membuat aplikasi Deret sampai Suku ke-n, berikut tampilan interface dan Listing Program.
pertama buat interface seperti gambar disamping
kemudian akan muncul Lembar kerja untuk menulis Listing Program, tulis perintah-perintahnya seperti gambar 1 dan 2 dibawah ini
Pada hasil running program disamping pada gambar no-1 menunjukkan awal tampilan, pada gambar no-2 menunjukkan tampilan diisi dengan angka 6 setelah itu klik tombol/button 'PROSES' dan gambar no-3 menunjukkan hasil proses program.
_________________________________________________________________________________
Pada Tugas kali ini saya akan mengubah Listing program ini menghasilkan deret angka dengan pola -1, 3, -5, 7, -9 . . .
tampilan/interface tidak berubah yang berubah hanya hasil proses program karena perintah program akan saya ubah sehingga menghasilkan pola seperti diatas
berikut Listing programnya.
Pada gambar a tidak mengalami perubahan, yang mengalami perubahan adalah gambar b yaitu pada bagian 'var dan begin 1 & 2'. rumus yang semula :
begin
a:=strtoint(Edit1.Text);
Memo1.Clear; ----------------> Untuk membersihkan kotak memo saat nilai
i:=1; dimasukkan
while i<=a do
begin
b:=i;
Memo1.Lines.Add(inttostr(b)); ------> Untuk mencetak isi variabel (b) [tipe string]
i:=i+1; dan hasilnya terletak pada kotak memo
menjadi
begin
a:=strtoint(Edit1.Text); ----> variabel 'a' yang bernilai string akan diubah menjadi
Memo1.Clear; integer pada kotak edit1 dan berbasis text
i:=-1;
c:=-2;
while i<=a do
begin
b:=i;
Memo1.Lines.Add(inttostr(b));
i:=(b+c)*-1;
c:=c*-1;
Pada gambar no-1 adalah awal interface, gambar no-2 diisi angka 6, dan gambar no-3 hasil 'PROSES' dan menghasilkan pola angka deret -1, 3, -5 karena angka 6 tidak termasuk angka deret maka yang muncul adalah angka sebelum 6 yaitu -5 bukan 7.
membuat aplikasi Deret sampai Suku ke-n, berikut tampilan interface dan Listing Program.
pertama buat interface seperti gambar disamping
setelah interface selesai, klik 2 kali tombol/button 'PROSES'
kemudian akan muncul Lembar kerja untuk menulis Listing Program, tulis perintah-perintahnya seperti gambar 1 dan 2 dibawah ini
gambar 1 |
gambar 2 |
hasil Running Program |
Pada hasil running program disamping pada gambar no-1 menunjukkan awal tampilan, pada gambar no-2 menunjukkan tampilan diisi dengan angka 6 setelah itu klik tombol/button 'PROSES' dan gambar no-3 menunjukkan hasil proses program.
_________________________________________________________________________________
Pada Tugas kali ini saya akan mengubah Listing program ini menghasilkan deret angka dengan pola -1, 3, -5, 7, -9 . . .
tampilan/interface tidak berubah yang berubah hanya hasil proses program karena perintah program akan saya ubah sehingga menghasilkan pola seperti diatas
berikut Listing programnya.
gambar a |
gambar b |
begin
a:=strtoint(Edit1.Text);
Memo1.Clear; ----------------> Untuk membersihkan kotak memo saat nilai
i:=1; dimasukkan
while i<=a do
begin
b:=i;
Memo1.Lines.Add(inttostr(b)); ------> Untuk mencetak isi variabel (b) [tipe string]
i:=i+1; dan hasilnya terletak pada kotak memo
menjadi
begin
a:=strtoint(Edit1.Text); ----> variabel 'a' yang bernilai string akan diubah menjadi
Memo1.Clear; integer pada kotak edit1 dan berbasis text
i:=-1;
c:=-2;
while i<=a do
begin
b:=i;
Memo1.Lines.Add(inttostr(b));
i:=(b+c)*-1;
c:=c*-1;
hasil running setelah mengalami perubahan perintah |
**********Selamat Mencoba**********
Rekursi atau recursion adalah proses dari suatu subprogram (dapat
berupa fungsi/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 suatu fungsi/prosedur
rekursi, yang perlu diperhatikan adalah fungsi/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 program rekursi dengan menggunakan Console Aplication. (rekursi mengurutkan data dengan metode quick sort dalam bentuk procedure). gambar dibawah ini adalah listing program rekursi
lanjutan listing program rekursi
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];
{memecah larik menjadi 2 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-1);
bawah:=i+1;
end;
end;
Keterangan :
Procedure Quicksort(var x:Larikurut;bawah,atas:word);
menggunakan Procedure Quicksort karena pada program ini adalah program mengurutkan data
sementara:Tipelarik;
data bertipe Array
Bagian yang menunjukkan unsur rekursi adalah :
begin
while atas>bawah do
begin
i:=bawah;
j:=atas;
sementara:=x[bawah];
{memecah larik menjadi 2 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-1);
bawah:=i+1;
end;
end;
saat menjalankan program, maka akan muncul gambar seperti dibawah ini. pengurutannya dari yang terkecil ke terbesar
**********Selamat Mencoba**********
_________________________________________________________________________________Tugas [Carilah literature lain tentang Rekursi]
Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini.
Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman dengan mengeksperisikannya ke dalam suku-suku dari program lain dengan menambahkan langkahlangkah sejenis.
Bentuk rekursif :
a. suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri.
b. Bentuk dimana pemanggilan subrutin terdapat dalam body subrutin
c. Dengan rekursi, program akan lebih mudah dilihat
b. Bentuk dimana pemanggilan subrutin terdapat dalam body subrutin
c. Dengan rekursi, program akan lebih mudah dilihat
Bentuk rekursi bertujuan untuk :
- menyederhanakan penulisan program
- menggantikan bentuk literasi
Syarat bentuk rekursif:
- ada kondisi terminal (basis)
- ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)
Kelebihan perulangan rekursif
Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
Dapat melakukan perulangan dengan batasan fungsi
Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
Dapat melakukan perulangan dengan batasan fungsi
Kekurangan perulangan rekursif
Tidak bisa melakukan nested loop atau looping bersarang.
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.
Tidak bisa melakukan nested loop atau looping bersarang.
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.
Sumber : https://zaharaahyesa.wordpress.com/2014/04/10/algoritma-rekursif/
Latihan 2 Program Input nama dengan Array
apa itu array, sudah dijelaskan pada penjelasan yang lalu.. bisa dilihat disini
kenapa menggunakan Array? karena penginputan data dilakukan lebih dari 1kali.
buat aplikasi dengan interface seperti disamping
Petunjuk pembuatan interface coba disini
dan mengubah Properti dari Object Inspector
...Obeject Inspector...
pada Caption Form1 diisi Array
pada Caption Label1 diisi Data Nama Peserta
pada Caption Label2 diisi Jumlah Data
pada Caption Button1 diisi Input (seperti gambar disamping)
lakukan pada semua komponen seperti gambar disamping.
lalu tulis perintah program seperti gambar disamping
lanjutan perintah program
pada data ke-1 nama awal : Qonita, nama belakang : Syarif
pada data ke-2 nama awal : M, nama belakang : Adam
pada data ke-3 nama awal : Qonita,
nama belakang : Hasnaini
seperti gambar disamping
hasil input program
Running program |
bila 'Clear' diklik maka data diatas akan terhapus dan tampilan akan seperti awal lagi
dan 'Close' akan mengakhiri/menutup program.
**********Selamat Mencoba**********
Latihan 1 (mengubah listing program dengan menggunakan struktur IF then Else)
Berikut ini cara membuat aplikasi menghitung gaji dengan buat interface seperti berikut , , ,
untuk petunjuk membuat interfacenya coba disini
lalu ketik / tulis perintah seperti gambar disamping
Gambar disamping adalah lanjutan perintah gambar diatas.
begin
gaji:=StrToInt(tGaji.Text); ---> nilai gaji akan mengonversi yang bernilai string menjadi integer
if tGol.Text='A' THEN Tunjang:=10000 ELSE
if tGol.Text='B' THEN Tunjang:=20000 ELSE
if tGol.Text='C' THEN Tunjang:=30000
tunj.Caption:=IntToStr(Tunjang); ---> nilai tunj akan mengonversi yang bernilai integer menjadi string
tot:=Tunjang+Gaji;
Total.Caption:=IntToStr(tot); ---> nilai total akan mengonversi yang bernilai integer menjadi string
end;
ketikkan nama : ana dan gaji : 200.000 pada golongan isi A, B atau C seperti gambar dibawah ini. kemudian 'tunj' dan 'total' akan tampak seperti gambar dibawah ini.
Running Program |
**********Selamat Mencoba**********
Qonita Syarif. Diberdayakan oleh Blogger.