31
MAKALAH ALGORITMA IMPERATIVE PROGRAMMING UNIVERSITAS GUNADARMA FAKULTAS ILMU KOMPUTER BEKASI 2010 Disusun oleh : AHMAD RAMDANIE NINDYA RIZKY AGUNG SANTI PUSPITASARI SINTONG PARULIAN Page 1

Makalah Algoritma 1

Embed Size (px)

Citation preview

Page 1: Makalah Algoritma 1

MAKALAH ALGORITMA

IMPERATIVE PROGRAMMING

UNIVERSITAS GUNADARMAFAKULTAS ILMU KOMPUTER

BEKASI2010

Disusun oleh :

AHMAD RAMDANIE NINDYA RIZKY AGUNG SANTI PUSPITASARI SINTONG PARULIAN

Page 1

Page 2: Makalah Algoritma 1

KATA PENGANTAR

Puji syukur kehadirat Allah yang telah melimpahkan rahmatnya kepada kami sehingga kami dapat menyelesaikan makalah yang berjudul Imperative Programming.

Imperative Programming adalah bagian penting dari pemahaman mengenai Algoritma dan Pemrograman , dan merupakan fondasi penting bagi ilmu komputer dan informatika. Makalah ini dibuat dengan tujuan agar para pembacanya dapat lebih mudah untuk memahami tentang Imperative Programming

.Kami menyadari penulisan dalam makalah ini masih jauh dari kata sempurna, maka dari itu kami harapkan kritik dan saran yang membangun dari pembaca. Semoga makalah ini bermanfaat untuk kita semua dan dapat menambahkan ilmu pengetahuan baru bagi kita semua.

Bekasi, 10 oktober 2010

Tim Penyusun

Page 2

Page 3: Makalah Algoritma 1

DAFTAR ISI                                                                                                                                                                                                                        Halaman Kata Pengantar..............................................................................................           1Daftar Isi.......................................................................................................          2BAB I PENDAHULUAN

1.1. Pendahuluan Imperative Programming................................ 3            1.2. Sejarah Bahasa Imperative....................................................      3

BAB II PEMBAHASAN2.1.Variabel dan Penugasan........................................................    52.2.Perintah Tidak Terstruktur ....................................................       10           2.3.Pemrograman Terstruktur.......................................................        112.4.Sub program, Prosedur, dan Fungsi.......................................         19 2.5.Penanganan Eksepsi………………………………………… 22                     

BAB III     PENUTUP .................................................................................  3.1. Kesimpulan...........................................................................          24 3.2. Referensi ………..………………………………………….         24

     

Page 3

Page 4: Makalah Algoritma 1

BAB IPENDAHULUAN

I.1. Pendahuluan Imperative Programming

Dalam ilmu komputer, imerative programming adalah paradigma pemrograman yang

mempunyai karakteristik berupa status dan insruksi/perintah untuk mengubah status program.

Status diwakili oleh variabel sedangkan instruksi diwakili oleh statemen.Dalam banyak cara

yang sama suasana hati yang imperatif dalam bahasa-bahasa alamiah mengungkapkan perintah

untuk mengambil tindakan, program-program penting menentukan urutan perintah untuk

komputer untuk melakukan.

Ciri-ciri pemrograman imperatif yaitu :

- Adanya instruksi/command/perintah/kalimat-kalimat perintah

contoh : GOTO 10

- Adanya status yang berubah

contoh : dengan adanya perintah GOTO 10 maka status program akan loncat mengerjakan

statemen yang ada di line number 10

Istilah ini digunakan dalam pemrograman deklaratif bertentangan, yang mengungkapkan apa

yang perlu dilakukan, tanpa resep bagaimana melakukannya dalam hal urutan tindakan yang

harus diambil. Pemrograman fungsional dan logis adalah contoh pendekatan yang lebih

deklaratif.

I.2.Sejarah Bahasa Imperative

Bahasa imperatif yang paling awal adalah bahasa mesin komputer yang asli. Dalam bahasa ini,

instruksi yang sangat sederhana, yang membuat implementasi hardware lebih mudah, tetapi

menghambat penciptaan program kompleks. FORTRAN, yang dikembangkan oleh John Backus

di IBM dimulai pada tahun 1954, adalah bahasa pemrograman besar pertama untuk

menghilangkan hambatan-hambatan yang disajikan oleh kode mesin dalam penciptaan program

kompleks. FORTRAN adalah bahasa yang diizinkan dikompilasi bernama variabel, ekspresi

Page 4

Page 5: Makalah Algoritma 1

kompleks, subprogram, dan banyak fitur lain sekarang umum dalam bahasa imperatif. Dua

dekade berikutnya melihat perkembangan sejumlah besar lainnya tinggi tingkat bahasa

pemrograman imperatif. Pada akhir tahun 1950-an dan 1960-an, ALGOL dikembangkan untuk

