You are on page 1of 29

Mulok-Kurikulum Tingkat Satuan Pendidikan

ALGORITMA

KELAS XI- SMAN 2 SURABAYA Halaman 1

Mulok-Kurikulum Tingkat Satuan Pendidikan

ALGORITMA
Perencanaan dan perancangan program komputer juga disebut pembuatan algoritma. Secara umum, algoritma: "kumpulan urutan perintah yang menentukan operasi-operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakansuatu tugas". Bila data yang digunakan benar, maka algoritma akan selalu berhenti dengan memberikan hasil yang benar pula. Pembuatan algoritma harus selalu dikaitkan dengan: a. Kebenaran algoritma, yakni bila program selesai maka hasilnya juga benar b. Kompleksitas - lama dan jumlah - waktu proses dan penggunaan memori. Algoritma dan program yang baik, bercirikan: a. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan b. Flexible dan portable: - Flexible untuk dikembangkan lebih lanjut - Portable untuk digunakan pada berbagai sistem dan mesin c. Bersih dari kesalahan sistem ataupun lojik d. Murah: Efisien dalam penggunaan piranti memori dan penyimpanan lainnya. Cepat waktu pelaksanaannya. e. Didokumentasi dengan baik untuk pengoperasian, pemeliharaan dan pengembangan. f. Algoritma merupakan pemberian (description) pelaksanaan suatu proses. Sebuah proses dikerjakan oleh pemroses mengikuti algoritma yang sudah dibuat. Algoritma merupakan urutan langkah instruksi yang logis. Setiap langkah instruksi mengerjakan suatu tindakan aksi. Bila suatu aksi dilaksanakan, maka operasi atau sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Hasil atau pengaruh suatu aksi diamati dengan membandingkan keadaan sebelum (t0) dan sesudah suatu aksi dikerjakan (t1). t0: kumpulan data ke 1 .. N belum terurut membesar Algoritma PENGURUTAN DATA t1: kumpulan data ke 1 .. N terurut membesar

Aturan Penulisan Teks Algoritma


Tidak ada notasi yang baku dalam penulisan teks algoritma. Algoritma bukanlah program yang harus mengikuti aturan-aturan tertentu. Meski demikian, algoritma dituliskan mendekati gaya bahasa pemrograman umumnya. Misal, tulis nilai X dan Y, dituliskan dalam algoritma sebagai write(X,Y). Perhatikan dalam notasi write(X,Y) ini hanya memerintahkan penyajian nilai X ke piranti keluaran (output). Dalam notasi itu juga tidak memasalahkan format ataupun bentuk-bentuk tampilan lainnya, seperti dicetak dalam satu baris X dan Y, pemakaian pemisah antara X dan Y menggunakan koma atau spasi. Hal-hal yang bersifat teknis ini baru dipikirkan waktu penulisan program. Algoritma adalah bebas bahasa pemrograman. Teks Algoritma. Mengikuti alur konsep pemrograman prosedural, suatu teks algoritma disusun dalam tiga bagian, yaitu: a. Bagian kepala algoritma, b. Bagian deklarasi, dan

KELAS XI- SMAN 2 SURABAYA Halaman 2

Mulok-Kurikulum Tingkat Satuan Pendidikan

c. Bagian deskripsi algoritma. Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. Bagian penjelasan diawali dan diakhiri dengan simbol { dan }. Algoritma NAMA_ALGORITMA { Penjelasan tentang algoritma yang menguraikan secara singkat hal-hal yang dilakukan oleh algoritma } DEKLARASI { Semua nama yang digunakan, meliputi nama-nama: tipe, konstanta, variabel. Juga nama sub-program dinyatkan di sini } DESKRIPSI { Semua langkah atau aksi algoritma dituliskan di sini } Contoh: 1). Kepala algoritma: Algoritma Luas_Lingkaran { Menghitung luas lingkaran dengan ukuran jejari tertentu. Algoritma menerima masukan jejari lingkaran, menghitung luasnya, dan menyajikan hasilnya ke piranti keluaran } Perhatian, dalam menulis namanama dalam algoritma harus mempunyai makna yang mencerminkan proses, sifat atau identitas lainnya yang melekat dengan suatu proses, tipe, konstanta, variabel, subprogram dan lain-lainnya.Nama-nama yang bermakna disebut mnemonic. 2) Deklarasi algoritma: DEKLARASI { nama konstanta } const PHI = 3.14; { Nilai phi = 22/7 } { nama peubah } var R : real; { input jejari lingkaran bilangan riil } l_Lingkaran : real; { luas lingkaran bilangan riil } { nama sub program } procedure TUKAR(input/output A:integer, input/output B:integer) { Mempertukankan nilai A dan B.Parameter A dan B sudah terdefinisi nilainya.Setelah pertukaran, A berisi nilai B dan B berisi nilai A } 3) Deskripsi algoritma: Bagian ini merupakan bagian inti algoritma yang berisikan uraian langkah-langkah penyelesaian suatu masalah. Setiap langkah algoritma dibaca dari atas ke bawah. Urutan penulisan menentukan urutan pelaksanaan perintah. { Baca data jejari lingkaran R.Jika R <= 0 tulis pesan data salah, selain itu hitung luas ingkaran. Tampilkan luas lingkaran. } baca(R); jika R <= 0 then tulis("Data salah !") selain itu l_Lingkaran = PHI x R x R; tulis(l_Lingkaran);

