Post on 01-Jul-2015
MAKALAH ALGORITMA
IMPERATIVE PROGRAMMING
UNIVERSITAS GUNADARMAFAKULTAS ILMU KOMPUTER
BEKASI2010
Disusun oleh :
AHMAD RAMDANIE NINDYA RIZKY AGUNG SANTI PUSPITASARI SINTONG PARULIAN
Page 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
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
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
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
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
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
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
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
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
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
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
# 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
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
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
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
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
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
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
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
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
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
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
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
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
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
kmpk.ugm.ac.id/data/SPMKK/5a-KEPEMIMPINAN(revDes'02).doc http://ndoware.com/pendekatanmodulardalampemrogramanterstruktur.html
Page 27
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