memungkinkan algoritma matematika menjadi lebih mudah diungkapkan, dan bahkan menjabat

sebagai sistem operasi bahasa target untuk beberapa komputer. COBOL (1960) dan BASIC

(1964) sama-sama mencoba untuk membuat sintaks pemrograman lebih mirip bahasa Inggris.

Pada 1970-an, Pascal dikembangkan oleh Niklaus Wirth, dan C diciptakan oleh Dennis

Ritchie ketika ia bekerja di Bell Laboratories. Wirth terus desain Modula-2, dan Oberon. Untuk

kebutuhan Amerika Serikat Departemen Pertahanan, Jean Ichbiah dan sebuah tim di Honeywell

mulai merancang Ada pada tahun 1978, setelah tahun 4-proyek untuk menetapkan persyaratan

untuk bahasa. Spesifikasi ini pertama kali diterbitkan pada tahun 1983, dengan revisi pada tahun

1995 dan 2005 / 6.1980-an melihat pertumbuhan yang cepat tertarik pada pemrograman

berorientasi objek. Bahasa ini adalah suatu keharusan dalam gaya, namun menambahkan fitur

untuk mendukung objek. Dua dekade terakhir abad ke-20 melihat perkembangan sejumlah besar

seperti bahasa pemrograman. Smalltalk-80, awalnya dipahami oleh Alan Kay pada tahun 1969,

dirilis pada tahun 1980 oleh Xerox Palo Alto Research Center. Menggambar dari konsep

berorientasi obyek lain bahasa Simula (yang dianggap pertama di dunia pemrograman

berorientasi obyek-bahasa, yang dikembangkan pada akhir 1960-an)-Bjarne Stroustrup dirancang

C + +, sebuah bahasa berorientasi objek didasarkan pada C. C + + pertama kali dilaksanakan

pada tahun 1985. Pada akhir 1980-an dan 1990-an, yang penting bahasa-bahasa imperatif

menggambar di atas konsep berorientasi obyek adalah Perl, dirilis oleh Larry Wall pada tahun

1987; Python, yang dirilis oleh Guido van Rossum pada tahun 1990; PHP, dirilis oleh Rasmus

Lerdorf pada tahun 1994; Jawa, pertama kali dirilis oleh Sun Microsystems pada tahun 1994 dan

Ruby, dirilis pada 1995 oleh Yukihiro "matz" Matsumoto. Microsoft. NET platform (2002)

adalah pada keharusan inti sebagaimana bahasa target utamanya, VB.NET dan C #.

Page 5

Page 6: Makalah Algoritma 1

BAB IIPEMBAHASAN

2.1. Variabel dan Penugasan

Komputer dalam arti yang sederhana adalah sebuah alat hitung yang penggunaanya berdasarkan

perintah-perintah,dan pada awalnya memang dibuat untuk membantu manusia dalam melakukan

kalkulasi numerik, sehingga memang tidak mengejutkan bahwa bahasa pemrograman juga

mengadopsi beberapa elemen tertentu dari aljabar, termasuk di antaranya adalah penggunaan

huruf atau kata sebagai pengganti angka.

Berikut adalah contoh dari beberapa aljabar sederhana:

A = 8B = 5C = A + B

Dalam hal penggunaanya komputer sudah tersistem dengan rapi dan dapat dioperasikan secara

mudah, dan bagi kita persamaan di atas memang merupakan persamaan yang sama sekali tidak

rumit, tetapi jika kita dapat membujuk komputer untuk menyelesaikan persamaan di atas, maka

kita juga dapat membujuknya untuk menyelesaikan persamaan atau masalah lainnya yang jauh

lebih kompleks. Sebagai langkah pertama, kita akan mencoba untuk melakukan konversi aljabar

di atas ke dalam sintaksis di dalam bahasa C#, dan bentuknya kira-kira seperti di bawah ini:

A = 3;

B = 5;C = A + B;

Tiga baris kode di atas, tidaklah membentuk program C# yang komplet, tapi contoh kode di atas

dapat ditemukan dalam program C#, mungkin program yang kita dapat buat sendiri. Kita bisa

menulis kode di atas dengan menggunakan beberapa editor teks

(semacam notepad atauWordPad) hingga menggunakan alat bantu khusus yang didesain untuk

menyederhanakan pemrograman dengan menggunakan bahasa C#, maupun Microsoft Visual C#

Express Edition).Setelah menuliskan kode di atas, maka langkah selanjutnya yang harus kita

lakukan adalah mengubah kode di atas ke dalam bentuk berkas yang dapat dieksekusi (*.EXE)

yang dapat kita jalankan.

