Algoritma dan Pemprograman 1


Algoritma yaitu kumpulan langkah-langkah / steps untuk menyelesaikan masalah menggunakan komputer (program komputer) dengan syarat tertentu. Adapun syarat-syaratnya adalah sebagai berikut :

  1. Setiap langkah harus DEFINITE (pasti, tertentu), dalam algoritma terdapat instruksi-instruksi yang jelas dan tidak ambigu.
  2. Minimum mempunyai 1 output (input boleh tidak ada).
  3. Harus ada stoping criteria (bisa berhenti).


Algoritma juga mempunyai beberapa jenis yaitu :

  1. Sequence, instruksi dikerjakan berurutan (sekuensial).
  2. Selection, instruksi dikerjakan bila kreteria tertentu terpenuhi.
  3. Iteration, instruksi dikerjakan selama memenuhi kondisi tertentu.
  4. Concurrent, mengerjakan banyak instruksi secara bersama.

Langkah-langkah dalam membuat suatu program, yaitu:

  • Mendefinisikan masalah. Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.
  • Mencari solusi. Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
  • Menentukan algoritma. Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
  • Menulis program. Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
  • Menguji program. Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
  • Mendokumentasikan program. Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. Penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
  • Merawat program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.

(Sumber: http://www.nusinau.com/konsep-algoritma-pemrograman/)

Contoh Algoritma dan Pemrograman:

(Ini menggunakan program TPW 1.5)

Program tugas_uas_alpro;
uses wincrt;
var  a,i,J, N,sementara,p,thn,max,min,jum,njum,b,c:integer;
u:char;
med,rata:real;
prima:boolean;
x:array [1..1000] of integer;
jumlah:longint;
menu:string;

procedure genap;
begin
repeat;
clrscr;

gotoxy(20,1);write(‘{=================================================}’);     gotoxy(20,2);write(‘{===== Menentukan Bilangan Genap atau Ganjil =====}’);
gotoxy(20,3);write(‘{=================================================}’)  gotoxy(2,5);write(‘Masukkan suatu bilangan bulat = ‘);readln(a);
begin
if a mod 2 = 0 then writeln(‘Itu merupakan bilangan genap’)
else writeln(‘Itu merupakan blangan ganjil’) ;
write(‘Mau coba lagi? [Y/T]’);u:=upcase(readkey);
end;
until u<>’Y’
end;

procedure prime;
begin
repeat;
clrscr;
gotoxy(20,1);write(‘{===========================================}’);
gotoxy(20,2);write(‘{===== Menentukan Suatu Bilangan Prima =====}’);
gotoxy(20,3);write(‘{===========================================}’);
gotoxy(2,5);write(‘Masukkan Suatu Bilangan = ‘);readln(p);
prima:=true;
if p=2 then prima:=true
else
if p<=1 then prima:=false
else
for i:=2 to (p-1) do
if p mod i = 0 then prima:=false;

if prima=true then writeln (‘Itu merupakan bilangan prima’)
else writeln(‘Itu bukan bilangan prima’);
write(‘Mau ulangi lagi? [Y/T]’);u:=upcase(readkey);
until u<>’Y’;
end;

procedure kbsat;
begin
repeat
clrscr;
gotoxy(20,1);write(‘{====================================}’);
gotoxy(20,2);write(‘{===== Menentukan Tahun Kabisat =====}’);
gotoxy(20,3);write(‘{====================================}’);
gotoxy(2,5);write(‘Masukkan tahun = ‘);read(thn);
if (thn mod 4= 0) then writeln(‘itu tahun kabisat’)
else writeln(‘itu bukan tahun kabisat’) ;
write(‘Mau coba lagi? [Y/T]’);u:=upcase(readkey);
until u<>’Y’;
end;

procedure maxmin;
begin
repeat
clrscr;
gotoxy(20,1);writeln(‘{==============================================}’); gotoxy(20,2);writeln(‘{===== Mencari Nilai Maksimum dan Minimum =====}’);
gotoxy(20,3);writeln(‘{==============================================}’);
gotoxy(2,5);write(‘Banyak Data yang akan diinput : ‘);read(b);
jumlah:=0;
for c:=1 to b do
begin
write(‘Data ke-‘,c,’ = ‘);readln(x[c]);
jumlah:=jumlah+x[c];
end;
begin
max:=x[1];
min:=x[1];
for c:=2 to b do
if x[c]>max then max:=x[c]
else if x[c]<min then min:=x[c];
writeln(”);
writeln(‘Nilai Minimum = ‘,min);
writeln(‘Nilai Maximum = ‘,max);
end ;
write(‘Mau coba lagi? [Y/T]’);u:=upcase(readkey);
until u<>’Y’
end;

procedure rta2;
begin
repeat
clrscr;
jum:=0;
gotoxy(20,1);write(‘{===================================================}’);gotoxy(20,2);write(‘{===== Mencari Jumlah dan Rata-Rata Suatu Data =====}’);
gotoxy(20,3);write(‘{===================================================}’);   gotoxy(2,5);write(‘Masukkan jumlah data = ‘);readln(n);
for i:= 1 to n do
begin
write(‘Data ke-‘,i, ‘ = ‘);readln(x[i]);
jum:=jum+x[i];
njum:=n;
Rata:=jum/njum;
end;
writeln;
writeln(‘Jumlah = ‘,jum);
writeln(‘Rata-rata = ‘,rata:0:1);
write(‘Mau coba lagi? [Y/T]’);u:=upcase(readkey);
until u<>’Y’
end;

procedure median;
begin
repeat;
clrscr;
gotoxy(20,1);writeln(‘{==============================================}’);
gotoxy(20,2); writeln(‘{===== Menentukan Nilai Median Suatu Data =====}’);
gotoxy(20,3);writeln(‘{==============================================}’);
writeln;
gotoxy(2,5); write(‘Banyaknya Data yang Ingin Anda Masukkan: ‘);readln(N);

for  i := 1 to N do
begin
Write(‘Data ke ‘, i, ‘ = ‘);readln(x[i]);
end;
for i := 1 to N-1 do
for J := 1 to N-1 do
if x[J] > x[J+1] then
begin
sementara := x[J];
x[J] := x[J+1];
x[J+1] := sementara;
end;

writeln;
writeln(‘Banyaknya Data = ‘, N);
writeln(‘Data-data yang telah Anda masukkan: ‘);
for i := 1 to N do
begin
write(x[i],’ ‘);
end;
if (N mod 2 <> 0)  then
med := x[(N div 2)+1];

if (N mod 2 = 0)  then
med := (x[N div 2] + x[(N div 2)+1]) / 2;

writeln;
writeln(‘Median dari data-data tersebut = ‘, med:0:1);
write(‘Mau Coba Lagi?? [Y/T]’) ; u:=upcase(readkey);

until u<>’Y’;
end;

procedure exit;
begin
clrscr;
if (menu=’7′) then gotoxy(18,8);writeln(‘Terima Kasih Telah Menggunakan Program Ini’);
gotoxy(18,9);writeln(‘==============>>>>>==<<<<<================’);
gotoxy(27,10);write(‘Press Any Key to Quit ‘);readkey;
donewincrt;
end;

procedure lanjut;
begin
clrscr;
gotoxy(29,1);writeln(‘========================================’);
gotoxy(29,2);writeln(‘<<<<< Selamat Datang di Menu Utama >>>>>’);
gotoxy(29,3);writeln(‘========================================’);
gotoxy(21,5);writeln(‘1. Menentukan bilangan genap atau ganjil’);
gotoxy(21,6);writeln(‘2. Menentukan bilangan prima’);
gotoxy(21,7);writeln(‘3. Menentukan tahun kabisat’);
gotoxy(21,8);writeln(‘4. Menentukan nilai maksimum dan minimum suatu data’);
gotoxy(21,9);writeln(‘5. Menentukan nilai jumlah dan rata-rata suatu data’);
gotoxy(21,10);writeln(‘6. Menentukan nilai median suatu data’);
gotoxy(21,11);writeln(‘7. Exit’);
gotoxy(21,12);write(‘Pilih salah satu menu yang tersedia : ‘);menu:=upcase(readkey);
if menu=’1′ then genap
else if menu=’2′ then prime
else if menu=’3′ then kbsat
else if menu=’4′ then maxmin
else if menu=’5′ then rta2
else if menu=’6′ then median
else if menu=’7’ then exit
else readkey;
end;

begin
begin
clrscr;
gotoxy(20,1); writeln(‘ ================================================’);
gotoxy(20,2); writeln(‘ |   A L G O R I T M A   P E M R O G R A M A N  |’);
gotoxy(20,3); writeln(‘ |   U N I V E R S I T A S   S R I W I J A Y A  |’);
gotoxy(20,4);  writeln(‘================================================’);
gotoxy(20,6); writeln(‘                 Created By:             ‘);
gotoxy(20,8);writeln(‘    ====================================   ‘);
gotoxy(20,9);writeln(‘    |                                  |  ‘);
gotoxy(20,10);writeln(‘    |       Nama: Dirga Permana        |  ‘);
gotoxy(20,11);writeln(‘    |        NIM : 06111008027         |  ‘);
gotoxy(20,12);writeln(‘    |                                  |  ‘);
gotoxy(20,13);writeln(‘    | FAKULTAS : FKIP                  |  ‘);
gotoxy(20,14);writeln(‘    | JURUSAN  : PENDIDIKAN MIPA       |  ‘);
gotoxy(20,15);writeln(‘    | PRODI    : PENDIDIKAN MATEMATIKA |  ‘);
gotoxy(20,16);writeln(‘    ====================================  ‘);
gotoxy(20,18);write  (‘      Press Any Key to Continue’);readkey;clrscr;

repeat lanjut ;
until menu=’7′;
if (menu=’7′) then gotoxy(20,8);writeln(‘Terima Kasih Telah Menggunakan Program Ini’);
gotoxy(18,9);writeln(‘==========================================’);
gotoxy(27,10);write(‘Press Any Key to Quit’);readkey;
donewincrt;
end;
end.

Jika algoritmanya benar, maka output-nya akan seperti ini:

Untitled

Mau contoh program lain, silahkan download di program alpro.

Semoga bermanfaat 🙂

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Mastro ! :)

Master Trigonometry. Lets enjoy to learn about trigonometry and be a master trigonometry :)

Math on Journey

PMRI Blog: mathematics is all around us

Yeni Widiastuti

Smile! You’re at the best Mathematics site ever

Rawa_Math

Always Think in Math

Rindi Antika Sari

Selamat Datang di Blog Pendidikan

Math Zone

Merangkai Matematika Mengubah Dunia

Zulkardi's Weblog

Just another WordPress.com weblog

ImamYupicayee

IT Information,Download Anime Bersub Indo,Theme Anime,Games,Software and other

BERMATEMATUALANG ( Belajar Matematika Unik, Asyik, Lucu, dan Menyenangkan)

Mathematics as a human activity (Freudhental : 1991)

Math Problem Cases

How mathematics should be learned

CATATAN SIMET (Si Math)

SIMET DAN PERMASALAHAN MATEMATIKA-NYA

xy - Math

Source and Share About Mathematics

Rumahtematika

riapuspitasariii.wordpress.com

Math's Rainbow

When you can see the beauty of mathematics

Super SoulMath

All about Education,Mathematics in ICT

Mathematics and Mathematics Education

Push yourself to realize your dreams

%d bloggers like this: