• Tidak ada hasil yang ditemukan

Algoritma Pemrograman. Rekursif & GUI Programming I

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma Pemrograman. Rekursif & GUI Programming I"

Copied!
53
0
0

Teks penuh

(1)

Algoritma Pemrograman

(2)

Tambahan: Fungsi Rekursif

Fungsi yang berisi dirinya sendiri

Fungsi yang mendefinisikan dirinya

sendiri

Fungsi yang memanggil dirinya sendiri

Fungsi yang memanggil dirinya sendiri

Yang perlu diperhatikan adalah “aturan

untuk berhenti dari perulangan tersebut”

(3)
(4)
(5)

Plus - Minus

Karena program lebih singkat dan ada beberapa

kasus yang lebih mudah menggunakan fungsi yang rekursif

Memakan memori yang lebih besar, karena setiap

kali bagian dirinya dipanggil, dibutuhkan sejumlah ruang memori tambahan.

ruang memori tambahan.

Mengorbankan efisiensi dan kecepatan

Problem: rekursi seringkali tidak bisa “berhenti”

sehingga memori akan habis dan komputer hang.

Saran: jika memang bisa diselesaikan dengan iteratif,

gunakanlah iteratif

• Jumlah maksimal tingkat rekursif bergantung pada

(6)

Bentuk Umum Fungsi Rekursif

return_data_type function_name(parameter_list){ ... function_name(...); ... }

(7)
(8)

Faktorial

• Faktorial 5! = 5 x 4 x 3 x 2 x 1 4! = 4 x 3 x 2 x 1 Berarti 5! = 5 x 4! Metode Iteratif Metode Iteratif

Salah satu cara untuk menghitung adalah dengan

menggunakan loop, yang mengalikan masing-masing bilangan dengan hasil sebelumnya.

• Penyelesaian dengan cara ini dinamakan iteratif, yang mana

secara umum dapat didefinisikan sebagai berikut:

(9)

Program Iteratif

#include <stdio.h> int fact_it (int n) {

int i,fak;

for (i=1; i<=n; i++) fak = fak * i; fak = fak * i; return (fak); } int main() { int fac;

printf("Masukkan berapa faktorial : "); scanf("%d",&fac);

printf("Hasil faktorial dari adalah : %d\n", fact_it(fac)); return 0;

(10)

Faktorial Rekursif (2)

• n! = n*(n-1)! • 0! = 1 • 1! = 1*(1-1)! = 1*0! = 1*1 = 1 • 2! = 2*(2-1)! • 2! = 2*(2-1)! = 2*1! = 2*1 = 2 • 3! = 3*(3-1)! = 3*2! = 3*2 = 6

(11)

Program Rekursif

#include <stdio.h> int fact_rec(int n) { if (n < 0) return 0; else if (n == 0) return 1; else if (n == 1) return 1; return 1; else return n * fact_rec(n-1); } int main() { int fac;

printf("Masukkan berapa faktorial : "); scanf("%d",&fac);

printf("Hasil faktorial dari adalah : %d\n", fact_rec(fac));

return 0;

(12)

Fibonacci

• Deret Fibonacci adalah suatu deret

matematika yang berasal dari penjumlahan dua bilangan sebelumnya.

• 1, 1, 2, 3, 5, 8, 13, 21, … • 1, 1, 2, 3, 5, 8, 13, 21, …

(13)

Fibo Iteratif

Secara iteratif int fibonacci(int n){ int f1=1, f2=1, fibo; if(n==1 || n==2) fibo=1; else{ for(int i=2;i<=n;i++){ for(int i=2;i<=n;i++){ fibo = f1 + f2; f1 = f2; f2 = fibo; } } return fibo; }

(14)

Fibo Rekursif

int fibo_r (int n){ if(n==1) return 1;

else if(n==2) return 1;

else return 1) + fibo_r(n-2);

2); }

(15)

Latihan

• Apa keluaran dari fungsi rekursif berikut bila dipanggil dengan berulang(4);

(16)

Latihan

• Apa keluaran dari fungsi rekursif berikut bila dipanggil dengan berulang(4);

(17)

GUI Programming

Pemrograman berbasis user interface

Pemrograman dilakukan diatas FORM

– Kadang ada yang menyebut pemrograman Visual

• Itu SALAH!

• Itu SALAH!

Menggunakan GUI Editor dan IDE!

– Menyediakan tool terintegrasi:

• Compile dan Run, Debugging, koneksi dengan database

(18)

Event oriented programming

conventional (request-response) programming:

sequence of operations is determined by the program

– what you want to happen, happens when you want it

event-oriented programming:

event-oriented programming:

sequence of operations is determined by the user’s

interaction with the application’s interface

(19)

Event driven programming

Normal (control flow-based) programming

Approach

Start at main()

Continue until end of program or exit()

Event-driven programming

Event-driven programming

Unable to predict time & occurrence of event

Approach

Start with main() • Build GUI

(20)
(21)

Borland C++ Builder

C++Builder is a rapid application development

(RAD) environment, developed by Borland and as of 2009, owned by the CodeGear subsidiary of Embarcadero Technologies, for writing

programs in the C++ programming language programs in the C++ programming language • In 2003 Borland released C++BuilderX (CBX),

which was written using the same framework as JBuilder and bore little resemblance to

(22)
(23)
(24)
(25)

Code Editor

Code Editor

(26)

Code Editor Tip

• Code Templates [Ctrl+J]

(27)

Code Editor Tip

• Function Parameters

• Code Completion

(28)

BC++ Project Structure

Project Manager

Project Source Project Option .cpp

.dll .obj .ocx

Form1 Form2 Form3

Unit1 Unit2 Unit3

UnitA UnitB UnitC