Perbedaan yang signifikan antara bentuk pertama (aljabar) dan bentuk kedua (kode dalam bentuk

bahasa C#) adalah bahwa setiap baris di dalam bahasa C# selalu diakhiri dengan menggunakan

karakter titik koma (semicolon). Setiap baris yang diakhiri dengan karakter titik koma disebut

dengan pernyataan program C# (C# program statement). Sebuah program komputer yang

Page 6

Page 7: Makalah Algoritma 1

dibuat dengan menggunakan C# umumnya terdiri atas macam-macam statemen. Huruf A, B dan

C yang disebut di atas merupakan apa yang disebut sebagai variabel, dan setiap variabel

merepresentasikan lokasi di dalam memori di mana nilai dari variabel akan disimpan.

Penggunaan titik koma

Penggunaan tanda titik koma di dalam bahasa C# pada akhir statemen program merupakan

sebuah cara yang sangat umum dilakukan oleh bahasa-bahasa pemrograman yang diturunkan

dari bahasa ALGOL. Penggunaan tanda titik dua tersebut dilakukan karena C# mengizinkan

kode agar ditulis dalam bentuk yang bebas. Dalam C#, kita tidak perlu menulis kode dalam

baris-baris yang terlihat "bagus." Kita bisa saja menulis kode di atas dengan menggunakan cara

seperti di bawah ini:

A = 3; B = 2; C = A + B;

Atau, kita juga bisa menggunakan bentuk seperti di bawah ini, meski terlihat acak-acakan:

A = 3 ;B = 2; C = A + B;

Meski terlihat acak-acakan oleh kita, komputer tidak akan kebingungan untuk memprosesnya,

tanpa ada keluhan. Komputer akan membedakan baris-baris kode statemen program dengan

menggunakan karakter titik dua, tidak peduli apakah sebuah baris tersebut dibagi ke dalam

banyak baris terpecah-pecah, atau baris yang digabungkan dalam satu baris yang terlihat "rapi."

Penggunaan spasi, dan baris baru di dalam program, dalam C# umumnya dikenal dengan

sebutan White Space (ruangan putih).

Penamaan Variabel

Meski A, B, C, dan Z adalah sebuah nama yang enak dibaca untuk nama-nama variabel, kita bisa

membuat variabel dengan nama-nama yang lebih enak untuk diingat, seperti:

variabel1 = 3;Variabel1 = 2;variAbel1 = variabel1 + Variabel1;

Bahasa C# merupakan bahasa pemrograman yang bersifat case-sensitive, artinya kita dapat

menggunakan karakter kapital (A sampai Z) dan huruf ordinal (a sampai z) sebagai nama

variabel, tapi memang harus ada konsistensi. Variabel1, variabel1 dan variAbel1 tidaklah sama!

Tiga variabel di atas adalah tiga variabel yang berbeda di dalam C#, meskipun dalam beberapa

bahasa seperti Pascal dan Visual Basic, merupakan variabel yang sama.

Page 7

Page 8: Makalah Algoritma 1

Untuk aksara-aksara yang dapat diketik dengan mudah dengan menggunakan keyboard, C#

menawarkan beberapa peraturan dalam pemberian nama kepada variabel, yakni sebagai berikut:

Nama-nama variabel harus dimulai dengan menggunakan sebuah

huruf atau karakter garis bawah (underscore).

Nama-nama variabel harus mengandung hanya huruf (A - Z, a - z),

angka (0 - 9), dan karakter garis bawah (underscore).

Kata kunci (keyword) C#

Meski demikian, ada beberapa kata yang tidak dapat digunakan sebagai nama-nama variabel.

Kata-kata tersebut, dinamakan dengan C# Keyword (kata kunci C#), yang memang

direservasikan oleh C#. Kira-kira ada 87 buah keyword yang terdapat di dalam C# yang tidak

bisa digunakan di dalam melakukan penamaan variabel.

abstract as base bool break

byte case catch char checked

class const continue decimal default

delegate do double else enum

event explicit extern false finally

fixed float for foreach goto

if implicit in int interface

internal is lock long namespace

new null object operator out

override params private protected public

readonly ref return sbyte sealed

short sizeof stackalloc static string

struct switch this throw true

try typeof uint ulong unchecked

unsafe ushort using virtual void

volatile while add alias get

global partial remove set value

where yield

Page 8

Page 9: Makalah Algoritma 1

Hungarian Notation

Salah satu konvensi penamaan yang sering digunakan adalah sebuah konvensi yang dikenal

dengan sebutan Hungarian Notation,

Dalam bentuknya yang paling sederhana, Hungarian Notation mengandung awalan dalam huruf

kecil yang menyatakan tipe data dari variabel tersebut. tabelnya adalah sbb :

Tipe data

Prefiks

byte by

sbyte sb

ushort us

short s

int i

uint ui

long l

ulong ul

decimalmataudec

string str

float fl

char ch

bool b

doubledataudbl

array arr

Page 9

Page 10: Makalah Algoritma 1

Jenis – Jenis Variabel Bilangan

untuk jenis angka, C# mendukung tiga buah jenis:

Ketika kita sedang menulis sebuah program, yang mengharuskan di

sana bilangan yang tidak boleh dibagi (bilangan bulat), seperti

halnya populasi siswa di sebuah sekolah, atau lain-lain, C#

menawarkan kepada kita apa yang disebut sebagai "integer."

Mustahil kan ada siswa hidup yang hanya ada badannya saja, atau

tangannya saja?

Ketika kita sedang menulis sebuah program yang menangani

masalah keuangan (yang sering digunakan di dalam industri), kita

harus menggunakan angka-angka dengan jumlah angka yang

panjang, mungkin mencapai triliunan. Bahasa C# menawarkan

kepada kita apa yang disebut sebagai "decimal."

Ketika kita sedang menulis sebuah program yang digunakan untuk

menghitung hal-hal yang ilmiah, seperti rumus relativitas dan fisika

kuantum, mungkin kita membutuhkan bilangan yang berkoma dan

berpangkat yang direpresentasikan dalam bentuk notasi ilmiah

(mantissadan exponent). Dalam C#, bilangan seperti itu dinamakan

juga dengan floating point number, yang direpresentasikan dengan

menggunakan kata kunci "float."

Deklarasi Variabel

Bahasa C#, seperti halnya Bahasa C dan C++ atau Java, menggunakan kata int untuk merujuk

kepada bilangan bulat (integer). Baris berikut merupakan contoh pendeklarasian variabel bertipe

data bilangan bulat (dengan nama JumlahHariIzin):

int JumlahHariIzin;

Yang harus diingat adalah bahwa "setiap variabel harus dideklarasikan sebelum variabel

tersebut digunakan."

Inisialisasi variabel

Pada saat sebuah variabel diberi nilai pada saat deklarasinya, maka variabel tersebut dikatakan

"melakukan inisialisasi" (initialization). Tentu saja, setelah inisialisasi dilakukan, kita bisa

mengubah nilainya dengan nilai yang berbeda di lain waktu, karena memang tidak ada bedanya

Page 10

Page 11: Makalah Algoritma 1

antara melakukan inisialisasi variabel pada saat deklarasi di dalam pernyataan deklarasi dengan

menetapkan sebuah nilai kepada sebuah variabel sesaat setelah pernyataan deklarasi dilakukan.

int JumlahHariIzin;jumlahHariIzin = 10-

2.2 Perintah Tidak Terstruktur

Adalah awal historis paradigma pemrograman yang mampu menciptakan Turing-

lengkap algoritma. Ini telah diikuti historis oleh prosedural pemrograman dan pemrograman

berorientasi obyek , keduanya dianggap sebagai pemrograman terstruktur .

Pemrograman Tidak terstruktur telah banyak dikritik karena menghasilkan kode tidak terbaca-

("spaghetti") dan kadang-kadang dianggap sebagai pendekatan yang buruk untuk membuat

proyek-proyek besar, tetapi telah memuji untuk kebebasan itu menawarkan kepada programer

dan telah dibandingkan dengan bagaimana Mozart menulis musik. 

Ada baik tinggi dan rendah tingkat bahasa pemrograman yang menggunakan pemrograman non-

terstruktur. Ini termasuk versi awal BASIC(seperti MSX BASIC dan GW-

BASIC ), JOSS , FOCAL , gondok , TELCOMP , COBOL , tingkat kode mesin , assembler awal

sistem (tanpa metaoperators prosedural), debugger assembler dan beberapa bahasa script seperti

MS -DOS batch file bahasa.

Konsep-konsep dasar

Sebuah program dalam bahasa non-terstruktur biasanya terdiri dari perintah berurutan

memerintahkan, atau pernyataan, biasanya satu di setiap baris. Garis biasanya nomor atau

mungkin memiliki label: ini memungkinkan aliran eksekusi untuk melompat ke baris dalam

program ini.

-Terstruktur memperkenalkan dasar pemrograman Non kontrol aliran konsep-konsep seperti

loop, cabang dan melompat. Meskipun tidak ada konsep prosedur dalam paradigma

terstruktur [non- rujukan? ], subrutin diperbolehkan. Tidak seperti prosedur, subrutin mungkin memiliki

beberapa entri dan exit point, dan langsung melompat masuk atau keluar dari subroutine adalah

(secara teoritis) diperbolehkan. Fleksibilitas ini memungkinkan realisasi coroutines , yang sulit

mungkin di benar pemrograman prosedural .

Tidak ada konsep variabel lokal di-terstruktur pemrograman non (meskipun untuk program

perakitan, register tujuan umum dapat melayani tujuan yang sama setelah penghematan entry),

tetapi label dan variabel dapat memiliki lahan terbatas efek (Sebagai contoh, sekelompok

Page 11

Page 12: Makalah Algoritma 1

baris). Ini berarti tidak ada (otomatis) konteks refresh saat memanggil sebuah sub rutin, sehingga

semua variabel yang dapat mempertahankan nilai-nilai mereka dari panggilan sebelumnya. Hal

ini membuat umum rekursi sulit, tetapi beberapa kasus rekursi - mana tidak ada nilai negara

subrutin diperlukan setelah panggilan rekursif - yang mungkin jika variabel yang didedikasikan

untuk subroutine rekursif secara eksplisit dibersihkan (atau re-diinisialisasi ke nilai aslinya

mereka) di entri ke subrutin. Kedalaman bersarang juga mungkin terbatas pada tingkat satu atau

dua.

Jenis data

Bahasa Non-terstruktur hanya mengizinkan tipe data dasar, seperti angka, string dan

array [ rujukan? ] (set nomor variabel dari jenis yang sama).Pengenalan array ke-terstruktur bahasa

non langkah maju penting, membuat data stream pengolahan mungkin meskipun kurangnya tipe

data terstruktur

2.3 Pemrograman Terstruktur

Pemrograman Terstruktur merupakan suatu teknik yang memecah masalah besar menjadi lebih kecil dan lebih mudah dipahami sehingga masalah yang besar dapat diselesaikan dengan baik

Orang pertama yang mencetuskan ide pemrograman terstruktur adalah Profesor Edsger W. Dijkstra dari University of Eindhoven, Nederland. Ide utamanya adalah bahwa statemen GOTO sebaiknya tidak digunakan di dalam pemrograman terstruktur, sebab bisa membuat program menjadi ruwet.

Ide ini ditanggapi oleh HD Milis, yang beranggapan bahwa pemrograman terstruktur semestinya tidak hanya dihubungkan dengan tanpa penggunaan GOTO, tetapi yang lebih utama adalah struktur program itulah yang menentukan apakah suatu pemrograman terstruktur atau tidak.

Ide pemrograman terstruktur muncul karena jumlah baris program semakin lama semakin besar, tentu saja hal ini terjadi karena diinginkan aplikasi yang lengkap dan lebih berkualitas

Dengan ide pemrograman terstruktur diharapkan dapat membantu manajemen source code (kode program) sehingga program mudah untuk dikelola bagi kepentingan selanjutnya

Tujuan utama pemrograman terstruktur adalah : agar program-program besar menjadi lebih mudah ditelusuri alur logikanya, mudah untuk dimodifikasi (dikembangkan) dan mudah pula untuk ditemukan bagian yang salah ketika program sedang diuji.

Page 12

Page 13: Makalah Algoritma 1

# Kriteria pemrograman terstruktur :

- Struktur programnya; jelas dan tegas - Fasilitas penulisan kode program; jelas dan tegas - Statemen untuk kebutuhan Selection dan Looping; lengkap - Fasilitas menyatakan berbagai type data (struktur data); lengkap dan tegas - Fasilitas pemberian komentar; lengkap - Fasilitas instruksi yang tersedia (operasi arithmatik/matematik, string, …); lengkap - Fasilitas modular (baik internal maupun eksternal); lengkap - Fasilitas debugging, mudah dan jelas

Filosofis Terstruktur

A B C D

- Mana yang susunannya terstruktur (teratur, …)- Mana yang lebih mudah anda hafalkan - Jika akan ditambah satu batang lagi, dimana harus diletakkan agar posisinya dapat dinilai

benar - Jika susunannya dirombak, mana yang lebih mudah untuk disusun kembali

Metoda dasar pemrograman terstruktur

Ide awal penerapan pemrograman terstruktur yaitu dengan menghindari penggunaan GOTO untuk melompat ke bagian program tertentu

Kegunaan GOTO untuk melompat ke baris program tertentu, secara umum dapat dibagi ke dalam 2 kelompok :

1. Melompat ke bagian bawah program dari posisi program saat ini 2. Melompat ke bagian atas program dari posisi program saat ini

Page 13

Page 14: Makalah Algoritma 1

Dengan pemrograman terstruktur;Jika ada kebutuhan melompat ke bagian bawah, dapat digantikan dengan perintah Selection (If, Case, Select, Switch,…)Jika ada kebutuhan melompat ke bagian atas, dapat digantikan dengan perintah Looping (for, While, repeat-until,…)

Prinsip utamanya adalah, program tidak boleh melompat ke atas, kecuali untuk keperluan pengulangan

Untuk itu dalam pemrograman terstruktur hanya dikenal 3 struktur :1. Sekuensial, yaitu program yang tidak memiliki lompatan. Baris program

dijalankan secara normal (lurus) satu per-satu dari atas ke bawah 2. Selection, yaitu program yang memiliki pilihan apakah harus menjalankan baris

program sesuai dengan urutannya atau melompati sejumlah baris program tersebut

3. Looping, yaitu program yang juga mengandung pilihan apakah akan mengulangi program yang sudah pernah dijalankan sebelumnya atau tidak

Page 14

Beberapa bentuk logika terstruktur dengan flow

chart

1. Struktur urut sederhana (Simple sequence)

2. Struktur 1 pilihan dengan IF-THEN

3. Struktur 2 pilihan dengan IF-THEN-ELSE

Page 15: Makalah Algoritma 1

Page 15

4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF

4b. Struktur banyak pilihan dengan CASE

5. Struktur perulangan FOR

For

6. Struktur perulangan WHILE

7. Struktur perulangan UNTIL

Page 16: Makalah Algoritma 1

Page 16

Kondisi

Proses 1b

IF-THEN-ELSE

true

false

Proses 1

Proses 2

Proses1If {kondisi=true } then Proses1b else proses1aend if Proses2

Proses1If {kondisi=true } then goto lompat1 else goto lompat2 Lompat1: Proses1b goto lompat3Lompat2: Proses1aLompat3: Proses2

Jika kondisi=true, urutan pelaksanaan :Proses1Proses1bProses2

Jika kondisi=false, urutan pelaksanaan :Proses1Proses1aProses2

Analisa :

Proses 1a

Page 17: Makalah Algoritma 1

Page 17

Kondisi1Proses 2a

IF-THEN-ELSE-IF

true

false

Proses 1

Proses 2d

Proses1If {kondisi1=true } then Proses2a else if {kondisi2=true } then Proses2b else if {kondisi3=true } then Proses2c else Proses2dend ifProses3

Proses1If {kondisi1=true } then goto lompat1 If {kondisi2=true } then goto lompat2If {kondisi3=true } then goto lompat3Goto lompat4Lompat1: Proses2a goto habis Lompat2: Proses2b goto habis Lompat3: Proses2c goto habis Lompat4: proses2dHabis: proses3

Kondisi2

Kondisi3

Proses 2b

Proses 2c

Proses 3

Proses1Case of varKondisi1: Proses2aKondisi2: Proses2bKondisi3: Proses2celse Proses2dend caseProses3

Page 18: Makalah Algoritma 1

Page 18

Looping : FOR

I=1Ulang : Proses1 Proses2 I=I+1If I<=5 then goto UlangProses3

For I=1 to 5 Proses 1 Proses 2 Next IProses 3Proses1

Proses2

FOR I=1 to 5

Proses3

Page 19: Makalah Algoritma 1

Page 19

Looping : WHILE

Ulang :If {kondisi=true} then Proses1 Proses2goto UlangProses3

While {kondisi=true} Proses 1 Proses 2 WendProses 3

While {kondisi}

Proses1

Proses2

Proses3

Page 20: Makalah Algoritma 1

Page 20

Looping : UNTIL

Ulang : Proses1 Proses2If {kondisi=true} then goto UlangProses3

do Proses 1 Proses 2 Loop Until {kondisi=true}Proses 3

Proses1

Proses1

Until {kondisi}

Proses3

Contoh flow chart dengan kontrol lengkap :

C=2

C=C=1

C>12

end

start

Page 21: Makalah Algoritma 1

Contoh pemograman terstruktur : PASCAL, COBOL, BAHASA C

STRUKTUR KONTROL

Struktur kontrol / struktur kendali merupakan struktur yang mengendalikan statemen / instruksi apa saja yang harus dikerjakanAda tiga struktur kontrol pada pemrograman imperatif yaitu :

1. Komposisi Sekuensial2. Seleksi3. Iterasi

1. Komposisi Sekuensial Digunakan bilamana lebih dari sebuah statemen yang harus dikerjakan secara berurutan

yang dipisahkan dengan menggunakan simbol/tanda khusus tertentu, misalnya titik koma (;) dalam PASCAL. Contoh : Readl(N); Write(N);

2. SeleksiStatemen penyeleksian kondisi menunjukkan bahwa suatu statemen akan dikerjakan bila

suatu kondisi adalah bernilai benar.Contoh statemen penyeleksian kondisi : IF – THEN, CASE OF (Bahasa Pascal)

3. IterasiStatemen Iterasi (perulangan) digunakan untuk memproses statemen-statemen

tertentu berulang kali. Contoh statemen iterasi : WHILE-DO, REPEAT-UNTIL, FOR-DO (Bahasa Pascal) SUBPROGRAM, PROSEDUR dan FUNGSISubprogram merupakan blok statemen yang dapat dipanggil dari lokasi yang berbeda di dalam program. Prosedur dan Fungsi adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian).