Diagram Alir (Flow chart)


KELAS XI- SMAN 2 SURABAYA Halaman 3

Mulok-Kurikulum Tingkat Satuan Pendidikan

Merupakan bentuk grafis/visual dari algoritma Bentuk umum dari simbol-simbol dalam diagram alir: 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 komentar

Contoh pemakaian flowchart: Sequential (berurutan) perhitungan volume dan luas permukaan silinder

KELAS XI- SMAN 2 SURABAYA Halaman 4

Mulok-Kurikulum Tingkat Satuan Pendidikan

Selection/Branching Structure (Struktur pemilihan)

Repetition/Looping Structure(Struktur pengulangan)

Kombinasi
KELAS XI- SMAN 2 SURABAYA Halaman 5

Mulok-Kurikulum Tingkat Satuan Pendidikan

Pseudocode Pseudocode adalah penulisan algoritma menggunakan gaya bahasa pemrograman pemrograman tertentu. Contoh deskripsi algoritma di atas bila ditulis menggunkan gaya bahasa PASCAL akan berbentuk: BEGIN { mulai } { input } read(R); { proses } jika R <= 0 then tulis("Data salah !") selain itu l_Lingkaran = PHI x R x R; { output } tulis(l_Lingkaran); END; { selesai }

KELAS XI- SMAN 2 SURABAYA Halaman 6

Mulok-Kurikulum Tingkat Satuan Pendidikan

PASCAL

KELAS XI- SMAN 2 SURABAYA Halaman 7

Mulok-Kurikulum Tingkat Satuan Pendidikan

MENGENAL PASCAL
Perkembangan Pascal Pascal adalah bahasa tingkat tinggi (high level language) yang orentasinya pada segala tujuan, dirancang oleh Professor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematika dan philosophi terkenal abad 17 dari Prancis. Professor Niklaus With memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya memperkenalkan pemrograman yang terstruktur ( Structured Programming), jadi Pascal adalah Bahasa yang ditujukan untuk membuat program terstruktur. 1. TIPE DATA Jika kita menggunakan pengenal variabel di dalam program, maka variabel tersebut harus kita deklarasika terlebih dahulu. Pada waktu kita mendeklarasika suatu variabel, maka kita harus menentukan tipe dari datanya. Type dari data ini menunjukkan suatu nilai yang dapat digunakan oleh variabel bersangkutan. Pada pokok bahasan ini akan dijelaskan bentuk type data standar, yaitu dapat berbentuk tipe-tipe data numerik integer, numerik real, karakter, string dan boolean. 1.1 Tipe data Numerik integer Data numeik integer merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadesimal. Nilai integer hexadesimal diawali dengan tanda dollar ($). Turbo Pascal menyediakan 5 macam tipe data integer yang masing-masing mempunyai jangkauan nilai yang berbeda seperti pada tabel berikut : Type Byte Shortint Integer Word Longint Ukuran memori (dalam byte) 1 1 2 2 4 Jangkauan Nilai 0 255 -128127 -3276832767 065535 -2147483648 2147483648

1.2 Tipe data Numerik Real Nilai konstanta numerik real berkisar dari 1E-38 sampai dengan 1E+38 dengan mantissa yang signifikan sampai dengan 11 digit . E menunjukkan nilai 10 pangkat. Nilai konstanta numerik real menempati memori sebesar 6 byte. Berikut tabel tipe data real

Type

Ukuran memori

Jangkauan Nilai

Digit

KELAS XI- SMAN 2 SURABAYA Halaman 8

Mulok-Kurikulum Tingkat Satuan Pendidikan

(dalam byte) Single Double Extended Comp 4 8 10 8 1.5x10E-45 3.4 x 10E38 5.0x10E-324 1.7x10E308 1.9x10E-49511.1x10E4932 -2E+63+1 2E+63-1

signifikan 7-8 15-16 19-20 19-20

