Kamis, 25 Desember 2014

SEMESTER 3

ALGORITMA DAN PEMROGRAMAN 

I. Algoritma dan Pemrograman
1.1. Pengertian Algoritma
Algoritma adalah urutan langkah – langkah untuk menyelesaikan masalah yang disusun secara sitematis. Algoritma dibuat dengan tanpa memperhatikan bentuk yang akan digunakan sebagai implementasinya, sehingga suatu Algoritma dapat menjelaskan “bagaimana” cara melaksanakan fungsi yang dapat diskpresikan dengan suatu program atau suatu komponen fisik.
1.2. Penyajian Algoritma Algoritma biasana disajikan dalam dua bentuk, yaitu :
1. Menggunakan FlowChart(Diagram Alir)
2. Menggunakan Pseudo-Code

dalam pelajaran kali  ini yang hanya akan digunakan yaitu : FlowChart

1.3. FlowChart adalah penggambaran secara keseluruhan urutan proses/logika, dimana persoalan yang ada akan diselesaikan, dan menunjukan tingkat dari detail penyelesaian persoalan. FlowChart juga merupakan cara yang klasik dalam menyajikan algoritma. 
a. Simbol – simbol FlowChart
    dibawah ini adalah beberapa contoh simbol - simbol flowchart yang paling sering digunakan



















1.4. Pemrograman Bahasa pemrograman yang akan dipakai dalam pembahasan kali ini adalah bahasa pemrograman Pascal. a. Sejarah singkat Pascal Pascal adalah bahasa pemrograman yang pertama kali dibuat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang menciptakan mesin penghitung.

 b. Elemen – elemen penting dalam Turbo Pascal 

1. Reserved Word 
Reserved Word adalah kata – kata yang tidak dapat digunakan menjadi identifier(pengenal), karena kata – kata tersebut sudah mempunyai arti tersendiri dalam Turbo Pascal.
 Kata – kata tersebut antara lain : and, asm, array, begin, end, exports, file, for, function, goto, if, mod, not, record, repeat, until, while, var, type, then dan lain – lain. 

2. Statement(pernyataan)
Statement antara lain sebagai berikut: 
- Assigment (:=) 
- Begin … end 
- Case ….of ….. else….end 
- For….to/downto…do 
- Goto - If..then…else 
- Repeat…until 
- While…do 
- Dan lain –lain

3. Const(constant)
 Constant adalah nilai konstanta(nilai tetap) yang dipasang dalam program Contoh: 
Program konst; Uses wincrt; Const Phi=3.14; (* real *) Fakultas=’teknik informasi’; (* string *) Begin Writeln (phi); Writeln (fakultas); End. 

4. Var(Variabel) 
Variabel hampir sama dengan constant, hanya saja nilai yang disimpan di dalam variabel dapat berubah – ubah kapan saja di dalam program. Berdasarkan nilai yang di simpan dalam variabel, terdapat 4 jenis tipe data 
Tipe Data deskripsi 
Contoh :
 Integer(integer) Merupakan tipe data bilangan bulat yang memiliki jangkauan antara -32768 s/d 32768 12500 
Long(long) Merupakan tipe data bilangan bulat yang memiliki jangkauan yang jauh lebih besar dari integer 807.523 
Real(real) Merupakan tipe data bilangan riil(real) yang memiliki jangkauan 3.4 x 10-38 s/d 3.4 x 1038 452.213 atau 4.5213e2 
String(string) Merupakan tipe data untuk nilai yang berupa gabungan dari karakter ‘fti’ 
Char(char) Merupakan tipe data untuk nilai yang berupa karakter ‘a’ 
Boolean(boolean) Merupakan tipe data yang bernilai TRUE atau FALSE TRUE/FALSE 

Untuk memberi nilai pada suatu variabel, harus digunakan tanda ‘:=’ proses ini disebut assigment. Contoh : angka := 3; bukan angka := ‘fti’; 

c. Operasi aritmetika 
Operator (Simbol) Operation(fungsi) Tipe data + penjumlahan Real/integer - pengurangan Real/integer * Perkalian Real/integer / Pembagian riil Real/Integer Div Pembagian integer Integer Mod Modulus(sisa pembagian) Integer.
Operasi arimetik dalam pascal tidak dapat diterapkan pada variabel bertipe data boolean dan char. II. 


