PENGANTAR ALGORITMA DAN PEMROGRAMAN



Algoritma adalah susunan langkah-langkah sistematis dan logis dalam pemecahan suatu masalah. Ada 3 cara dalam menyusun algoritma yaitu: (1) Dengan merumuskan langkah-langkah pemecahan masalah melalui kalimat yang tersetruktur (tersusun secara logis); (2) Menggabungkan kalimat dengan penggalan statements yang ada di suatu bahasa pemrograman (mis : Pascal ). Biasa disebut Pseudo code (mirip kode/perintah pemrograman); dan (3) Menggunakan diagram alir (flowchart). Algoritma adalah merupakan jantung ilmu komputer atau informatika. Program adalah merupakan perwujudan atau implementasi dari algoritma. Program ditulis dalam salah satu bahasa pemrograman. Kegiatan menulis program disebut pemrograman (programming).

A. PENDAHULUAN

Sejarah kata Algoritma berasal dari nama seorang ahli matematika bangsa Arab yaitu Abu Ja'far Muhammad ibnu Musa al-Khuwarizmi. Al-Khuwarizmi dibaca oleh orang Barat menjadi Algorism. Perubahan kata algorism menjadi algorithm karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Lambat laun kata algorithm dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia kata algorithm diserap menjadi algoritma. Definisi Algoritma adalah : Susunan langkah-langkah sistematis dan logis dalam pemecahan suatu masalah.
Ada 3 cara dalam menyusun algoritma yaitu :
1.    Algoritma cara ke-1 :
Dengan merumuskan langkah-langkah pemecahan masalah melalui kalimat yang tersetruktur (tersusun secara logis).
Contoh:
Ada persoalan sbb : Dua buah gelas misalkan gelas A berisi air warna merah dan gelas B berisi air warna biru. Permasalahannya adalah bagaimana mempertukarkan isi kedua gelas A dan B sehingga gelas A berisi air warna biru dan gelas B berisi air warna merah. Buatlah algoritmanya.
Jawab:
Langkah-langkahnya sbb:
    1. Sediakan satu gelas kosong misalkan C
    2. Tuangkan isi gelas A ke gelas C
    3. Tuangkan isi gelas B ke gelas A
    4. Tuangkan isi gelas C ke gelas B
    5. Selesai

{Program : URUT.PAS}
PROGRAM URUT_DATA;
USES CRT;
VAR D,X,Z : BYTE;

T : LONGINT;
R : REAL;
DATA : ARRAY[1..5] OF BYTE;

BEGIN
    CLRSCR;
    T:=0;
    FOR D:=1 TO 5 DO
       BEGIN
          Write('DATA KE ',D,' : '); ReadLn(DATA[d]);
          T:=T+Data[d];
       END;
    WriteLn;
    Write('Data sebelum diurut : ');
    FOR D:= 1 TO 5 DO
       Write(Data[d]:3);
{ -- URUT DATA ---}
FOR D:= 1 TO 4 DO
    BEGIN
       FOR X:= D+1 TO 5 DO
           BEGIN
                IF DATA[d] > DATA[x] THEN
                   BEGIN
                      Z:=DATA[d];
                      DATA[d] := DATA[x];
                      DATA[x] := Z;
                   END;
           END;
    END;
 WriteLn;
 WriteLn;
 Write('DATA SETELAH DIURUT : ');
 FOR D:=1 TO 5 DO
     WRITE(DATA[d]:3);
WRITELN;
WRITELN('TOTAL : ',T);
R:=T/D; 
WRITELN('RATA : ',R:10:2);
READLN;
END.

2.    Algoritma cara ke-2 :
Menggabungkan kalimat dengan penggalan statements yang ada di suatu bahasa pemrograman (mis : Pascal ). Biasa disebut Pseudo code (mirip kode/perintah pemrograman)
Contoh : Algoritma untuk konversi bilangan berbasis-10 menjadi bilangan berbasis-2.
1. INPUT a { a adalah bilangan bebasis 10}
   Hit = 1 { hit adalah indeks untuk menyimpan sisa hasil bagi }
2. DO WHILE a>0
      sb = sisa bagi a dengan 2
      bil(hit) = sb
      hit = hit + 1
      a = hasil pembagian a dengan 2
   ENDDO
3. DO WHILE hit > 0
    cetak bil(hit);
    hit = hit + 1
    ENDDO    