1.3 Tipe data Karakter Nilai data katakter berupa sebuah karakter yang ditulis diantara tanda petik tunggal, seperti misalnya A, a, !, %, 5 dan sebagainya. Penggunaan variabel untuk menyimpan data tipe karakter ini harus dideklarasikan dengan tipe char. Contoh penggunaannya : Program char; Uses crt; Var Inikarakter :char; Begin Clrscr; Inikarakter :=A; Writeln (Karakter yang disebut adalah = ,inikarakter); End. 1.4 Tipe data String 0Nilai data string merupakan urut-urutan dari karakter yang terletak di antara tanda petik tunggal. Bila karakter petik merupakan bagian dari konstanta string, maka dapat ditulis dengan menggunakan dua buah petik tunggal berurutan. Nilai data string akan menempati memori sebesar banyaknya karakter string ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya adalah 255 karakter. Contoh : Uses crt; Var Tanggal:string[10]; Hari :string[6]; Tempat:String[15]; Begin Tanggal :=18-07-2007; Hari :=Sabtu; Tempat:=SMADA; Writeln (tanggal,hari,tempat); End. 1.5 Tipe Data Boolen Tipe data boolean mempunyai dua buah nilai, yaitu True dan False. Kita dapat
KELAS XI- SMAN 2 SURABAYA Halaman 9

Mulok-Kurikulum Tingkat Satuan Pendidikan

mendeklarasikan suatu variabel dengan tipe boolean dan mengisi variabel tersebut dengan nilai data boolean True dan False. Contoh Uses crt; Var Lagi : boolean; Begin Lagi :=true; Writeln (Nilai lagi =,lagi); End. 2. STATEMEN DALAM TURBO PASCAL Statemen adalah perintah untuk pengerjaan program pascal. Statemen terletak di bagian deklarasi statemen dengan diawali oleh kata cadangan BEGIN dan diakhiri dengan kata cadangan END. Akhir dari setiap statemen diakhiri dengan titik koma [;]. Statemen statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi dan prosedur yang telah disediakan sebagai perintah standar Turbo Pascal. 2.1. Statemen-statemen yang digunakan untuk input/output. Read/Readln [prosedur]. Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu variabel. Sintaks: Read/Readln(x); (ingat, selalu diakhiri dengan titik koma [;]) Keterangan : x = variabel. Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya. Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input. ReadKey [fungsi]. Untuk pembacaan sebuah karakter dari keyboard. Tipe data yang dihasilkan adalah char. Sintaks: ReadKey; Write/Writeln [prosedur]. Digunakan untuk menampilkan isi dari suatu nilai variable dilayar. Sintaks: Write/Writeln(x); Keterangan : x = variabel. Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor Contoh :

KELAS XI- SMAN 2 SURABAYA Halaman 10

Mulok-Kurikulum Tingkat Satuan Pendidikan

2.2. Statemen-statemen yang digunakan untuk pengaturan letak layar. ClrScr [prosedur]. Perintah ini digunakan untuk membersihkan layar. sintaks: ClrScr; [Clear screen] GotoXY[prosedur]. Untuk menempatkan posisi kursor pada layar. Sintaks: GotoXY(X, Y: Byte); Keterangan : X = sumbu X (posisi horisontal) Y = sumbuY (posisi vertikal) DelLine [prosedur]. Untuk menghapus sebuah baris pada posisi kursor dan menaikkan barisbaris dibawahnya. Sintaks: DelLine; InsLine [prosedur]. Untuk menyisipkan sebuah baris pada posisi kursor dan meng-geser kebawah tampilan-tampilan baris dibawahnya. Sintaks: InsLine; Delay [prosedur]. Untuk menghentikan sejenak proses program. Sintaks: Delay (MS: Word); Keterangan : variable MS = ukuran waktu dalam milisecond.

KELAS XI- SMAN 2 SURABAYA Halaman 11

Mulok-Kurikulum Tingkat Satuan Pendidikan

2.3. Statemen yang digunakan untuk memanipulasi string. ConCat[fungsi]. Untuk menggabungkan 2 atau beberapa variabel string. Sintaks: ConCat (s1 [,s2,...,sn]: String) : String; contoh: ConCat ('ABC','DEF') { ABCDEF } Copy [fungsi]. Mengambil satu atau beberapa karakter dari sebuah string. Sintaks: Copy (S,Index,Count) : String; Keterangan : S = sebuah string (string). Index = posisi awal kita akan mengambil beberapa karakter (integer) Count = banyaknya karakter yang akan diambil (integer). Delete [prosedur]. Menghapus sebagian karakter dari sebuah string. Sintaks: Delete (S,Index,Count); Keterangan : sama dengan statemen Copy. Insert [prosedur]. Menyisipkan satu atau beberapa karakter ke dalam sebuah string. Sintaks: Insert (Source,var S,Index); Keterangan : Source = sumber string untuk disisipi (string) var S = string tujuan yang akan disisipi oleh string Source (string) Index = posisi mulai (integer). Length [fungsi]. Memberikan nilai panjang dari suatu string (jumlah karakter dalam string). Sintaks: Length (S); Keterangan : S = string Length(S) menghasilkan nilai integer. Pos [fungsi]. Mencari posisi sebuah bagian string (substring) didalam sebuah string. Sintaks: Pos (Substr,S); {menghasilkan nilai Byte} Keterangan : Substr = substring yang akan dicari posisinya di dalam sebuah string S. Bila bernilai 0 berarti nilai string yang dicari tidak ada. Str [prosedur]. Merubah nilai numerik ke dalam nilai string. Sintaks: Str (N,S); Keterangan : N = data tipe integer, S = data tipe string. Val [prosedur]. Merubah nilai string ke dalam nilai numerik. Sintaks: Val (S,N,P); Keterangan : S = nilai string, N = nilai real, P = posisi salah. Nilai string harus berisi angka, plus atau minus, bila tidak berarti kesalahan dan letak kesalahannya ditunjukkan oleh va-riabel posisi salah. Jika benar, maka nilai variabel tsb = 0 (nol). UpCase [fungsi].
KELAS XI- SMAN 2 SURABAYA Halaman 12