Contoh – contoh  Program
1. Contoh variabel/tipe data 
Program var; 
Uses wincrt;
 Var Nama : string; 
Nim : integer; 
Aksara : char; 
Begin 
Clrscr; (jangan lupa titik koma) Nama:= ’budi’; 
Nim := 12345; 
Aksara:= ‘A’; 
Writeln(‘nama : ‘,nama); 
Writeln(‘nim :’,nim); 
Writeln(‘aksara :’,aksara); 
Readln; 
End. 

2. Contoh operasi aritmetika 
a. Keliling lingkaran
 program keliling_persegi;
uses wincrt;
 var panjang, lebar, keliling:integer;
 begin 
writeln('MENGHITUNG KELILING LINGKARAN');
writeln('&&&&&&****************&&&&&&&');
 writeln;
 write('masukan nilai panjang : ');
 readln(panjang); 
write('masukan nilai lebar : ');
 readln(lebar); 
keliling:=2*(panjang + lebar); 
writeln('maka keliling persegi= 2 X (panjang + lebar)'); 
write('= 2*');
write('(',panjang);
write('+'); 
write('',lebar); 
writeln(')'); 
writeln('maka hasilnya = ',keliling); 
readln; 
end. 
readln; 
end. 
b. Luas lingkaran
 program luas_lingkaran; 
uses wincrt;
 const phi=3.14;
 var 
jejari, luas:real; 
begin 
writeln('program menghitung luas lingkaran'); 
writeln('**********%%%%%%%%%**************');
writeln;
 write('jari - jari = '); 
readln(jejari); 
luas:=phi*sqr(jejari); 
writeln('rumus luas liangkaran = phi X sqr(jari - jari)'); 
writeln('diketahui phi=3.14'); 
write('sehingga = ',phi); write(' X '); 
writeln('sqr', round((jejari))); 
writeln('maka luas lingkaran= ',round(luas)); 
readln; 
end. 
3. Contoh untuk penggunaan if dalam memilih untuk menghitung luas segitiga atau luas lingkaran atau luas persegi. 
program iff; 
uses wincrt; 
const phi=3.14; 
var 
luas,jejari, tinggi, alas:real; 
panjang, lebar, pilih:integer; 
begin 
writeln('silahkan pilih perhitungan yang mana??'); 
writeln('1.luas segitiga 2.luas lingkaran 3.luas persegi'); 
readln(pilih); 
if pilih = 1 then 
begin 
write('masukan nilai alas : '); 
readln(alas); 
write('masukan nilai tinggi : '); 
readln(tinggi); 
luas:= 0.5 * alas * tinggi; 
writeln('maka luas segitiga = ',round(luas)); 
readln; 
end 
else if
pilih=2 then 
begin 
write('masukan nilai jari - jari : '); 
readln(jejari); 
luas:=phi * sqr(jejari); 
writeln('maka luas lingkaran = ', round(luas)); 
end 
else 
write('masukan nilai panjang : '); 
readln(jejari); 
write('masukan nilai lebar : '); 
readln(jejari); 
luas:= panjang * lebar; 
writeln('maka luas persegi = ', round(luas)); 
readln; 
end. 
4. Contoh penggunaan case untuk memilih menghitung luas segitiga atau luas lingkaran 
program kase; 
uses wincrt;
 const phi=3.14; 
var
 luas, alas, jejari, tinggi:real; 