Yang membedakan antara Fungsi dan Prosedur yaitu :- Fungsi harus dideklarasikan dengan tipenya- Suatu Fungsi jika dijalankan/dipanggil akan mengembalikan suatu nilai

2.4 Subprogram,Prosedur dan Fungsi

SubprogramDefinisi

Subprogram merupakan program bagian dengan blok terpisah dan didalam program utama, dan akan dipanggil pada program utama jika subprogram itu diperlukan untuk dijalankan.

Pada Pascal dikenal 2 Subprogram yaitu :- Procedure- FUnction

Perbedaan Procedure digunakan untuk subprogram yang nilai outputnya boleh ada ataupun tidak ada

tetapi untuk Function nilai inputnya dan outputnya ada dan dapat dipanggil langsung

Page 21

Page 22: Makalah Algoritma 1

seperti sebuah variable sehingga untuk function harus langsung dideklarasikan tipe datanya.

Prosedur merupakan bagian program/sub program/modul•memiliki struktur algoritma yang

sama dengan struktur algoritma yang telah dipelajari mempunyai ciri :- mengerjakan pekerjaan yang spesifik- menghasilkan suatu efek netto yang dapat dilihat dari perbedaan keadaan awal dan

keadaan akhir- dapat berdiri sendiri/independent dari algoritma utama