Mulok-Kurikulum Tingkat Satuan Pendidikan

Memberikan huruf kapital dari argumen. Sintaks: UpCase (S); Keterangan : S = variabel bertipe karakter. Contoh : Program CobaString; Uses Crt; Var s : String; l : Integer; h : String; Const a ='Smada'; b ='go...'; c ='Sukses'; Begin Clrscr; s:=ConCat(a,b,c); Writeln(s); Insert('&',s,10); Writeln(s); Delete(s,7,7); Writeln(s); h :=Copy(s,l,5); Writeln(h); l:=length(s); Writeln ('Panjang String S:',l); Writeln ('Posisi"Sukses" pada nilai S:',POS('Sukses',s)); readln; end. 2.4. Statemen-statemen untuk perhitungan aritmatik. Abs [fungsi]. Memberikan nilai mutlak dari suatu argumen. Sintaks: ABS(x); ArcTan [fungsi]. Memberikan nilai dari fungsi arctangent dari perhitungan goniometri. Sintaks: ArcTan (x); dimana x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real. Cos [fungsi]. Memberikan nilai dari fungsi Cosinus. Sintaks: Cos (x); Exp [fungsi]. Menghitung nilai pangkat dari bilangan e (bilangan alam), yaitu sebesar x. Sintaks: Exp (x); x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real. Frac [fungsi]. Untuk mendapatkan nilai pecahan dari suatu bilangan. Sintaks: Frac (x); Tipe dari x sama seperti yang diatas.
KELAS XI- SMAN 2 SURABAYA Halaman 13

Mulok-Kurikulum Tingkat Satuan Pendidikan

Int [fungsi]. Memberikan nilai integer (bilangan bulat) dari suatu variabel dengan membuang bilangan di belakang koma. Sintaks: Int (X); Ln [fungsi]. Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x. Sintaks: Ln (x); Sin [fungsi]. Memberikan nilai dari fungsi Sinus. Sintaks: Sin (x); Sqr [fungsi]. Digunakan untuk menghitung nilai pangkat kuadrat dari suatu bilangan. Sintaks: Sqr (x); Tipe dari x bisa berupa real maupun integer. Dan hasilnya akan sama dengan tipe dari x. Sqrt (fungsi). Digunakan untuk menghitung nilai akar dari suatu bilangan. Sintaks: Sqrt (x); Contoh : Program Aritmatik; Uses Crt; Var x : Real; Begin Clrscr; Write('Masukkan nilai dari X = '); Readln (x); If x<0 Then x:=Abs (x); Writeln('Nilai X = ',x:5:2); Writeln ('Nilai eksponentialnya = ',EXP(x):9:3); Writeln ('Nilai logaritma alamnya = ',LN(x):9:3); Writeln ('Nilai integernya = ',INT(x):5:2); Writeln ('Nilai fraksionalnya = ',FRAC(x):5:2); Writeln ('Nilai X dipangkatkan = ',SQR(x):9:3); Writeln ('Nilai X diakarkan = ',SQRT(x):9:3); Write('Nilai X jika dimasukkan dalam '); Writeln('fungsi Sin,Cos,Tangen: '); Writeln('- Sinus = ',Sin(x):9:3); Writeln('- Cosinus = ',Cos(x):9:3); Writeln('- Tangen = ',ArcTan(x):9:3); readln; End. 2.5. Statemen-statemen untuk transfer nilai dari suatu variabel. Chr [fungsi]. Merubah nilai dari byte ke bentuk karakter yang sesuai dengan kode ASCII. intaks: Chr (x); Keterangan : x bertipe byte contoh : Writeln (Chr (61));
KELAS XI- SMAN 2 SURABAYA Halaman 14

Mulok-Kurikulum Tingkat Satuan Pendidikan

