MAKALAH ALGORITMA
IMPERATIVE PROGRAMMING
UNIVERSITAS GUNADARMA FAKULTAS ILMU KOMPUTER BEKASI 2010 Disusun oleh :
AHMAD RAMDANIE NINDYA RIZKY AGUNG PUSPITAS PITASARI SANTI PUS
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................................. ............................................................. Daftar Isi.............................................................. ......................................... BAB I PENDAHULUAN PE NDAHULUAN 1.1. Pendahuluan Imperative Programming................................ 1.2. Sejarah Bahasa Imperative................................................. ... BAB II PEMBAHASAN 2.1.Variabel dan Penugasan.......................... .............................. 2.2.Perintah Tidak Terstruktur ......................................... ........... 2.3.Pemrograman Terstruktur............................................. .......... 2.4.Sub program, Prosedur, dan Fungsi.................................... ... 2.5.Penanganan Eksepsi««««««« Eksepsi«««««««««««««««« ««««««««« BAB III PENUTUP ......................................................... ........................ 3.1. Kesimpulan........................................................................ ... 3.2. Referensi «««..««««««««« «««..««««««««««««««««. «««««««.
1 2 3 3 5 10 11 19 22 24 24
Page 3
BAB I PENDAHULUAN
I.1. Pendahuluan Imperative Programming Dalam ilmu ilmu komputer, imerative imerative programming adalah paradigma pemrograman 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 II PEMBAHASAN 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=8 B=5 C=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 k ira-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 (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 t ersebut 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 menggunaka n 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; Variabel1; Bahasa C# merupakan bahasa pemrograman yang bersifat case-sensitive, case-sensitive, artinya kita dapat menggunakan karakt er kapital (A sampai Z) dan huruf ordinal (a sampai z) sebagai sebaga i 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 (u (underscore). nderscore). Nama-nama variabel harus mengandung hanya huruf (A - Z, a - z),
angka (0 - 9), dan karakter garis bawah (u (underscore). nderscore).
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
double
else
enum
delegate do event
explicit explicit extern
false
finally
fixed
float
foreach
goto
if
implicit in
int
interface namespace
for
internal is
lock
long
new
object
operator out
null
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
decimal
m atau dec
string
str
float
fl
char
ch
bool
b
double
d atau dbl
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 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 (integer ). ). Baris berikut merupakan contoh pendeklarasian variabel bertipe data bilangan bulat (dengan nama JumlahHariIzin): int JumlahHariIzin; Yang harus diingat adalah bahwa "setiap variabel har us dideklarasikan sebel um variabel tersebut dig unakan ."
Inisialisasi variabel Pada saat sebuah variabel diberi nilai pada saat deklarasinya, maka variabel tersebut dikatakan "melakukan inisialisasi" (initialization (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; 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 nonterstruktur. 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
terstruktur
dan
[non- r ujuk ujuk an? an? ],
melompat. Meskipun
tidak
ada
konsep prosedur dalam
subrutin diperbolehkan. Tidak seperti prosedur,
paradigma
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 pe mrograman 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
[ r ujuk ujuk an? an? ]
(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 pro gram semakin lama semakin besar, tentu saja hal ini terjadi ter jadi karena diinginkan aplikasi yang lengkap dan lebih berkualitas Dengan ide pemrograman terstruktur diharapkan dapat membantu manajemen sou rce 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 bag ian yang salah ketika program sedang d iuji.
Page 12
# Kriteria pemrograman terstruktur :
-
elas dan tegas Struktur programnya; j elas Fasilitas penulisan kode program; j elas elas 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 elas Fasilitas debugging, mudah dan j elas
Filosofis Terstruktur
A
-
B
C
D
Mana yang susunannya terstruktur t erstruktur (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 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 pro gram dari posisi program saat ini 2. Melompat ke bagian atas program prog ram 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 d ijalankan sebelumnya atau tidak
Page 14
Page 15
Page 16
Page 17
Page 18
Contoh pemograman terstruktur : PASCAL, COBOL, BAHASA C
STRUKTUR KONTROL Struktur kontrol / struktur kendali merupakan struktur yang mengendalikan statemen / instruksi apa saja yang harus dikerjakan Ada tiga struktur kontrol pada pemrograman pe mrograman imperatif yaitu : 1. Komposisi Sekuensial 2. Seleksi 3. Iterasi 1. Komposisi Sekuensial Digunakan bilamana lebih dari sebuah statemen yang harus dikerjakan secara berurutan yang dipisahkan dengan menggunakan simbol/tanda khusus tertentu, t ertentu, misalnya titik koma (;) dalam PASCAL. Contoh : Readl(N); Write(N); Write(N);
2. Seleksi Statemen penyeleksian kondisi menunjukkan bahwa suatu statemen akan dikerjakan bila suatu kondisi adalah bernilai benar. Contoh statemen penyeleksian kondisi kond isi : IF ± THEN, CASE OF (Bahasa Pascal)
Page 19
3. Iterasi Statemen Iterasi (perulangan) digunakan untuk memproses statemen-statemen tertentu berulang kali. Contoh statemen iterasi : WHILE-DO, REPEAT-UNTIL, FOR-DO (Bahasa Pascal) SUBPROGRAM, PROSEDUR dan FUNGSI Subprogram 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 t ipenya - Suatu Fungsi jika dijalankan/dipanggil akan mengembalikan suatu nilai
2.4 Subprogram,Prosedur dan Fungsi Subprogram Definisi 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 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 berulangulang 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 y
-
y
y
y
-
-
y
-
-
y
-
-
Page 20
y
contoh : procedure :
HIT_LUAS_SEGITIGA { proced { proced ure meng hit ung l uas segitiga dengan r umus L= ½ a x t } { K.Awal { K.Awal : sembarang } { K.A { K.Ak k hir : L berisi l uas segitiga. Nilai L dicetak dicetak k k e piranti k el el uaran} DEKLARASI : { nama { nama peu peubah } a : real t : real l : real DESKRIPSI : input( a ) input( t ) L a * t / 2 output( L ) y y y y y
y
Prosedur bukan program yang berd iri sendiri, sehingga tidak dapat dieksekusi langsung. Prosedur harus diakses supaya instruksi yang ada didalamnya dapat dilaksanakan. Cara pemanggilan dari program utama : NAMA_PROSEDUR 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 : algoritma LUAS_SEGITIGA_DGN_PROC
DEKLARASI : { nama { nama peu peubah } procedureHIT_LUAS_SEGITIGA { proced { proced ure meng hit ung l uas segitiga dengan r umus L= ½ a x t} DESKRIPSI : output(ÄMenghitung luas segitiga) HIT_LUAS_SEGITIGAoutput(ÄSelesai) procedureHIT_LUAS_SEGITIGA\ { proced { proced ure meng hit ung l uas segitiga dengan r umus L= ½ a x t } { K.Awal { K.Awal : sembarang } Page 21
{ K.A { K.Ak k hir : L berisi l uas segitiga. Nilai L dicetak dicetak k k e piranti k el el uaran } DEKLARASI : { nama { nama peu peubah } a : realt t : realL l : real
DESKRIPSI : input( a ) input( t ) L a * t / 2 output( L ) y y
y y y y y
y
Penggunaan Variabel/Peubah Global Merupakan pertukaran nilai/informasi antara prosedur dengan program yang memanggilnya. Setiap data dipertukarkan melalui mekanisme para meter 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_Prosed ur ( daftar parameter akt ual ) Catatan penting : J umlah parameter ak ak t t ual pada saat pemanggilan har us sama dengan jumla jumlah parameter formal pada dek dek larasi larasi prosed urnya T iap iap parameter ak ak t t ual har us bertipe sama dengan tipe parameter formal yang bersesu bersesuaian T iap iap parameter ak ak t t ual har us diek diek spresik spresi k an an dalam cara yang sesu sesuai dengan parameter formal yang bersesu bersesuaian, bergant ung jenis parameter formal yang dig unak nak an. an. -
-
-
Fungsi y
y
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). str ing). dapat berdiri sendiri/independent dari algoritma utama
Page 22
y
keuntungan : -
y
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
-
y y y
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 input tidak valid ... atau fungsi yang mengembalikan mengembalikan nilai yang tidak dapat dibedakan dari pengecualian. Misalnya di C , yang yang atoi ( ASCII untuk integer konversi) fungsi dapat kembali 0 ( nol nilai) untuk setiap masukan yang tidak dapat dipecah menjadi valid suatu. Dalam bahasa bahasa seperti programmer baik harus melakukan melakukan pengecekan error (mungkin (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 berbeda dengan dukungan yang 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 pengecu pengecualian. Tergantung pada situasi, pawang kemudian dapat melanjutkan eksekusi di lokasi asli menggunakan informasi 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. Page 23
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 kodekode 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 24
BAB III PENUTUP
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 d ikuasain 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 Referensi
http://en.wikipedia.org/wiki/Exception_handling kmpk.ugm.ac.id/data/SPMKK/5a-KEPEMIMPINAN(revDes'02).doc http://ndoware.com/pendekatanmodulardalampemrogramanterstruktur.html
Page 25
MAKALAH ALGORITMA DAN PEMROGRAMAN IMPERATIVE PROGRAMMING Kelas 1KA34
Disusun Oleh : Ahmad Ramdhani Nindya Anggi Wulandari Rizqi Agung Kurniawan Santi Puspitasari Sintong Parulian Umardani H.
Page 26