diktatalgoritma.doc
TRANSCRIPT
-
7/21/2019 Diktatalgoritma.doc
1/87
DIKTAT KULIAH
ALGORITMA & PEMROGRAMAN II
MKK42202
UNTUK KALANGAN SENDIRI DAN BOLEH
DI PERBANYAK UNTUK KEILMUAN
Erna Kumalasari Nurnawati
PROGRAM STUDI
TEKNIK INFORMATIKA S1
FAKULTAS SAINS & TEKNOLOGIUNIVERSITAS TEKNOLOGI YOGYAKARTA
2010
22
-
7/21/2019 Diktatalgoritma.doc
2/87
Pengenalan Komputer Proses transformasi data berbantukan komputer
Gambar 1. Diagram tansformasi data
Penggunaan komputer
Kelebihan Kelemahan
1. Kecepatan2. Konsistensi3. Kapasitas4. Reusability (bisa dipake kembali)
1. Hanya menjalankan instruksi
ahasa !language"
Adalah suatu sistim untuk berkomunikasi. ahasa tertulis men!!unakan simbol (yaitu
huru") untuk membentuk kata. #alam ilmu komputer$bahasa manusia disebut bahasa
alamiah (natural lan!ua!es)$ dimana komputer tidak bisa memahaminya$ sehin!!a
diperlukan suatu bahasa komputer.
ahasa pemrograman !programming language"
Komputer men!erjakan trans"ormasi data berdasarkan kumpulan perintah % pro!ram %
yan! telah dibuat oleh pemro!ram. Kumpulan perintah ini harus dimen!erti oleh
komputer$ berstruktur tertentu (synta&) dan bermakna. ahasa pemro!raman merupakan
notasi untuk memberikan perintah secara tepat pro!ram komputer.erbeda den!an
bahasa alamiah$ mis. ahasa 'ndonesia$ 'n!!ris dsb. yan! merupakan bahasa
alamiah(natural lan!ua!e)$ sintaks dan semantik bahasa pemro!raman (komputer)
ditentukan secara kaku$ sehin!!a bahasa pemro!raman ju!a disebut seba!ai bahasa
"ormal ("ormal lan!ua!e). adi$ dalam bahasa pemro!raman yan! di!unakan seba!ai
alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan
berekspresi seperti laiknya dalam bahasa alamiah. emro!raman dalam pen!ertian luas
meliputi seluruh ke!iatan yan! tercakup dalam pembuatan pro!ram$ termasuk analisis
kebutuhan (re*uirement+s analysis) dan keseluruhan tahapan dalam perencanaan
(plannin!) $ perancan!an (desi!n) dan pe,ujudannya (implementation). #alam
pen!ertian yan! lebih sempit$ pemro!raman merupakan pen!kodean (codin! atau
pro!ram ,ritin! - penulisan pro!ram) dan pen!ujiannya (testin!) berdasarkan
rancan!an tertentu. emahaman yan! lebih sempit ini serin! di!unakan dalam
22
-
7/21/2019 Diktatalgoritma.doc
3/87
pembuatan pro!ram%pro!ram terapan komersial yan! membedakan antara system
analyst yan! bertan!!un! ja,ab dalam men!analisa kebutuhan$ perencanaan dan
perancan!an pro!ram den!an pemro!ram (pro!rammer) yan! bertu!as membuat kode
pro!ram dan men!uji kebenaran pro!ram.
Generasi bahasa pemrograman#
/enerasi '0 machine lan!ua!e
/enerasi ''0 assembly lan!ua!e 0 Asssembler
/enerasi '''0 hi!h%leel pro!rammin! lan!ua!e0 $ AA$ dsb.
/enerasi '50 4 / ("ourth%!eneration lan!ua!e)0 6
/ambar 2. 7in!katan bahasa komputer$. ahasa Tingkat %endah !lo&'le(el language"
8erupakan bahasa assembly atau bahasa mesin. ebih dekat ke mesin (hard,are)$
dimana hi!h%leel pro!rammin! lan!ua!es dekat pada bahasa manusia.
' ahasa )esin !ma*hine language"
ahasa mesin merupakan representasi tertulis machine code (kode mesin)$ yaitu kode
operasi suatu mesin tertentu. ahasa ini bersi"at khusus untuk mesin tertentu dan
9dimen!erti9 lan!sun! oleh mesin$ sehin!!a pelaksanaan proses san!at cepat. ahasamesin kelompok komputer tertentu berlainan den!an bahasa mesin kelompok komputer
yan! lain. Abstraksi bahasa ini adalah kumpulan kombinasi kode biner 9:9 dan 919 yan!
san!at tidak alamiah ba!i kebanyakan oran! % kecuali insinyur pembuat mesin
komputer. Karena tidak alamiah ba!i kebanyakan oran!$ bahasa mesin ju!a disebut
bahasa tin!kat rendah.
' ahasa Assembl+ !assembl+ language"
ahasa rakitan (assembly lan!ua!e) merupakan notasi untuk menyajikan bahasa mesinyan! lebih mudah dibaca dan dipahami oleh manusia. ahasa ini sudah men!!unakan
simbol alpabet yan! bermakna (mnemonic). ontoh ;8$ pindahkan ke
re!ister A= nilai 1111.roses data oleh komputer berdasarkan perintah bahasa rakitan
adalah cepat. 8eski demikian masih merepotkan%bahkan ba!i kebanyakan pemro!ram$
karena masih harus men!in!at%in!at tempat penyimpanan data. ahasa rakitan ju!a
bersi"at khusus untuk mesin tertentu. ontoh0 Assembler.
22
-
7/21/2019 Diktatalgoritma.doc
4/87
$. ahasa Tingkat Tinggi !high'le(el language"
Adalah bahasa pemro!raman yan! dekat den!an bahasa manusia$ kelebihan utama dari
bahasa ini adalah mudah untuk di baca$ tulis$ maupun diperbaharui$ sebelum bisa
dijalankan pro!ram harus terlebih dahulu di%compile. ontoh Ada$ Al!ol$ A'$
-
7/21/2019 Diktatalgoritma.doc
5/87
ahasa %asio
Assembler 10 1A#A 1 0 4.G6uick F 7urbo F asic 1 0 G
1 0 2.G@
-
7/21/2019 Diktatalgoritma.doc
6/87
b. a!i pro!ram ke dalam modul%modul lo!ika yan! sejenis$
c. /unakan sub%pro!ram untuk proses%proses sejenis yan! serin! di!unakan$
d. /unakan pen!kodean terstruktur0 '@ ... 7HB$ #< ... DH'B dan lain%lainnya$
e. Hindarkan pen!!unaan perintah /< 7< bila tidak diperlukan$
". /unakan nama%nama bermakna (mnemonic names)$ dan
!. uat dokumentasi yan! akurat dan berarti.
#alam perencanaan dan perancan!an dari atas ke ba,ah$ kate!ori dan penyelesaian
masalah dimulai dari ba!ian yan! utama kemudian diba!i menjadi ba!ian yan! lebih
kecil. Rancan!an cara ini memudahkan penulisan$ pen!ujian$ koreksi dan dokumentasi
pro!ram. 7ahapan rancan!an atas ke ba,ah dalam pemro!raman0
1. 7entukan keluaran (output) yan! diminta$ masukan (input) yan! diperlukan dan
proses%proses utama yan! diperlukan untuk trans"ormasi data.
2. 8emba!i proses utama ke dalam modul%modul "un!sional.
3. uat al!oritma msin!%masin! modul$ dari modul utama ke sub%sub modul.
etiap modul dalam proses rancan!an atas ke ba,ah biasanya dibatasi dalam isi
maupun batasan%batasan berikut0
1. etiap modul hanya mempunyai satu masukan dan keluaran
2. etiap modul hanya me,akili satu "un!si pro!ram.
Rancan!an (desi!n) terstruktur0
1. 8emba!i pro!ram menjadi sub%pro!ram
2. 8enekankan "un!sionalitas.
3. ocok untuk sistem yan! banyak mempunyai "un!si independen. /aya penulisan
pro!ram terstruktur08en!!unakan indentasi sehin!!a jelas struktur dan kontrol
pro!ram.8emudahkan pembacaan$ pemahaman$ penelusuran kesalahan dan pembuatan
koreksi.
$. ahasa pemrograman prosedural ' terstruktur
ahasa pemro!raman prosedural adalah bahasa pemro!raman yan! mendukun!
pembuatan pro!ram seba!ai kumpulan prosedur. rosedur%prosedur ini dapat salin!
meman!!il dan dipan!!il dari manapun dalam pro!ram dan dapat men!!unakan
parameter yan! berbeda%beda untuk setiap peman!!ilan. rosedur adalah ba!ian dari
pro!ram untuk melakukan operasi%operasi yan! sudah ditentukan den!an men!!unakan
22
-
7/21/2019 Diktatalgoritma.doc
7/87
parameter tertentu. ahasa pemro!raman terstruktur adalah pemro!raman yan!
mendukun! abstraksi data$ pen!kodean terstruktur dan kontrol pro!ram terstruktur.
Kontrol pro!ram terstruktur0
1. Runtun % urut (se*uence)
2. ilihan (selection)
3. en!ulan!an (repetition % loop)
/ambar 4. 7ahap pen!emban!an pro!ram
1. atasan 8asalah 8erencanakan sistim dan spesi"ikasi pro!ram0 iapa yan! akan
men!!unakan pro!ram dan untuk apa den!an cara0% 8enentukan tujuan dan hasil yan! akan dicapai
% 8enentukan hal%hal yan! diperlukan oleh sistim
% en!umpulan data
2. en!emban!an 8odel embuatan model dari sistim yan! akan kita ban!un$ model
adalah suatu !ambaran sederhana dari sistim yan! kita buat. #en!an pembuatan model
akan terlihat den!an jelas hubun!an antara objek%objek dalam sistim yan! akan kita
ban!un. Intuk penyelesaian aritmatik$ biasanya model dibuat dalam bentuk rumus
matematik.
ontoh0
Intuk membuat pro!ram luasJlin!karan kita membuat model matematis c - a & b
3. Rancan!an al!oritma embuatan urutan instruksi yan! akan ditulis pada pro!ram
( dijelaskan lebih lanjut)
4. emro!raman 'mplementasi al!oritma ke dalam pro!ram (al!oritma sendiri dalam
komputer adalah merupakan pro!ram).
G. Iji dan 5alidasi en!ujian terhadap pro!ram 0 seperti kesalahan penulisan (synta&
error) $ kesalahan saat eksekusi (runtime error) kesalahan lo!ika pro!ram (pro!ram
berjalan tapi men!hasilkan output yan! salah% "atal error).
E. #okumentasi embuatan catatan pada pro!ram terutama pada modul%modul yan!
rumit.
ontoh0 istem en!emban!an o"t,are i"e ycle
22
-
7/21/2019 Diktatalgoritma.doc
8/87
/ambar G. istim en!emban!an o"t,are i"e ycle
ALGORITMA
erencanaan dan perancan!an pro!ram komputer ju!a disebut pembuatan al!oritma.
ecara umum$ al!oritma: "kumpulan urutan perintah yang menentukan operasi-
operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun
mengerjakansuatu tugas". ila data yan! di!unakan benar$ maka al!oritma akan selalu
berhenti den!an memberikan hasil yan! benar pula. embuatan al!oritma harus selaludikaitkan den!an0
a. Kebenaran al!oritma$ yakni bila pro!ram selesai maka hasilnya ju!a benar
b. Kompleksitas % lama dan jumlah % ,aktu proses dan pen!!unaan memori.
Al!oritma % dan tentu pro!ram yan! baik$ bercirikan0
a. 7epat sasaran0 memenuhi spesi"ikasi pekerjaan dan bekerja sesuai tujuan
b. @le&ible dan portable0 % @le&ible untuk dikemban!kan lebih lanjut % ortable untuk
di!unakan pada berba!ai sistem dan mesin
c. ersih dari kesalahan sistem ataupun lojik
d. 8urah0
% B"isien dalam pen!!unaan piranti memori dan penyimpanan lainnya.
% epat ,aktu pelaksanaannya.
e. #idokumentasi den!an baik untuk pen!operasian$ pemeliharaan dan pen!emban!an.
". Al!oritma merupakan pemberian (description) pelaksanaan suatu proses.ebuah
proses dikerjakan oleh pemroses men!ikuti al!oritma yan! sudah dibuat. Al!oritma
merupakan urutan lan!kah instruksi yan! lo!is. etiap lan!kahinstruksi men!erjakan
suatu tindakan aksi. ila suatu aksi dilaksanakan$ maka operasi atau sejumlah operasi
yan! bersesuaian den!an aksi itu dikerjakan oleh pemroses.
Hasil atau pen!aruh suatu aksi diamati den!an membandin!kan keadaan sebelum (t:)
dan sesudah suatu aksi dikerjakan (t1).
t:0 kumpulan data ke 1 .. belum terurut membesar
Al!oritma B/IRI7A #A7A
22
-
7/21/2019 Diktatalgoritma.doc
9/87
t10 kumpulan data ke 1 .. terurut membesar
Aturan Penulisan Teks Algoritma
7idak ada notasi yan! baku dalam penulisan teks al!oritma. Al!oritma bukanlah
pro!ram yan! harus men!ikuti aturan%aturan tertentu. 8eski demikian$ al!oritma
dituliskan mendekati !aya bahasa pemro!raman umumnya. 8isal$ tulis nilai = dan $
dituliskan dalam al!oritma seba!ai ,rite(=$). erhatikan dalam notasi ,rite(=$) inihanya memerintahkan penyajian nilai = ke piranti keluaran (output). #alam notasi itu
ju!a tidak memasalahkan "ormat ataupun bentuk%bentuk tampilan lainnya$ seperti
dicetak dalam satu baris = dan $ pemakaian pemisah antara = dan men!!unakan
koma atau spasi. Hal%hal yan! bersi"at teknis ini baru dipikirkan ,aktu penulisan
pro!ram. Al!oritma adalah bebas bahasa pemro!raman.
Teks Algoritma
8en!ikuti alur konsep pemro!raman prosedural$ suatu teks al!oritma disusun dalamti!a ba!ian$ yaitu0
a. a!ian kepala al!oritma$
b. a!ian deklarasi$ dan
c. a!ian deskripsi al!oritma.
etiap ba!ian disertai den!an penjelasan atau dokumentasi tentan! maksud pembuatan
teks. a!ian penjelasan dia,ali dan diakhiri den!an simbol L dan M.
Al!oritma A8AJA/
-
7/21/2019 Diktatalgoritma.doc
10/87
luasnya$ dan menyajikan hasilnya ke piranti keluaran M erhatian$ dalam menulis nama%
nama dalam al!oritma harus mempunyai makna yan! mencerminkan proses$ si"at atau
identitas lainnya yan! melekat den!an suatu proses$ tipe$ konstanta$ ariabel$ sub%
pro!ram dan lain%lainnya.ama%nama yan! bermakna disebut mnemonic.
2) #eklarasi al!oritma0
DEKLARASI { nama konstanta }const PHI = 3.14; { Nilai pi = !!"# }{ nama p$%&a } 'a( R ) ($al; { inp%t *$*a(i lin+ka(an &ilan+an (iil }l,Lin+ka(an ) ($al; { l%as lin+ka(an &ilan+an (iil }{ nama s%& p(o+(am }p(oc$-%($ /KAR0inp%t"o%tp%t A)int$+$( inp%t"o%tp%t 2)int$+$({ $mp$(t%kankan nilai A -an 2.Pa(am$t$( A -an 2 s%-a t$(-$5inisi nilain6a.S$t$lap$(t%ka(an A &$(isi nilai 2 -an 2 &$(isi nilai A }
3) #eskripsi al!oritma0 a!ian ini merupakan ba!ian inti al!oritma yan! berisikan
uraian lan!kah%lan!kah penyelesaian suatu masalah. etiap lan!kah al!oritma dibaca
dari atas ke ba,ah. Irutan penulisan menentukan urutan pelaksanaan perintah.
{ 2aca -ata *$*a(i lin+ka(an R.7ika R 8= 9 t%lis p$san -ata sala s$lain it% it%n+l%as in+ka(an. ampilkan l%as lin+ka(an. }&aca0R;*ika R 8= 9 t$n t%lis0:Data sala :s$lain it% l,Lin+ka(an = PHI < R < R;t%lis0l,Lin+ka(an;
B. #ia!ram Alir (@lo, chart) 8erupakan bentuk !ra"isFisual dari al!oritma entukumum dari simbol%simbol dalam dia!ram alir0
Simbol untuk mulai (start) atau akhir (end) program
Simbol untuk pembacaan (read) data atau penulisan hasil (write) pada
layar
Simbol untuk suatu proses terhadap data pada program
Simbol untuk suatu pernyataan pilihan (optional) pada program.
Simbol untuk penghubung antar aktifitas.
Konektor, Simbol untuk memutus aktivitas karena keterbatasan media
kertas.
Sub program
22
-
7/21/2019 Diktatalgoritma.doc
11/87
Komentar
0ontoh pemakaian flo&*hart#
'e2uential !berurutan"
perhitun!an olume dan luas permukaan silinder
ele*tion3ran*hing tru*ture !truktur pemilihan"
22
-
7/21/2019 Diktatalgoritma.doc
12/87
%epetition3Looping tru*ture!truktur pengulangan"
22
-
7/21/2019 Diktatalgoritma.doc
13/87
Kombinasi
22
-
7/21/2019 Diktatalgoritma.doc
14/87
seudocode seudocode adalah penulisan al!oritma men!!unakan !aya bahasa
pemro!raman pemro!raman tertentu. ontoh deskripsi al!oritma di atas bila ditulis
men!!unkan !aya bahasa AA akan berbentuk0
2EIN { m%lai } { inp%t }($a-0R;{ p(os$s } *ika R 8= 9t$n t%lis0:Data sala :s$lain it% l,Lin+ka(an = PHI < R < R;{ o%tp%t } t%lis0l,Lin+ka(an;END; { s$l$sai }
BAHASA PASCAL1.earahPA0AL
8erupakan pen!emban!an dari bahasa A/
-
7/21/2019 Diktatalgoritma.doc
15/87
1. erurutan
usunan dari kode%kode dalam teks ascal harus ditulis secara urut dari atas$
pernyataan%pernyataan yan! ditulis lebih a,al akan dieksekusi lebih dahulu.
-
7/21/2019 Diktatalgoritma.doc
16/87
b. #eklarasi ariabel (5AR)
c. #eklarasi konstanta ( C ) int$+$(; { D$kla(asi 'a(ia&$l >C -an s$&a+ai &ilan+an &%lat }2EIN { P(o+(am /tama %lai }> )= 9; { P$(inta m$m&$(ikan nilai 9 pa-a 'a(. > }C )= !; { P$(inta m$m&$(ikan nilai ! pa-a 'a(. C } )= > F C; { P$(inta m$n*%mlakan > -an C s$(ta m$n6impan asiln6a k$ }END. { Aki( P(o+(am /tama }
Pada contoh ini nilai X dan tidak bisa sembarang, karena didefiniskan tertentu. !gar nilai X dan bisa
bebas ditentukan, nilai X dan dibaca dari default input.
p(o+(am A2AH,91; { $n*%mlalan -%a &%a &ilan+an 6an+ -i&aca -a(i -$5a%lt inp%t }'a( > C ) int$+$(; { D$kla(asi 'a(ia&$l >C -an s$&a+ai &ilan+an &%lat }2EIN { P(o+(am /tama %lai }($a-0>; { $m&aca nilai > l$Gat k$6&oa(- }
($a-0C; { $m&aca nilai C l$Gat k$6&oa(- } )= > F C; { $n*%mlakan > -an C s$(ta m$n6impan asiln6a k$ }G(it$0; { $n6a*ikan k$ la6a( monito( }END. { Aki( P(o+(am /tama }
Dasar Bahasa PASCALUnsur'unsur Pemrograman
a. 8endapatkan data den!an membaca data dari de"ault input (key board$ "ile atau
sumber data lainnya).
b. 8enyimpan data ke dalam memori den!an struktur data yan! sesuai$
c. 8emproses data den!an instruksi yan! tepat.
d. 8enyajikan atau men!irimkan hasil olahan data ke de"ault output (monitor$ "ile atau
tujuan lainnya).
#alam men!olah data diperlukan pen!elolaan instruksi terstruktur0
a. eberapa instruksi dikelompokkan dalam satu blok atau model yan! men!erjakan
22
-
7/21/2019 Diktatalgoritma.doc
17/87
tu!as tertentu.
b. eberapa perintah dilaksanakan den!an persyaratan tertentu.
c. eberapa perintah dilaksanakan berulan! den!an jumlah pen!ulan!an tertentu.
'denti"ier #i!unakan untuk nama0 ro!ram$ ub%pro!ram (procedure dan "unction)$
nama0 5ariable$ onstant$ 7ype$ abel.
ama%nama ini di!unakan untuk pemakaian dan peman!!ilan dalam pro!ram.
Ketentuan penulisan identi"ier
a. ama identi"ier harus dimulai den!an karakter huru" al"abet0 a sampai S$ A sampai O
atau karakter +J+ (underscore % !aris ba,ah)
b. Karakter berikutnya boleh karakter numerik (: .. N) atau kombinasi alphanumerik
(huru"%numerik).c. anjan! nama$ pada berba!ai ersi ascal umumnya antara 32 % E3.
d. 7idak boleh men!!unakan karakter istime,a0 ? % T F U V - W Q X Y . $ Z 0 ( ) [ \ L M ] ^ _
` C 9 + dan ontoh penulisan0
enulisan yan! benar0 = J6R eta udutJAlpha luasin!karan
enulisan yan! salah0 3# sisi%Kanan ^
/enis identifier
a. Identifier umum
8erupakan identi"ier yan! dide"inisikan sendiri oleh pemro!ram. emro!ram
mempunyai kebebasan untuk menentukan nama identi"iernya$ den!an syarat nama
tersebut tidak sama den!an identi"ier standar dan resered ,ord yan! akan dibahas lebih
lanjut. Hal ini untuk mence!ah kesalahan yan! bisa timbul akibat tumpan! tindih
identi"ier dalam pro!ram.
b. Identifier tandar !aku"8erupakan identi"ier yan! dide"inisikan oleh pembuat kompiler ascal. iasanya
pembuat kompiler menyediakan suatu library yan! sudah ada didalam kompiler. ibrary
berisi berba!ai procedure$ "un!si atau unit yan! sudah siap pakai. 8isalnya 7urbo
ascal Dindo,s 1.G memiliki suatu unit untuk memproses output yaitu ,incrt$ !oto&y$
yan! den!an mudah bisa dipakai oleh pro!rammer di dalam menuliskan kode%kode
pro!ramnya. #inamai 'denti"ier tandar karena suatu kompiler tidak harus memilikinya$
masin!%masin! kompiler dimun!kinkan mempunyai identi"ier yan! berbeda untuk suatu
22
-
7/21/2019 Diktatalgoritma.doc
18/87
tu!as yan! hampir sama. 8isalnya 7urbo ascal ersi #
-
7/21/2019 Diktatalgoritma.doc
19/87
rentan! nilainya.
tabel 1. 7ipe #ata ilan!an 'nte!er
Tipe Data Ukuran Tempat Rentang ilai
"yte $ byte % s&d '
Shortint $ byte *+ s&d '$
integer bytes *-+ s&d -
/ord bytes % s&d -
0ongint 1 bytes $11+-1+ s&d $11+-1
ontoh bilan!an inte!er adalah0 34 E4G %N: : 1112 en!!olon!an tipe data inte!er
tersebut dimaksudkan untuk membatasi alokasi memori yan! dibutuhkan misalkan
untuk suatu perhitun!an dari suatu ariabel bilan!an diperkirakan nilai maksimumnya
32PEP kita cukup mendeklarasikan ariabel bilan!an seba!ai inte!er (2 byte)$ daripada
seba!ai lon!int(4 byte). #i dalam kompilernya$ ascal menyediakan konstanta untuk
bilan!an 'nte!er yaitu0 8a&'nt and 8a&on!'nt$ pemro!ram bisa men!!unakannya di
dalam pro!ramnya tanpa harus terlebih dahulu mende"inisikannya.
%8a&'nt bernilai 32.PEP
%8a&on!int bernilai 2.14P.43.E4P.
contoh0
P(o+(am -ispla6,ma
-
7/21/2019 Diktatalgoritma.doc
20/87
*. 0har
tipe data ini menyimpan karakter yan! diketikkan dari keyboard$ memiliki 2EE macam
yan! terdapat dalam tabel A'' (American tandard ode "or 'n"ormation'nterchan!e). ontoh0 +a+ ++ +?+$ dsb. an! perlu diin!at bah,a dalam menuliskannya
harus den!an memakai tanda kutip tun!!al. enis data ini memerlukan alokasi memori
sebesar 1(satu) byte untuk masin!%masin! data.
d. Tipe Data oolean
merupakan tipe data lo!ika$ yan! berisi dua kemun!kinan nilai0 7RIB (benar) atau
@AB (salah). 7urbo ascal "or Dindo,s memiliki ti!a macam jenis ini yaitu0
oolean$ Dordool$ dan on!ool. 7ipe boolean memakai memori palin! kecil$sedan!kan Dordool dan on!ool dipakai untuk menulis pro!ram yan! sesuai den!an
lin!kun!an Dindo,s.
7abel 2. 7ipe #ata oolean
Tipe Data Ukuran Tempat
"oolean $ byte
/ord"ool byte
0ongbool - byte
eba!ai bilan!an ordinal boolean true mempunyai nilai 1(satu)$ sedan!kan "alsenilainya adalah :(nol).
ontoh0
ro!ram displayJboolZ
uses ,incrtZ
be!in ,riteln(ord(true))Z
,riteln(ord("alse))Z
end.
Hasilnya0 1 : 3.2.
Tipe Data Terstruktur
tipe ini terdiri atas 0 array$ record$ set$ dan "ile. trin! adalah tipe data jenis array$ tetapi
karena strin! memiliki kekhasan tersendiri seba!ai array dari karakter maka penulis
22
-
7/21/2019 Diktatalgoritma.doc
21/87
perlu memberikan penjelasan tersendiri. edan!kan untuk array$ record$ dan "ile perlu
dijelaskan dalam bab yan! lain karena a!ak banyak hal%hal yan! perlu dibahas.
a. Tipe Data tring tring
)erupakan suatu data yan! menyimpan array (larik)$ seba!ai contoh +A#B@+
merupakan sebuah konstanta strin! yan! berisikan E byte karakter. Ikuran 7empat
untuk tipe data ini adalah 2 sFd 2GE byte$ den!an jumlah elemen 1 sFd 2GG. trin!
dideklarasikan den!an strin! X konstanta Y atau strin!. ila ukuran strin! tidak
dide"inisikan maka akan banyak memakan ruan!$ karena ukuran strin! menyesuaikan
den!an de"aultnya. 8isalkan
ar kata0 strin! X2:YZ atau ar kata0 strin!Z karena strin! merupakan array dari karakter.
8aka kataX1Y merupakan karakter pertama dari strin!$ kemudian kataX2Y$ merupakan
elemen kedua$ dst.
ontoh0
P(o+(am al,st(in+;/s$s Ginc(t;'a( s ) st(in+;&$+in s)=MH$lloM;G(it$ln0s;G(it$ln0Mpan*an+ -a(i st(in+ a-ala) Mo(-0s9Q;$n-.
Karakter nol merupakan karakter yan! menyatakan panjan! strin!. ehin!!a ord(sX:Y)menyatakan panjan! dari strin! tersebut. anjan! strin! ju!a bisa dinyatakan seba!ai
len!th(s).
routines pada ascal untuk manipulasi strin! 0
%en!th 0 men!hasilkan panjan! strin!.
ynta& 0 len!th(s)
ontoh 0 n0-len!th(s)Z
8isal s0-+pemro!raman+Z n akan sama den!an 11.%opy 0 men!kopi suatu ekstrak karakter dari sebuah strin!.
ynta& 0 copy(s$dari$banyaknya)
ontoh 0 st0-copy(s$G$3)Z men!ekstrak 3 karakter dari s$ dimulai dari karakter kelima.
8isal s0-+Dho are you +Z st adalah +are+.
catatan0 bila indek lebih bear dari panjan! strin! maka hasilnya akan koson!0
ontoh 0 st0-copy(s$1G$4)Z L koson!M jika banyaknya strin! yan! akan diekstrak lebih
besar dari s$ maka hasilnya adalah ba!ian yan! tersisa dari strin!.
22
-
7/21/2019 Diktatalgoritma.doc
22/87
ontoh 0 st0-copy(s$N$1:)Z st hasilnya adalah +you +
%os 0 men!hasilkan posisi dari suatu substrin! dari suatu strin!.
ynta& 0 os(substr$s)
ontoh 0 n0-pos(+are+$+Dho are you +)Z L n0-GZ M
ika substrin! tidak ditemukan$ maka hasilnya :.
%5al 0 men!konersi strin! ke numerik.
ynta& 0 al(strar$numar$errorcode)
strar adalah ariabel strin! yan! akan dikonersi$ numar ariabel numerik ( bisa
inte!er atau real$ dan errorcode adalah ariabel inte!er yan! menyimpan error code
(kode kesalahan). ika errorcode adalah :$ konersi berhasil. ebaliknya$ hal ini akan
menunjukan posisi dimana pada strar yan! menyebabkan ke!a!alan.
ontoh 0
p(o+(am kon'$(sian+ka;%s$s Ginc(t;'a( s ) st(in+;$ ) int$+$(; ( ) ($al;&$+inG(it$0Mmas%kkan an+ka ) M;($a-ln0s;'al0s($;i5 $8?9 t$n G(it$ln0Msala pa-a posisi ) M$$ls$ G(it$ln0Mit% a-ala ) M()4)3;$n-.
%tr 0 men!konersi numerik ke strin!.
ynta& 0 str(numar$strar)
ontoh 0p(o+(am kon'$(sian+ka,1;%s$s Ginc(t;'a( s ) st(in+;i ) int$+$(;&$+inG(it$0Mmas%kkan an+ka) M;($a-ln0i;st(0is;G(it$ln0Mit% a-ala) Ms;$n-.
%oncat 0 8en!!abun!kan dua atau lebih strin!.
ynta& 0 concat(s1$s2$...$sn)
22
-
7/21/2019 Diktatalgoritma.doc
23/87
ontoh 0 st0-concat(s1$s2)Z ikas1-+A+ dan s2-+#B@+$
st akan menjadi +A#B@+ st0-concat(+orland +$+ascal +$+er. +$+P.:+)Z akan menjadi
+orland ascal er. P.:+
%'nsert 0 8enyisipkan suatu strin! ke dalam strin! yan! lain.
ynta& 0 insert(asal$tar!et$indek)
ontoh 0
p(o+(am sisip ;%s$s Ginc(t;'a( s1 s! ) st(in+;&$+ins1)=Mti-ak M;
s!)=Msa6a &$k$(*aM;ins$(t0s1s!O;G(it$ln0s!; {sa6a ti-ak &$k$(*a }$n-.
ika hasilnya lebih dari 2GG maka akan terpoton! menjadi 2GG.
%#elete 0 men!hapus n karakter dari strin! s bera,al dari indek i.
ynta& 0 delete(s$i$n)Z
ontoh 0
p(o+(am ap%s;%s$s Ginc(t;
'a( s ) st(in+;&$+ins)=Msa6a s$o(an+ insin6%(M;-$l$t$0sO3;G(it$ln0s; { Msa6a san+ insin6%(M}$n-.
%@illchar 0 men!isi strin! s den!an karakter c sampai s sama den!an n%1 panjan!
karakternya.
ynta& 0 "illchar(s$n$c)Z Hati%hati 0 sX:Y akan tertumpuki$ jan!an lupa menambahkan
sX:Y0-chr(n%1)Z untuk menormalkannnya.
ontoh 0
p(o+(am isika(akt$(;%s$s Ginc(t;'a( s ) st(in+;&$+in5illca(0s1M=M;s9Q)=c(09;$n-.
b. Tipe Data et
ebuah set merupakan suatu himpunan yan! berisi nilai (an!!ota). set merupakan 7ipe
data yan! khusus untuk ascal. et dalam pemro!raman san!at mirip den!an himpunan
dalam ilmu matematika$
22
-
7/21/2019 Diktatalgoritma.doc
24/87
contoh0 A - L 1$ 2$ 3$ 4$ G M
ynta&0 set o" contoh0
type #i!its - set o" :..NZ
etters - set o" +A+..+O+Z
type #ay - (un$ 8on$ 7ue$ Ded$ 7hu$ @ri$ at)Z
haret - set o" harZ
#i!its - set o" :..NZ
#ays - set o" #ayZ
const Ben#i!its0 #i!its - X:$ 2$ 4$ E$ YZ
5o,els0 etters - X+A+$ +B+$ +'+$ +
-
7/21/2019 Diktatalgoritma.doc
25/87
%!eneric(umum)0 merupakan pointer yan! tidak menunjuk pada tipe data tertentu pada
ariable.
ontoh deklarasi pointer0
'a( p ) int$+$(;
ontoh di atas merupakan deklarasi ariabel p seba!ai pointer dari inte!er. #en!an
menambahkan tanda caret ([) di depan nama tipe data ariabel yan! dideklarasikan0
contoh 0
p(o+(am conto,point$(1;%s$s Ginc(t;'a( p ) int$+$(;m n ) int$+$(;
&$+inm)=19;n)=1;p)=m; { p s$ka(an+ m$n%n*%k k$ m }p)=1!; { al ini sama -$n+an m)=1!; }p)=n; { p s$ka(an+ m$n%n*%k k$ n }p=m; { { al ini sama -$n+an n)=m; }G(it$ln0Mm = MmM n = Mn; { m = 1! n = 1! }$n-.
Ketika p menunjuk ke m ( p0-\mZ)$ men!akses p[ sama den!an men!akses m. #alam
membuat pro!ram$ dalam pen!!unaan pointer kita memerlukan alokasi memori
tertentu0 Ketika kita mendeklarasikan ariabel pointer dalam 9ar9 sehin!!a merupakan
suatu static ariable$ yan! mana tatic ariable ini dibatasi oleh kapasitas E4K untuk
tiap module. an! berarti dalam pro!ram utama kita hanya bisa men!!unakan hanya
E4K dan tiap unit ascal hanya bisa memakai E4K. ehin!!a kita perlu memecahkan
pro!ram kebeberapa unit. alah satu teknik yan! dipakai untuk men!atasi persoalan ini
adalah seperti pro!ram berikut.
P(o+(am conto,point$(!;%s$s Ginc(t;6p$ P$mplo6$$ = $mplo6$$;$mplo6$$ = ($co(- Nam$ ) st(in+19Q;
Position ) ca(;Sala(6 ) lon+int;
$n-;'a( p ) p$mplo6$$;&$+inn$G0p;p.nam$)=MSa--amM;p.position)=MSM;p.sala(6)=3999;G(it$ln0p.nam$M Mp.positionM Mp.sala(6;-ispos$0p;$n-.
ada blok be!in...end blok$ kita bisa melihat meskipun p tidak menunjuk pada suatu
ariable tetapi dapat diisi den!an nilai. ernyataan ne,(p)Z tidak memerlukan alokasi
22
-
7/21/2019 Diktatalgoritma.doc
26/87
memori. etelah itu kita bisa melakukan apapun pada ariabel tersebut sampai kita
membuan!nya dari memori den!an memakai perintah dispose(p)Z. 5ariable den!an cara
ini dinamakan den!an dynamic ariable.
Generi* Pointeradalah pointer tanpa tipe data tertentu. iasanya$ pointer berkaitan
den!an tipe data khusus$ sedan!kan !eneric pointer tidak.
#eklarasi0
a( P ) point$(;
#iper!unakan seba!ai bu""er sementara (tidak permanen). ehin!!a kita bisa
melepasnya untuk suatu saat tidak diperlukan. Intuk itu pointer san!at ba!us karena
si"atnya yan! dinamis. 7etapi$ !eneric pointer tidak sama den!an typed pointer. 7yped
pointer men!!unakan 5ne&5 untuk menampun! memori dan 5dispose5untukmelepasnya. /eneric pointer men!!unakan 5getmem5untuk mendapatkan memori
dan 5freemem5 untuk melepasnya. ada pointer den!an tipe tertentu$ pro!ram ascal
men!etahui ukuran dari memori yan! harus dilaokasikan$ sedan!kan tipe umum
(!eneric pointer) ascal tidak bisa$ karena ascal tidak men!etahui ariabel apa yan!
akan dipakai. ehin!!a den!an !etmem kita perlu untuk menentukan berapa besar
memori yan! akan kita alokasikan. Ikuran terbesar adalah EGG32 bytes (hampir E4K).
P(o+(am conto,point$(!;%s$s Ginc(t;a( P ) point$(;2$+in$tm$m0pT1U!; { R$s$('$ T1U! &6t$s }{ @$ %s$ it t$n }5($$m$m0pT1U!; { R$l$as$ it T1U! &6t$s }$n-.
!" Operator
eberapa operator yan! disediakan oleh AA01. Aritmatika2. oolean3. Relasional
4. et7abel 2.
-
7/21/2019 Diktatalgoritma.doc
27/87
N % 2 (hasil0 P)N T 2 (hasil0 1) N F 2 (hasil0 4.G)N di 2 (hasil0 4)N mod 2 (hasil0 1)
7abel 3. !0S= 5;
-
7/21/2019 Diktatalgoritma.doc
28/87
? Sama dengan Set, set boolean
@A 5idak sama dengan Set, set boolean
@? 0ebih kecil atau ? Set, set boolean
A? 0ebih besar atau ? Set, set boolean
8isal A dan adalah merupakan dua buah set. A - 0 mempunyai hasil 7rue jika A dan
memiliki an!!ota%an!!ota yan! sama.
ontoh0 Xun$ 7ue$ @riY - X7ue$ @ri$ unY.
A WQ 0 mempunyai hasil 7rue jika A dan memiliki an!!ota%an!!ota yan! tidak sama.
A W- 0 menunjukkan bah,a A adalah subset dari .
ontoh0 ika A berisi Xun$ 8on$ 7ueY dan berisi Xun$ 8on$ 7ue$ Ded$ 7huY$ maka A
adalah merupakan subset dari dan ekspresi men!hasilkan nilai 7rue.
A Q- 0 menunjukkan bah,a A adalah superset dari .
ontoh0 ika A berisi Xun..atY dan berisi X8on..@riY$ maka A adalah merupakan
superset dari dan ekspresi men!hasilkan nilai 7rue. b. 6perasi Logika pada et
Ada ti!a operasi lo!ika pada set.
7abel G.
-
7/21/2019 Diktatalgoritma.doc
29/87
D 3 ( y ' E ) D 3 8 ( y ' E )
D b * 1ac D b 8 b * 18a8c
ontoh0 ila dideklarasikan ar i$ j0 inte!erZ maka$ i ? j adalah ekspresi aritmatik
(men!hasilkan suatu bilan!an inte!er) i W j adalah ekspresi boolean (men!hasilkan
lo!ika 7RIB atau @AB)
E. @un!si 8atematik tandar dalam AA
7abel E. eberapa "un!si matematik standar yan! disediakan oleh AA
Fama >ungsi Beskripsi 5ipe !rgumen 5ipe 6asil 4perasi
abs absolute value real&integer real&integer
arctan arctan (radian) ;eal&integer real
cos cosine (radian) real&integer real
sin sin (radian) real&integer real
e3p fungsi Perpangkatan e real&integer real
ln ln real&integer realround Pembulatan terdekat real integer
sGr kuadrat real&integer real&integer
sGrt !kar kuadrat real&integer real
trunc Pembulatan ke bawah real&integer integer
ontoh 0Abs(%11) (hasil0 11)Round(1:.E) (hasil0 11)7runc(1:.E) (hasil0 1:)*rt(4) (hasil0 2)*r(4) (hasil0 1E)
Intuk "un!si tri!onometri0& - sin phi menjadi &0-sin (3.141E)Z
P$RITAH IPUT % OUTPUT
1. Assignment
Komputer bisa men!olah dan menampilkan sesuatu yan! ada di dalam memori.
8erupakan cara tersederhana untuk 9menempatkan9 (assi!n) data ke memori.
ontoh0
p(o+(am l%as,P$(s$+iPan*an,99; {P(o+(am %nt%k m$n+it%n+ l%as &an+%n $mpat p$(s$+ipan*an+} %s$s Ginc(t;'a( pan*an+PSP l$&a(PSP l%asPSP ) int$+$(;{$n-$kla(asikan 'a(ia&l$ pan*an+ l$&a( -an l%as p$(s$+i pan*an+ s$&a+ai int$+$(}2EIN {P(o+(am /LAI}pan*an+PSP )= !;l$&a(PSP )= !9;l%asPSP )= pan*an+PSP V l$&a(PSP;END. {P(o+(am SELESAI}
$. Perintah Input !read atau readln"
erintah di!unakan untuk membaca data dari de"ault input % keyboard.SCNA> ($a-0
-
7/21/2019 Diktatalgoritma.doc
30/87
p(o+(am l%as,P$(s$+iPan*an+,99;{ P(o+(am %nt%k m$n+it%n+ l%as &an+%n $mpat p$(s$+i pan*an+. }%s$s Ginc(t;'a( pan*an+PSP l$&a(PSP l%asPSP )int$+$(;{ $n-$kla(asikan 'a(ia&l$ pan*an+ l$&a( -an l%as p$(s$+i pan*an+ s$&a+ai int$+$(. }2EIN { P(o+(am /LAI }{$m&aca -a(i -ata pan*an+ -an l$&a( p$(s$+i pan*an+ -$5a%lt inp%t %nit -an -$5a%lt5o(mat tanpa +anti &a(is}($a-0pan*an+PSP;($a-ln0l$&a(PSP;0p$n+isian 'a(ia&$l p$(tama -an k$-%a -ipisakan -$n+an spasil%asPSP)=pan*an+PSPVl$&a(PSP;{$n+it%n+ l%as p$(s$+i pan*an+}END. { P(o+(am SELESAI }
erintah read atau readln dapat di!unakan untuk membaca data lebih dari satu sekali!us
den!an berba!ai "ormat.
ontoh0p(o+(am &acaJamp%(an; { $m&aca -ata s$kali+%s m$n++%nakan p$(inta ($a- }%s$s Ginc(t;'a( nimHS ) ca(act$(;%m%(HS ) int$+$(;stat%sHS) &ool$an;2EIN($a-ln0nimHS%m%(HSstat%sHS;{s$t$la m$n+isi s$m%a 'a(ia&$l a(%s -iik%ti -$n+an Ent$(}END.
,. Perintah 6utput !&rite atau &riteln "
erintah di!unakan untuk menyajikan data ke de"ault output % key%board.
SCNA> @(it$0
-
7/21/2019 Diktatalgoritma.doc
31/87
ontoh perintah penyajian ,riteln(+uas - +$ luas)Z bisa dikerjakan den!an perintah0
,riteln(+uas - +$ panjan! T lebar)Z
-. 7ormat Pen+aian Data
a. 7ormat Pen+aian Tipe Data Integer dan tring
erintah di!unakan untuk menyajikan data ke unit de"ault output % monitor den!an user%
de"ined "ormat.
SCNA> @(it$0A)n; ata% G(it$ln02)n;
A$ - ekspresi yan! akan disajikan nilainya n - maksimum tempat yan! disediakan$ n
harus lebih besar dari banyak karakter atau di!it yan! terkandun! di dalam A. ajian
"ormat ini men!atur tampilan rata kanan (ri!ht justi"ied) ontoh0 ila adalah bilan!an
bulat bernilai G$ maka0
erintah0 #itampilkan di monitor0G(it$ln0N);, , , , G(it$ln0NV19);, , , ,9G(it$ln0NV199);, , ,,99
b. 7ormat Pen+aian Tipe Data %eal
erintah di!unakan untuk menyajikan data ke unit de"ault output % monitor den!an user%
de"ined "ormat.
SCNA> @(it$0R)n)-; ata% G(it$ln0E;
R$ B - ekspresi yan! akan disajikan nilainya n - maksimum tempat yan! disediakan
untuk an!ka termasuk tanda titik seba!ai tanda pemisah desimal. d - maksimum tempat
yan! disediakan untuk an!ka desimal. ajian "ormat ini men!atur tampilan rata kanan
(ri!ht justi"ied)
ontoh0 ila R - 123.4G dan - 12.3GG$ maka0
erintah0 #itampilkan di monitor0,riteln(R0E02)Z 123.4G
,riteln(0E02)Z 12.3G
ilan!an den!an tipe real bila ditampilkan men!!unakan de"ault "ormat akan disajikan
men!!unakan "ormat "loatin! point. Intuk contoh nilai R dan di atas$ de"ault "ormat
sajiannya adalah0 R 1.234GB2 1.23GGB1
*. Perintah untuk men+aikan tampilan ke printer
SCNA> @(it$0LSA2J ; ata% G(it$ln0LSWPK;
22
-
7/21/2019 Diktatalgoritma.doc
32/87
d. Penempatan Kursor La+ar
8onitor komputer umumnya diba!i dalam : kolom dan 2G baris den!an kolom ke 1
dan baris ke 1 terletak di pojok kiri atas. #alam lin!kun!an pemro!raman yan!
beorientasi teks$ pen!aturan interaksi pen!!una den!an komputer men!!unakan
tampilan%tampilan teks yan! posisinya diatur dalam komposisi baris dan kolom.
SCNA> oto>C0>C;
= menyatakan kolom dan menyatakan baris. Intuk AA ersi tertentu$ masih
dilen!kapi den!an perintah pen!hapusan seluruh layar dan pen!hapusan dari posisi
kursor hin!!a akhir baris.
SCNA> Jl(Sc(; -an JL(EWL;
ontoh0p(o+(am contoWW,>C; { Jonto p$n++%naan p$(inta +oto>C %nt%k p$n+at%(an tampilan. }%s$s GinJR;'a( pan*an+PSP l$&a(PSP l%asPSP k$lilin+PSP) ($al;2EINcl(Sc(; { $m&$(sikan tampilan k$s$l%(%an la6a( }{$m&%at tampilan %nt%k m$minta mas%kan -ata m%lai kolom k$ ! &a(is k$ 19 la6a(}+oto>C0!19; G(it$0Mas%kkan -ata p$(s$+i pan*an+ ) M;
+oto>C0!11; G(it$0MPan*an+ = M; ($a-0pan*an+PSP;+oto>C0!1!; G(it$0ML$&a( = M; ($a-0l$&a(PSP; {$lak%kan op$(asi mat$matika}k$lilin+PSP )= ! V 0pan*an+PSP F l$&a(PSP;l%asPSP )= pan*an+PSP V l$&a(PSP;{ $m&%at tampilan %nt%k o%tp%t m%lai kolom k$ ! &a(is k$ 14 la6a(. }+oto>C0!14; G(it$0MK$l$lin+ = M k$lilin+PSP)T)!;+oto>C0!1; G(it$0ML%as = M l%asPSP)T)!;END.
22
-
7/21/2019 Diktatalgoritma.doc
33/87
STRU&TUR &OTROL PROGRAM
1. truktur Pengulangan
ecara alamiah$ suatu proses bisa berupa proses berurutan dari a,al hin!!a selesai$
pilihan berdasarkan kondisi tertentu atau pen!ulan!an bedasarkan batasan tertentu pula.
AA menyediakan beberapa konstruksi perintah untuk melakukan proses%proses
itu$ yaitu0
1. Xo( ... to ... -o!. @il$ ... -o3. R$p$at ... %ntil4. +oto
eberapa kemun!kinan proses pen!ulan!an adalah jumlah pen!ulan!an sudah tertentu
atau ditentukan dalam pro!ram atau jumlah pen!ulan!an tidak tentu ter!antun! banyak
data yan! harus diproses atau ken!inan pemakai.
a. truktur 76% 8 K69DII : D6
#i!unakan bila jumlah pen!ulan!an sudah diketahui atau sudah tertentu.5o( 'a(ia&$l)= 8aGal? to 8aki(? -o&$+in))p$(n6ataan)
)$n-;
Keteran!an05ariabel 0 merupakan nama ariabel yan! di!unakan seba!ai kendali pen!ulan!an$Wa,alQ 0 menyatakan kondisi a,al nilai ariabel kendali pen!ulan!an$WakhirQ 0 menyatakan kondisi akhir nilai ariabel kendali pen!ulan!an$WperintahQ0 merupakan instruksi(%instruksi) yan! perlu dilakukan.
ontoh0 8isalkan i adalah suatu ariabel dalam inte!erXo( i)=1 to -o&$+inG(it$ln0ma(i m$m&%at p(o+(amB;$n-;
Akan 8en!hasilkan 0
mari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!ram
sebanyak lima baris$ kemudian berhenti. Apabila kita akan melakukan pen!ulan!ansecara cacah mundur kita bisa memakai kata kunci do,nto
7A= "or ariabel0- Wa,alQ do,nto WakhirQ do&$+in
22
-
7/21/2019 Diktatalgoritma.doc
34/87
))p$(inta;))$n-;
ontoh0 8isalkan i adalah suatu ariabel dalam inte!erXo( i)= -oGnto 1 -o&$+inG(it$ln0ma(i m$m&%at p(o+(amB;$n-;
Akan 8en!hasilkan 0
mari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!rammari membuat pro!ram
ontoh0
etiap akhir min!!u 8elly$ seoran! mahasis,a yan! mendapatkan kiriman biaya hidup
bulanan den!an jumlah a!ak pas%pasan$ selalu mencatat pen!eluarannya per%min!!u di
luar se,a kamar selama satu bulan. #i akhir bulan ia men!hitun! total pen!eluarannya
selama sebulan dan men!hitun! rerata pen!eluarannya per min!!u selama bulan itu.
ila sebulan dian!!ap 4 min!!u$ buat pro!ram komputer untuk men!hitun!
pen!eluaran 7ertib seperti itu.
Hinggu ke
Pengeluaran (;p.)
$
$%.%%%
$.%%%
-
$.%%%1
$+%.%%%
enyelesaian0
1. Rumus penyelesaian0
rerata
-
7/21/2019 Diktatalgoritma.doc
35/87
2.G rerata
-
7/21/2019 Diktatalgoritma.doc
36/87
sedan!kan sinta&%nya adalah seba!ai berikut07A=Gil$ 8$ksp($si &ool$an? -o&$+in)
)p$(inta;))$n-;
ontoh a. (modi"ikasi untuk contoh "or... do)0p(o+(am it%n+,($(ataWH2;%s$s GinJR;'a( on+kosHP *%mlaWH2 ($(ataWH ) ($al;i m ) int$+$(;&$+in*%mlaWH2 )= 9.9;m )= 4;i)=1;Gil$ i8= m -o {$ksp($si &ool$an 6an+ akan -ilaksanakan apa&ila i84 sampai i=4}&$+inG(it$0MData min++% k$ ) M iM ) M; ($a-ln0on+kosHP;*%mlaWH2 )= *%mlaWH2 F on+kosHP;i)=iF1; { kont(ol -a(i loop}$n-;($(ataWH )= *%mlaWH2"m;G(it$ln0Motal on+kos i-%p p$( &%lan = Rp M*%mlaWH2)#)!;G(it$ln0MR$(ata on+kos i-%p p$( min++% =Rp M($(ataWH)#)!;$n-.
ontoh b.p(o+(am @HILE,DEW ;%s$s Ginc(t;const PI = 3.14;'a( >L X($%$nc6 In-%ctanc$ ) ($al;
&$+inIn-%ctanc$ )= 1.9;X($%$nc6 )= 199.99;Gil$ X($%$nc6 8 1999.99 -o&$+in>L )= ! V PI V X($%$nc6 V In-%ctanc$;G(it$ln0M>L at MX($%$nc6M $(t = M >L;X($%$nc6 )= X($%$nc6 F 199.99$n-$n-.
*. truktur %
-
7/21/2019 Diktatalgoritma.doc
37/87
sedan!kan sinta&%nya adalah seba!ai berikut0($p$at))p$(inta;))%ntil 8$ksp($si &ool$an?;
dalam hal ini$ kita tidak perlu men!!unakan be!in...end karena pernyataan di antararepeat...until diperlakukan oleh AA seba!ai sebuah blok.
contoh0p(o+(am REPEA,/NIL,DEW ;%s$s Ginc(t;const PI = 3.14;'a( >L X($%$nc6 In-%ctanc$ ) ($al ;&$+inIn-%ctanc$ )= 1.9;X($%$nc6 )= 199.99;R$p$at>L )= ! V PI V X($%$nc6 V In-%ctanc$;G(it$ln0M>L at MX($%$nc6M $(t = M >L ;X($%$nc6 )= X($%$nc6 F 199.99 ;%ntil X($%$nc6 = 1999.99 ;$n-.
-. Label dan Gotoernyataan !oto mentrans"er pro!ram ke lokasi lain yan! dinyatakan den!an label$
dimana WlabelQ merupakan tipe inte!er den!n maksimum 4 di!it. abel ju!a harus
dideklarasikan seperti ariabel lainnya.
enulisan /oto0
+oto 8la&$l?
ontoh !oto0!oto 1::Z
enulisan abel 0
22
-
7/21/2019 Diktatalgoritma.doc
38/87
la&$l 8-a5ta( la&$l?
ontoh deklarasi abel0 label 1::$ 2::$ 3::Zpenulisan pemakaian abel0 7A= W label Q0
ontoh01::0ontoh.p(o+(am &is$ction; {p(o+(am m$nca(i aka( p$(samaan m$to-$ s$t$n+a int$('al}%s$s Ginc(t;'a( $
-
7/21/2019 Diktatalgoritma.doc
39/87
$ls$&$+in))$n-;
ontohp(o+(am IX,ELSE,DEW;%s$s Ginc(t;'a( an+ka t$&akan ) int$+$(;&$+inn%m&$( )= !;G(it$ln0M$&ak an+ka anta(a 1 -an 19M;($a-ln0t$&akan;i5 an+ka = t$&akan t$nG(it$ln0M$&akan an-a &$na( S$lamatM$ls$G(it$ln0Maa5 $&akan an-a sala.M$n-.
b. 9ested I7 !I7 tersarang"
ernyataan '@ dapat dimasukkan kedalam pernyataan '@ yan! lain $ den!an syarat kitatidak melupakan blok be!in...end untuk membatasinya.
i5 8Eksp($si 2ool$an? t$n&$+in)i5 8Eksp($si 2ool$an? t$n&$+in))$n-)$n-$ls$
ontohP(o+(am IX,ELSE,DEW,!;%s$s Ginc(t;'a( A 2 J ) int$+$(;&$+inG(it$ln0Mas%kkan ti+a an+ka -$n+an spasiM;($a-ln0 A 2 J ;i5 A ?= 2 t$n&$+ini5 A ?= J t$n G(it$ln0 AM a-ala t$(&$sa(M$ls$ G(it$ln0 JM a-ala t$(&$sa(M$n-$ls$i5 2 ?= J t$n G(it$ln0 2M a-ala t$(&$sa(M$ls$ G(it$ln0 JM a-ala t$(&$sa(M
$n-.
*. Kombinasi dari
-
7/21/2019 Diktatalgoritma.doc
40/87
))$n-
contoh0p(o+(am i5,an-;
%s$s Ginc(t;'a( i * ) int$+$(;&$+inG(it$0Mas%kkan nilai i = M; ($a-ln0i;G(it$ 0Mas%kkan nilai * = M; ($a-ln 0*;i5 0i?3 an- 0*?4 t$n&$+inG(it$ln0MHal ini t$(*a-i *ika i?3 -an *?4M;$n-;$n-.
*.$. Pern+ataan 6%
ernyataan
-
7/21/2019 Diktatalgoritma.doc
41/87
)p$(inta;)$n-
atau
JASE 'a(ia&l$ WX)p$(inta;)$ls$p$(inta;$n-
ontoh a.i5 op$(ato( = MVM t$n ($s%lt )= n%m&$(1 V n%m&$(!$ls$ i5 op$(ato( = M"M t$n ($s%lt )= n%m&$(1 " n%m&$(!$ls$ i5 op$(ato( = MFM t$n ($s%lt )= n%m&$(1 F n%m&$(!$ls$ i5 op$(ato( = MM & ($s%lt )= n%m&$(1 n%m&$(!$ls$ in'ali-,op$(ato( = 1;
di!antikan den!an AB 0
cas$ op$(ato( o5MVM ) ($s%lt)= n%m&$(1 V n%m&$(!;M"M ) ($s%lt)= n%m&$(1 " n%m&$(!;MFM ) ($s%lt)= n%m&$(1 F n%m&$(!;MM ) ($s%lt)= n%m&$(1 n%m&$(!;$ls$ in'ali-,op$(ato( )= 1$n-;
ontoh b./anti pro!ram diba,ah ini den!an pernyataan '@ BB den!an ABp(o+(am SARAN;
%s$s Ginc(t;'a( in'ali-,op$(ato( ) &ool$an;op$(ato( ) ca(;n%m&$(1 n%m&$(! ($s%lt ) ($al;&$+inin'ali-,op$(ato( )= XALSE;G(it$ln0MEnt$( tGo n%m&$(s an- an op$(ato( in t$ 5o(matM;G(it$ln0M n%m&$(1 op$(ato( n%m&$(!M;($a-ln0n%m&$(1; ($a-ln0op$(ato(; ($a-ln0n%m&$(!;i5 op$(ato( = MVM t$n ($s%lt )= n%m&$(1 V n%m&$(!$ls$ i5 op$(ato( = M"M t$n ($s%lt )= n%m&$(1 " n%m&$(!$ls$ i5 op$(ato( = MFM t$n ($s%lt )= n%m&$(1 F n%m&$(!$ls$ i5 op$(ato( = MM t$n ($s%lt )= n%m&$(1 n%m&$(!$ls$ in'ali-,op$(ato( )= R/E;i5 in'ali-,op$(ato( t$nG(it$ln0MIn'ali- op$(ato(M
$ls$G(it$ln0n%m&$(1)4)!M Mop$(ato(M Mn%m&$(!)4)!M is M ($s%lt))!$n-.
a,ab0p(o+(am PRW,@ELE ;'a( in'ali-,op$(ato( ) &ool$an;op$(ato( ) ca(;n%m&$(1 n%m&$(! ($s%lt ) ($al;&$+inin'ali-,op$(ato( )= XALSE;G(it$ln0MEnt$( tGo n%m&$(s an- an op$(ato( in t$ 5o(matM;G(it$ln0M n%m&$(1 op$(ato( n%m&$(!M;($a-ln0n%m&$(1; ($a-ln0op$(ato(; ($a-ln0n%m&$(!;cas$ op$(ato( o5
MVM) ($s%lt )= n%m&$(1 V n%m&$(!;
22
-
7/21/2019 Diktatalgoritma.doc
42/87
M"M) ($s%lt )= n%m&$(1 " n%m&$(!;MFM) ($s%lt )= n%m&$(1 F n%m&$(!;MM) ($s%lt )= n%m&$(1 n%m&$(!;$ls$ in'ali-,op$(ato( )= R/E$n-;i5 in'ali-,op$(ato( t$nG(it$ln0MIn'ali- op$(ato(M$ls$G(it$ln0n%m&$(1)4)!M Mop$(ato(M Mn%m&$(!)4)!M is M ($s%lt))!$n-.
SUB PROGRAM
1. Pemrograman )odular
8odular pro!rammin! adalah merupakan suatu teknik untuk menulis pro!ram yan!berukuran besar. ro!ram diba!i menjadi beberapa ba!ian kecil. 7iap ba!ian disebut
module$ yan! melakukan suatu tu!as tertentu.
ontoh 0
8enampilkan menu pilihan
8en!hitun! nilai rata%rata
8ensortir data
ascal men!enal module seba!ai0
1. R
-
7/21/2019 Diktatalgoritma.doc
43/87
PRWJED/RE NAA;&$+in)p$(n6ataan)$n-;
ontoh a.PRWJED/RE DISPLAC,EN/;&$+inG(it$ln0MPilian $n%M;G(it$ln0M 1) E-it 5il$ t$ksM;G(it$ln0M !) &%ka 5il$ t$ks M;G(it$ln0M 3) Simpan 5il$ t$ks;G(it$ln0M 4) Kopi 5il$ t$ksB;G(it$ln0M ) J$tak 5il$ t$ksB
$n-;
contoh berikut adalah pro!ram untuk menampilkan menu0ontoh b.p(o+(am PRWJ1 ;%s$s Ginc(t;PRWJED/RE DISPLAC,EN/;&$+inG(it$ln0MPilian $n%M;G(it$ln0M 1) E-it 5il$ t$ksM;G(it$ln0M !) &%ka 5il$ t$ks M;G(it$ln0M 3) Simpan 5il$ t$ks;G(it$ln0M 4) Kopi 5il$ t$ksB;G(it$ln0M ) J$tak 5il$ t$ksB$n-;
$n-;&$+inG(it$ln0Mm$man++il p(os$-%(M;DISPLAC,EN/;G(it$ln0Mk$m&ali -a(i p(os$-%(M$n-.
ontoh c.p(o+(am SIPLE,PRWJED/RE;%s$s Ginc(t;'a( Gakt% *a(ak k$c$patan ) ($al;p(oc$-%($ tampilan,*%-%l;&$+inG(it$ln0M$n+it%n+ *a(ak t$mp% &$(-asa( pa-aM;G(it$ln0M-%a 'a(ia&$l 6ait%) k$c$patan -an Gakt%M;$n-;
p(oc$-%($ mas%kkan,-ata;&$+inG(it$0Mas%kkan k$c$patan -alam km"*am) M;($a-ln0k$c$patan;G(it$0Mas%kkan Gakt% -alam *am ) ;($a-ln0tim$$n-;p(oc$-%($ it%n+,*a(ak;&$+in*a(ak)= k$c$patan VGakt%$n-;p(oc$-%($ tampilkan,asil;&$+inG(it$ln0M*a(ak 6an+ -it$mp% a-ala M*a(ak))!M km.M$n-;&$+in {p(o+(am %tama}
tampilan,*%-%l;
22
-
7/21/2019 Diktatalgoritma.doc
44/87
mas%kkan,-ata;it%n+,*a(ak;tampilkan,asil$n-.
-
7/21/2019 Diktatalgoritma.doc
45/87
a. 4ariabel Global
5ariabel !lobal adalah ariabel yan! dide"inisikanFterletak pada pro!ram utama$ dimana
semua sub%pro!ram bisa men!akses$ memper!unakan dan memodi"ikasinya. #ari
!ambar berikut $ ariabel A$ $ dan dapat diakses oleh procedure # maupun B
b. 4ariabel Lokal
uatu procedure dapat mendeklarasikan ariabelnya sendiri. 5ariabel%ariabel itu hanya
bekerja pada procedure dimana mereka dideklarasikan. 5ariabel%ariabel tersebut
dinamakan ariabel local (local ariable) .
22
-
7/21/2019 Diktatalgoritma.doc
46/87
Keteran!an !ambar0
emua bisa men!akses ariabel !lobal A$ @$ /.
ada procedure al"a de"inisi !lobal ariabel A di!anti den!an ariabel lokal.
betaJ1 dan betaJ2 dapat men!akses betama& dan betako.
betaJ1 tidak dapat men!akses ariabel boboho$ dan betaJ2 tidak dapat men!akses
bobo.
7dak ada subpro!ram$ kecuali al"a dapat men!akses dan .
rocedure beta dapat men!akses al"a dan beta.
ontoh0
p(o+(am LWKAL,ARIA2EL;%s$s Ginc(t;'a( nomo(1 nomo(! ) int$+$(;{ini &isa -ipan++il -a(i manamana LW2AL AR}p(oc$-%($ tam&a;'a( asil)int$+$(;{asil m$(%pakan milik p(oc$-%($ tam&a LWJAL AR}&$+inasil )= nomo(1 F nomo(!;G(it$ln0asil a-alaM asil$n-;&$+in {p(o+(am %tama}G(it$ln0as%kkan -%a an+ka &%lat -$n+an spasiB;($a-ln0nomo(1 nomo(!;tam&a$n-.
*. Penggunaan 7or&ard
#ari hal di atas kita tahu bah,a suatu subpro!ram dapat diakses oleh subpro!ram
apabila sudah dide"inisikan terlebih dahulu.
7etapi ada pen!ecualian$ untuk men!atasi masalah chicken%and%the%e!!$ bila kita
memiliki duaFlebih subpro!ram masin!% masin! bisa meman!!il yan! lain den!an
22
-
7/21/2019 Diktatalgoritma.doc
47/87
re"erensi "or,ard.
Hal ini berlaku ju!a untuk @I7'
-
7/21/2019 Diktatalgoritma.doc
48/87
5ariabel yan! dipan!!il diletakkan didalam tanda kurun! tersebut.
5ariabel ditulis dalam tin!kat yan! sama seperti dalam prosedur terkait.
ontoh.
erhatikan contoh pro!ram berikut$
p(o+(am 7/LAH;%s$s Ginc(t;'a( nomo(1 nomo(! ) int$+$(;p(oc$-%($ JALJ,ANS@ER 0 k$sat% k$-%a ) int$+$( ;'a( asil ) int$+$(;&$+inasil )= k$sat% F k$-%a;G(it$ln0Masil a-ala M asil $n-;&$+inG(it$ln0Mmas%kkan -%a an+ka -alam spasiM;($a-ln0 nomo(1 nomo(! ;JALJ,ANS@ER0 nomo(1 nomo(!$n-.
-. Pro*edure >ang )emakai Parameterp(o+(am $stNilai;%s$s Ginc(t;'a(
-
7/21/2019 Diktatalgoritma.doc
49/87
erhatikan contoh berikut0
p(o+(am Pa(am$t$(,Nilai;%s$s Ginc(t;'a( < ) &6t$;p(oc$-%($ 5oo0a ) &6t$;&$+inG(it$ln0a; {1}a)=19;G(it$ln0a; {19}$n-;&$+in
-
7/21/2019 Diktatalgoritma.doc
50/87
19
19
?. 7un*tion @ uatu Pro*edure Khusus >ang )enghasilkan 9ilai
rocedure memakai data atau ariabel ketika dieksekusi. @unction ("un!si) ju!a
memakai data$ tetapi mempunyai kemampuan untuk men!hasilkan nilai pada procedure
atau pro!ram yan! meman!!ilnya. @unction di!unakan untuk melakukan operasi
matematika seperti perhitun!an "aktorial.
uatu "unction 0
#imulai den!an kata kunci "unction
trukturnya sama den!an sebuah procedure
#idalam "un!si$ suatu nilai dihasilkan den!an nama "unction
uatu "unction dipakai pada sisi sebelah kanan pada suatu ekspresi
Hanya men!hasilkan tipe data sederhana
7A=
5%nction Nama 0-$kla(asi 'a(ia&$l)tip$,-ata,asil;&$+in)p$(n6ataan)$n-;
contoh05%nction ADD,@W 0 nilai1 nilai! ) int$+$( ) int$+$(;&$+inADD,@W )= nilai1 F nilai!$n-;
contoh berikut men!!ambarkan ba!aimana meman!!il "unction$($s%lt )= ADD,@W0 19 !9 ;
maka$ ketika A##J7D< dieksekusi$ dia men!hitun! nilai yan! terdapat di dalamnya(dalam hal ini 3:)$ yaitu hasil akhirnya.ontohp(o+(am JWNWH,X/NSI;%s$s Ginc(t;'a( an+ka *aGa&an ) int$+$(;
5%nction K/2IK0 < ) int$+$( ) int$+$(;&$+inK/2IK )= < V < V 'a( 'a(ia&$l,a((a6 ) ARRAC&aGa..atas &aGa..atasQ o5 tip$,-ata;
ernyataan berikut membentuk suatu array inte!er den!an nama bilan!an $ 1: & 1:elemen (1::).t6p$ mat(iks = ARRAC 1..19 1..19Q o5 int$+$(;'a( AK/) mat(iks;
untuk memasukkan tiap elemen maka$ diperlukan suatu procedure den!an
memper!unakan struktur pen!ulan!an "or ...do tersaran!seperti berikut0p(oc$-%($ ISI,ARIK0AK/)mat(iks; mn)int$+$(;'a(i*) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+in($a-0Ai*Q;$n-;($a-ln ;{ini m$m%n+kinkan kita m$n%lis tiap &a(is $l$m$n}$n-;
untuk menampilkan tiap elemen maka$ di!unakan struktur pen!ulan!an "or ...do
tersaran!seperti berikut
p(oc$-%($ /LIS,ARIK0AK/)mat(iks; mn)int$+$(;'a( i*) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inG(it$0Ai*Q)O;$n-;G(it$ln ; {ini m$m%n+kinkan kita m$n%lis $l$m$n -alam &a(is -an kolom }$n-;$n-;
?. 6perasi pada Arra+
22
-
7/21/2019 Diktatalgoritma.doc
55/87
i"at masin!%masin! elemen array men!ikuti jenis data yan! dimilikinya$ untuk array
den!an tipe bilan!an inte!er atau real kita bisa melakukan berba!ai standar operasi
aritmatika seperti penjumlahan$ perkalian$ pen!uran!an$ dsb. an! perlu di !aris
ba,ahi$ bah,a si"at dari array diman"aatkan untuk operasi matrik.
a. )en*ari Harga Tertentu pada Arra+
8encari suatu elemen data di dalam suatu data merupakan suatu kejadian yan! serin!
kita alami$ contoh0 mencari nama mahasis,a dari da"tar presensi. encarian beruntun
(se*uence)$ merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim
yan! lebih besar.
ontoh.8isal array AXY$ den!an elemen sbb0
A
E: 12 PE 23 11 42 1 42
Intuk menari apakah bilan!an &-11 ada didalam tabel maka dilakukan pemeriksaan
terhadap 0
E: 12 PE 23 11
ehin!!a ditemukan &pada elemen ke%G$ dalam bahasa AA diterjemahkan sepertiberikut0
t6p$ PIA = ARRAC 1..TQ o5 int$+$(;'a( AK/) PIA;p(oc$-%($ JARI,ARIK0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}&$+in5o( i)=1 to T -o&$+ini5 AK/iQ)= 11 t$nG(it$ln0 t$(-apat &ilan+an 11 -alam pita ini ;$ls$G(it$ln0 ti-ak a-a &ilan+an 11 p$nca(ian &$($nti ;
$n-;$n-;
b. )en*ari Harga )aksimum pada Arra+
8isal array di atas kita cari har!a yan! tertin!!i$ maka kita perlu menentukan nilai
tertin!!i dahulu sebelum melakukan pencarian Z dia,ali den!an nilai maksimum-:
p(oc$-%($ JARI,AKSI/0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}AKS ) int$+$(;&$+inAKS )= AK/1Q;
5o( i)=1 to T -o
22
-
7/21/2019 Diktatalgoritma.doc
56/87
&$+ini5 AK/iQ? AKS t$nAKS)= AK/iQ;En-;@(it$ln0NILAI AKSI/ = BAKS;$n-;
b. )en*ari Harga )inimum pada Arra+
8isal array di atas kita cari har!a yan! terendah$ maka kita perlu menentukan nilai
terendah dahulu sebelum melakukan pencarian Z dia,ali den!an nilai maksimum-32::
p(oc$-%($ JARI,INI/0AK/) PIA;'a(i) int$+$(; {5akto( p$n+%lan+}IN ) int$+$(;&$+inIN )= 3!99;5o( i)=1 to T -o&$+ini5 AK/iQ8 IN t$n
IN)= AK/iQ;$n-;G(it$ln0NILAI INI/ = BIN;$n-;
*. )atrik
eba!ai per,ujudan dari array dua dimensi$ operasi aritmatika seperti penjumlahan$
perkalian$ dan pen!uran!an bisa dilakukan.
ontoh.
' )endefinisikan
-
7/21/2019 Diktatalgoritma.doc
57/87
G(it$ln;$n-; {G(it$}
' Penumlahkan )atrik
p(oc$-%($ c$ck,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* )int$+$(;&$+ini5 0m=p an- 0n= t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inJmnQ=AmnQF2mnQ$n-;$n-;$n-$ls$G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;
' Pengurangan )atrik
p(oc$-%($ c$ck,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* )int$+$(;&$+ini5 0m=p an- 0n= t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to n -o&$+inJmnQ=AmnQ JmnQ$n-;$n-;$n-$ls$
G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;
'. Perkalian )atrik
p(oc$-%($ p$(kalian,mat(ik0A2J)mat(ik; mnp)int$+$(;'a( i* k )int$+$(;J1) mat(ik;&$+ini5 0n=p t$n&$+in5o( i)=1 to m -o&$+in5o( *)=1 to p -o&$+in {inn$( p(o-%ct}J1i*Q)=9;5o( k)=1 to n -oJ1i*Q)=J1i*QFAikQV2k*Q;$n-; {inn$( p(o-%ct}$n-;n)=;5o( i)=1 to m -o5o( *)=1 to n -oJi*Q)=J1i*Q;$n-$ls$G(it$ln0MDIENSI ARIK IDAK JWJWKM$n-;
' Transpose )atrik
p(oc$-%($ (anspos$0A2)mat(ik; mnp)int$+$(;
22
-
7/21/2019 Diktatalgoritma.doc
58/87
'a( i*)int$+$(;&$+in5o( i)=1 to n -o&$+in5o( *)=1 to m -o&$+in2mnQ=AnmQ$n-;$n-;$n-;
'. )en*ari
-
7/21/2019 Diktatalgoritma.doc
59/87
ara men!acu pada tiap "ield pada record pada contoh di atas adalah sbb0
-
7/21/2019 Diktatalgoritma.doc
60/87
pernyataan ini akan membentuk suatu array den!an 1: elemen. #imana tiap elemen
adalah sebuah record tan!!al$ yaitu$ terdiri atas bulan$ hari$ tahun den!an tipe data
'nte!er.
#i!ambarkan seperti berikut0
ontoh emberian nilai a,al dari masin!%masin! elemen birthdays0
2i(t-a6s1Q.a(i )=!;2i(t-a6s1Q.&%lan)=9U;2i(t-a6s1Q.ta%n)=1UT3;
-. %e*ord di dalam %e*ord
Record bisa berisi record lain seba!ai "ield. eperti contoh record tan!!al dan jam
dikombinasikan menjadi sebuah record saat ini$
t6p$ tan++al = ($co(-&%lan a(i ta%n ) int$+$(;
$n-;t6p$ Gakt% =($co(-*am m$nit -$tik ) int$+$(;$n-;t6p$ Gakt%,ini =($co(-tan++al,ini ) tan++al;Gakt%,ini ) Gakt%$n-;
Kemudian kita perlu membuat ariabel kerja'a( saat,ini ) Gakt%,ini;
pemberian nilai akan terjadi seperti di ba,ah ini0saat,ini.tan++al.&%lan)= 11;saat,ini.tan++al.a(i)= !;saat,ini.tan++al.ta%n)= 1UT;
22
-
7/21/2019 Diktatalgoritma.doc
61/87
saat,ini.Gakt%.*am)= 3;saat,ini.Gakt%.m$nit)= 3;saat,ini.Gakt%.-$tik)= 33;
?. orting
/ambar. data sebelum dan sesudah dilakukan proses sortin!.
eberapa metode sortin! men!urutkan data yan! dikenal antara lain adalah01. ubble ort !sederhana tetapi lambat"
$. Cui*k ort !*epat tetapi rumit"
,. hell ort !agak *epat dan tidak terlalu rumit"
?.1. ubble ort
7eknik ini menyusun data yan! diin!inkan secara berurutan den!an membandin!kan
elemen data yan! ada$ misalkan kita akan meyusun data secara (ascendin!) cacah naik.8aka la!oritma utamanya adalah seperti ini.
7A=5o( i)=1 to 7%mla,-ata1 -o5o( *)=iF1 to 7%mla,-ata -oi5 DataiQ?Data*Q t$n&$+int)=DataiQ;DataiQ)=Data*Q;Data*Q)=t;$n-;
ontoh.8isal kita punya data 0 G 3 4 1 P E 2 $ dalam pro!rampro!ram men!urutkandataZ%s$s @inJ(t;t6p$ %(%tkan=a((a6 1..TQ o5 int$+$(;'a( i*t)int$+$(;an%)%(%tkan;&$+inan%1Q)=; an%!Q)= 3;an%3Q)= T; an%4Q)= 4;an%Q)= 1; an%OQ)= # ;an%#Q)=O ; an%TQ)=! ;5o( i)=1 to # to&$+in5o( *)=iF1 to T to
&$+in
22
-
7/21/2019 Diktatalgoritma.doc
62/87
i5 an%iQ?an%*Q t$n&$+int)=an%iQ;an%iQ)=an%*Q;an%*Q)=t;$n-;$n-;$n-;5o( i)=1 to T -oG(it$ 0an%iQ M M$n-.
?.$. hell sort
rinsipnya hampir sama den!an bubble sort tetapi dioptmisisasi sehin!!a lebih cepat.
#itemukan oleh #onald hell. prinsipnya adalah membandin!kan data den!an jarak
tertentu dalam array.
7A=
5o( *a(ak)= 07%mla,-ata -i' ! -oGn to 1 -o5o( i)=1 to 7%mla,-ata*a(ak -oi5 DataiQ?DataiF*a(akQ t$n&$+int)=DataiQ;DataiQ)=DataiF*a(akQ;DataiF*a(akQ)=t;$n-;
8isalkan kita punya data. an!kah pertama adalah membandin!kan data pertamaden!an ke lima$ dsb. arak antara data adalah ( di 2 0-4).an!kah iterasi0
pertama$ jarak adalah 4.G 3 4 1 P E 2ke%1 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 4 G P E 2ke%2 perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%3 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 4 G P 2ke%4 perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 2 G P 4 %%%%Q arak 3.ke%G perbandin!an 0 [ [ ( urutan benar$ no tukar)
ke%E perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%P perbandin!an 0 [ [ ( urutan benar$ no tukar)ke% perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%N perbandin!an 0 [ [ (salah urutan$ tukar)1 3 E 2 4 P G %%%%Q arak 2.ke%1: perbandin!an 0[ [ ( urutan benar$ no tukar)ke%11 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 E 3 4 P Gke%12 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 4 3 E P Gke%13 perbandin!an 0 [ [ ( urutan benar$ no tukar)
ke%14 perbandin!an 0 [ [ ( urutan benar$ no tukar)
22
-
7/21/2019 Diktatalgoritma.doc
63/87
ke%1G perbandin!an 0 [ [ (salah urutan$ tukar)1 2 4 3 E G P %%%%Q arak 1.ke%1E perbandin!an 0[ [ ( urutan benar$ no tukar)ke%1P perbandin!an 0 [ [ ( urutan benar$ no tukar)
ke%1 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 E G Pke%1N perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%2: perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 G E Pke%21 perbandin!an 0 [ [ ( urutan benar$ no tukar)ke%22 perbandin!an 0 [ [ (salah urutan$ tukar)1 2 3 4 G E P
?.,. Cui*k sort
Diketemukan oleh B. Hoare. #en!an men!!unakan metode rekursi samapi habis.
rinsipnya memba!i data menjadi dua ba!ian yan! sama (kiri dan kanan). #imana data
ten!ah menjadi piot (pusat operasi). Kumpulkan data den!an nilai lebih kecil dari
piot disebelah kiri piot$ dan di kanan untuk yan! lebih besar. #imun!kinkan ba!ian
kiri dan kanan piot tidak sama besarnya. Intuk itu tiap ba!in di ba!i menjadi dua la!i
dan mempuyi piot yan! baru. ontoh misal kita mempunyai data array inte!er.
p(oc$-%($ so(t0&aGa atas ) int$+$('a( ki(i kanan pi'ot ) int$+$(;&$+inpi'ot)=Data0&aGaFatas -i' !Q;ki(i)=&aGa;kanan)=atas;Gil$ ki(i8=kanan -o&$+inGil$ Dataki(iQ 8 pi'ot -o ki(i)=ki(iF1; { m$misakan k$ ki(i }Gil$ DatakananQ?pi'ot -o kanan)=kanan1;{$misakan k$ kanan}i5 ki(i8=kanan t$n { c$k p$(%&aan }&$+insGap Dataki(iQ Git DatakananQ;ki(i)=ki(iF1;kanan)=kanan1;$n-;
$n-;i5 kanan?&aGa t$n so(t0&aGakanan;{ %(%tkan &a+ian KIRI }i5 atas?ki(i t$n so(t0ki(i atas;{ %(%tkan &a+ian KANAN}$n-;
eman!ilan dalam pro!ram utama 0 2sort!1=9umber6fData"
22
-
7/21/2019 Diktatalgoritma.doc
64/87
*IL$
1. Komposisi dari 7ile Teks
@ile 7eks disusun seba!ai runtunan beberapa baris .
7iap baris terdiri dari runtunan karakter.
7iap baris diakhiri oleh karakter khusus$ yaitu B#%
-
7/21/2019 Diktatalgoritma.doc
65/87
setelah selesai membaca keseluruhan teks kita harus menutupnya den!an0clos$0X;
ontoh. (misal kita punya suatu "ile den!an path #0V"ile1.t&t)P(o+(am &aca,5il$,t$ks;
%s$s Ginc(t;'a(X ) t$
-
7/21/2019 Diktatalgoritma.doc
66/87
assi+n0Xs; {m%lai p(os$s}($G(it$0X; {m$m&%at 5il$ &a(%}G(it$ln0M%lai m$n+$tikkan t$ks.M;G(it$ln0M/nt%k &$($nti) t$kan $nt$( spasi -an $nt$(.M;Gil$ s 8?B -o&$+in($a-ln0s; {t%lis sampai s$l$sai}G(it$ln0Xs;$n-;clos$0X; { m$n%t%p 5il$ }$n-.
atatan0 statemen re,rite(ariabelJteks) apabila diterapkan pada "ile yan! sudah ada
akan menyebabkan isi "ile terhapus dan mulai membuat yan! baru$ maka untuk
menambahkan teks pada "ile yan! sudah ada di!unakan kata kunci append
(ariabelJteks).
?.
-
7/21/2019 Diktatalgoritma.doc
67/87
!) G(it$ln 0MXil$ ti-ak k$t$m%M;3) G(it$ln 0Mlokasi ti-ak k$t$m%M;4) G(it$ln 0Mt$(lal% &ana6k 5il$ 6an+ -i&%kaM;) G(it$ln 0aks$s 5il$ -itolakM;199) G(it$ln 0Msala m$m&aca -iskM;191) G(it$ln0Msala m$n%lis -iskM;19) G(it$ln0MDisk -ip(ot$ksiM;1!) G(it$ln 0MD(i'$ ti-ak a-aM;14) G(it$ln 0MJRJ $((o( -i -ataM;1O) G(it$ln 0Mp$nca(ian -isk salaM;1#) G(it$ln 0Mm$-ia ti-ak -ik$nalM;1O!) G(it$ln 0Mk$(%sakan Ha(-Ga($M;$ls$ G(it$ln0Mpokokn6a salaM;$n-;alt;$n-;
Delphi untuk pemula
1. Mengistal dan membuka Delphi
Perkembangan bahasa pemrograman berlangsung dengan pesat, mulai dari
bahasa tingkat rendah (yang lebih dekat dengan hardware) seperti bahasa
assembly, ataupun bahasa tingkat tinggi, seperti bahasa c dan pascal. Pada
bahasa ini agak susah mengembangkannya dan membuat tampilannya
menjadi menarik, apalagi bila kita menggunakan bahasa pemrograman ini
dalam bentuk grafik. Perkembangan bahasa pemrograman terus berlanjut
dengan dikeluarkannya Windows oleh pihak Microscoft. Pada windows
diperkenalkan model OOP (Object Oriented Programming) yaitu yang lebih
menampilkan kemudahan dan tampilan yang menarik (seperti window
22
-
7/21/2019 Diktatalgoritma.doc
68/87
window pada application yang sering kita gunakan , ms word).
!elphi merupakan salah satu program yang berbasis pada OOP, jadi dengan
bahasa delphi kita dapat membuat programprogram yang menarik untuk
dilihat dan fleksibel serta user "riendly.
Perkembangan !elphi
#orland !elphi dirilis pertama kali pada bulan "ebruari $%%&, dan
Perkembangna !elphi berjalan dari !elphi satu sampai dengan !elphi '.
!asar pemrograman delphi dimulai ketika delphi $ dirilis, pada
perkembangan delphi , user sudah dapat menggunakan fasilitas
networking, yang memungkinkan user untuk membuat sebuah aplikasi yangdapat menghubungkan komputer melalui jaringan internet. Pada
perkembangan terakhir (delphi ') user dapat membuat sebuah aplikasi yang
bisa berjalan dalam operating system *inu+.
Membuka Delphi untuk pertama kali
ebelum menggunakan delphi kita harus menginstal -plikasi !elphi pada
komputer kita. ntuk menginstal !elphi membutuhkan kurang dari $//
Mb denngan O minimal win .$ dan memory 0 Mb, untuk !elphi & sekitar
$//// Mb dengan O minimal Win %& dan Memory min $' Mb, dan #ila
kita mnginstal !elphi ' kita membutuhkan minimal &/ Mb, dengan O
minimal Win %& dan memory min Mb.
etelah kita melakukan instalasi$ maka kita dapat memulai pro!ram kita yan!
pertama. erikut ini adalah tampilan a,al bila kita men!!unakan delphi E (!ambar
1)
22
-
7/21/2019 Diktatalgoritma.doc
69/87
Berikut keterangan bagianbagian gambar diatas 1
22
-
7/21/2019 Diktatalgoritma.doc
70/87
2. Membuat program hello
Marilah untuk pengenalan pertama kita membuat program 2ello.
Pada program yang pertama ini, kita akan membuat sebuah program hallo.
*angkah yang harus dilakukan1
$. #ukalah sebuah aplikasi baru
22
-
7/21/2019 Diktatalgoritma.doc
71/87
. -mbil komponen button
#esar form dapat diatur
1. *etakanlah komponen tersebut pada form dan klik kali2. pada procedure klik, tuliskan syntak berikut ini
procedure 3"orm$.#utton$4lick(ender1 3Object)5begin
messagedlg(6hallo apa kabar6,mtinformation,7mbok8,/)5
end5
1. dan kita juga bias menambahkan syntak yang
megakibatkan bila kita mgklik diluar button, maka aplikasi tersebut
mengeluakan sebuah pesan
procedure 3"orm$."orm4lick(ender1 3Object)5begin
messagedlg(6-nda menekan di luar tombol6,mtwarning,7mbok8,/)5
end5
1. 9adi program kita yang pertama.
22
-
7/21/2019 Diktatalgoritma.doc
72/87
:eterangan pada program hello$
1. Pogram ini bekerja untuk medeteksi akti;itas kita saatmenekan menklik pada area suatu form. :ita akan mendapat suatu
pemberitahuan bila kita mengklik pada tombol atau di luar tombol.2. #ila kita menklik pada tombol maka akan keluar suatu form
message information, dengan tambahan kalimat yang bias kita ubah,.
#erbeda halnya bila kita mengklik di luar tombol maka akan ada
pemberitahuan warning.3. -da berbagai macam bentuk message
type 3Msg!lg3ype < (mt4ustom, mt=nformation, mtWarning, mt>rror,
mt4onfirmation)5
mt4ustom uatu kotak message dengan caption(judul) yang
dapat kita atur sendiri
mt=nformation uatu kotak message dengan caption ?=nformation@.
mtWarning uatu kotak message dengan caption ?Warning@.
mt>rror uatu kotak message dengan caption ?>rror@.
Mt4onfirmation uatu kotak message dengan caption ?4onfirm@
1. 7mbok8 merupakan tombol yang ditampilkan pada kotak
dialog tersebut. Macammacam tombol yang bias ditampilkan adalah 1
(mbAone, mbOk, mb4ancel, mbBes, mbAo, mb-bort, mbCetry,
mb=gnore)
22
-
7/21/2019 Diktatalgoritma.doc
73/87
ntuk listing program lengkapnya1
unit Unit1;interface
usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,ialogs, StdCtrls;
type!Form1 " class#!Form$%utton1& !%utton;procedure %utton1Clic'#Sender& !()*ect$;procedure FormClic'#Sender& !()*ect$;
pri+ate -ri+ate declarations .
pu)lic -u)lic declarations .
end;
+arForm1& !Form1;
implementation
/0 2dfm.
procedure !Form12%utton1Clic'#Sender& !()*ect$;)egin
messagedlg#3hallo apa 'a)ar3,mtinformation,4m)o'5,6$;end;
procedure !Form12FormClic'#Sender& !()*ect$;)egin
messagedlg#37nda mene'an di luat tom)ol3,mtcustom,4m)o'5,6$;
end;end23. Membuka dan menyimpan proyek
Pada saat kita membuka delphi, maka secara otomatis !elphi akan
membuka sebuah application. -pplication adalah sebuah proyek yang akan
kita buat. !alam sebuah proyek ini anda akan menemukan berbagai macam
file.
Proyek
22
-
7/21/2019 Diktatalgoritma.doc
74/87
nit Pas
nit !fm
nit pas
nit !fm
-kan menjadi nama file application
eperti pada bagan diatas. !alam sebauh proyek terdapat berbbagai macam
file yang diperlukan untuk membangun proyek tersebut. "ilefile ini bisa kita
tambahkan dengan bebas, asalkan tetap dalam sebuah proyek.
Menyimpan proyek dan file
!iperlukan buah langkah penyimpanan pada delphi, pertama penyimapan
filefile dibawah proyek, dan kedua penyimpanan proyek itu sendiri.
impan file
impan proyek
impan proyek D file
3utup sebagian
3utup file D proyek
22
-
7/21/2019 Diktatalgoritma.doc
75/87
#uka proyek
#uka "ile
3erlihat jelas pada gambar di atas. 9adi kita harus memperhatikan bagian
bagian dalam penyimpanan dan buka file atau proyek. :eterangan tiapa
bagian 1
a. #uka file
Membuka sebuah file (tidak ada hubungan atau berhubungan dengan
proyek). *angkah ini diperlukan untuk melink kan sebuah fil dengan file
lain, tapi masih dalam satu proyek, atau kita juga meliha program
sebelumnya dan mengkopi bagianbagian tertentu saja.
b. #uka proyek
Membuka sebuah proyek (E.dpr), saat membuka proyek ini, maka akan
terbuka juga file utama yang berhubungan dengan proyek tersebut.
Aamun untuk melihat linklink yang digunakan oleh file tersebut maka
kita harus membukanya secara manual dengan perintah buka file (nomor
a)
c. impan file
Menyimpan file tertentu. Perhatikan saat menklik bagian ini, maka
proyek anda belum tersimpan.
d. impan proyek
22
-
7/21/2019 Diktatalgoritma.doc
76/87
Menyimpan proyek tertentu. !aapun isi proyek merupakan data
mengenai linklink file yang digunakan dalam sebuah proyek tersebut.
e. impan proyek dan file
#ila kita mengklik bagian ini maka proyek dan file akan otomatis
tersimpan dalam hardisk dengan nama file dan proyek tertentu (sudah
ada). *angkah ini diperlukan saat kita mo menyimpan semua file dan
proyek, sehingga sengan menekkan tombol ini, kita tidak perlu susah
suha untukmenyimpan bagian file dan proyek.
f. 3utup sebagian
3ombol ini berguna untuk menutup file tertentu.
g. 3utup file D proyek
*angkah ini penting dilakukan, saat kita menutup sebuah application.
#ila kita tidak melakukan ini, maka yang tertutup hanya file saja, dan
proyek tidak tertutup. -rtinya jika kita belum menutup proyek dan kita
membuka sebuah file tertentu, maak file itu akan berada di bwah proyek
yang belum kita tutup ini.
Oleh karena itu pergunakan lah tombol ini, untuk menutup seluruh
program yang kita buat. !an bila ingin membuat program baru, silahkan
pilih new application.
h. >+it
!igunakan untuk keluar dari !elphi.
4. Penjelasan mengenai form dan file yang digunakan delphi
a. Project file
Merupakan sebuah file yang berisi informasi mengenai poject fule
program yang kita buat.
b. "orm file
"orm file merupakan file yang berisi informasi mengani form yang telah
kita buat.=nformasi ini meliputi ukuranukuran dan komponen apa aja
22
-
7/21/2019 Diktatalgoritma.doc
77/87
yang kita taruh dalam form.
c. !ata module "ile
!ata module ini berisi mengenai informasi mengenai kegunaan datamodule. "ilenya dalam e+tention E.dfm
d. Cemote !ata Module "ile
Merupakan file yang berisi remote data module. 3ype file ini E.rfm
e. nit "ile
nit Aame
3he uses 4lauses
3he =nterface ection
3he =mplementation ection
3he =nialiFation ection
3he "inaliFation ection
f. "orm nit
&. Objek pasal !type data"
a. Global dan local ;ariable
Global ;ariabel adalah suatu ;aribel yang kita deklarasikan saat awal,
global ;aribel ini akan mewakili atau dapat digunakan pada seluruh
procedure di bawah program keseluruhan
*ocal ;ariabel adalah suatu ;ariabel yang digunakan untuk
mendeklarasikan suatu ;ariabel yang hanya digunakan dalam satu
procedure saja.
Penting dalam penentuan global ;ariabel dan local ;ariabel, sehingga kita
dapat menentukan adata yang lebih optimal.
b. =f H then .. else
=f .. then .. else merupakan fungsi percabangan, yaitu bila statement
pertama sesuaiItidak sesuai makaIthen akan diikuti respon berikutnya,
bila statemen pertama tidak sesuai I sesuai maka akan terjadi aksi yang
berbeda pula
22
-
7/21/2019 Diktatalgoritma.doc
78/87
4ontoh
=f warna < merah then berenti else jalan
c. 4ase of4ase of adala bentuk percabangan yang mengecek satu per satu kondisi
yang dibuat.
4ase of lampu
Merah < berenti5
2ijau < jalan
:uning < pelanpelan>nd5
Perhatikan bahwa case of harus ditutup dengan end.
d. Cepeat H until
Cepeat .. util merupakan procedure pengulangan. :onsepnya adalah
repeat suatu statemen sampai suatu statemen itu bernilai tertentu maka
pengulangan itu berhenti.
#. Menggunakan $elp %ile
2elp sangat berguna bila kita dalam kesulitan saat melakukan
permrograman. Pada !elphi telah disiapkan help "ile yang sangat lengkap,
mulai dari penggunaan bahasa pascal pada delphi, menggunaan win api
(dri;er standar windows) sampai dengan bantuan pada pemrograman
!elphi itu sendiri.
4ara menggunakan 2elp "ile
22
-
7/21/2019 Diktatalgoritma.doc
79/87
epert pada gambar di atas, kita tinggal menekan "$ untuk mengaktifkan
2elp file, dan kata ingin kita tanyakan langsung tertera pada help itu dan
kita akan menemukan penjelasan dari pertanyaan tersebut.
1&. Mode 'onsole
Mode console digunakan bila kita tidak menggunakan form, tetapi
menggunakan format seperti pascal, dalam bentuk dos. -dapun untuk
mengubah mode normal ke dalam mode console, anda tinggal klik
11. (omponen
12. %ungsi )aktu
a. Pengantar
13. *rafik dan tabel
22
-
7/21/2019 Diktatalgoritma.doc
80/87
>ditor (!efault)
3hese editor keyboard shortcuts apply to the !efault keystroke mapping
scheme.
hortcut -ction or command
"$ 2elpJ3opic earch
4trlK"$ 2elpJ3opic earch
" earchJearch -gain
4trlK> earchJ=ncremental earch
4trlK"earchJ"ind
4trlK= =nserts a tab character4trlKj 3emplates popup menu
4trlKA =nserts a new line
4trlKP4auses ne+t character to be interpreted as an -4== seLuence
4trlKC earchJCeplace
4trlK"ileJa;e
4trlK3!eletes a word
4trlKB !eletes a line4trlK>ditJndo
4trlKNspace bar 4ode 4ompletion popup window
4trlKhiftKg =nserts a new Globally niLue =dentifier (G=!)
4trlKhiftK= =ndents block
4trlKhiftK Outdents block
4trlKhiftKB !eletes to the end of a line
4trlKhiftK >ditJCedo
4trlKhiftKNspace bar 4ode Parameters popup window
-ltK7 "inds the matching delimiter (forward)
-ltK8 "inds the matching delimiter (backward)
>nd Mo;es to the end of a line
2ome Mo;es to the start of a line
>nter =nserts a carriage return
22
-
7/21/2019 Diktatalgoritma.doc
81/87
=ns 3urns insert mode onIoff
!el !eletes the character to the right of the cursor
#ackspace !eletes the character to the left of the cursor
3ab =nserts a tab
pace =nserts a blank space
*eft -rrow Mo;es the cursor left one column, accounting for the autoindent
setting
Cight -rrow Mo;es the cursor right one column, accounting for the autoindent
setting
p -rrow Mo;es up one line
!own -rrow Mo;es down one line
Page p Mo;es up one page
Page Do)n Mo+es do)n one page
4trlK*eft -rrow Mo;es one word left
4trlKCight -rrow Mo;es one word right
4trlK3ab Mo;es to the ne+t code page (or file)
4trlKhiftK3ab Mo;es to the pre;ious code page (or file)
4trlK#ackspace !eletes the word to the right of the cursor
4trlK2ome Mo;es to the top of a file
4trlK>nd Mo;es to the end of a file
4trlK!el !eletes a currently selected block
4trlKpace =nserts a blank space
4trlKPg!n Mo;es to the bottom of a screen
4trlKPgp Mo;es to the top of a screen
4trlKp -rrow crolls up one line
4trlK!own -rrow crolls down one line
4trlK>nter Opens file at cursor
hiftK3ab Mo;es the cursor to the left one tab position
hiftK#ackspace !eletes the character to the left of the cursor
hiftK*eft -rrow elects the character to the left of the cursor
22
-
7/21/2019 Diktatalgoritma.doc
82/87
hiftKCight -rrow elects the character to the right of the cursor
hiftKp -rrow Mo;es the cursor up one line and selects from the left of the
starting cursor position
hiftK!own -rrow Mo;es the cursor down one line and selects from the right
of the starting cursor position
hiftKPgp Mo;es the cursor up one screen and selects from the left of the
starting cursor position
hiftKPg!n Mo;es the cursor down one line and selects from the right of the
starting cursor position
hiftK>nd elects from the cursor position to the end of the current line
hiftK2ome elects from the cursor position to the start of the current line
hiftKpace =nserts a blank space
hiftK>nter =nserts a new line with a carriage return
4trlKhiftK*eft -rrow elects the word to the left of the cursor
4trlKhiftKCight -rrow elects the word to the right of the cursor
4trlKhiftK2ome elects from the cursor position to the start of the currentfile
4trlKhiftK>nd elects from the cursor position to the end of the current
file
4trlKhiftKPg!n elects from the cursor position to the bottom of the screen
4trlKhiftKPgp elects from the cursor position to the top of the screen
4trlKhiftK3ab Mo;es to the pre;ious page
hiftK-ltKarrow elects columnoriented blocks
4lickK-ltKmousemo;e elects columnoriented blocks
4trlKOK4 3urns on column blocking
4trlKOK: 3urns off column blocking
-ltK#ackspace >ditJndo
-ltKhiftK#ackspace >ditJCedo
-ltKhiftK*eft -rrow elects the column to the left of the cursor
22
-
7/21/2019 Diktatalgoritma.doc
83/87
-ltKhiftKCight -rrow elects the column to the right of the cursor
-ltKhiftKp -rrow Mo;es the cursor up one line and selects the column
from the left of the starting cursor position
-ltKhiftK!own -rrow Mo;es the cursor down one line and selects thecolumn from the left of the starting cursor position
-ltKhiftKPage p Mo;es the cursor up one screen and selects the column
from the left of the starting cursor position
-ltKhiftKPage !own Mo;es the cursor down one line and selects the
column from the right of the starting cursor position
-ltKhiftK>nd elects the column from the cursor position to the end of
the current line-ltKhiftK2ome elects the column from the cursor position to the start of
the current line
4trlK-ltKhiftK*eft -rrow elects the column to the left of the cursor
4trlK-ltKhiftKCight -rrow elects the column to the right of the cursor
4trlK-ltKhiftK2ome elects the column from the cursor position to the
start of the current file
4trlK-ltKhiftK>nd elects the column from the cursor position to the end of
the current file
4trlK-ltKhiftKPage p elects the column from the cursor position to the
bottom of the screen
4trlK-ltKhiftKPage !ownelects the column from the cursor position to the
top of the screen
22
-
7/21/2019 Diktatalgoritma.doc
84/87
,ejarah (omputer
!isiplin =lmu :omputer sudah muncul sejak era tahun $%/, seiring denganberpadunya teori algoritma dan logika matematika, serta ditemukannya
komputer elektronik dengan kemampuan penyimpanan program. -dalah -lan
3uring dan :urt Godel, yang pada tahun $%/an berhasil memadukan
algoritma, logika, dan penghitungan matematika serta merealisasikannya dalam
sebuah alat atau rule system. Prinsip algoritma yang digunakan adalah dari -da
*o;elace, yang dikembangkan '/ tahun sebelumnya.
-lan 3uring
Penemu algoritma sendiri yang tercatat dalam sejarah
awal adalah dari seorang yang bernama -bu -bdullah Muhammad =bn Musa al
:hwariFmi. -l :hwariFmi adalah seorang ahli matematika dari Fbekistan yang
hidup di masa tahun QQ/0/ masehi. !i literatur barat ia lebih terkenal dengan
sebutan -lgoriFm. :ata algoritma sendiri berasal dari sebutannya ini.
edangkan komputer analog diciptakan oleh Ranne;ar #ush pada tahun $%/,
dan disusul dengan komputer elektronik yang dikembangkan oleh 2oward-iken dan :onrad use tahun $%/.
Musa al :hwariFmi
22
-
7/21/2019 Diktatalgoritma.doc
85/87
:emudian 9ohn Ron Aeumann mendemonstrasikan salah satu karya
fenomenalnya pada tahun $%&, yaitu sebuah
arsitektur komputer yang disebut S;on Aeumann
machineS, dimana program disimpan di
memori. -rsitektur komputer inilah yang
kemudian digunakan oleh komputer modern
sampai sekarang.
9ohn Ron Aeumann
3ahun $%'/ adalah babak baru dimulainya formalisasi =lmu :omputer. 9urusan
=lmu :omputer pada uni;ersitasuni;ersitas mulai marak dibangun. !isiplinilmu baru ini kemudian terkenal dengan sebutan =lmu :omputer (4omputer
cience), 3eknik :omputer (4omputer >ngineering), :omputing (4omputing),
atau =nformatika (=nformatics).
Definisi
eiring dengan perkembangan =lmu :omputer, dewasa ini banyak sekali
peneliti yang mencoba membuat kajian dan melakukan pendefinisian terhadap
=lmu :omputer. #agaimanapun juga, dasar =lmu :omputer adalah matematikadan engineering (teknik). Matematika menyumbangkan metode analisa, dan
engineering menyumbangkan metode desainpada bidang ini.
4-# 78 (4omputing ciences -ccreditation #oard, http1IIwww.csab.org)
membuat definisi menarik tentang =lmu :omputer1
8lmu 9omputer adalah ilmu pengetahuan yang )erhu)ungan dengan
'omputer dan 'omputasi2 i dalamnya terdapat teoriti'a, e'sperimen, dan
22
-
7/21/2019 Diktatalgoritma.doc
86/87
pendesainan 'omponen, serta termasu' didalamnya hal:hal yang
)erhu)ungan dengan&
1. !eori:teori untu' memahami 'omputer de+ice, program,
dan sistem2. 'sperimen untu' pengem)angan dan pengetesan 'onsep3. Metodologi
desain, algoritma, dan tool untu' merealisasi'annya4. Metode analisa
untu' mela'u'an pem)u'tian )ahwa realisasi sudah sesuai dengan
re>> 4omputer ociety 7&8 (http1IIcomputer.org).
8lmu 9omputer adalah studi sistemati' tentang proses algoritmi' yang
meng*elas'an dan mentrasformasi'an informasi& )ai' itu )erhu)ungan
dengan teori:teori, analisa, desain, efisiensi, implementasi, ataupun apli'asi:
apli'asi yang ada padanya2 -ertanyaan mendasar )erhu)ungan dengan
8lmu 9omputer adalah, =7pa yang )isa diotomatisasi'an secara efisien=2
:ita bisa simpulkan dari persamaan pemakaian terminologi dan hakekat makna
dalam definisi yang digunakan para peneliti diatas, bahwa1
8lmu 9omputer adalah ilmu pengetahuan yang )erisi tentang teori,
metodologi, desain dan implementasi, )erhu)ungan dengan 'omputasi,
'omputer, dan algoritmanya dalam perspe'tif perang'at luna' #software$
22
-
7/21/2019 Diktatalgoritma.doc
87/87
maupun perang'at 'eras #hardware$2
Persepsi -ang ,alah entang /lmu (omputer
#eberapa persepsi yang salah kaprah tentang =lmu :omputer bisa kitarangkumkan seperti dibawah1
I 8lmu 9omputer adalah ilmu yang mempela*ari tentang
'omputer. =lmu :omputer bukanlah ilmu yang hanya mempelajari
tentang komputer, seperti juga ilmu astronomi yang bukan ilmu tentang
teleskop, atau ilmu biologi adalah juga bukan ilmu yang hanya
mempelajari tentang mikroskop. :omputer, teleskop dan mikroskop
adalah alat dari ilmu, dan bukan ilmu itu sendiri.I 8lmu 9omputer adalah ilmu yang mempela*ari tentang
)agaimana menulis program 'omputer.I 8lmu 9omputer adalah ilmu yang mempela*ari tentang
pengunaan apli'asi:apli'asi 'omputer.
0eferensi
1. Peter !enning, et al., S'omputing as a Disipline,S
Communications of 7CM, , $ (9anuary), %, $%0%.
2. Peter !enning, S'omputer ,iene the Disipline,S =nncyclopedia of Computer Science(-. Calston and !. 2emmendinger,
>ds), $%%%.3. 4omputing ciences -ccreditation #oard,
http1IIwww.csab.org4. -ssociation for 4omputing Machinary (-4M),
http1IIacm.orgG.
=>>> 4omputer ociety (=>>> 4), http1IIcomputer.org