hasilnya : a Ord [fungsi]. Merubah nilai suatu variabel dari bentuk karakter ke bentuk longint. Sintaks: Ord (x); Keteranagn : x bertipe char contoh : Writeln(Ord ('B')); hasilnya : 42 Round [fungsi]. Membulatkan data tipe real ke data tipe longint. Sintaks: Round (x); Keterangan : Jika nilai pecahan < 0,5 maka dibulatkan kebawah. Jika nilai pecahan > 0,5 maka dibulatkan keatas. contoh : Writeln('10/3 dibulatkan = ',Round(10/3)); hasilnya : 10/3 dibulatkan = 3 TRUNC [fungsi]. Membulatkan kebawah data tipe real ke data tipe longint. Sintaks: Trunc (x); contoh : Writeln('20/3 dibulatkan kebawah = ',Trunc (20/3)); hasilnya : 20/3 dibulatkan kebawah = 6 2.6. Statemen-statemen untuk memanipulasi data. Pred [fungsi]. Memberikan nilai sebelum nilai argumen dalam urutannya dalam ASCII. Sintaks: Pred (x); Succ [fungsi]. Memberikan nilai sesudah nilai argumen dalam urutannya dalam ASCII. Sintaks: Succ (x); Inc[fungsi]. Menambah (increments) nilai suatu variabel. Sintaks: Inc (x,i); {i >= 1} Dec [fungsi]. Mengurangi (decrements) nilai suatu variabel. Sintaks: DEC(x,i); {i >=1} Contoh : Uses Crt; Type hari = (hr0,hr1,hr2,hr3,hr4,hr5,hr6,hr7); Var urutanhr : hari; Const namahr : Array [hr1..hr7] of String [6]= ('Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu'); Begin clrscr; Writeln('Daftar Nama Hari'); urutanhr := hr0; While Urutanhr < hr7 DO
KELAS XI- SMAN 2 SURABAYA Halaman 15

Mulok-Kurikulum Tingkat Satuan Pendidikan

Begin urutanhr := Succ(urutanhr); Write('hari ke ',Ord(Urutanhr):2,' adalah '); Writeln(namahr[urutanhr]); End; readln; End. 2.7. Statemen-statemen tambahan (warna,suara dan window). TextColor [prosedur]. Untuk mengatur warna dari karakter-karakter di layar. Sintaks: TextColor (color : Byte); Catatan : untuk pilihan warna lihat pada buku Turbo Pascal yang anda miliki. Daftar TextColor : 2 Hijau Muda 3 Hijau pupus 4 Merah 5 Ungu Tua 6 Kuning 7 Putih 8 Biru Tua 9 Biru Cerah 1 0 Hijau Muda 12 Merah Muda 13 Ungu Cerah 1 4 Kuning muda 15 Ungu Pupus 16 Hitam Daftar TextColor Blink: 17 Biru Tua 18 Hijau Muda 19 Hijau Pupus 20 Merah 21 Ungu Tua TextBackGround [prosedur]. Untuk mengatur warna latar belakang dari karakter-karakter di layar. Sintaks: TextBackGround (Color : Byte); Window [prosedur]. Untuk membuat suatu jendela (window) yang terletak pada layar. Sintaks: Window (x1,x2,y1,y2 : Byte); x1,x2 = kordinat kiri atas dengan nilai maksimal sesuai dengan mode layar. y1,y2 = kordinat kanan bawah dengan nilai maksimal sesuai dengan mode layar. TextMode [prosedur]. Untuk mengatur lebar layar, 80 kolom atau 40 kolom. Sintaks: TextMode(Mode: Byte); Default = C80 Sound [prosedur]. Untuk mengaktifkan suara (beep) pada internal speaker. Sintaks: Sound (Hz : word); Untuk mengnonaktifkannya, gunakan statemen NoSound. Contoh : Program Layar2; Uses Crt; Begin ClrScr; Window (5,5,20,75);

KELAS XI- SMAN 2 SURABAYA Halaman 16

Mulok-Kurikulum Tingkat Satuan Pendidikan

TextBackGround(green); TextColor(yellow); Sound (220); GotoXY(10,5); Writeln('I Love My Baby'); GotoXY(10,7); Writeln('Zahra ....'); NoSound; Readln; End. 3. BENTUK PERULANGAN & PENYELEKSIAN KONDISI Materi ini memberikan penjelasan mengenai struktur perulangan dengan statement For, termasuk didalamnya : 1. Pengertian dan contoh perulangan statement For Positif. 2. Pengertian dan contoh perulangan statement For Negatif. 3. Pengertian dan contoh perulangan tersarang (Nested Loop). Memberikan Penjelasan dan contoh mengenai struktur perulangan dengan statement While-Do termasuk didalamnya penjelasan mengenai While-Do tersarang (nested While-Do). Memberikan penjelasan dan contoh mengenai perulangan dengan Statement Repeat-Until termasuk di dalamnya penjelasan mengenai Repeat -Until tersarang Memberikan penjelasan dan contoh mengenai penyeleksian kondisi dengan : 1. Statement If - Then 2. Statement If - Then - Else 3. Statement If tersarang (Nested IF) 4. Statement Case - Of 5. Statement Case - Of Else 3.1 Bentuk-bentuk Perulangan Dalam hampir setiap program yang kompleks mutlak memerlukan suatu rulangan dan percabangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok statement berulang kali sesuai sejumlah yang ditentukan pemakai. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas. 3.2. Perulangan For. Perulangan dengan statemen For digunakan untuk mengulang statemen atau suatu blok statemen berulang kali. Perulangan dengan statemen For dapat berupa perunlangan positif dan perulangan nega-tif. 3.3. Perulangan For positif Contoh : Perulangan positif untuk satu statement : uses crt;
KELAS XI- SMAN 2 SURABAYA Halaman 17