keuntungan :- mempersingkat algoritma dengan menghemat penulisan algoritma yang berulang-

ulang- memudahkan dalam melakukan penelusuran kesalahan- memudahkan dalam reorganisasi algoritma dan pemecahan masalah

komponen :- header / bagian judul- nama prosedur dapat ditambahkan komentar sedapat mungkin merupakan kata kerja- parameter masukan, keluaran deklarasi untuk pendefinisian variable,semua variabel

yang didelarasikan hanya dikenali lokal pada prosedur yang bersangkutan- deskripsi untuk penulisan langkah aksi

contoh :procedure :

HIT_LUAS_SEGITIGA{ procedure menghitung luas segitiga dengan rumus L= ½ a x t }{ K.Awal : sembarang }{ K.Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran}

DEKLARASI :{ nama peubah }

a : realt : reall : real

DESKRIPSI :

input( a )input( t )L ←a * t / 2output( L )

Prosedur bukan program yang berdiri sendiri, sehingga tidak dapat dieksekusi langsung. Prosedur harus diakses supaya instruksi yang ada didalamnya dapat dilaksanakan. Cara pemanggilan dari program utama : NAMA_PROSEDUR

Page 22

Page 23: Makalah Algoritma 1

Ketika NAMA_PROSEDUR dipanggil, maka kendali program berpindah secara otomatis ke prosedur tersebut. Sehingga instruksi yang ada dalam prosedur dilaksanakan.

