0% menganggap dokumen ini bermanfaat (0 suara)
33 tayangan

Algoritma Pemrograman I3

Dokumen tersebut merupakan ringkasan singkat tentang bahasa pemrograman Pascal yang mencakup pengenalan Pascal, contoh kode program, dan tutorial penggunaan variabel, kondisi, dan looping dalam Pascal.

Diunggah oleh

Andrew Yonatan
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
33 tayangan

Algoritma Pemrograman I3

Dokumen tersebut merupakan ringkasan singkat tentang bahasa pemrograman Pascal yang mencakup pengenalan Pascal, contoh kode program, dan tutorial penggunaan variabel, kondisi, dan looping dalam Pascal.

Diunggah oleh

Andrew Yonatan
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 20

PASCAL

Daftar ISI
Pengenalan
Tutor 1 (cara mencetak ke layar dan penggunaan variabel)
Tutor 2 (penggunaan kondisi)
Tutor 3 (looping)
Tutor 4 (prosedur dan fungsi)
Tutor 5 (array dan record)
Tutor 6 (atabase)
Contoh Program
Program 1 meng!itung luas"keliling bangunan
Program 2 menentukan bilangan gan#il$ genap dan prima
Program 3 menentukan bilangan terbesar (dengan if)
Program 4 penggurutan angka (looping)
Program 5 bintang (looping)
Program 6 penggabungan program 1$ 2 dan 4 dengan membuat menu (prosedur$
fungsi)
Program % toko (record dengan array)
Program & 'perasi (tring
Program ) *onto! penggunaan teori di tutor 6
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
PENGENALAN
Pada bagian ini gua cuman nge#elasin secara garis besar tentang pascal dan tips
penulisan program+ ,ita mulai$ ok-
.asanya gak lengkap kalo gak ta!u se#ara! pascal+ Pascal adala! ba!asa tingkat tinggi
yang orientasinya pada segala tu#uan$ dirancang ole! Prof+ /iklaus 0irt! dari
Tec!nical 1niversity di 2uric!$ (3it4erland+ /ama pascal diambil sebagai
peng!argaan ter!adap 5laise Pascal$ a!li matematik dan p!ilosip!i terkenal abad 1%
dari Prancis+
Profesor /iklaus 0irt! memperkenalkan kompiler ba!asa Pascal pertama kali untuk
komputer ** 6666 (*ontrol ata *orporation) yang dipublikasikan pada ta!un
1)%1 dengan tu#uan untuk membantu menga#ar program komputer secara sistematis$
k!ususnya pemrograman terstruktur+ Pada perkembangannya banyak versi7versi
pascal yang beredar$ 8(7Pascal$ 9pple Pascal$ Turbo Pascal$ dll+ :ua perna! baca
kalo pascal itu di buat karena ba!asa * terlalu sulit untuk di pela#ari untuk pemula+
(ekarang kita ngeliat bagaimana struktur program pascal+ Pascal terdiri dari 2 bagian
utama$ yaitu pendeklarasian variabel dan programnya+ Per!atikan conto!;
1; Program ,aryaPertamaku<
2; uses crt<
3; var nama; string<
4; 5egin
5; 3rite(=8asukkan nama anda; =)< readln(nama)<
6; clrscr<
%; 3rite(=>i =$ nama$ =apakabar-=)<
&; ?nd+
:ak usa! dipikirin apa isi program itu+ Tapi per!atikan strukturnya+ Pada baris ke 3$
itu yang disebut bagian pendeklarasian variabel+ (edangkan dari baris ke74 s"d &$
disebut bagian pernyataan (tempat nulis program)+ 5aris pertama itu !anya
merupakan #udul programnya doank$ gak ditulis #uga bole!+ @udulnya adala!
A,aryaPertamakuA$ #angan pake spasi lo! nulisnya (gunakan garis ba3a! a#a)+
' iya$ dalam pascal ada yang disebut unit7unit lain semacam librari la!+++ 8isalnya
pada baris kedua digunakan uses crt< (berfungsi untuk memanipulasi layar teks)+
Per!atikan baris 6$ itu adala! sala! satu fungsi dari unit crt yaitu untuk membersi!kan
layar (sama dengan perinta! cls di dos)+
Per!atikan cara penulisan programnyaB (etiap baris selalu diak!iri dengan titik koma
A<A (kecuali pada baris ke74 dan &$ karena itu adala! tanda dari a3al dan ak!ir
program)+ (elain itu program pascal selalu dimulai dengan AbeginA dan Aend+A (#angan
lupa titiknya lo!)+
5agaimana$ muda! bukan- :ua kasi! satu tips yang berguna+ ,alo nulis program
usa!akan yang rapi+ Cngat bila ada A5eginA pasti ada AendA$ na! penulisan program
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
diantara begin dan end itu usa!akan di kasi! 2 spasi atau satu tab+ Per!atikan baris ke7
5 s"d %+ Ctu akan memuda!kan penelusuran program bila ter#adi kesala!an
MENCETAK KE LAYAR DAN PENGGUNAAN VARIABEL
'k$ sekarang kita bakal bela#ar cara menampilkan teks di layar dan penggunaan
variabel+ Per!atikan conto! diba3a! ini;
1; Program ,aryaPertamaku<
2; uses crt<
3; var nama; string<
4; 5egin
5; 3rite(=8asukkan nama anda; =)< readln(nama)<
6; clrscr<
%; 3rite(=>i =$ nama$ =apa kabar-=)<
&; ?nd+
Pada baris ke73 dideklarasikan variabel nama dengan tipe string+ ,arena berupa
string$ variabel nama bisa menampung input dari user berupa kata dan angka+ 1ntuk
lebi! #elas tentang #enis tipe data li!at tabel di ba3a!+ @angan sampai sala!
mendeklarasikan #enis variabelnya loo!!+++
(ekarang per!atikan baris ke75+ Dungsi 3rite adala! mencetak kalimat atau isi
variabel yang ada ke layar+ @adi yang tercetak adala! A8asukkan nama anda; A+
(elan#utnya ada perinta! readln+ 9pa fungsinya- readln itu berfungsi untuk
menampung (menyimpan !asil input user) dan disimpan pada variabel nama+ @adi
sekarang variabel nama bernilai sama yang kamu ketikan+
Pada baris ke7% di layar akan tercetak A >i di#as apa kabar-A (itu kalo nama yang
dimasukan di#as)+ 1ntuk menampilkan isi variabel cukup ditulis; A3rite(nama)<A+
(edangkan bila berupa teks yang fiEed$ conto!nya sama seperti baris ke75
(mengunakan = (kutip) )+
9pa si! beda 3rite dan 3riteln- 3rite fungsinya mencetak di layar dan posisi kursor
masi! dibaris itu #uga+ (edangkan 3riteln akan pinda! kebaris yang baru+ Per!atikan
*onto!
1; 5egin
2; 3rite(=>i+++=)< 3rite(= 9pa kabar-=)<
3; 3riteln<
4; 3riteln(=>i++ =)< 3riteln(=9pa kabar-=)<
5; ?nd+
8aka output yang tampil adala!;
>i+++ 9pa kabar-
>i+++
9pa kabar -
@elas bukan- @adi fungsi AlnA pada 3riteln adala! untuk pinda! kebaris yang baru+
Dungsinya akan sama bila ditaru! di read+ Fup tutorial pertama kelar #uga+++
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Tipe ata yang (ering igunakan di Pascal
*!ar 7G !anya menampung satu karakter
string 7G menampung lebi! dari satu karakter
5oolean 7G !anya mempunyai dua nilai True atau Dalse
Cnteger 7G 732+%6& s"d 32+%6% (gak bisa bilangan desimal)
longint 7G 72+14%+4&3+64& s"d 72+14%+4&3+64&(gak bisa bilangan desimal)
read 7G 2$) E 1673) s"d 1$% E 163& (untuk menampung bilangan desimal)
PENGGUNAAN KONDISI
Tutorial yang kedua ini akan diba!as mengenai pernyataan kondisi$ if dan case+
1; Program Tutorial2Hif<
2; var pili!; Cnteger<
3; 5egin
4; 3rite(=Pili! 1 atau 2=)< readln(pili!)<
5; if pili!I1 t!en 3rite(=9nda memili! 1=)
6; elseif pili!I2 t!en 3rite(=Pili!an anda 2=)
%; else 3rite(=9nda memili! yang lain=)
&; ?nd+
Per!atikan baris 5$ 6 dan %+ i situ ada 3 pernyataan kondisi if+ 9pabila pili!an yang
kita ketik ada di satu kondisi$ maka yang lain akan diabaikan+ 5ingung- gini
maksudnya+++ 8isal pada program di atas kita pili! 2+ Pada saat program di#alankan$
baris ke75 akan di eksekusi+ 5er!ubung pili!an kita 2 bukan 1$ maka akan langsung
pinda! kebaris selan#utnya+ Ternyata pada baris ke76 kondisi itu terpenu!i$ maka yang
tercetak dilayar adala! APili!an anda 2A+ 5aris ke7% tidak diperiksa lagi karena baris
ke 6 suda! memenu!i syarat+
5ila kita memili! 3$ maka baris ke75 dan ke76 tidak memenu!i konsisi tersebut$ maka
yang tercetak adala! A9nda memili! yang lainA+
(elain dengan if$ pernyataan kondisi di atas bisa #uga menggunakan case+ Per!atikan
conto!;
1; Program Tutorial2Hcase<
2; var pili!; c!ar<
3; 5egin
4; 3rite(=Pili! 1 atau 2=)< readln(pili!)<
5; case pili! of
6; =1=; 3rite(=9nda memili! 1=)<
%; =2=; 3rite(=Pili!an anda 2=)<
&; else 3rite(=9nda memili! yang lain=)<
); end<
16; ?nd+
,eterangannya gak #au! beda dengan kondisi if kok+ *oba amati pada baris ke )$ di
sana ada pernyataan Aend<A+ Pernyataan itu berfungsi untuk menutup pernyataan case
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
yang dimulai pada baris ke75+ Perlu diingat AendA disertai dengan titik !anya untuk
diak!ir program+
LOOPING
Jooping- apa !ayoo+++- masi! ingatkan pela#aran fisika (81$ adakan pela#aran
tentang looping dirangkaian elektronik+ Jooping adala! proses pengulangan !ingga
kondisi syarat yang ditentukan tercapai+ (ekarang kita ngeba!as 3 #enis looping$ for$
3!ile dan repeat+ Per!atikan conto! di ba3a! ini;
1; Program Tutorial3Hfor<
2; var i; Cnteger<
3; 5egin
4; Dor i;I1 to 5 do
5; 3riteln(=ini yang ke =$ i)<
6; ?nd+
Per!atikan baris 4 dan 5+ i sana ada satu persyaratan$ yaitu baris ke75 akan
dieksekusi bila nilai i antara 1 sampai 5+ 9pa output yang tercetak dilayar-
ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4
ini yang ke 5
5agaimana kalo mau pake 3!ile- Per!atikan conto!;
1; Program Tutorial3H3!ile<
2; var i; Cnteger<
3; 5egin
4; i;I1<
5; 3!ile i K 5 do
6; begin
%; 3riteln(=ini yang ke =$ i)<
&; i;IiL1<
); end<
16; ?nd+
9pa perbedaan mendasar 3!ile dengan for- yup$ di 3!ile dibutu!kan counter
(diprogram ini adala! i)+ @adi$ baris ke7% dan & akan dieksekusi (di#alankan) apabila
nilai i K 5+ *oba liat baris ke 6$ di sana ada AbeginA dan Aend<A sebagai pasangannya
(dibaris ke ))+ 5ila ada lebi! dari satu pernyataan !arus di mulai dengan begin untuk
kondisi if$ case$ looping+ @ika tidak !anya baris pertama sa#a yang dieksekusi+ 9pa
outputnya-
ini yang ke 1
ini yang ke 2
ini yang ke 3
ini yang ke 4
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
*oba baris ke & kamu ganti dengan Ai;Ii71<A apa yang ter#adi- *oba #alankan+ 9kan
ter#adi looping terus menerus karena kondisinya memenu!i syarat terus (i selalu
kurang dari lima)+ Tekan control break untuk meng!entikannya+ >al inila! yang
disebut invinitive loop+ (ekarang kita coba dengan repeat+
1; Program Tutorial3H3!ile<
2; var pili!; c!ar<
3; 5egin
4; i;I1<
5; repeat
6; 3riteln(=ini yang ke =$i)<
%; i;IiL1<
&; until iK6<
); ?nd+
9pa outputnya- cuman 1$ Aini yang ke 1A+ Jo! kok bisa$ kan pada baris ke & tidak
memenu!i persyaratan iK6 - 8emang nggak memenu!i persyaratan itu$ tapi ini
adala! keisteme3aan repeat+ Ca akan mengeksekusi sekali dulu baru dicek persyaratan
yang ada diba3a!+
,elar #uga ngeba!as looping+ :unakan #enis looping yang ada seseuai kebutu!an+ '
iya$ apa yang dilakukan bila tertulis seperti ini- ADor i;I16 do3nto 1 doA+ Pernyataan
itu akan meng!itung mundur dari 16 sampai 1+
PROSEDUR DAN FUNGSI
8isalnya kita punya rumus meng!itung luas segita$ apa yang kamu lakukan bila
rumus itu ingin kamu tulis ditiga tempat yang berbeda- apa kamu akan ccp (copy$ cut
dan paste)- emang bisa si! diperbanyak dengan yang gituan$ tapi boros memori dan
berabe kalo rumus yang kita tulis ternyata sala!$ berarti kita !arus betulin di tiga
tempat #uga+ 1ntuk mempermuda!nya gunakan Prosedur atau Dungsi+
1; Program Tutorial4HProsedur<
2;
3; Procedure Tampil<
4; begin
5; 3riteln(=>i+++=)<
6; 3riteln(=9pakabar=)<
%; end<
&; 5egin
); Tampil<
16; 3riteln(=yang di atas menggunakan prosedur loo!!+++=)<
11; ?nd+
9pa yang dilakukan program di atas- *oba li!at baris ke73 sampai %+ Ctula! yang
disebut prosedur+ Program utamanya mulai dari baris ke & sampai 11+ Pada baris ke )
prosedur yang kita buat sebelumnya dipanggil dan dieksekusi+ Cni outputnya
>i+++
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
9pakabar
yang di atas menggunakan prosedur loo!!+++
(elain itu prosedur dan fungsi bisa di taru! variabel lo!!+++ Per!atikan conto!
penggunaan fungsi di ba3a! ini;
1; Program Tutorial4HDungsi<
2; var !asil; integer<
3; Dunction Ctung(a$ b ; integer) ; integer<
4; begin
5; itung;IaLb<
%; end<
&; 5egin
); !asil;Iitung(%$ ))<
16; 3riteln(=>asil % L ) sama dengan =$ !asil)<
11; ?nd+
5aris 3 sampai % adala! fungsi+ Tapi per!atikan bentuk fungsinya$ ada pendeklarasian
variabel a dan b+ *oba liat baris ke ) ketika fungsi itung dipanggil+ i sana tertulis
Aitung(%$ ))A$ secara otomatis a akan mendapat nilai % dan b mendapat )+ 5agaimana
#ika ditulis Aitung(3$5$6)A- @elas gak bisa karena dialokasikan !anya 2 variabel+ >asil
pen#umla!an a L b ditampung di fungsi itung (li!at baris ke75) dan !asil itu diberikan
ke variabel !asil (baris ))+
Jalu apa perbedaan prosedur dan fungsi- Prosedur !anya bisa men#alankan perinta!
dan tidak mengembalikan nilai (li!at kembali conto! program prosedur sebelumnya)+
(edangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diola!
lagi+ 5ila kita punya fungsi yang bernama *ek(aldo$ maka *ek(aldo bisa berfungsi
seperti variabel sama seperti pada fungsi Ctung di atas+
5agaimana- muda! bukan- gunakan prosedur dan fungsi sesuai kebutu!an+
Terkadang fungsi lebi! berguna dan efisien dibandingkan dengan prosedur+
ARRAY DAN RECORD
Perna!ka! kamu membayangkan bila kita mau membuat program toko bua!7bua!an+
@ika ada 3 #enis bua!7bua!an (melon$ duku dan mangga) berarti kita !arus mempunyai
tiga variabel untuk masing7masing #enis bua!+ Tetapi betapa sulitnya #ika toko itu
punya 16 atau 26 #enis yang berbeda+ (olusinya adala! gunakan array+ 9rray itu
adala! tipe data terstuktur yang berguna untuk menyimpan se#umla! data yang bertipe
sama+ 5agaimana cara ker#anya- yaitu dengan menggunakan indeE (semacam
penanda)+ Per!atikan conto!;
1; Program Tutorial5H9rray<
2; var bua!; array M1++3N of string<
3; i; integer<
4; 5egin
5; Dor i;I1 to 3 do
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
6; begin
%; 3rite(=8asukkan bua!7bua!an ke =$i $ = ; =)<readln(bua!MiN)<
&; end<
); 3riteln<3riteln(=Csi bua!7bua!an yang dimasukkan tadi adala! ; =)<
16; Dor i;I 1 to 3 do
11; 3riteln(=bua! ke=$ i $= ; =$ bua!MiN)<
12; ?nd+
Ji!at pada baris ke %+ engan !anya menggunakan satu nama variabel yaitu bua!$
kita bisa menyimpan 3 nilai yang berbeda+ 8isalkan yang kita masukkan adala!
melon$ duku dan mangga+ maka bua!M1N bernilai melon$ bua!M2N bernilai duku dan
bua!M3N bernilai mangga+ 1ntuk mencetak isi variabel yang suda! disimpan di array
tadi caranya bisa dili!at di baris ke 11+
5agaimana$ gampangkan- setela! mengeta!ui cara menggunakan array$ sekarang kita
bela#ar menggunakan record+ Tidak seperti array$ record adala! #enis tipe data
terstruktur yang berisi beberapa data$ yang masing7masing dapat berlainan tipe+
Per!atikan conto!;
1; Program Tutorial5H.ecord<
2; type bua! I record
3; nama; string<
4; !arga; longint<
5; end<
6; var data;bua!<
%; 5egin
&; 3rite(=nama bua!; =)<readln(data+nama)<
); 3rite(=!arga bua!; =)<readln(data+!arga)<
16; 3rite(=ditampilkan=)<
11; 3rite(=nama=)<readln(data+nama)<
12; 3riteln(=!arga=)<readln(data+!arga)<
13; ?nd+
9pa yang bisa kamu ambil kesimpulan dari program di atas- 5ingung- @adi gini$
dengan menggunakan record (di sini bernama bua!) kita bisa membuat tipe data yang
berisi beberapa data yang berlainan tipe (nama dengan #enis string$ dan !arga dengan
#enis long integer) yang ini disebut field+
Per!atikan baris ke 6$ di situ dideklarasikan ba!3a variabel data bertipe bua!+
'tomatis yang dimiliki bua! (nama dan !arga) dimiliki #uga ole! data+ (etela! itu
li!at baris ke & dan )+ /ama bua! disimpan dalam field nama dan !arga bua!
disimpan di dalam field !arga+ 1ntuk bisa menyimpan data di field$ urutannya !arus
variabel+field (conto!nya di sini data+nama atau data+!arga)+ 5egitu #uga bila kita
ingin menampilkan isi field tersebut+
Tipe data seperti ini sangat berguna kedepannya loo!!+++ 9palagi #ika digabungkan
dengan array+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
DATABASE
.asanya gak lengkap kalo buat program tapi gak bisa nyimpen data+ Fang bakal
di#elasin di sini adala! file bertipe$ artinya !arus disebutkan dulu tipe file tersebut$
apaka! integer$ long integer$ string$ c!ar atau ba!kan record+ 5erikut ini adala! daftar
prosedur dan fungsi yang ber!ubungan dengan program database file bertipe (no 12
sampai 16 !anya untuk file teks)+
Procedure 9ssign (var f$ /amaDile; string)<
Procedure .e3rite (var f)<
Procedure .eset(var f)<
Procedure *lose(var f)<
Procedure 0rite(var f$ var1 M$ var2$ +++$ varnN)<
Procedure .ead(var f$ var1 M$ var2$ +++$ varnN)<
Dunction ?of(var f); 5oolean<
Dunction DilePos(var f); longint<
Dunction Dile(i4e(var f); longint<
Procedure (eek(var f$ /; longint)<
Procedure Truncate(var f)<
Dunction ?oln(var f;teEt);boolean<
Dunction (eek?oln(var f;teEt);boolean<
Dunction (eek?of(var f;teEt);boolean<
Procedure Dlus!(var f;teEt)<
Procedure (etTeEt5uf(var f;teEt$ var bufM$ ukuran; 3ordN)<
Pen#elasannya di ba3a! ini;
Pengacuan suatu file melalui variabel file+ (etiap ingin melakukan manipulasi atau
yang lainya$ !arus melakukan ini dulu
9pabila file tidak ada$ maka file itu akan terbentuk+ Tetapi bila ada$ maka isi file itu
akan !ilang+
8embuka file yang suda! ada$ tetapi tidak meng!apus isinya
8enutup suatu file (lakukan setela! setela! file itu di manipulasi)
8engisi file dengan data+ (apabila filenya bertipe teEt$ maka 3riteln bisa digunakan)
8embaca isi file+ (apabila filenya bertipe teEt$ maka readln bisa digunakan untuk
membaca perbaris)
8emeriksa ak!ir file+ >asilnya akan True bila posisinya diak!ir dan Dalse apabila
tidak diak!ir+ 5iasa digunakan untuk membaca"menguba! data+
8engeta!ui posisi file sekarang+ Penomoran data mulai dari 6+
8engeta!ui #umla! data yang ada+
8eminda!kan posisi file+ ata pertama bernilai 6+
8eng!apus data dari posisi sekarang sampai ak!ir file
8eng!asilkan status ak!ir baris file teks+ /ilainya akan true kalau diak!ir baris atau
?of memberikan nilai True+
(ama seperti ?oln$ tetapi spasi dan tab diabaikan+
(ama seperti ?of$ tetapi mengabaikan spasi$ tab ataupun tanda ak!ir baris
8engosongkan penyangga (buffer) file teks yang dibuka untuk keluaran (perekaman)+
Prosedur ini men#amin ba!3a data yang direkam benar7benar tela! disimpan ke file
(normalnya$ data akan disimpan ke file kalau penyangga file suda! penu!)
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
8enentukan ukuran penyangga yang digunakan file+ ipanggil setela! assign+
(emakin besar semakin cepat pemrosesannya$ defaultnya 12& byte+
5ila ada tulisan var f$ itu artinya variabel file+ /amaDile artinya nama databasenya
(bila perlu pat!nya)+ var1 artinya variabel yang bersesuaian dengan tipe filenya+ /
artinya data ke7/+ 5ila dalam bentuk fungsi$ maka ia akan mengembalikan nilai
tergantung #enisnya (apabila boolean maka akan mengembalikan True atau Dalse$ bila
longint akan mengembalikan angka)+
0aa!!!+++ banyak yac!- emang gitula!+++ 5a!kan ada lagi yang lain lo! untuk file tak
bertipe+ Prosedur dan fungsi di atas gua ambil dari bukunya pak Cr+ 9bdul ,adir$
Pemrograman Pascal+ 5ukunya bagus #uga$ ada 2 #ilid tebel7tebel tapinya ;+ ' iya$ di
sini gua gak ngasi! conto!nya lo!+++ abis kepan#angan kalo ditulis di sini+1ntuk
conto!7conto! penggunaan prosedur dan fungsi di atas bisa di li!at di Program )+
CONTOH PROGRAM
Program ! m"ngh#t$ng %$a&'("%#%#ng )ang$nan
Fup+++ sekarang kita buat program yang pertama$ meng!itung luas dan keliling
bangunan+ 5angunan yang di#adikan conto! adala! segitiga+ Per!atikan conto! di
ba3a! ini;
1; Program 8eng!itungHJuasHdanH,eliling<
2; var alas$ tinggi$ sisimiring$ luas$ keliling; real<
3; 5egin
4; 3riteln(=8?/:>CT1/: J19( 9/ ,?JCJC/: (?:CTC:9=)<
5; 3riteln(=7777777777777777777777777777777777777=)<
6; 3rite(=8asukkan alas ; =)<readln(alas)<
%; 3rite(=8asukkan tinggi ; =)<readln(tinggi)<
&; luas;I 6+5OalasOtinggi<
); sisimiring;IsPrt(sPr(alas)LsPr(tinggi))<
16; keliling;I alasLtinggiLsisimiring<
11; 3riteln<
12; 3riteln(=luas segitiga ; =$ luas;6;2)<
13; 3riteln(=keliling segitiga ; =$ keliling;6;2)<
14; readln<
15; end+
Pada baris 6 dan % adala! tempat memasukkan alas dan tinggi segitiga yang akan
diproses di baris & sampai 16+ Cngat kan rumus meng!itung sisi miring segitiga- yaitu
akar dari #umla! kuadrat sisi7sisinya+ Dungsi AsPrtA adala! untuk mengakarkan dan sPr
untuk mengkuadratkan+
(ekarang kebaris 12 dan 13+ 9pa yang beda !ayoo+++- betul++ setela! variabel luas dan
keliling dicetak ke layar ada tamba!an A;6;2A+ Ctu artinya ;banyaknya alokasi
angka;#umla! desimal+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
:ampangkan- iya donk$ kan tinggal maen logika+++ ;
Program * ! m"n"nt$(an )#%angan gan+#%, g"na- .an -r#ma
Perna! kan pas di ( kita disuru! nentuin bilangan ini gan#il apa genap$ prima apa
bukan+ (ekarang kita #adiin program+
1; Program @enis5ilangan<
2; var bil; longint<
3; begin
4; 3riteln(=8?/?/T1,9/ @?/C( 5CJ9/:9/=)<
5; 3riteln(=7777777777777777777777777=)<
6; 3rite(=8asukkan angka; =)<readln(bil)<
%; if ((bilI2) or (bilI3) or (bilI5) or (bilI%)) t!en
&; 3rite(=bilangan prima=)
); else if ((bil mod 2 KG 6) and (bil mod 3 KG 6) and
(bil mod 5 KG 6) and (bil mod % KG 6)) t!en
16; 3rite(=bilangan prima=)
11; else 3rite(=bukan bilangan prima=)<
12; if bil mod 2 I 6 t!en
13; 3riteln(= dan genap=)
14; else
15; 3riteln(= dan gan#il=)<
16; readln<
1%; end+
Pada baris ke7% sampai 12 adala! tempat menentukan bilangan prima atau bukan+
8asi! ingat kan karateristik bilangan prima- bilangan yang !anya bisa dibagi 1 dan
dirinya sendiri dan #uga !ampir semuanya gan#il+ 5er!ubung bilangan prima diba3a!
16 adala! persyaratan untuk bilangan diatas 16 (per!atikan baris ke % dan ))$ #adi
bilangan prima diba3a! 16 ditulis manual+ Dungsi AmodA pada baris ) dan 13 adala!
sebagai sisa dari pembagian+ @ika ditulis A% mod 3A maka !asilnya adala! 1$ artinya
sisa dari %"3 (tu#u! dibagi tiga) adala! 1+
:imana- Tinggal maen logika+++ kan- ;P
Program / ! m"n"nt$(an )#%angan t"r)"&ar 0."ngan #f1
Cni adala! program terak!ir untuk mematangkan penggunaan kondisi if+ Perna! ka!
kalian membuat program dengan susa! paya! tetapi setela! ditun#ukkan dengan orang
lain$ mereka bilang A>anya gitu doank ker#anya-A+ >e !e !e+++ sakit !ati emang ;7($
kalo bisa rasanya pengen nimpuk tu orang dengan !ardisk (?9:9T? 59.9*19
&6 giga lima bi#i ;))+ Cni sala! satu program yang pan#ang$ tapi fungsinya+++ yaa+++
gitula! ;
1; Program 5ilanganTerbesar<
2; Qar bil1$ bil2$ bil3 ;real<
3; 5egin
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
4; 0rite(=8asukkan 5ilangan Pertama ; =)<.eadln(bil1)<
5; 0rite(=8asukkan 5ilangan ,edua ; =)<.eadln(bil2)<
6; 0rite(=8asukkan 5ilangan ,etiga ; =)<.eadln(bil3)<
%; Cf (bil1Ibil2) and (bil2Ibil3) t!en
&; 0riteln(=(emua bilangan yang anda masukkan sama
besar =$bil1;6;6)
); ?lse Cf (bil1Ibil2) or (bil1Ibil3) or (bil2Ibil3) t!en
16; 5egin
11; Cf bil1Ibil2 t!en
12; 5egin
13; 0riteln(=5ilangan Pertama dan ,edua 9dala! (ama=)<
14; Cf 5il1 K bil3 t!en
15; 0riteln(=5ilangan Terbesar 9dala! =$bil3;6;6)
16; ?lse
1%; 0riteln(=5ilangan Terbesar 9dala! =$bil1;6;6)
1&; ?nd
1); ?lse Cf bil1Ibil3 t!en
26; 5egin
21; 0riteln(=5ilangan Pertama dan ,etiga 9dala! (ama=)<
22; Cf 5il1 K bil2 t!en
23; 0riteln(=5ilangan Terbesar 9dala! =$bil2;6;6)
24; ?lse
25; 0riteln(=5ilangan Terbesar 9dala! =$bil1;6;6)
26; ?nd
2%; ?lse Cf bil2Ibil3 t!en
2&; 5egin
2); 0riteln(=5ilangan ,edua dan ,etiga 9dala! (ama=)<
36; Cf 5il1 K bil3 t!en
31; 0riteln(=5ilangan Terbesar 9dala! =$bil3;6;6)
32; ?lse
33; 0riteln(=5ilangan Terbesar 9dala! =$bil1;6;6)
34; ?nd
35; ?nd
36; ?lse Cf bil1 G bil2 t!en
3%; 5egin
3&; Cf bil1 G bil3 t!en
3); 0riteln(=5ilangan terbesar adala! =$bil1;6;6)
46; ?lse
41; 0riteln(=5ilangan terbesar adala! =$bil3;6;6)<
42; ?nd
43; ?lse Cf bil1 K bil2 t!en
44; 5egin
45; Cf bil2 G bil3 t!en
46; 0riteln(=5ilangan terbesar adala! =$bil2;6;6)
4%; ?lse
4&; 0riteln(=5ilangan terbesar adala! =$bil3;6;6)<
4); ?nd<
56; readln<
51; ?nd+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
>ue !e !e+++ keren kan- dengan bermodalkan if kita bisa menentukan bilangan mana
yang terbesar dari 3 bilangan yang dimasukkan+ (elain itu program ini bisa
mendekteksi #ika ada bilangan yang sama+ Fup$ !anya itu intinya+ Prinsip utama
program ini !anya membandingkan bilangan satu dengan yang lain+ 8uda! bukan-
lebi! baik kalian nger#ain yang ini tanpa ngeliat tu program$ biar logikanya #alan+++
Program 2 ! -"ngg$r$tan ang(a 0%oo-#ng1
Perna!ka! kalian dikasi! nilai ulangan sis3a lalu disuru! ngurutin dari yang kecil ke
gede- ,alo #umla!nya diba3a! 16 si! gak masala!$ la! kalo ada 166 bi#i kan berabe+++
Cni solusinya;
1; Program Pengurutan<
2; var i$ #; integer<
3; k ; longint<
4; a; arrayM1++5N of longint<
5; begin
6; 3riteln(=P.':.98 8?/::1.1T,9/ 9/:,9=)<
%; 3riteln(=77777777777777777777777777=)<
&; for i;I1 to 4 do
); begin
16; 3rite(=8asukkan bilangan ke7 =$ i$ = ; =)<readln(aMiN)
11; end<
12; for #;I2 to 4 do
13; begin
14; k;IaM#N<
15; i;I#71<
16; 3!ile (iG6) and (aMiNGk) do
1%; begin
1&; aMiL1N;IaMiN<
1); i;Ii71<
26; end<
21; aMiL1N;Ik
22; end<
23; for i;I1 to 4 do
24; 3riteln(aMiN)<
25; readln<
26; end+
>!mmm+++ sebenarnya gak perlu di#elasin lagi yac! tu program$ gua !arap kalian bisa
nge7trace (menelusuri) algoritma programnya+ Program ini dibatasi untuk 4 angka
sa#a$ bisa diuba! sesuai keinginan+ Pada prinsipnya program ini memasukkan input ke
dalam array$ kemudian membandingkannya$ bila ternyata angka sebelumnya lebi!
besar$ maka dipinda! posisinya (coba dec! di trace$ pasti ngerti)+
Program ini berguna banget buat kalian yang !obi ngitung$ apa lagi buat anak smu+
1ntuk pengembanganya kalian bisa meng!itung mean$ modus dan median
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Program 3 ! )#ntang 0%oo-#ng1
(etela! sebelumnya kita bermain dengan if$ sekarang ke for+ Program di ba3a! ini
akan memunculkan output berupa sekumpulan bintang yang membentuk tangga
1; Program 5intangTangga<
2; const ak!irI1&<
3; var baris$ kolom; integer<
4; begin
5; for baris;I1 to ak!ir do
6; begin
%; for kolom;I1 to baris do
&; 3rite(=O=)<
); 3riteln<
16; end<
11; readln<
12; end+
*oba dec! di#alankan$ gimana !asilnya- menarik bukan-+ (ekarang kita coba
menampilkan sekumpulan bintang yang membentuk kubus+
1; Program 5intang,ubus<
2; uses crt<
3; Qar i$ #$ E$ y;integer<
4; 5egin
5; clrscr<
6; 0rite(=8asukkan imensi ,ubus; =)<.eadln(E)<
%; y;I6<
&; Dor i;I1 to E do
); 5egin
16; for #;I1 to E do
11; 5egin
12; y;IyL1<
13; 3rite(y;4)<
14; if y mod EI6 t!en
15; 0riteln<
16; ?nd<
1%; ?nd<
1&; readkey<
1); ?nd+
:imana- baguskan- (ekarang tugas kamu membuat sekumpulan bintang berbentuk
piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi
terbalik)
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Program 4 ! -"ngga)$ngan -rogram , * .an 2 ."ngan m"m)$at m"n$
0-ro&".$r, f$ng&#1
(etela! dari tadi bela#ar logika$ sekarang kita menggabungkan beberapa program
sebelumnya dan dibuat menu+ 1ntuk conto! ini kita memanfaatkan repeat+
1; Program :abung<
2; uses crt<
3; var pili!; integer<
4; Procedure luas<
5; Rcopy dan paste program 1S
6; end<
%; Procedure @enis5ilangan<
&; Rcopy dan paste program 2S
); end<
16; Procedure Pengurutan<
11; Rcopy dan paste program 4S
12; ?nd<
13; begin Rprogram utamaS
14; repeat
15; clrscr<
16; 3riteln(= PCJC>9/=)<
1%; 3riteln(=7777777777777777777777777777777777777777777=)<
1&; 3riteln(= 1+ 8eng!itung Juas=)<
1); 3riteln(= 2+ @enis 5ilangan=)<
26; 3riteln(= 3+ Pengurutan=)<
21; 3riteln(= 4+ ?Eit=)<
22; 3riteln(=7777777777777777777777777777777777777777777=)<
23; 3riteln<
24; 3riteln<
25; 3rite(= Pili! 9ngka untuk 8emili! Pili!an ; =)<
26; readln(pili!)<
2%; case pili! of
2&; 1 ; luas<
2); 2 ; @enis5ilangan<
36; 3 ; Pengurutan<
31; 4 ; eEit<
32; end<
33; until pili! I 4<
34; end+
/gertikan prisip ker#anya- @adi program ini !anya akan berak!ir #ika user memili! no
4+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Program 5 ! to(o 0r"6or. ."ngan arra71
Pada tutorial 5 tela! di#elaskan cara penggunaan array dan record+ (ekarang kita akan
menggabungkan array dan record tersebut+ Per!atikan program di ba3a! ini;
1; Program 9rrayHdanH.ecord<
2; type dm!sIrecord
3; nrp;stringM16N<
4; nama;stringM25N<
5; alamat;stringM56N<
6; end<
%; var data;arrayM1++3N of dm!s<
&; i;integer<
); begin
16; for i;I1 to 3 do
11; begin
12; 3rite(=nrp ; =)<readln(dataMiN+nrp)<
13; 3rite(=nama ; =)<readln(dataMiN+nama)<
14; 3rite(=alamat ; =)<readln(dataMiN+alamat)<
15; end<
16; 3riteln<
1%; 3riteln(=ata ditampilkan=)<
1&; for i;I1 to 3 do
1); begin
26; 3riteln(=nrp ; =$ dataMiN+nrp)<
21; 3riteln(=nama ; =$ dataMiN+nama)<
22; 3riteln(=alamat ; =$ dataMiN+alamat)<
23; end<
24; readln<
25; end+
i dalam program tersebut dideklarasikan ba!3a dm!s (data ma!asis3a) itu adala!
record yang mempunyai field nrp$ nama dan alamat (li!at baris 2 sampai 6)+
(elan#utnya variabel data dideklarasikan bertipe dm!s yang berbentuk array (baris ke
%)+ ,emudian seperti biasa untuk memasukkan data ke field digunakan
Areadln(dataMiN+nrp)A$ dst (baris 16 sampai 15)+ 1ntuk menampilkannya bisa dili!at
dibaris ke 1& sampai 23+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Program 8 ! O-"ra&# Str#ng
Fang ini sebenarnya program tamba!an$ !abis program7program sebelumnya kan
kebanyakan bermain logika matematik (tentang angka melulu)+ ?!!+++ dipikir7pikir$
operasi tentang string kok gak ada- Tenaaannggg++++ sekarang uda! ada kok ;p
1; var nama ; string<
2; urutan$ posisi; integer<
3; begin
4; nama;I=i#as ,eren=<
5; 3riteln(=Fang ini delete=)<
6; for urutan;I1 to 11 do
%; begin
&; posisi;I 13 7 urutan<
); delete(nama$ posisi$ 1)<
16; 3riteln(nama)<
11; end<
12; 3riteln<
13; nama;I=i#as,eren=<
14; 3riteln(=Fang ini insert=)<
15; 3riteln(=(ebelum di Cnsert ; =$ nama)<
16; insert(=7=$ nama$ 6)<
1%; 3riteln(=(etela! di Cnsert ; =$ nama)<
1&; readln<
1); end+
'utputnya seperti di ba3a! ini
Fang ini delete
i#as ,eren
i#as ,ere
i#as ,er
i#as ,e
i#as ,
i#as
i#as
i#a
i#
i

Fang ini insert


(ebelum di Cnsert ; i#as,eren
(etela! di Cnsert ; i#as7,eren
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
@adi isi penggunaan delete itu IG delete(string$ posisinya$ #umla! yang di !apus)+
(edangkan insert IG insert(yang mau disisipkan$ string$ posisinya)+ :ampang kan-
engan ini bisa dibuat kayak Program 5 lo! (tentang bintang)+
5agaimana #ika suatu saat kamu pengen ngeruba! string #adi numerik atau numerik
#adi string-
str(angkanya;desimal yang diambil$ variabel string tempat !asilnya disimpan)
prosedur ini untuk menguba! numerik ke string
val(string$ variabel numerik tempat !asilnya disimpan$ posisi sala!)
prosedur ini untuk menguba! string ke numerik+ ,!usus posisi sala!$ yang dideteksi
adala! posisi sala! yang pertama (3alaupun ada 5 bi#i yang sala!$ yang ke tangkap
yang pertama)
*oncat(string$ string$ string) ; string
Fang ini untuk menggabungkan string$ ini fungsi loo!!++ #adi !asil penggabungannya
ditampung di *oncat
Cni program terak!ir tentang operasi string$ program pembalik kata
1; program pembalikHkata<
2; var kata$!asil$tmp;string< i;integer<
3; begin
4; 3rite(=,ata ; =)<readln(kata)<
5; !asil;I==<
6; for i ;Ilengt!(kata) do3nto 1 do
%; begin
&; tmp;Icopy(kata$i$1)<
); !asil;I!asilLtmp<
16; end<
11; 3rite(=ibalik =$!asil)<
12; readln<
13; end+
i program ini ada dua fungsi operasi string baru yang digunakan+
lengt!(string) ; integer
Dungsi ini untuk meng!itung pan#ang atau #umla! karakter+
copy(string$ posisinya$ #umla! yang akan diambil)
Dungsi ini untuk mengambil se#umla! !uruf dari sting yang dimasukkan
Pos(string"!uruf yang akan dicari posisinya$ string a3al);byte
Dungsi ini untuk mengeta!ui posisi dari string"!uruf dari kata"kalimat yang dimaksud+
5ila bernilai nol berarti nilai string yang dicari tidak ada+
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
Program 9 ! Contoh -"ngg$naan t"or# .# t$tor 4
Program database ini adala! conto!7conto! penggunaan fungsi dan prosedur dari
Tutorial 6+ Per!atikan conto! berikut;
1; Program 5uatDile<
2; var fTeEt ; teEt< data; string<
3; begin
4; 3riteln(=8?/:C(C 9T9=)<
5; 3riteln(=777777777777=)<
6; assign(fTeEt$ =nama+tEt=)<
%; re3rite(fTeEt)< Rgunakan reset(fTeEt) bila file suda! adaS
&; 3riteln(fTeEt$ =di#as=)<
); 3riteln(fTeEt$ =dian=)<
16; 3riteln(fTeEt$ =cecep=)<
11; close(fTeEt)<
12; readln<
13; end+
Prosedur yang digunakan di atas adala! prosedur no+ 1 sampai 5 yang ada di Tutorial
6+ 1ntuk membaca databasenya gunakan reset (#angan re3rite) dan gunakan prosedur
no 6+ Per!atikan conto! di ba3a! ini;
assign(fTeEt$ =bil+dat=)<
reset(fTeEt)<
read(fTeEt$ data)<
3riteln(data)<
(ekarang kita gunain fungsi nomor % yac!!+++ Dungsi ini biasa digunakan untuk
membaca data yang ada dari a3al"posisi tertentu sampai ak!ir+ eof kepan#angan end
of file
3!ile not eof(fTeEt) do
begin
readln(fTeEt$ data)<
3riteln(data)<
end<
5agaimana caranya #ika ingin mengedit data yang suda! ada- :unakan prosedur seek$
perinta!nya; (eek(fTeEt$ filesi4e(fTeEt))<+ (etela! menempatkan kursor ditempat yang
diinginkan$ gunakan perinta! 3rite untuk mengedit atau prosedur Truncate untuk
meng!apus (perinta!nya Truncate(fTeEt))+ Tapi !ati7!ati mengunakan Truncate$
soalnya mulai dari posisi yang dimaksud sampai ak!ir file akan di!apus+ Dungsi dan
prosedur lainnya bisa dicoba7coba sendiri yaaa++++
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA
>uuff+++ ak!irnya kelar #uga ngeba!as dasar7dasar pascal+ ,alo kalian uda! pa!am
seluru! tutorial dan program yang ada di sini$ berarti kalian suda! mele3ati level
basic+ 1ntuk pengembangannya coba cari program7program open source$ terutama
mengenai database+ (elamat mencoba+T
Syaifudin Ramadhani, S.Kom Algoritma & Pemrograman I -- UNISLA

Anda mungkin juga menyukai