Mulok-Kurikulum Tingkat Satuan Pendidikan

var i :integer; begin clrscr; Writeln ('Ucapkan SMADA 4x....'); for i:= 1 to 4 do writeln (i,' SMADA YESS'); readln; end. 3.4 Contoh dengan menggunakan blok statement: Cara penulisannya dengan pada awal blok diawali dengan Begin dan pada akhir blok diakhiri dengan End; Contoh uses crt; var i :integer; begin clrscr; Writeln ('Ucapkan SMADA 4x....'); for i:= 1 to 4 do Begin writeln (i,' SMADA YESS'); end; readln; end. Hasil yang akan didapat akan sama dengan contoh yang pertama, tapi yang harus diingat disini untuk penggunaan blok pada perula-ngan For biasanya mempunyai banyak statement [lebih dari 1 statement] Penggunaan perulangan For dalam blok statement untuk membuat tabel Contoh Uses Crt; Var a,b,c : Integer; bagi : Real; Begin clrscr; Writeln('-------------------------------------'); Writeln(' a a*a a*a*a I/a '); Writeln('-------------------------------------'); For a := 1 To 10 Do Begin b:= a*a; c:=a*a*a; bagi := 1/a; Writeln(a:4,b:10,c:10,bagi:12:3); End;
KELAS XI- SMAN 2 SURABAYA Halaman 18

Mulok-Kurikulum Tingkat Satuan Pendidikan

Writeln ('-------------------------------------'); readln; End. Maka hasilnya : a 1 2 3 4 5 6 7 8 9 10 a*a 1 4 9 16 25 36 49 64 81 100 a*a*a 1 8 27 64 125 216 343 512 729 1000 1/a 1.000 0.500 0.333 0.250 0.200 0.167 0.143 0.125 0.111 0.100

3.5 Perulangan For negatif Perulangan negatif adalah perulangan dengan menghitung (counter) dari besar kekecil. Statement yang digunakan adalah For-DownTo-Do Contoh : Uses Crt; Var i : Integer; Begin clrscr; For i := 10 DownTo 1 Do {Write (i:3); -> Hasil Harizontal} writeln (i:3); readln; End. Hasil : 10 9 8 7 6 5 4 3 2 1 3.6 Perulangan For tersarang Perulangan For tersarang adalah perulangan For yang berada pada perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya. Contoh : uses crt; Var a,b : Integer;
KELAS XI- SMAN 2 SURABAYA Halaman 19

Mulok-Kurikulum Tingkat Satuan Pendidikan

Hasil : 1 2 3

Begin clrscr; For a := 1 To 3 Do Begin For b := 1 To 2 Do Write (a :4,b:2); Writeln; End; readln; End. 1 1 1 12 22 32

3.7. Perulangan While - Do Penyeleksian kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Perulangan While - Do tidak dilakukan jika kondisi tidak terpenuhi. Contoh : Uses Crt; Var i : Integer; Begin clrscr; i := 0; While i<= 10 do Begin Write (i:3); Inc (i); { sama dengan i:=i+1 } End; readln; End. Hasilnya : 0 1 2 3 4 5 6 7 8 9 10 3.8. Perulangan While - Do tersarang Perulangan While - Do tersarang (nested While - Do) merupakan perulangan While - Do yang satu di dalam perulangan While - Do yang lainnya. Contoh : Uses Crt; Var a, b : Integer; Begin ClrScr;
KELAS XI- SMAN 2 SURABAYA Halaman 20

Mulok-Kurikulum Tingkat Satuan Pendidikan

a:=1; b:=1; While a <=3 Do{ loop selama a masih lebih kecil dari 4 } Begin a := a+1; While b < 6 Do{ loop selama b masih lebih kecil dari 3 } Begin Writeln (a:5,b:5); b:=b+2; End; End; Readln; End. 3.9. Perulangan Repeat - Until. Repeat - Until digunakan untuk mengulang statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak terpenuhi. Sintak dari statement ini adalah : Contoh : uses crt; Var i : Integer; Begin clrscr; i:=0; Repeat inc(i); writeln(i); Until i=5; readln; End. 3.10. Repeat - Until tersarang Repeat - Until tersarang adalah suatu perulangan Repeat - Until yang satu berada didalam perulangan Repeat - Until yang lainnya. Contoh : uses crt; Var a,b,c : Real; Begin clrscr; Writeln('================================'); Writeln(' sisi A Sisi B Sisi C '); Writeln(' ==============================='); a:= 1;
KELAS XI- SMAN 2 SURABAYA Halaman 21