Contoh program utama untuk memanggil prosedur

HIT_LUAS_SEGITIGA :

algoritmaLUAS_SEGITIGA_DGN_PROC

DEKLARASI :{ nama peubah }

procedureHIT_LUAS_SEGITIGA{ procedure menghitung luas segitiga dengan rumus L= ½ a x t}

DESKRIPSI :output(„Menghitung luas segitiga‟)HIT_LUAS_SEGITIGAoutput(„Selesai‟)

procedureHIT_LUAS_SEGITIGA\{ procedure menghitung luas segitiga dengan rumus L= ½ a x t }{ K.Awal : sembarang }{ K.Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran }

DEKLARASI :{ nama peubah }

a : realt t : realL l : real

DESKRIPSI :input( a )input( t )L ←a * t / 2output( L )

Penggunaan Variabel/Peubah Global Merupakan pertukaran nilai/informasi antara prosedur dengan program yang

memanggilnya. Setiap data dipertukarkan melalui mekanisme parameter formal dan parameter aktual. Parameter formal adalah parameter yang dideklarasikan di dalam bagian header prosedur Parameter aktual adalah parameter yang disertakan pada waktu pemanggilan Pendefinisian parameter formal Prosedur dengan parameter diakses dari program dengan cara memanggil namanya

disertai dengan parameter aktualnya :Nama_Prosedur ( daftar parameter aktual )

