Senin, 13 Desember 2010

ALGORITMA DAN PEMROGRAMAN

Pengertian :

1. Algoritma : sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus.
2. Pemrograman : segala kegiatan pembuatan program komputer.

Tipe – tipe algoritma berdasarkan format penulisan

1. Deskriptif
2. Flow Chart ( Diagram Alir )
3. Pseudocode

Dalam hal ini, saya hanya akan membahas mengenai tipe algoritma menggunakan format penulisan ke 3, yakni format penulisan Pseudocode.

Pseudocode

Pseudo berarti imitasi dan code berarti kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer (kode bahasa pemrograman). Apabila diterjemahkan secara bebas, maka pseudocode berarti tiruan atau imitasi dari kode bahasa pemrograman. Pada dasarnya, pseudocode merupakan suatu bahasa yang memungkinkan programmer untuk berpikir terhadap permasalahan yang harus dipecahkan tanpa harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada aturan penulisan syntax di dalam pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.

Struktur penulisan Pascal / Delphi

1. Nama program ( tidak wajib ada ) maksimal penulisan suku kata tanda penghubung menggunakan ( _ ).
2. Pendefinisian variabel.
3. Procedure / function.
4. Program utama.

Penamaan / pengenal ( identifier )

Dalam algoritma, ada beberapa hal yang harus diberi nama atau pengenal. Hal-hal tersebut meliputi: nama algoritma, nama tetapan (konstanta), nama peubah (variabel), nama tipe, nama prosedur, dan nama fungsi. Pemberian nama harus mengikuti aturan-aturan sebagai berikut:
1. hanya boleh terdiri dari huruf, angka, atau garis bawah
2. tidak boleh dimulai dengan angka
3. tidak membedakan huruf kapital maupun huruf kecil (non case-sensitive)
4. panjang tidak dibatasi
5. harus unik, artinya tidak boleh ada nama pengenal yang sama untuk hal yang berbeda
6. hendaknya mencerminkan kegunaannya

Pemberian nama pengenal ini biasanya mengikuti salah satu dari 2 gaya berikut:
1. pemisah antar-kata menggunakan tanda garis bawah. Contoh: Luas_Segitiga
2. pemisah antar-kata menggunakan huruf kapital Contoh: LuasSegitiga

Beberapa contoh penamaan yang valid maupun tidak valid:
01| Nama_4_Pegawai {valid}
02| 2_luas {salah, karena diawali angka}
03| ^LuasSegitiga {salah, karena terdapat tanda ^}
04| Luas_Segitiga_&_Lingk {salah, karena terdapat tanda &}
05| Hati2 {valid}

Tipe data

1. Integer : Bilangan bulat, baik itu negative, nol, maupun positif.
2. Real : Bilangan pecahan.
3. String : Tipe data kalimat, penulisannya diapit oleh tanda petik tunggal.

Contoh – contoh soal.

1. Buatlah program untuk mencari luas segi tiga !

Penyelesaian :

Program Luas_Segi_Tiga ;

Uses
WinCrt ;
Var
A,T : Integer ;
L : Real ;
Begin
Write (‘ Masukkan alas = ’) ;
Readln ( A ) ;
Write (‘ Masukkan tinggi = ’) ;
Readln ( T ) ;
L = 0.5*A*T ;
Write ( ‘ Luas = ‘) ;
End.

2 Buatlah Program untuk mencetak angka urut 1 sampai dengan 10 !

Penyelesaian
Program Cetak_Urut;

Uses
WinCrt ;
Var
i : integer ;
Begin
i : = 1 ;
repeat
Writeln ( i ) ;
i : = i + 1;
Until
1>10;
End.

3. Buatlah program untuk mencetak angka ganjil 1 sampai 10 !

Penyelesaian
Program Cetak_Ganjil;

Uses
WinCrt ;
Var
i : integer ;
Begin
i : = 1 ;
repeat
Writeln ( i ) ;
i : = i + 2;
Until
1>10;
End.

4. Buatlah program untuk mencetak angka genap 1 samapai 10 !

Penyelesaian
Program Cetak_Genap;

Uses
WinCrt ;
Var
i : integer ;
Begin
i : = 2 ;
repeat
Writeln ( i ) ;
i : = i + 2;
Until
1>10;
End.

5. Buatlah program untuk mencetak total harga dan bonus yang diberikan pada pembeli, adapun inputnya adalah : Nama barang, Harga barang, dan Tipe barang, output yang diinginkan adalah : Total harga dan Bonus. Adapun kriterianya adalah : Tipe A diskon 20 % bonus sapu tangan, Tipe B diskon 10 % bonus kaos kaki dan Tipe C diskon 0 bonus pensil 2B. Total harga = Harga barang – Harga barang*Diskon.

Penyelesaian
Program welcome ;
Uses
WinCrt ;
Var
Namabar, bonus, tipe : string ;
Hargabar, total , disc : real ;
Begin
Write(‘nama barang =’);Readln(namabar);
Write(‘harga barang =’);Readln(hargabar);
Write(‘tipe =’);Readln(tipe);
If tipe=’A’ then
Begin
disc:=20/100;
bonus:=’sapu tangan’;
end;