Mulok-Kurikulum Tingkat Satuan Pendidikan

Repeat { perulangan luar} b := 0; Repeat{ perulangan dalam } c:=Sqrt (a*a+b*b); Writeln (a:6:2, b:9:2, c:9:2); b:=b+5; Until b>25; { berhenti jika b lebih besar dari 5 untuk perulangan dalam } a:=a+1; Until a>3; {berhenti jika a lebih besar dari 3 untuk perulangan luar } Writeln('================================='); readln; End. 3.11. Percabangan If - Then Bentuk struktur If - Then adalah sebagai berikut : If Kondisi Then Statement Ungkapan adalah kondisi yang diseleksi oleh statement If. Bila kondisi yang diseleksi terpenuhi, maka statement yang mengi-kuti Then akan diproses, sebaliknya bila kondisi tidak terpenuhi, maka yang akan diproses statement berikutnya. Misalnya : If Pilihan = 2 Then Begin{ jika kondisi terpenuhi, Yaitu jika pilihan = 2 } End Else{ jika kondisi tidak terpenuhi, yaitu jika pilhan tidak sama dengan 2} Begin End; Contoh Program : Uses Crt; Var Nilai : Real; Begin clrscr; Write ('Jumlah Nilai :'); Readln (nilai); { Pemasukan data } If nilai > 60 Then { seleksi kondisi variabel nilai } Writeln('Lulus') { Dilaksanakan jika nilai lebih besar dari 60 } Else Writeln('Tidak lulus'); { Dilaksanakan jika variabel nilai lebih kecil dari 60 } readln; End. Hasil : Jika kita Memasukan 40 pada varibel nilai, Maka program diatas akan mencetak Tidak lulus.

KELAS XI- SMAN 2 SURABAYA Halaman 22

Mulok-Kurikulum Tingkat Satuan Pendidikan

3.12. If tersarang (nested If) Struktur If tersarang merupakan bentuk dari suatu statement If berada di dalam lingkungan statemen If yang lainya. Bentuk statement If tersarang sebagai berikut : If kodisi1 Then atau If Kondisi1 Then If kondisi2 Then Begin statemen 1 IF kondisi2 Then Else statemen 1 statemen2; Else statemen2 End; 3.13. Case Of Struktur Case - Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector. Statement yang mempunyai case label yang bernilai sama dengan case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainya tidak. Bentuk struktur dari Case - Of: Case Variabel Kondisi Of Case - Label 1; Statement 1; Case - Label 2; Statement 2; Case - Label 3; Statement 3; Case - Label 4; Statement 4; Case - Label n ; Statement n ; End ; { end dari case } Daftar Case label dapat berupa konstanta, range dari konstanta yang bukan bertipe real. Contoh program ; Program nilai; uses crt; Var n : char ; Begin clrscr; Write ('Nilai Numerik yang didapat :'); Readln (n); Case n Of 'A': Writeln ('Sangat Baik'); 'B': Writeln('Baik'); 'C': Writeln('Cukup'); 'D': Writeln('Kurang'); 'E': Writeln('Sangat Kurang'); End; readln; End. 4. CONTOH PROGRAM LAINNYA 1. Program input data dengan array.
KELAS XI- SMAN 2 SURABAYA Halaman 23

Mulok-Kurikulum Tingkat Satuan Pendidikan

Program PemakaianArrayUntuk l Odatadenganmenggunakan For; Contoh Program : Uses Crt; Const garis='============================================================'; Var UH1,UH2 : Array [1..10] Of 0..100; {Array dgn Type subjangkauan} induk : Array [ 1.. 10] Of String [8]; nama : Array [1.. 10] Of String [15]; n,i,bar : Integer; jum : Real; tl : Char; Begin clrscr; { pemasukan data dalam array } gotoxy(25,2); Write ('Mau Isi Berapa Data:'); Readln (n); For i:= 1 To n Do Begin ClrScr; GotoXY(20,4+1); Write('Data Ke- :',i:2); GotoXY(20,5+i); Write('No Induk :'); Readln (Induk[i]); GotoXY(20,6+i); Write('Nama :'); Readln (nama[i]); GotoXY(20,7+i); Write('Nilai UH 1 :'); Readln (UH1[i]); GotoXY(20,8+i); Write('Nilai UH 2 :'); Readln (UH2[i]); End; { proses data dalam array } ClrScr; GotoXY(5,4); Write(Garis); GotoXY(5,5); Write ('NO'); GotoXY(9,5); Write ('INDUK'); GotoXY(18,5); Write ('N A M A'); GotoXY(40,5); Write ('UH 1'); GotoXY(48,5); Write ('UH 2'); GotoXY(55,5); Write ('RATA2'); GotoXY(66,5); Write ('KET'); GotoXY(5,6); Write (Garis); {proses Cetak isi array dan seleksi kondisi } bar := 7; For i:= 1 To n Do Begin jum:=(uh1[i]+uh2[i])/2; If jum>=90 Then tl:='A' Else
KELAS XI- SMAN 2 SURABAYA Halaman 24