.ocx .lib

(29)

First BCB Project

Create a file folder FirstBCBProject

• Save Project As … | Project1

• Generated files: – Project1.bpr – Project1.cpp – Project1.cpp – Project1.res – Project1.tds – Unit1.dfm – Unit1.cpp – Unit1.h – File-file backup: .~cpp, .~dfm, .~h

(30)

File

File--file aplikasi file aplikasi BCBBCB satusatu FormForm

Form1 File :Projet1.bpr File : Unit1.dfm File :Projet1.res File :Projet1.cfg File :Projet1.tds COMPILE + File :Projet1.exe File : Unit1.obj File :Unit1.cpp dan Uni1.h Kode program + LINK Re-EDIT + Save File : Unit1.~cpp File : Unit1.~dfm

(31)

File

File--file aplikasi file aplikasi BCBBCB MultiFormMultiForm

Form2 File :Projet1.dpr File : Unit2.dfm File :Projet1.res File :Projet1.cfg File :Projet1.tds COMPILE + File :Projet1.exe File : Unit1.obj File : Unit2. obj File : Unit3. obj

File : Unit3.dfm File : Unit1.dfm Form1 Form3 File : Unit2.cpp Kode Program + LINK Re-EDIT + SAVE File : Unit1.~cpp File : Unit2.~ cpp File : Unit3.~ cpp File : Unit1.~dfm File : Unit2.~dfm File : Unit3.~dfm File : Unit3.cpp Kode Program File : Unit1.cpp Kode program

(32)

Bagaimana kode program

Bagaimana kode program BCBBCB dijalankandijalankan

#include <vcl.h> #pragma hdrstop USEFORM("Unit1. cpp", Form1); Project1.bpr #include “unit1.h” #pragma … … Unit1.pas Unit1.dfm cpp", Form1); … … … #include “unit2.h” #pragma ... ... Unit2.pas Unit2.dfm

(33)
(34)

File Unit1.dfm

(35)
(36)
(37)

Visual Component Library

Based on the properties, methods, and events (PME) model.

• The PME model defines the data members

(properties), the functions that operate on the data (methods), and a way to interact with users of the class (events).

class (events).

• A hierarchy of objects, written in Object Pascal and tied to the C++Builder IDE, that allows you to develop applications quickly.

• Using C++Builder Component palette and Object Inspector, you can place VCL components on forms and specify their properties without writing code.

(38)

Properties & Method

Properties: apa yang “melekat” pada suatu

komponen baik visual / non visual

– Misal: name, caption, width, height

Method: sering disebut Events

Method: sering disebut Events

– Merupakan kejadian-kejadian yang dilakukan /

dikenakan pada suatu komponen baik visual / non visual

(39)
(40)

A Partial VCL Tree

TGraphicsObject TObject TPersistent TComponent TControl

TStream TPrinter TList

Exception

TGraphic TCanvas TPicture

TMenu

TMenuItem TMenu TControl TCommonDialog

TMenuItem TCommonDialog TGlobalComponent TApplication TWinControl TGraphicControl TButtonControl

(41)

A Simple Window Program –

TestButtonClick

(42)

Inserting a Button –

Property and Event

(43)

Inserting a Button –

Method (in Unit1.cpp)

//---#include <vcl.h> #pragma hdrstop #include "Unit1.h" //---……

//---void __fastcall TForm1::ChColorButtonClick(TObject* Sender) Sender) { //******************************** Form1->Color = clBlue; //******************************** }

(44)

//---Common Controls

• List Box, Combo Box, Memo • Radio Box, Check Box

(45)

SDI Applications

• Create a file folder

(46)

MDI Applications

• Create a file folder

(47)

Aplikasi Console di BCB

(48)
(49)

Contoh Visual: Button

• Tombol yang dapat diklik

• Perhatikan properties dan Events pada Button yg terdapat

(50)

Contoh Visual: EditBox

• Dapat menerima inputan oleh user dalam bentuk String -> AnsiString

(51)

Kode Program

• Double Click pada Button1, ketikkan program berikut:

(52)

DEMO

• MultiForm Application

– About Box

– Menu Usage

• Cek username dan password • Cek username dan password

(53)

NEXT

Referensi

Dokumen terkait

2011 , ‘Pengaruh Konseling Apoteker Terhadap hasil Terapi Pasien Hipertensi di Poliklinik Penyakit dalam RSUD Kraton Kabupaten Pekalongan’, Tesis, MSc, Fakultas Farmasi,

[r]

upaya-upaya hukum yang dapat dilakukan konsumen listrik apabila dirugikan oleh PT.PLN Cabang Makassar dalam pemanfaatan jasa tenaga listrik.. Konsumen dapat menyampaikan

Dari hasil percobaan yang telah dilakukan, waktu pendinginan paling lama yang mampu dicapai sebesar 7400 menit (123 jam 20 menit) yaitu pada percobaan dengan kombinasi 95kg ikan

Aspek lain yaitu kesesuaian dengan SKL, KI, KD, kedalaman materi ditinjau dari pola pikir keilmuan, penerapan pendekatan scientific , dan penilaian autentik yang tersedia di

40 menit Demonstrasi Cart Parttitur Ped drum Rudimen Ludwig PENYAJIAN (INTI) Tatap muka 15 Memainkan lagu : - Daerah Nusantara - Populer 100 menit Ceramah Diskusi

Berdasarkan pembahasan hasil penelitian dilapangan yang telah dikemukakan, penulis menarik kesimpulan bahwa Koordinasi Camat dengan Kepala Desa dalam

Tujuan peneliti melakukan penelitian untuk menganalisis keseluruhan proses event “Sunday art market, yaitu komunikasi pemasaran sebelum event, pelaksanaan event, dan