If tipe=’B’ then
Begin
disc:=10/100;
bonus:=’kaos kaki’;
end;

If tipe=’C’ then
Begin
Disc:=0;
Bonus:=’pensil 2B’;
end;
total:=hargabar-hargabar*disc;
Writeln(‘total harga =’,total:10:0);
Writeln(‘bonus =’,bonus);
End.

6. Buatlah program penjumlahan dari hasil kali bilangan itu sendiri dari 1 sampai 10 !

Program Penjumlahan ;
Uses
WinCrt ;
Var
i:integer ;
jum,a:integer ;
Begin
Writeln(‘Menjumlahkan 1+4+9…+100’);
i:=1;
jum:=0;
while i<=10 do begin a:=i*I ; jum:=jum+a; i:=i+1; end; writeln(‘hasil penjumlahan =’,jum); end. 7. Buatlah program untuk mencetak kelulusan serta keterangan nilai dalam huruf, adapun inputnya adalah : nilai, outputnya adalah : keterangan1 dan keterangan2 .adapun kriterianya adalah : nilai A keterangan1 lulus keterangan2 baik sekali, nilai B keterangan1 cadangan keterangan2 kurang, nilai C keterangan1 tidak lulus keterangan2 kurang sekali ! Penyelesaian Program If_Kelulusan; Uses WinCrt; Var Nilai : string; ket1, ket2 : string; Begin Write(‘Masukkan nilai=’);Readln(nilai); If nilai =’c’ then Begin ket1:=’TIDAK LULUS’; ket2:=’KURANG SEKALI’; End; If nilai =’b’ then Begin ket1:=’CADANGAN’; ket2:=’KURANG’; End; If nilai =’a’ then Begin ket1:=’LULUS’; ket2:=’BAIK SEKALI’; End; Writeln(‘Keterangan :’,ket1); Writeln(‘Keterangan :’,ket2); End. 8. Buatlah program penjumlahan dari 1 sampai 10 ! Penyelesaian Program Penjumlahan ; Uses WinCrt ; Var i, jum : integer ; Begin Writeln(‘===========================’); Writeln(‘========I========jum========’); Writeln(‘===========================’); i:=1; jum:=0; repeat Writeln(I:8, jum:8); jum:=jum+i I:=i+1; Until i>10;
Writeln(‘===========================’);
Writeln(‘Hasilnya:’,jum);
Writeln(‘===========================’);
End.


9. Buatlah program untuk mencetak gaji pegawai, adapun inputnya adalah : No. pegawai, Nama pegawai, Golongan dan Potongan. Outputnya adalah : Gaji Total. Adapun kriterianya adalah : golongan 1 gaji pokok Rp. 750000, golongan 2 gaji pokok Rp. 1000000, golongan 3 gaji pokok Rp.13000000, golongan 4 gaji pokok Rp. 1750000. Tunjangan 20 % berlaku untuk semua golongan. Gaji tunjangan = gaji pokok X tunjangan, gaji total = gaji total + gaji tunjangan – potongan.

Penyelesaian

Program Gaji;
Uses
WinCrt;
Var
nopegawai,potongan : integer ;
gajitotal, tunjangan, gatun, gaji, gol : real ;
nama : string;

Begin
Write(‘No.Pegawai:’);readln(nopegawai);
Write(‘Nama :‘);readln(nama);
Write(‘Gol :’);readln(gol);
Write(‘Potongan :’);readln(potongan);

If gol=1 then
begin
gaji:=750000;
tunjangan:=20/100;
gatun:=gaji*tunjangan;
end else

If gol=2 then
begin
gaji:=1000000;
tunjangan:=20/100;
gatun:=gaji*tunjangan;
end else

If gol=3 then
begin
gaji:=1300000;
tunjangan:=20/100;
gatun:=gaji*tunjangan;
end else

If gol=4 then
begin
gaji:=1750000;
tunjangan:=20/100;
gatun:=gaji*tunjangan;
end;

gaji total:=gaji+gatun-potongan;

writeln(‘Gaji Total :’,gajitotal:2:0);

end.


10. Buatlah program untuk mencetak kelulusan serta keterangan nilai dalam huruf, adapun inputnya adalah : nilai, outputnya adalah : keterangan 1 dan keterangan 2 .adapun kriterianya adalah : nilai >= 70 keterangan 1 lulus keterangan 2 baik sekali, nilai > 60 dan < 70 keterangan 1 cadangan keterangan 2 kurang, nilai 0 >= 60 keterangan 1 tidak lulus keterangan 2 kurang sekali !

Penyelesaian

Program If ;
Uses
WinCrt;
Var
Nilai : integer;
ket1,ket2 : string;
begin
write(‘masukkan nilai =’);readln(Nilai);
if (Nilai>=0)and(Nilai<=60) then begin ket1:=’TIDAK LULUS’; ket2:=’KURANG SEKALI’; end; if (Nilai>60)and(Nilai<70) then begin ket1:=’CADANGAN’; ket2:=’KURANG’; end; if (Nilai>=70) then
begin
ket1:=’LULUS’;
ket2:=’BAIK SEKALI’;
end;

writeln(‘Keterangan :’,ket1);
writeln(‘Keterangan :’,ket2);

end.