Mulok-Kurikulum Tingkat Satuan Pendidikan

If jum>80 Then tl:='B' Else If jum>60 then tl:='C' Else If jum>50 Then tl:='D' Else tl:='E'; {cetak hasil yang disimpan di array dan hasil } { penyeleksian kondisi } GotoXy(5,bar); Writeln(i:2); GotoXy(9,bar); Writeln (Induk[i]); GotoXy(18,bar); Writeln (NAMA[i]); GotoXy(38,bar); Writeln (UH1[i]:4); GotoXy(46,bar); Writeln (UH2[i]:4); GotoXy(54,bar); Writeln (jum:6:2); GotoXy(66,bar); Writeln (tl); bar:=bar+1; End; GotoXY(5,bar+1); Writeln(garis); Readln; End. Hasil

2. Program jendela bergerak. Program Window_Bergerak_dgn_delay; Uses Crt; Var i : Integer; Begin For i:=1 To 15 Do Begin Sound (i*200); Delay (100); NoSound;

KELAS XI- SMAN 2 SURABAYA Halaman 25

Mulok-Kurikulum Tingkat Satuan Pendidikan

End; TextBackGround(Yellow); ClrScr; For i := 1 To 9 Do Begin TextBackGround(Red); Window (42-i*4,10-i,38+i*4,15+i); ClrScr; Delay(100); End; TextColor(15); GotoXY(28,2);Writeln('c'); GotoXY (8,3);Writeln ('3'); GotoXY (28,4);Writeln ('A'); TextColor(Blue); GotoXY (44,3);Writeln ('3'); GotoXY (44,2);Writeln ('&'); TextColor(29); Writeln ('U'); TextColor (red*25); GotoXY (30,3); Writeln ('B E L A J A R'); TextColor (Blue); GotoXY (5,5); Write('U'); For i := 6 To 64 Do Begin GotoXY (i,5); Writeln (''); End; For i := 6 To 20 Do Begin GotoXY(5,i); Writeln('3 '); End; GotoXY (5,21); Writeln (' '); TextColor( white); GotoXY(65,5); Write('U'); For i := 6 To 65 Do Begin GotoXY (i,21); Writeln(' ');
KELAS XI- SMAN 2 SURABAYA Halaman 26

Mulok-Kurikulum Tingkat Satuan Pendidikan

End; For i := 6 To 20 Do Begin GotoXY(65,i); Writeln('3'); End; GotoXY (65,21); Writeln ('c'); TextColor(yellow); Readln; End. 5. PROSEDUR DAN FUNGSI 5.1. Procedure Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Prosedur diawalai dengan kata cadangan Procedure didalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan didalam blok program yang lainnya dengan menyebutkan judul prosedurnya. 5.1.1. Procedure Dasar Procedure hallo; Begin Writeln ( Hai Pa kabar!); End; Begin Hallo; Writeln (Percobaan); End. 5.1.2. Procedure Standart uses crt; Procedure hitung; Var x,y,z :integer; Begin clrscr; Write ('Masukkan Nilai X :' ); Readln (x); Write ('Masukkan Nilai Y :' ); Readln(y); Z:=x+y; Writeln ('Hasil Penjumlahan : ',z:0); end; Begin hitung; readln; End.
KELAS XI- SMAN 2 SURABAYA Halaman 27

Mulok-Kurikulum Tingkat Satuan Pendidikan

5.1.3. Procedure Value Parameter uses crt; Procedure tambah(x,y :integer); Var z :integer; Begin Z:=x+y; Writeln ('Hasil Penjumlahan : ',z:0); end; var x,y :integer; begin clrscr; Write('Nilai x: '); readln(x); Write('Nilai y: '); readln(y); tambah(x,y); readln; End. 5.1.4. Procedure Acuan uses crt; Procedure tambahAcuan(var x,y,z :integer); begin z:= x+y; end; var x,y,z :integer; begin Write('Nilai x: '); readln(x); Write('Nilai y: '); readln(y); clrscr; tambahAcuan(x,y,z); Writeln ('hasil X: ',x:2,' hasil Y :',y:2,' hasil Z :',z:2); readln; End.

5.2.

Fungsi Standart uses crt; type huruf =string[15]; function garis :huruf;

KELAS XI- SMAN 2 SURABAYA Halaman 28

Mulok-Kurikulum Tingkat Satuan Pendidikan

Begin garis :='---====---'; end; begin clrscr; writeln(garis); writeln('Belajar Yo'); Writeln(garis); readln; end.

KELAS XI- SMAN 2 SURABAYA Halaman 29

You might also like