Page 23

Page 24: Makalah Algoritma 1

Catatan penting :- Jumlah parameter aktual pada saat pemanggilan harus sama dengan jumlah

parameter formal pada deklarasi prosedurnya- Tiap parameter aktual harus bertipe sama dengan tipe parameter formal yang

bersesuaian- Tiap parameter aktual harus diekspresikan dalam cara yang sesuai dengan

parameter formal yang bersesuaian, bergantung jenis parameter formal yang digunakan.

Fungsi

merupakan bagian program/sub program/modul•memiliki struktur algoritma yang sama dengan struktur algoritma yang telah dipelajari

mempunyai ciri:

- mengerjakan pekerjaan yang spesifik- suatu modul yang memberikan/mengembalikan (return sebuah nilai yang bertipe

sederhana (integer, real, Boolean dan string).- dapat berdiri sendiri/independent dari algoritma utama

keuntungan :

- persingkat algoritma dengan menghemat penulisan algoritma yang berulang-ulang- memudahkan dalam melakukan penelusuran kesalahan- memudahkan dalam reorganisasi algoritma dan pemecahan masalah

komponen :

- header / bagian judul- nama fugsi

dapat ditambahkan komentar sedapat mungkin merupakan kata kerja semua variabel yang didelarasikan hanya dikenali lokal pada prosedur yang bersangkutan

2.5 Penanganan Eksepsi

Penanganan Exception adalah sebuah bahasa pemrograman membangun atau perangkat keras komputer mekanisme yang dirancang untuk menangani terjadinya pengecualian, kondisi khusus yang mengubah aliran normal dari program eksekusi

Bahasa pemrograman sangat berbeda dalam dukungan untuk penanganan eksepsi (sebagai pembeda dari pengecekan error yang program aliran normal yang kode untuk tanggapan terhadap kontinjensi yang merugikan seperti perubahan keadaan tidak valid atau berakhirnya operasi tidak berhasil dipanggil.) Dalam beberapa bahasa pemrograman ada fungsi yang tidak dapat dengan aman disebut pada data input tidak valid ... atau fungsi yang mengembalikan nilai yang tidak

Page 24

Page 25: Makalah Algoritma 1

dapat dibedakan dari pengecualian. Misalnya di C , yang atoi ( ASCII untuk integer konversi) fungsi dapat kembali 0 ( nol nilai) untuk setiap masukan yang tidak dapat dipecah menjadi valid suatu. Dalam bahasa seperti programmer baik harus melakukan pengecekan error (mungkin melalui beberapa variabel global bantu seperti C's errno ) atau validasi input (mungkin menggunakan ekspresi reguler ).

Tingkat dimana validasi eksplisit tersebut dan pengecekan error yang penting adalah berbeda untuk mendukung exception handling yang disediakan oleh lingkungan pemrograman yang diberikan. Hardware exception handling agak berbeda dengan dukungan yang diberikan oleh perangkat lunak, namun konsep yang serupa dan terminologi yang lazim.

Secara umum, pengecualian ditangani (diselesaikan) dengan menyimpan kondisi saat eksekusi di tempat yang telah ditetapkan dan eksekusi beralih ke spesifik subrutin dikenal sebagai handler pengecualian. Tergantung pada situasi, pawang kemudian dapat melanjutkan eksekusi di lokasi asli menggunakan informasi yang disimpan. Misalnya, kesalahan halaman biasanya akan memungkinkan program yang akan dilanjutkan, sementara pembagian dengan nol tidak mungkin diatasi secara transparan.

Selama program berjalan, dapat terjadi sesuatu hal yang menyebabkan error. Misalnya, array diberi nilai index yang melebihi nilai index yang sudah dideklarasikan, atau suatu operasi aritmatika yang membagi suatu bilangan dengan nol.

Hal ini dapat mengakibatkan program berhenti tidak seperti yang diinginkan dan biasanya menampilkan pesan kesalahan yang tidak jelas. Bahasa pemrograman harus menyediakan fasilitas untuk mendefinisikan eksepsi, mengenali kemunculan eksepsi dan menentukan kode-kode apa yang harus dieksekusi ketika eksepsi muncul. Penentuan atas kode-kode apa yang harus dieksekusi disebut Penanganan Eksepsi (Exception Handling)

Contoh Penggunaan Eksepsi dalam Bahasa C++

#include using namespace std;int main (){try {cout <<”Masukkan Angka :”; int num; cin >> num;if (num>10) throw std : : exception ();cout << “Angka Kurang dari atau sama dengan 10 “ <<endl;} catch (std : : exception& S) {cout << “Angka lebih dari 10 “ << endl;}return 0;}

Page 25

Page 26: Makalah Algoritma 1

BAB IIIPENUTUP

3.1. Kesimpulan

Imperative program ber analogi dibawah bahasa pemograman yang memacu atau berorientasi pada objek objek system informasi yang mengarah pada system informasi.Pembuatan program program computer dengan penguasaan data yang ada pada bahasa pemograman untuk dikuasain agar menjadi seorang programmer handal.

Beberapa sub.dari bidang pemograman imperative diantaranya adalah variable dan penugasan ; perintah tidak struktur ; perintah tidak dtruktur ; subprogram,prosedur dan fungsi ; dan penanganan eksepsi.

Mengenali dan member contoh variable dan penguasaaanya,mengenali bentuk perintah tidak terstruktur,mengenali bentuk perintah terstruktur,dapat menjelaskan bentuk bentuk struktur control,dapat menuliskan subprogram,prosedur,dan fungsi,dan dapat mengenali serta menjelaskan beberapa bentuk eksepsi dan penangananya.

3.2. Referensi

http://en.wikipedia.org/wiki/Exception_handling

Page 26

Page 27: Makalah Algoritma 1

kmpk.ugm.ac.id/data/SPMKK/5a-KEPEMIMPINAN(revDes'02).doc http://ndoware.com/pendekatanmodulardalampemrogramanterstruktur.html

Page 27

Page 28: Makalah Algoritma 1

MAKALAH ALGORITMA DAN PEMROGRAMANIMPERATIVE PROGRAMMING

Kelas 1KA34

Disusun Oleh : Ahmad Ramdhani Nindya Anggi Wulandari Rizqi Agung Kurniawan Santi Puspitasari Sintong Parulian Umardani H.

Page 28