Delivered by FeedBurner
Minggu, 13 Maret 2011
Pengenalan Algoritma dan Analisa Kasus
1.1 Definisi Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis |
Sebagai pembanding,disini dikemukakan definisi kata algoritma menurut kamus besar bahasa Indonesia (KBBI) terbitan Balai Pustaka Tahun 1988 :
Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah |
1.1.1 Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi, pemilihan aksi dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk konstruksi suatu algoritma. Jadi sebuah algoritma dapat dibangun dari tiga buah struktur dasar,yaitu :
1.1.2 Implementasi Algoritma dalam Pascal
Pada dasarnya, pokok yang paling dasar dalam pembuatan program ada 3, yaitu:
- Nama Program
Spesifikasi teks algoritmik secara umum
- Kamus
Pada bagian ini dilakukan pendefinisan nama variable. Variabel adalah tempat penyimpanan data. Penamaan variabel ini memiliki aturan, selanjutnya aturan tersebut kita kenal dengan aturan penamaan identifier. Aturan penamaan identifier tersebut adalah sebagai berikut:
- maksimal 32 karakter
- hanya boleh terdiri dari karakter huruf abjad (A-Z, a-z), angka (0-9), dan garis bawah / underscore ( _ )
- harus diawali dengan karakter huruf abjad
- tidak boleh sama dengan identifier lain
- tidak boleh sama dengan keyword (kata kunci), seperti program, var, begin, end dll.
Aturan penamaan identifier ini berlaku juga untuk nama program, penamaan konstanta, tipe bentukan, label, fungsi, prosedur, unit, dll.
Data yang yang disimpan pada variable harus memiliki tipe data yang sesuai dengan tipe variabel tersebut. (penjelasan mengenai tipe data akan dijelaskan pada sub bab 1.6)
- Algoritma
Pada bagian notasi algoritma dituliskan. Notasi algoritma yang ditulis, akan dilaksanakan secara beruntun.
Berikut ini adalah transisi perpindahan dari notasi dasar algoritma ke dalam bahasa pascal.
Tabel 1.1: struktur notasi algoritma dan bahasa pascal | |
Dalam Algoritma | Dalam Pascal |
Program NamaProgram | Program NamaProgram; |
Kamus {deklarasi tipe bentukan} Type NamaType: < field1:tipeData field2:tipeData ... fieldN:tipeData > {konstanta} Constant NamaKonstanta: tipeData = nilaiKonstanta {variabel} NamaVariabel:tipeData {deklarasi fungsi} Fungsi NamaFungsi(parameter) -> tipeKeluaranFungsi {deklarasi prosedur} Prosedur NamaProsedur( parameter) | {deklarasi konstanta} Const namaKonstanta=nilai; {deklarasi tipe bentukan} Type NamaType=record field1 : tipeData; field2 : tipeData; ... fieldN : tipeData; End; Var {deklasari variabel} {deklarasi fungsi} Function NamaFungsi(parameter): tipeKeluaran; {deklarasi prosedur} Procedure NamaProsedur( parameter); |
Algoritma {notasi algoritma program} | Begin {notasi algoritma program} End. |
Contoh 1.1 | |
Dalam algoritma | Dalam Pascal |
Program ContohStruktur | Program ContohStruktur; |
Kamus {deklarasi tipe bentukan} Type Mahasiswa: < Nama,NIM:string Nilai:integer > {konstanta} Constant Maksimal:integer = 10 {variable} Mhs:Mahasiswa {deklarasi fungsi} Fungsi Grade(X:integer) -> char Algoritma {algoritma fungsi} {deklarasi prosedur} Prosedur Input(out M:Mahasiswa) Algoritma {algoritma prosedur} | {konstanta} Const Maksimal : integer = 10; {deklarasi tipe} Type Mahasiswa = record Nama,NIM:string; Nilai:integer; End; {variable} Var Mhs:Mahasiswa {deklarasi fungsi} Function Grade(X:integer):char; Begin {algoritma fungsi} End; {deklarasi prosedur} Prosedur Input(var M:Mahasiswa); Begin {algoritma fungsi} End; |
Algoritma {notasi algoritma program} | Begin {notasi algoritma program} End. |
1.1.3 Input / Output
Perintah input pada bahasa pascal ada 2, yaitu Read dan Readln. Namun yang sering dan biasa digunakan pada proses input melalui keyboard adalah Readln. Readln dan Read memiliki sedikit perbedaan. Readln digunakan untuk memasukkan data perbaris, artinya setelah tombol Enter ditekan, maka akan ganti baris. Perintah Read tidak ganti baris, masih dalam baris yang sama.
Sedangkan perintah output pada bahasa pascal adalah Write dan Writeln. Seperti halnya Read dan Readln, Write akan mengoutputkan data dalam satu baris. Writeln akan mengoutputkan data lalu posisi kursor akan berganti baris.
Berikut ini adalah contoh algoritma input/output sederhana dalam pascal. Program berikut ini meminta inputan nama, dan kemudian mengoutputkan nama yang diinputkan.
Contoh 1.2 |
Program InputNama; |
Var angka1,angka2:integer; |
Begin Read(angka1); Readln(angka2); Write(angka1); Writeln(angka2); End. |
Coba anda ketik program pada contoh 1.2 (dalam bahasa pascal), lalu tuliskan outputnya pada kotak dibawah ini.
Dari contoh program tersebut diatas, coba anda tarik kesimpulan! Apakah ada perbedaan antara write dengan writeln dan read dengan readln?
1.1.4 Assignment
Assignment adalah pengisian nilai terhadap suatu variabel. Nilai yang diisikan terhadap variabel, selain melalui input dapat juga melalui assignment. Tentunya nilai yang diisikan tersebut harus sesuai dengan tipe data dari variabel. Berikut ini notasi algoritmik untuk proses assignment.
Tabel 1.2: notasi assignment dalam algoritma dan bahasa pascal | |
Dalam Algoritma | Dalam Pascal |
Nama1 <- Nama2 | Nama1:=Nama2; |
Aturan dari proses assignment adalah sebagai berikut:
- nama1 dan nama2 harus memiliki tipe data yang sama
- nama1 harus merupakan variabel, tidak boleh konstanta, tipe bentukan, fungsi, atau prosedur
- nama2 boleh berupa konstanta, nama fungsi, atau variabel lain, akan tetapi boleh juga berupa nilai yang bertipe sama dengan nama1
- nama2 boleh berupa ekspresi (dijelaskan pada sub bab 1.7) yang menghasilkan nilai yang bertipe sama dengan nama1
- nama2 tidak boleh berupa nama prosedur atau nama tipe bentukan
Berikut ini contoh program yang menggunakan assignment.
Contoh 1.3 | |
Dalam Algoritma | Dalam Pascal |
Program AssignNama | Program AssignNama; |
Kamus Nama:String BilanganBulat:integer BilanganRiil:Real | Var Nama:string; BilanganBulat:integer; BilanganRiil:real; |
Algoritma Nama <- ‘Bambang Pamungkas‘ BilanganBulat <- 5 BilanganRiil <- 4.5 Output(Nama,BilanganBulat, BilanganRiil) | Begin Nama:=‘Bambang Pamungkas‘; BilanganBulat:=5; BilanganRiil:=4.5; Writeln(Nama,BilanganBulat, BilanganRiil); End. |
Silakan anda ketik program diatas, lalu tuliskan outputnya dibawah ini.
1.1.5 Tipe Data
Tipe data dapat dikelompokkan menjadi atas dua macam : tipe dasar dan tipe bentukan. Tipe dasar adalah tipe data yang sudah ada dan dapat langsung dipakai, sedangkan tipe bentukan adalah tipe yang dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah didefinisikan.
a. Tipe Dasar
Tipe dasar adalah tipe yang sudah ada dan siap digunakan. Dalam algortima, kita mengenal 5 tipe dasar. Berikut ini adalah tabel macam-macam tipe yang ada pada algoritma dan transisinya pada bahasa pascal.
Tabel 1.3: tipe dasar pada algoritma dan bahasa pascal | ||
Dalam Algoritma | Dalam Pascal | Keterangan |
Integer | Integer Byte Longint Shortint Word | Digunakan untuk variabel yang menyimpan bilangan bulat |
String | String | Digunakan untuk variabel yang menyimpan sekumpulan karakter |
Real | Real Single Double Extended Comp | Digunakan untuk variabel yang menyimpan bilangan riil |
Karakter | Char | Digunakan untuk variabel yang menyimpan 1 karakter saja |
Booelan | Boolean | Digunakan untuk variabel yang menyimpan nilai TRUE (1) atau FALSE (0) |
· Integer
Tipe data integer digunakan untuk variabel yang menyimpan data berupa bilangan bulat. Secara teoritis, tipe bilangan bulat mempunyai ranah nilai yang tidak terbatas. Rentang nilainya adalah dari minus tidak hingga sampai plus tidak hingga asalkan setiap nilainya tidak mengandung titik desimal. Dalam implementasi pemrograman, tipe integer mempunyai rentang nilai yang terbatas. Implementasi integer dalam bahasa pemrograman tergantung pada kompilator bahasa pemrograman yang digunakan. Pada kompilator Turbo Pascal misalnya, tipe integer dapat direpresentasikan ke dalam lima macam tipe. Ke lima macam tipe tersebut adalah:
Tabel 1.4: macam-macam tipe data integer | ||
Tipe | Rentang Nilai | Format |
Byte | 0..255 | Unsigned 8 bit |
Shortint | -128..127 | Signed 8 bit |
Word | 0..65535 | Unsigned 16 bit |
Integer | -32768.. 32767 | Signed 16 bit |
Longint | -2147483648 | 2147482647 |
· Real
Bilangan riil adalah bilangan yang mengandung pecahan desimal. Tipe data Real digunakan untuk variabel yang menyimpan data berupa bilangan yang mengandung pecahan atau decimal. Pemisah decimal pada bahasa pascal menggunakan tanda titik (“.”). Bilangan riil dapat juga dituliskan dengan notasi E yang artinya perpangkatan sepuluh. Misalnya 2.60000000E-6 artinya 2.6 x 10-6. Berikut ini adalah macam-macam tipe bilangan riil yang ada pada pascal.
Tabel 1.5: macam-macam tipe data real | ||
Tipe | Rentang Nilai | Size |
Real | 2.9 X 10-39 ..1.7 X 1038 | 6 byte |
Single | 1.5 X 10-45 ..3.4 X 10-38 | 4 byte |
Double | 5.0 X 10-324 ..1.7 X 10308 | 8 byte |
Extended | 3.4 X 10-4932 ..1.1 X 104932 | 10 byte |
Comp | 9.2 X 10-18 ..9.2 X 1018 | 8 byte |
· Karakter
Tipe data karakter digunakan untuk variabel yang menyimpan satu karakter. Keyword tipe data karakter dalam pascal adalah char. Yang termasuk ke dalam karakter adalah huruf-huruf alfabet ,tanda baca angka ‘0’,’1’,..’9’ dan karakter-karakter khusus seperti ‘&’,’^’,’%’,’@’ dst. Ukuran (size) yang digunakan untuk variabel yang bertipe karakter adalah 8 bit. Karakter kosong (null) adalah karakter yang panjangnya nol, dan dilambangkan dengan ‘’. Dalam pascal, nilai null dinyatakan dengan keyword nil.
· String
Tipe data ini digunakan untuk variabel yang menyimpan lebih dari satu karakter. Pengertian String sendiri adalah deretan karakter dengan panjang tertentu. Contoh string misalnya ‘hallo’, ‘plis dong’.
String sebenarnya bukan tipe dasar murni karena ia disusun dari tipe karakter. Namun karena tipe string banyak dipakai dalam pemrograman, maka string dapat diperlakukan sebagai tipe dasar.
· Boolean
Nama tipe Boolean (diambil dari nama seorang matematikawan dari inggris, George Boole) merupakan tipe data yang digunakan untuk variabel yang menyimpan nilai TRUE atau FALSE. Berdasarkan deskripsi tersebut, maka dapat disimpulkan bahwa tipe data Boolean hanya memiliki rentang nilai TRUE atau FALSE.
Setelah mengenal kelima tipe dasar tersebut di atas, silakan anda coba ketik program berikut ini.
Contoh 1.4 | |
Dalam Algoritma | Dalam Pascal |
Program TipeDasar {program ini adalah program } {contoh penggunaan tipe dasar } | Program TipeDasar; {program ini adalah program } {contoh penggunaan tipe dasar } |
Kamus Nama:string Umur:integer Berat:real JenisKelamin:char Menikah:Boolean | Var Nama:string; Umur:integer; Berat:real; JenisKelamin:char; Menikah:Boolean; |
Algoritma Output(‘Masukkan Nama Anda: ‘) Input(Nama) Output(‘Umur (Thn): ‘) Input(Umur) Output(‘Berat (Kg): ‘) Input(Berat) Output(‘Jenis Kelamin (L/P):‘) Input(JenisKelamin) Menikah <- TRUE Output(‘Nama: ‘,Nama) Output(‘Umur: ‘,Umur,‘ Tahun‘) Output(‘Berat: ‘,Berat,‘ Kg‘) Output(‘Jenis Kelamin: ‘, ,JenisKelamin) Output(‘Menikah (T/F): ‘, Menikah) | Begin Write(‘Masukkan Nama Anda: ‘); readln(Nama); Write(‘Umur (Thn): ‘); readln(Umur); Write(‘Berat (Kg): ‘); readln(Berat); Write(‘Jenis Kelamin (L/P):‘); readln(JenisKelamin); Menikah:=TRUE; Write(‘Nama: ‘,Nama); Write(‘Umur: ‘,Umur,‘ Tahun‘); Write(‘Berat: ‘,Berat,‘ Kg‘); Write(‘Jenis Kelamin: ‘, JenisKelamin); Write(‘Menikah (T/F): ‘, Menikah); End. |
Dari contoh program di atas, silakan anda tarik kesimpulan! Bagaimana output dari program di atas? Apa perbedaan program dalam algoritma dan dalam bahasa pascal?
b. Tipe Bentukan
Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram (programmer). Tipe bentukan disebut juga sebagai user defined type data. Tipe bentukan disusun oleh satu atau lebih tipe dasar atau tipe yang sudah dikenal. Tipe bentukan dibuat/didefinisikan jika elemen / variabel (selanjutnya disebut dengan field) tipe bentukan tersebut mempunyai sebuah makna semantik, ada relasi yang persis antara satu field dengan field yang lain. Berikut ini contoh pendeklarasian tipe bentukan dalam algoritma dan contoh pemakaiannya dalam program.
Contoh 1.5 | |
Dalam Algoritma | Dalam Pascal |
Type NamaTipe : < field1 : tipeData; field2 : tipeData; ... fieldN : tipeData; > | Type NamaTipe=record field1: tipeData; field2: tipeData; ... fieldN: tipeData; end; |
Program contohRecord Kamus {deklarasi tipe bentukan} Type Mahasiswa : < NIM : string Nama : string Nilai : integer > {deklarasi variabel} M : Mahasiswa Algoritma Input(M.NIM) Input(M.Nama) Input(M.Nilai) Output(M.NIM) Output(M.Nama) Output(M.Nilai) | Program contohRecord; Type Mahasiswa=record NIM,Nama:String; Nilai:integer; End; Var M:Mahasiswa; Begin Writeln(‘masukkan NIM: ‘); Readln(M.NIM); Writeln(‘masukkan Nama: ‘); Readln(M.Nama); Writeln(‘masukkan Nilai: ‘); Readln(M.Nilai); Writeln(‘NIM : ‘,M.NIM); Writeln(‘Nama: ‘,M.Nama); Writeln(‘Nilai: ‘,M.Nilai); End. |
Silakan anda ketik contoh program bahasa pascal pada contoh 1.5 di atas lalu tuliskan output pada kotak di bawah ini.
Setelah mencoba program diatas, silakan ketik program di bawah ini dan tambahkan sendiri sintaks untuk mengoutputkan datanya.
Contoh 1.6 | |
Dalam Algoritma | Dalam Pascal |
Program contohRecord Kamus {deklarasi tipe bentukan} Type NilaiMhs : < UTS,UAS,QUIZ:integer > Type Mahasiswa : < NIM : string Nama : string Nilai : NilaiMhs > {deklarasi variabel} M : Mahasiswa Algoritma Input(M.NIM) Input(M.Nama) Input(M.Nilai.UTS) Input(M.Nilai.UAS) Input(M.Nilai.QUIZ) | Program contohRecord; Type NilaiMhs=record UTS,UAS,QUIZ:integer; End; Type Mahasiswa=record NIM,Nama:String; Nilai:NilaiMhs; End; Var M:Mahasiswa; Begin Write(‘masukkan NIM: ‘); Readln(M.NIM); Write(‘masukkan Nama: ‘); Readln(M.Nama); Writeln(‘masukkan Nilai: ‘); Write(‘UTS: ‘); Readln(M.Nilai.UTS); Write(‘UAS: ‘); Readln(M.Nilai.UAS); Write(‘Quiz: ‘); Readln(M.Nilai.Quiz); End. |
Tuliskan output program di atas pada kotak di bawah ini. Tuliskan juga kesimpulan anda mengenai pengertian record?
Kesimpulan: |
1.1.6 Ekspresi dan Operator
Ekspresi merupakan suatu “rumus perhitungan”, yang terdiri dari operand dan operator. Operand harus memiliki nilai, oleh karenanya operand dapat berupa variabel, konstanta atau nilai itu sendiri. Berdasarkan hasil dari ekspresi, ekspresi dibagi menjadi 2 jenis, yaitu:
1. Ekspresi Boolean; contoh
Ekspresi | Hasil |
True and False | False |
True or False | True |
2. Ekspresi Numerik; contoh
Ekspresi | Hasil |
1 + 5 | 6 |
1 + 3 * 5 | 16 |
1/2 | 0.5 |
1.9/0.2 | 9.5 |
10 mod 3 | 1 |
10 div 3 | 3 |
Sama dengan ekspresi, operator juga dibagi menjadi 2 jenis, yaitu operator boolean (operator logika) dan operator numerik. Berikut ini daftar operator boolean pada algoritma dan pada bahasa pascal.
Tabel 1.6: notasi operator logika pada algoritma dan bahasa pasca | |
Dalam Algoritma | Dalam Pascal |
< | < |
> | < |
≥ | >= |
≤ | <= |
= | = |
≠ | <> |
Untuk operator numerik, baik pada algoritma maupun pada bahasa pascal keduanya sama. Operator tersebut yaitu: +,-,*,/,div, dan mod. Untuk lebih memahami pemakaian operator, silakan ketik contoh program di bawah ini dan tambahkan sendiri sintaks untuk mengouputkan datanya.
Contoh 1.7 |
Program operator; Var Bool1,bool2,TF: boolean; i,j,hasil: integer; x,y,res: real; Begin Writeln(‘untuk program ini, baca teksnya dan tambahkan sendiri outputnya’); Bool1:= true; bool2:= false; { contoh-contoh ekspresi boolean } TF := bool1 AND bool2; TF := bool1 OR bool2; TF := NOT bool1; TF := bool1 XOR bool2; { operasi numerik } i:=5; j:=2; hsl:=i+j; hsl:=i-j; hsl:=i/j; hsl:=i*j; hsl:=i div j; hsl:=i mod j; { operasi numerik } x:=5.0; y:=2.0; res:= x+y; res:= x-y; res:= x/y; res:= x*y; { operasi relasional numerik } TF := i TF := x End. |
Tuliskan output program diatas pada kotak dibawah ini.
1.1.7 Konstanta
Konstanta hampir sama dengan variabel. Perbedaannya adalah nilai konstanta selalu tetap (constant) dan tak dapat diubah. Stuktur dan deklarasi konstanta dapat dilihat pada Tabel 1.1 di halaman 2.
Berikut ini contoh pemakaian konstanta dalam program.
Contoh 1.8 | |
Dalam Algoritma | Dalam Pascal |
Program LuasLingkaran Kamus Type Linkaran : < Jari2:integer Luas:real > Const phi : real = 3.14; {deklarasi variabel} L:Lingkaran; Algoritma Input(L.jari2) L.Luas <- phi*L.jari2*L.jari2 Output(L.Luas) | Program LuasLingkaran; Const phi=3.14; Type Lingkaran=record; Jari2:integer; Luas:real; End; Var L:Lingkaran; Begin Write(‘masukkan jari2 lingkaran: ‘); Readln(L.jari2); L.Luas:=phi*L.jari2*L.jari2; Write(‘Luas lingkaran= ‘, L.Luas); End. |
Silakan anda ketik contoh program bahasa pascal pada contoh 1.8 lalu tuliskan bagaimana output program tersebut pada kotak dibawah ini.
1.2 Analisa Kasus
Analisa kasus adalah konstruktor terpenting dalam algoritma, sehingga kita dapat membuat source code yang sama tetapi menghasilkan eksekusi yang berbeda beda.
Jika kita mendefinisikan analisa kasus berarti juga mendefinisikan:
- kondisi: yang berupa suatu ekspresi booelan yang menghasilkan true atau false
- aksi: yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan dipenuhi
Jadi dalam memecahkan masalah, kita harus menganalisis kasus-kasus apa saja yang mungkin ada, lalu aksi apa saja yang harus dilakukan bila suatu kasus dilaksanakan. Adanya pemilahan kasus-kasus menyebabkan terjadinya pemilihan instruksi dalam algoritma, bergantung pada kasus yang memenuhi.
Di dalam algoritma, dikenal struktur dikenal dua jenis struktur pemilihan (Analisa Kasus). Yaitu:
1.2.1. Stuktur IF
a. Satu Kasus
Notasi algoritma dan pada bahasa pascal untuk analisa kasus menggunakan Struktur IF satu kasus adalah sebagai berikut.
Tabel 1.7: notasi /struktur IF satu kasus | |
Dalam Algoritma | Dalam Pascal |
If (kondisi) then Aksi | If (kondisi) then Aksi; |
Contoh: If (a>0) then Output(‘A bernilai positif‘) | Contoh: If (a>0) then Writeln(‘A bernilai positif‘); |
Jika kondisi terpenuhi, maka aksi akan dijalankan. Tetapi jika kondisi tidak dipenuhi, maka aksi tidak dapat dijalankan. Jumlah aksi dapat lebih dari satu, tetapi untuk notasi pada bahasa pascal harus ditambahkan begin (di awal) dan end (di akhir). Sedangkan pada notasi algoritma tidak ditambahkan apapun. Hanya saja penulisannya harus ditulis menjorok ke dalam dan sejajar dengan aksi sebelumnya. Contoh algoritma jika aksi lebih dari 1 pada struktur if satu kasus adalah sebagai berikut.
Tabel 1.8: notasi / stuktur IF jika jumlah aksi lebih dari satu | |
Dalam Algoritma | Dalam Pascal |
If (a>0) then Output(‘A bernilai positif‘) A <- 0 | If (a>0) then begin Writeln(‘A bernilai positif‘); A:=0; end; |
b. Dua Kasus
Berikut ini adalah contoh dan notasi algoritma dan bahasa pascal untuk analisa kasus menggunakan struktur IF dua kasus.
Tabel 1.9: notasi / struktur IF dua kasus | |
Dalam Algoritma | Dalam Pascal |
If (kondisi) then Aksi1 Else Aksi2 | If (kondisi) then Aksi1 Else Aksi2 |
Contoh: If (a mod 2 = 0) then Output(‘A bilangan genap‘) Else Outbut(‘A bilangan ganjil‘) | Contoh: If (a mod 2 = 0) then Writeln(‘A bernilai positif‘) Else Writeln(‘A bernilai negatif‘); |
Stuktur IF dua kasus hampir sama sama dengan struktur IF satu kasus. Perbedaannya adalah, jika kondisi tidak terpenuhi maka yang dijalankan adalah aksi2.
c. Tiga Kasus atau lebih
Pemakaian struktur IF tiga kasus atau lebih hampir sama dengan struktur IF dua kasus. Hanya saja penulisannya ditulis bertingkat. Berikut ini adalah contoh dan notasi algoritma dan bahasa pascal untuk analisa kasus menggunakan struktur IF tiga kasus.
Tabel 1.10: notasi /struktur IF tiga kasus | |
Dalam Algoritma | Dalam Pascal |
If (kondisi1) then Aksi1 Else if (kondisi2) then Aksi2 Else If (kondisi3) then Aksi3 | If (kondisi) then Aksi1 Else if (kondisi2) then Aksi2 Else If (kondisi3) then Aksi3; |
Contoh: If (a mod 2 = 0) then Output(‘A bilangan genap‘) Else If (a mod 2 =1) then Outbut(‘A bilangan ganjil‘) Else Output(‘A angka nol‘) | Contoh: If (a mod 2 = 0) then Writeln(‘A bernilai positif‘) Else If (a mod 2 = 1) then Writeln(‘A bernilai negatif‘) Else Writeln(‘A angka nol‘); |
Silakan anda ketik contoh program analisa kasus di bawah ini dan tuliskan outputnya pada kotak yang disediakan.
Contoh 1.9 | |
Dalam Algoritma | Dalam Pascal |
Program CekBilangan Kamus {deklarasi variabel} A,B:Integer Algoritma Input(A) Input(B) If (A>B) then Output(‘A>B‘) Else If (Athen Output(‘A Else Output(‘A=B‘) | Program LuasLingkaran; Var A,B:Integer; Begin Readln(A); Readln(B); If (A>B) then Writeln(‘A>B‘) Else If (Athen Writeln(‘A Else Writeln(‘A=B‘); End. |
Output:
1.2.2 Struktur Depend On
Struktur Depend On sering digunakan jika jumlah kondisi lebih dari 3 (banyak kondisi). Struktur ini dapat menyederhanakan penulisan IF bertingkat sebagaimana pada contoh sebelumnya. Notasinya adalah sebagai berikut.
Tabel 1.11: notasi / struktur depend on | |
Dalam Algoritma | Dalam Pascal |
Depend on (variabel) Kondisi1: aksi1 Kondisi2: aksi2 ... KondisiN: aksiN | Case variabel of Kondisi1: aksi1; Kondisi2: aksi2; ... Kondisi3: aksi3; End; |
Syarat dari notasi depend on yaitu:
- Kondisi1,Kondisi2,Kondisi3,….KondisiN domainnya bernilai [true,false]
- Kondisi1 Ç Kondisi2 Ç Kondisi3 Ç …. Ç KondisiN = Æ. Berarti semua kondisi disjoint, tidak ada kasus yang tercakup pada dua buah kondisi.
- Kondisi1 È Kondisi2 È Kondisi3 È …. È KondisiN mencakup segala kemungkinan
- Kondisi1,Kondisi2,Kondisi3,….KondisiN adalah ekspresi lojik yang mengandung nama-nama sebagai operan.
Berikut ini adalah contoh pemakaian Struktur Depen On pada program untuk mencari nama bulan sesuai yang diinputkan input user.
Contoh 1.8 | |
Dalam Algoritma | Dalam Pascal |
Program CARINAMABULAN Kamus Bulan : integer Algoritma input(Bulan) depend on Bulan Bulan=1 : output(‘Januari’) Bulan=2 : output(‘Februari’) Bulan=3 : output(‘Maret’) Bulan=4 : output(‘April’) Bulan=5 : output(‘Mei’) Bulan=6 : output(‘Juni’) Bulan=7 : output(‘Juli’) Bulan=8 : output(‘Agustus’) Bulan=9 : output(‘September’) Bulan=10 : output(‘Oktober’) Bulan=11 : output(‘November’) Bulan=12 : output(‘Desember’) Else Ouput (‘Inputan bulan tidak valid’); | Program CariNamaBulan; Var Bulan:integer; Begin Readln(bulan); Case bulan of 1:writeln(‘Januari‘); 2:writeln(‘Februari‘); 3:writeln(‘Maret‘); 4:writeln(‘April‘); 5:writeln(‘Mei‘); 6:writeln(‘Juni‘); 7:writeln(‘Juli‘); 8:writeln(‘Agustus‘); 9:writeln(‘September‘); 10:writeln(‘Oktober‘); 11:writeln(‘November‘); 12:writeln(‘Desember‘); Else Writeln(‘Inputan bulan tidak valid‘); End. |
- Get link
- Other Apps
Labels
Dunia TI
Labels:
Dunia TI
- Get link
- Other Apps
sangat berguna untuk belajar matkul DAP
ReplyDelete