Kamis, 10 Desember 2009

ALGORITMA DAN FLOWCHART

ALGORITMA DAN FLOWCHART

Algoritma dan Flowchart

Pendahuluan

Beberapa langkah dalam proses pembuatan suatu program atau software :

1. Mendefinisikan masalah dan menganalisanya
Langkah awal yang harus dilakukan adalah mengidentifikasikan masalah antara lain tujuan dari pembuatan program, parameter-parameter yang digunakan, fasilitas apa saja yang akan disediakan oleh program. Kemudian menentukan metode atau algoritma apa yang akan diterapkan untuk menyelesaikan masalah tersebut dan terakhir menentukan bahasa program yang digunakan untuk pembuatan program.

2. Merealisasikan dengan langkah-langkah berikut :




Secara umum, struktur suatu program terdiri dari beberapa bagian yaitu :

1. Input
Bagian ini merupakan proses untuk memasukkan data ke komputer melalui device yang ada misalnya keyboard, mouse, scanner dll.
Program melakukan proses membaca data yang akan diolah dari device tersebut.

2. Output
Bagian ini merupakan proses untuk menampilkan data yang telah diolah, melaporkan hasil pegolahan data melalui device seperti monitor, printer dll. Program melakukan proses mencetak data ke device tersebut.

3. Proses Pengolahan Data
Bagian ini merupakan proses mengolah data yang diinputkan dengan nenerapkan metode-metode, teknik-teknik, algoritma-algoritma yang ada. Proses ini menghasilkan data output yang akan dioutputkan kepada pengguna program.

4. Penyimpanan Data
Bagian ini merupakan proses menyimpan data dalam memori atau device penyimpanan data seperti disket, harddisk, CD dll.

Berikut ini adalah blok diagram struktur dari suatu program secara umum.




ALGORITMA

Definisi:
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
System flowchart adalah urutan proses dalam system dengan menunjukkan alat media input, output serta jenis media penyimpanan dalam proses pengolahan data.
Program flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program.
Pada umumnya algoritma kurang lebih sama dengan suatu prosedur yang sering dilakukan setiap hari, misalnya prosedur untuk mengganti ban bocor/pecah, prosedur pemakaian telepon umum, prosedur membuat kue dan lain-lain.
Langkah-langkah tersebut harus logis, ini berarti nilai kebenarannya harus dapat ditentukan, benar atau salah, karena langkah-langkah yang tidak benar dapat memberikan hasil yang salah.
Pedoman-pedoman dalam membuat flowchart
Jika seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan Melakukan penggandaan diri.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
7. Gunakan simbol-simbol flowchart yang standar.

Sampai sekarang terdapat banyak sekali bahasa pemrograman, berdasarkan terapannya bahasa pemrograman digolongkan dua kelompok;
1. Bahasa pemrograman bertujuan khusus, yang termasuk kelompok ini adalah Cobol (untuk terapan bisniS dan administrasi), Fortran (terapan komputasi ilmiah), prolog (terapan kecerdasan buatan).
2. Bahasa pemrograman bertujuan umum, yang dapat digunakan dalam berbagai aplikasi, contoh pascal, basic, c, c++.

Tahapan pelaksanaan program oleh komputer

Tahap-tahap penyusunan algoritma seringkali dimulai dari langkah yang global lebih dahulu, baru kemudian diperhalus dengan langkah-langkah yang lebih rinci.

Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.
Algoritmanya :
1. Bagi bilangan dengan bilangan 2
2. Hitung sisa hasil bagi pada langkah 1.
3. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.

contoh lain:

Diberikan n buah data bilangan bulat yang tersusun secara acak, diminta untuk menyusun sebuah algoritma untuk mengurutkan sekumpulan data tersebut sehingga tersusun terurut dari nilai yang kecil ke nilai yang besar, misalkan n = 5, dengan data bilangan bulat yang yang belum terurut.

Data ke-1 = 10

Data ke-2 = 15

Data ke-3 = 5

Data ke-4 = 17

Data ke-5 = 2

Buat algoritma untuk mengurutkan data tersebut.

