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.
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
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('(',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