3.    Algoritma cara ke-3 :
Menggunakan diagram alir (flowchart).
Lambang lambang flowchart secara umum

Contoh: flowchart hitung luas lingkaran :




a.    Algoritma merupakan jantung Ilmu Informatika
Algoritma adalah merupakan jantung ilmu komputer atau informatika. Banyak cabang ilmu
komputer yang diacu dalam terminologi algoritma. Namun jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Cara membuat kue atau masakan yang dinyatakan dalam resep masakan, itu juga merupakan algoritma. Ibu-ibu yang mencoba resep masakan tersebut akan membaca satu persatu langkah pembuatannya, lalu mengerjakan proses (melakukan aksi) sesuai yang ia baca. Secara umum, pihak yang mengerjakan proses disebut pemroses (processor). Pemroses dapat berupa manusia, komputer, robot, alat mekanik, alat elektronik dll. Melaksanakan algoritma berarti mengerjakan langkah-langkah yang tertulis dalam algoritma tersebut.

b. Mekanisme Pelaksanaan Algoritma
Agar algoritma dapat dilaksanakan dalam komputer maka algoritma harus di ubah ke notasi bahasa pemrograman sehingga disebut program. Jadi program adalah merupakan perwujudan atau implementasi dari algoritma. Program ditulis dalam salah satu bahasa pemrograman. Kegiatan menulis program disebut pemrograman(programming). Orang yang menulis program disebut pemrogram (programmer). Tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi program adalah : "Sederetan instruksi yang sistematis dan logis yang menggunakan sintaks tertentu untuk menyelesaikan permasalahan".
Secara garis besar komputer tersusun atas 4 komponen utama yaitu :
   1. Input device (piranti masukan)
   2. Output device (piranti keluaran)
   3. Unit pemroses utama (Central Processing Unit )
   4. Memory (piranti penyimpan sementara)

Perbedaan belajar Memprogram dengan Belajar Bahasa Pemrograman
Ø Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya kedalam suatu notasi yang mudah dipahami. Belajar algoritma sama dengan belajar memprogram.
Ø Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan dan tata bahasanya, instruksi-instruksinya, cara pengoreasian compiler-nya. Belajar bahasa program contohnya adalah belajar Turbo- Pascal.

c.    Pemrograman Prosedural.
Bahasa pemrograman yang menerapkan konsep prosedural didalam penulisan programnya misalnya adalah T.Pascal. Teknik pemrograman prosedural adalah : program di bagi menjadi beberapa bagian program yang lebih kecil yang disebut modul atau sub program atau rutin atau procedure atau function. Bagian-bagian program kecil ini nantinya di kontrol atau dikendalikan dari program utama (main program). Setiap sub program dapat di panggil berkali-kali dari program utama.

B. ATURAN PENULISAN TEKS ALGORITMA
Agar algoritma mudah ditranslasikan ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritmik tersebut berkoresponden dengan notasi bahasa pemrograman secara umum. Misalkan kita menulis perintah :
tulis nilai x dan y
dalam notasi algoritmik ditulis menjadi : write(x,y)

Tabel notasi algoritmik
NO
Notasi Biasa
Notasi Algoritmik
Notasi T.Pascal
1
masukan nilai x
readln(x)
ReadLn(x);
2
isikan nilai 5 kedalam x
x5
X:=5;
3
isikan nilai x kedalam min
min  x
Min:=x;
4
tambahkan nilai 1 ke X itulah X
xx+1
X:=x+1;
5
tulis nilai x dan y
write(x,y)
Write(x,y);
6
jika a lebih besar dari b maka
if a>b then
If a>b Then

Aturan diatas tidak baku, hanya penyesuaian dengan bahasa pemrograman Turbo Pascal.
Pada dasarnya teks algoritma tersusun dari 3 bagian (blok) yaitu :
   1. Kepala Algoritma atau judul (header)
   2. Bagian deklarasi.
   3. Bagian deskripsi (uraian) algoritma.
Ø Header atau kepala algoritma bagian yang terdiri dari nama algoritma dan penjelasan singkat (spesifikasi) tentang algoritma tersebut. Penjelasan di apit tanda kurung kurawal { - }.
Ø Deklarasi merupakan bagian untuk mendefinisikan semua nama yang dipakai dalam algoritma. Nama dapat berupa nama peubah, tetapan, tipe, prosedur, fungsi, dll.
Ø Deskripsi merupakan bagian yang menjelaskan atau menguraikan langkah-langkah penyelesaian masalah. Uraian ditulis baris perbaris sesuai urutan yang harus dikerjakan secara sistematis.