pilih:integer; 
begin 
writeln('pilih perhitungan luas yang ingin dicari'); 
readln; 
writeln('1.luas segitiga 2.luas lingkaran'); 
readln(pilih); 
case pilih of 
1: 
begin 
writeln('anda memilih menghitung luas segitiga'); 
readln; 
write('masukan nilai alas = '); 
readln(alas); 
write('masukan nilai tinggi = '); 
readln(tinggi); 
luas :=0.5 * alas * tinggi; 
writeln('maka luas segitiga = ',round(luas)); 
readln; 
end; 
2: 
begin 
writeln('anda memilih menghitung luas lingkaran'); 
write('masukan nilai jari - jari = '); 
readln(jejari); 
luas :=phi * sqr(jejari); 
writeln('maka luas lingkaran = ',round(luas)); 
readln; 
end; 
end; 
readln; 
end. 
5. Contoh penggunaan if untuk lebih dari 2 pernyataan dan case of dalam menentukan grade mahasiswa program nlai; 
uses wincrt; 
var 
nama, alamat:string; 
nrp:string[8]; 
keterangan:string[2]; 
grade, pilih:char; 
nilai:integer; 
begin 
writeln('1.masukan data mahasiswa     2. keluar');
writeln('****************************************'); 
write('pilih pilihan anda : '); 
readln(pilih); 
writeln('*************************'); 
writeln; 
case pilih of 
'1': 
begin 
write('masukan nama anda : '); 
readln(nama); 
write('masukan alamat anda : '); 
readln(alamat); 
write('masukan nrp anda : ');
 readln(nrp); 
write('masukan nilai anda : '); 
readln(nilai); 
if (nilai >=80) then 
grade:='A' 
else 
if (nilai >=70) then 
grade:='B' 
else 
if (nilai >=50) then 
grade:='C' 
else
 if (nilai >=30) then 
grade:='D' 
else 
grade:='E'; 
writeln; 
writeln('********************************'); 
writeln('data mahasiswa yang di input :'); 
writeln('********************************'); 
writeln; 
writeln('nama : ',nama); 
writeln('alamat : ',alamat); 
writeln('nrp : ',nrp); 
writeln(' nilai : ',nilai); 
write('sehingga ',nama); 
writeln(' mendapat grade : ',grade); 
end; 
'2':
 begin 
writeln('anda mengakhiri program'); 
exit; 
end; 
else 
begin
 writeln('maaf pilihan anda salah'); 
exit; 
end; 
end; 
readln;
 end. 
CONTOH KASUS 1. Untuk menentukan penerimaan calon pegawai, ditentukan criteria/persyaratan sebagai berikut 
a. Umur dibawah 30 tahun , dan 
b. Nilai test lebih dari 60 
Penyelesaian : 
1. Menetukan entitas 
2. Buat flowchart 
3. Buat program dengan turbo pascal 

1. Entitas penerimaan antara lain : a. Capeg b. Umur c. Nilai tes d. Menggunakan operator “AND” e. hasil 2. Flowchart penerimaan 
3. programnya
Program penerimaan; 
uses wincrt; 
var
capeg, hasil:string; 
umur, nilaites: integer; 
begin 
writeln('seleksi penerimaan calon pegawai'); 
writeln('*********===========************'); 
write('masukan nama calon pegawai : '); 
readln(capeg); 
write('masukan umur calon pegawai : ');
readln(umur); 
write('masukan hasil nilai tes calon pegawai : '); 
readln(nilaites); 
if (umur < 30) and (nilaites > 60) then 
hasil:='lulus' 
else 
hasil:='tidak lulus'; 
write('anda yang bernama : ' ,capeg); 
writeln(' dinyatakan : ' ,hasil); 
end. 

2. Penerimaan tunjangan Tunjangan pensiun diberikan kepada pegawai yang berusia lebih dari 60 tahun. Untuk pegawai uang mempunyai masa kerja lebih dari 25 tahun juga mendapat tunjangan tersebut. Penyelesaian 
1.menentukan entitas 
2. membuat flowchart 
3. membuat programnya 

1. Menentukan entitas - Pegawai - Usia - Masakerja - Menggunakan operator “or” - hasil 
2. Menentukan/membuat flowchart 
3. Membuat programnya 
program tunjangan; 
uses wincrt; 
var 
pegawai, hasil:string; 
usia, masakerja:integer; 
begin 
writeln('penerimaan tunjangan pensiun'); 
writeln('=======&&&&&&&&&&&&&&======='); 
write('masukan nama pegawai : '); 
readln(pegawai); 
write('masukan usia pegawai : '); 
readln(usia);
write('masukan masa kerja : '); 
readln(masakerja); 
if (usia>60) or (masakerja > 25) then 
hasil:='menerima tunjangan' 
else 
hasil:='tidak menerima tunjangan'; 
write('pegawai yang bernama : ',pegawai); 
writeln(' dinyatakan :', hasil);
 end.

Tidak ada komentar:

Posting Komentar

woraebe.corp