Penyelesaian:

Dari permasalahan tersebut dapat diselesaikan dengan menggunakan 3 algoritma berikut ini:

Algoritma Bahasa Manusia (Human Languages)

1. Mulai.

2. Memasukkan jumlah data (N) yang diinputkan.

3. Inisialisasi data (N) yang diinputkan.

4. Memasukkan data ke-1.

5. Memasukkan data ke-2.

6. Memasukkan data ke-3.

7. Memasukkan data ke-4.

8. Memasukkan data ke-5.

9. Inisialisasi data ke-1 sampai ke-5.

10. Jika data ke-5 <>

11. Jika data ke-4 <>

12. Jika data ke-3 <>

13. Jika data ke-2 <>

14. Jika data ke-1 > data ke-5, maka tukar data.

15. Ulangi proses pertukaran data dari akhir ke awal.

16. Cetak hasil data ke-1 hingga ke-5.

17. End (stop).

Ø Algoritma Pseudocode

1. Begin.

2. (Input) data N.

3. Inisialisation data N.

4. (Input) data ke-1=’10’.

5. (Input) data ke-2=’15’.

6. (Input) data ke-3=’5’.

7. (Input) data ke-4=’17’.

8. (Input) data ke-5=’2’.

9. Inisialisation data ke-1 (until) data ke-5.

10. Jika (if) data ke-5 > data ke-4, sorting.

11. Jika (if) data ke-4 > data ke-3, sorting.

12. Jika (if) data ke-3 > data ke-2, sorting.

13. Jika (if) data ke-2 > data ke-1, sorting.

14. Jika (if) data ke-1 <>

15. Ulangi (repeat).

16. Cetak (print) sorting value.

17. End (stop).


FLOWCHART
Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut.
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart :




Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai berikut :




Untuk membuat flowchart banyak sekali aplikasi yang dapat digunakan, dari aplikasi yang offline maupun online. semua diciptakan dan disediakan untuk mempermudah dalam pembuatan flowchart. Dengan menggunakan microsoft word misalkan, kita sudah dapat memakainya tetapi kadang keterbatasan tools sehingga kita mengalami kesulitan. Alplikasi lain misalnya visio, merupakan salah satu aplikasi offline yang dapat digunakan, Aplikasi secara online salah satunya adalah Lovelychart. Software secara online ini menyediakan kemudahan untuk membuat flowchart.


Selasa, 08 Desember 2009

Perulangan dan contional/ selection

Perulangan dalam Pascal

Di dalam Pascal terdapat tiga macam perulangan yaitu dengan menggunkan statemen For … Do, While … Do dan Repeat … Until.
1. Struktur perulangan For … Do

Jenis perulangan ini digunakan untuk mengulang statemen atau satu blok statemen berulang kali yang ditentukan.
a. Perulangan For … Do Positif
Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar atau dengan kata lain pertambahannya positif .Menggunakan perintah For to do

contoh:


PENGULANGAN KATA (menggunakan for-to-do)

program perulangan;
uses wincrt;
var
n:integer;
begin
for n:=1 to 5 do
writeln(n,'. Pemrograman Komputer');
end.




b. Perulangan For … Do Negatif

Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil atau dengan kata lain pertambahannya negatif. Menggunakan perintah: For ...downto...do...
c. Perulangan For … Do tersarang

Perulangan tersarang adalah perulangan yang berada di dalam perulangan yang lainnya. Pada perulangan ini perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, lalu baru perulangan yang lebih luar.

contoh:


SEGITIGA ASYIK

program segitiga;

uses wincrt;

var x,y,z:integer;

begin

write('masukkan angka segitiga asyik=');readln(y);

for x:=1 to y do

begin

for z:=1 to x do

write(x:3);

writeln;

end;

end.

SEGITIGA 15

program segitiga;

uses wincrt;

var x,y,z:integer;

begin

write('masukkan angka=');readln(y);

for x:=1 to y do

begin

for z:=1 to x do

write(' ',15);

writeln;

end;

end.



2. Struktur perulangan While … Do