C. TIPE, NAMA, DAN NILAI PENGENAL
Pada umumnya, program komputer bekerja dengan memanipulasi objek(data) di dalam
memori. Objek yang akan diprogram bermacam-macam jenis atau tipenya, misalnya nilai numerik, karakter, string dan rekaman (record). Suatu tipe menyatakan pola penyajian data dalam komputer. Tipe data dapat dikelompokan menjadi atas dua macam: tipe data dasar dan tipe tipe bentukan. Tipe dasar adalah tipe yang dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar. Suatu tipe diacu dari namanya. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan di dalam ranah (domain) nilai.
a. Tipe Dasar
Ø Bilangan Logika
Ø Bil Bulat
Ø Bil Riil
Ø Karakter

b. Tipe Bentukan
Ø String.
Ø Tipe dasar yang diberi nama tipe baru.
Ø Rekaman (record).

c.  Tipe dasar yang diberi nama tipe baru :
Kita dapat memberi nama baru untuk tipe dasar dengan kata kunci type ranah nilai, tetapan dan operasi sama seperti tipe dasar aslinya.

d.   Rekaman
Rekaman disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu atau tipe bentukan yang sudah didefinisikan. Nama rekaman ditentukan oleh pemrogram sendiri.

e.    Nama
Setiap objek diberi nama agar objek tersebut mudah diindentifikasi dari objek lainnya. Dalam algoritma nama dipakai sebagai pengindentifikasi "sesuatu" dan pemrogram mengacu "sesuatu" itu melalui namanya. Karena itu tiap nama haruslah unik (tidak sama). Didalam algoritma "sesuatu" yang diberi nama itu dapat berupa :
1. Label
     Label merupakan pengenal baris. Suatu baris dalam program diberi nama/pengenal. Label ini diberikan pada baris tertentu biasanya untuk instruksi percabangan.
2. Peubah (variabel)
Variabel adalah alamat memory yang diberi nama sebagai tempat penyimpan data/informasi dan isi variabel dapat diubah.
3. Tetapan (constanta)
Sama dengan variabel tetapi isinya tetap (tidak bisa diubah) selama pelaksanaan program.
4. Tipe bentukan. Nama tipe bentukan diberikan oleh pemrogram.
5. Fungsi (function).
6. Prosedur (procedure).

f. Nilai
1.    Pengisian nilai ke dalam nama peubah
Nilai adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa isi yang disimpan oleh nama peubah (variabel) atau nama tetapan(constanata), atau hasil dari perhitungan atau nilai yang dikirim oleh fungsi lain.
2.    Ekspresi
Transformasi nilai(data) menjadi keluaran(informasi) melalui suatu proses perhitungan dinyatakan dalam suatu ekspresi. Ekspresi terdiri dari operand dan operator. Operand adalah nilai yang dioperasikan, operator adalah lambang untuk operasi. Ada tiga macam ekspresi yaitu :
Ø Ekspresi Aritmatik menggunakan opearator aritmatika.
Ø Ekspresi Relational (ekspresi perbandingan yang menghasilkan nilai boolean)
Ø Ekspresi Relational menggunakan operator (not, and, or, xor ). Ekpresi ini menghasilkan nilai boolean (True atau False).
Ø Ekspresi String
-     Menuliskan Nilai kepiranti keluaran (output device)


D. STRUKTUR DASAR ALGORITMA
1.      Proses, Instruksi dan Aksi
Tiap langkah instruksi mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan,
maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses.

2.      Struktur Dasar Algoritma
            Konstruksi algoritma dibangun atas 3 konstruksi dasar yaitu :
Ø  Runtunan aksi
Ø  Pemilihan aksi
Ø  Pengulangan aksi

3.      Runtunan Aksi (Squence)
Proses pelaksanaan instruksi dikerjakan beruntun dari urutan istruksi pertama, instruksi kedua, instruksi ketiga dan seterusnya hingga berakhir atau berhenti karna ada kesalahan isntruksi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah maka kemungkinan hasil akhir juga berubah.



Komentar