Skip to main content

ALGORITMA PEMROGRAMAN

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. Runtunan (Sequence)
  2. Pemilihan (Selection)
  3. Pengulangan (Repetition)

1.1.2    Implementasi Algoritma dalam Pascal

Pada dasarnya, pokok yang paling dasar dalam pembuatan program ada 3, yaitu:
  1. Nama Program
Spesifikasi teks algoritmik secara umum
  1. 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)
  1. 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 := ij ; TF :=i=j ;
  TF := xy ; TF := x<>y ;
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.


Comments

Post a Comment

Popular posts from this blog

Program membuat diskon dalam c#

 Hellow... ketemu lagi... Nie kita mau berbagi contoh pemrograman berbasis objek dalam bahasa C#. Salah satu hal yang baru dalam C# adalah penggunaan Console.Write dengan Console.Writeline. kedua-duanya pada dasarnya sama yaitu meminta menampilkan output pada layar, namun yang membedakan adalah kalo writeline, tulisan yang akan ditampilkan akan diberi jarak satu baris. Bisa juga  penambahan jarak diganti dengan backslash + n (\n) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication5 {     class Program     {         static void Main( string [] args)         {         double t, d, b;         Console .Write( "Total Belanja = " );             t = double .Parse( Console .ReadLine());             if (t < 150000)             {                 d = t * 0 / 100;                 b = t - d;             Console .WriteLine( "Diskon = " + d.ToString());          

Mengajar itu seni (Suka duka cerita menjadi guru les)

Kini aku punya kerja part time baru,   yaitu ngajar les privat anak-anak. Setelah ngajar anak kecil berbagai usia, mulai dari TK, SD, SMP sekarang aku udah lebih kaya pengalaman dalam menangani anak-anak dengan segala problematikanya. Baru pengalaman aja sih, belum ketemu solusinya. Baru deh terasa susahnya jadi ibu guru. Mungkin dulu aku pas kecil juga kayak gitu. Mungkin guruku juga ngerasa kesulitan dalam membimbing aku. Jadi terima kasih ya ibu dan bapak guru. Nah,selain itu, hal itu tentu sangat menguntungkan bagiku, karena kan suatu saat aku juga akan menjadi ibu, so penting banget buatku untuk mulai mengetahui sifat dan karakter anak, jadi aku punya pengalaman dalam mendidik anakku sendiri nantinya. Ternyata masa kanak-kanak adalah masa emas dalam penentuan masa depan anak nantinya. Jadi penting banget bagi para ibu dan keluarga tentunya dalam membangun karakter dan kepribadian anak sejak kecil. Dari masa kanak-kanak itulah nantinya akan terbentuk apakah si anak ini n