Jenis perulangan ini digunakan untuk mengulang statemen atau satu blok statemen berulang kali yang jumlahnya belum bisa ditentukan, tergantung nilai kondisi yang terletak antara While … do. Perulangan akan dikerjakan bila nilai kondisinya bernilai benar dan akan berhenti jika kondisi bernilai salah

contoh:

PERULANGAN KATA

program perulangan;

uses wincrt;

var

x:integer;

begin

x:=1;

while x<6>

begin

writeln(x,'. Pemrograman Komputer');

x:=x+1;

end;

end.


3. Struktur perulangan Repeat … Until

Jenis perulangan ini digunakan untuk mengulang statemen atau satu blok statemen berulang kali yang jumlahnya belum bisa ditentukan, tergantung nilai kondisi yang terletak setelah until. Perulangan akan dikerjakan bila nilai kondisinya bernilai salah dan akan berhenti jika kondisi bernilai benar.
contoh:

BILANGAN GANJIL

program bilangan_ganjil;

uses wincrt;

var

x,y,jum:integer;

begin

write('sampai berapa?');readln(y);

begin

x:=1;

repeat

write(x,' ');

x:=x+2;

until

x>y;

end;

end.


BILANGAN GENAP

program bilangan_genap;

uses wincrt;

var

x,y,jum:integer;

begin

write('sampai berapa?');readln(y);

begin

x:=2;

repeat

write(x,' ');

x:=x+2;

until

x>y;

end;

end.

JUMLAH BILANGAN

program jumlah_bilangan;

uses wincrt;

var

x,y,jum:integer;

begin

x:=1;

jum:=0;

write('masukkan y=');readln(y);

repeat

write(x);

if x

jum:=jum+x;

x:=x+1;

until x>y;

write('=');

write(' ',jum);

end.

PERULANGAN KATA (menggunakan repeat until)

program perulangan;

uses wincrt;

var

x:integer;

begin

x:=1;

repeat

writeln(x,'. Pemrograman Komputer');

x:=x+1;

until x>5;

end.


CONDITION/SELECTION


Sistem ini memungkinkan programmer untuk membuat program yang dapat memilih satu langkah di antara sejumlah langkah untuk dikerjakan.
Hamper tiap program yang komplek mengandung suatu penyeleksian tertentu. Dengan menyeleksi suatu kondisi, program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari hasil kondisi yang diseleksi tersebut. Untuk menyeleksi suatu kondisi, di dalam pascal dapat dipergunakan system If dan Case.
Statemen If dapat dibagi menjadi tiga, yaitu:
1. Statemen If-Then
2. Statemen If-Then…Else
3. Statemen If Bersarang (Nested)
Sedangkan statemen Case dapat dibedakan menjadi dua, yaitu:
1. Statemen Case-of
2. Statemen Case-of … Else

Statemen If


Statemen dari statemen If dapat berupa If-Then atau If-Then-Else

Statemen If – Then
Contoh penggunaan statemen If – Then
uses wincrt;
var
nilai_ujian:real;
keterangan:string;
begin
keterangan:='tidak lulus';
write('nilai yang diperoleh mahasiswa?');
readln(nilai_ujian);
if nilai_ujian > 50 then keterangan:='lulus';
write(keterangan);
end.

Statemen If - Then..else
Bentuk dari statemen if-then…else merupakan pengembangan dari struktur If-Then dengan statemen sebagai berikut.
If kondisi Then
Statemen 1 (instruksi 1)
Else
Statemen 2 (instruksi 2)

Berikut merupakan contoh program yang menggunakan condition

program kelulusan;
uses wincrt;
var a,b,c:integer;
d:real;
begin
write('nilai kalkulus=');readln(a);
write('nilai geometri=');readln(b);
write('nilai PDB='); readln(c);
d:=(a+b+c)/3;
writeln('nilai rata-rata matematika=',d:2:2);
If d>50 then
writeln('Selamat Anda lulus!!!')
else
writeln('Maaf Anda tidak lulus')
end.

Statemen Bersarang

Statemen bersarang adalah bentuk statemen If yang dapat mengandung pernyataan If yang lain. Hal yang penting di dalam pembuatan If bersarang adalah pemahaman terhadap If Else.
Contoh:
Program Nilai_Ujian;
Uses wincrt;
Var
na :integer; skor : string;
Begin
Write ('input nilai :');
readln (na);
if (na<=50) then skor := 'E' else
if (na<=60) then skor := 'D' else
if (na<=75) then skor := 'C' else
if (na<=85) then skor := 'B' else
if (na<=100) then skor:= 'A';
write ('nilai yang diinputkan memiliki skor :',skor);
End.

Statemen Case


Statemen Case merupakan alternative dari pernyataan if untuk masalah pilihan yang berganda pada masalah tertentu, Case lebih member kejelasan daripada if. Namun, perlu diketahui bahwa sama persoalan yang dapat ditangani Case bisa ditangani oleh If, tetapi tidak sebaliknya.

Statemen Case-of
Struktur Case-of mempunyai suatu ungkapan logika yang biasa disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case label) yang mempunyai tipe sama dengan selector. Statemen yang mempunyai case label yang bernilai sama dengan nilai selector akan diproses sedang statemen yang lainnya tidak.
Perbedaan dengan if adalah bila statemen If menyeleksi suatu kondisi dan terpenuhi, setelah memproses statemen dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap statemen If berikutnya yang lain. Sedangkan pada statemen Case-of bila salah satu kondisi terpenuhi (nilai case label sama dengan niali selector) dan statemen tersebut telah diprose, selanjutnya statemen-statemen yang lainnya dalam bentuk Case tidak akan diseleksi lagi.
Contoh program dari Case-of:
program mengeja;
uses wincrt;
var a:integer;
b,c:integer;
begin
write('bilangan yang anda punyai: ');readln(a);
b:=a div 10;
if a=11 then write('sebelas')
else if a=17 then write('tujuhbelas')
else if a=12 then write('duabelas');
case b of
1:begin write('sepuluh'); end;
2:begin write('dua puluh'); end;
3:begin write('tiga puluh'); end;
4:begin write('empat puluh');end;
5:begin write('lima puluh'); end;
6:begin write('enam puluh'); end;
7:begin write('tujuh puluh'); end;
8:begin write ('delapan puluh');end;
9:begin write('sembilan puluh');end;
end;
c:=a mod 10;
write(' ');
case c of
1:begin write('satu'); end;
2:begin write('dua'); end;
3:begin write('tiga'); end;
4:begin write('empat');end;
5:begin write('lima'); end;
6:begin write('enam'); end;
7:begin write('tujuh'); end;
8:begin write ('delapan');end;
9:begin write('sembilan');end;
end;
end.

Statemen Case-Of … Else
Statemen Case-Of … Else merupakan pengembangan dari statemen case-of dan merupakan pengembangan dari standar Pascal. Pada Case-Of bila tidak ada kondisi yang terpenuhi, berarti tidak ada statemen yang di dalam lingkungan Case-Of yang diproses. Dengan struktur Case_of…Else, bila tidak ada kondisi yang terpenuhi, maka statemen yang akan diproses di dalam lingkungan Case-Of adalah statemen yang ada di Else.
Contoh Program:
MENU MAKANAN
program menu;
uses wincrt;
var
x:integer;
begin
gotoxy(20,5);writeln('menu warung
CHIMI=');
gotoxy(20,6);writeln('================');
gotoxy(20,9);writeln('1.ayam
LOMBOK IJO');
gotoxy(20,10);writeln('2.
SOP BUNTUT');
gotoxy(20,11);writeln('3.
GUDEG KOMPLIT');
gotoxy(20,12);writeln('4.
OSENK MERCON');
gotoxy(20,16);write ('apa menu favorit anda?');
readln(x);
case x of
1:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('ayam
LOMBOK IJO');
end;
2:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('
SOP BUNTUT);
end;
3:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln(
GUDEG KOMPLIT');
end;
4:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln(
OSENK MERCON');
end;
Else
clrscr;
writeln('Anda Salah Pilih');
end;
end.