Saturday, September 21, 2013

TUGAS ALGORITMA

DASAR TEORI TENTANG ALGORITMA
DAN PEMROGRAMAN

Definisi Algoritma
Algoritma adalah suatu urutan langkah-langkah yang telah disusun secara logis dan sistematis yang bertujuan menyelesaikan suatu masakah dan dapat dieksekusi.
Sebuah algoritma tidak selalu berhubungan dengan komputer. Contoh dalam kehidupan sehari-hari adalah cara membuat masakan yang dinyatakan dalam resep. Pada setiap resep selalu ada langkah-langkah yang logis agar sesuai dengan masakan yang diinginkan. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Mengerjakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut dan harus sesuai. Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus mengerti setiap langkah dalam algoritma dan mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Sebuah algoritma diperbolehkan tanpa ada input tetapi minimal harus ada 1 output. Jumlah langkah (steps) dalam sebuah algoritma harus berhingga atau dengan kata lain harus ada akhir proses. Pada saat ini, sebuah PC (personal computer) dapat melakukan puluhan juta penjumlahan dalam waktu satu detik. Sebuah output kadang-kadang memerlukan lebih dari satu algoritma khususnya dalam Penginderaan Jarak Jauh yang umumnya memerlukan banyak algoritma untuk menghasilkan sebuah output sehingga untuk menghasilkan sebuah output yang benar dan cepat maka algoritma dalam Penginderaan Jarak Jauh selalu berhubungan dengan komputer.


 Program yang disusun secara sistematis dan logis dan dapat menyelesaikan masalah (menghasilkan output) adalah merupakan sebuah algoritma. Secara umum, ada tiga elemen penting yang harus dimiliki mulai dari pembuatan sebuah algoritma (brainware), program untuk menjalankan algoritma (software), dan alat untuk pemrosesan algoritma (hardware) yang secara struktural. Perangkat keras (hardware) merupakan berbagai peralatan yang terdapat di dalam suatu sistem komputer seperti papan ketik (keyboard), layar (monitor), disk, memori, dan unit pemroses (CPU=Central Processing Unit).
Perangkat keras sebuah komputer terdiri dari enam unit (logika) yang saling berhubungan membentuk suatu organisasi komputer yaitu:
1.         Unit input, yang digunakan untuk menerima masukan data dan/atau program komputer dari berbagai alat masukan (input devices) dan menempatkannya ke unit lain sedemikian rupa sehingga dapat diproses.
2.         Unit output, yang digunakan untuk menyimpan data atau informasi yang telah diproses oleh komputer dan menempatkannya pada berbagai alat output (output devices) sehingga dapat digunakan oleh pengguna.
3.         Unit memori, yang sering disebut sebagai memori utama digunakan untuk menyimpan atau menampung masukan dari unit input, sehingga data (informasi) tersebut selalu tersedia untuk diproses pada saat dibutuhkan.Unit ini juga menampung hasil proses komputer sampai diperlukan oleh unit output.
4.         ALU(Arithmetic and Logic Unit), yang bertugas untuk melakukan operasi aritmetika (perhitungan) seperti penjumlahan, pengurangan, perkalian, dan pembagian. Disamping itu, ALU juga bertugas untuk melakukan keputusan dari suatu operasi logika dasar maupun operasi boolean sesuai dengan instruksi program seperti sama dengan (=), tidak sama dengan (≠), kurang dari (<), kurang atau sama dengan (), dan lebih besar atau sama dengan (>), dan lain-lain.
5.         CPU (Central Processing Unit) merupakan ”brain” atau ”processor” dari sebuah komputer yang merupakan koordinator dan penanggung jawab bagi operasi unit-unit lainnya. Unit ini menyampaikan informasi pada unit input, menentukan kapan informasi harus dibaca ke dalam unit memori, dan pada unit output, kapan harus mengirim informasi dari memori ke alat-alat output.
6.         Secondary storage unit, yaitu media penyimpan data dan/atau program yang non-volatile berupa Flash Drive, Optical Disc, Magnetic Disk, Magnetic Tape. Media ini biasanya daya tampungnya cukup besar dengan harga yang relatif murah.

Mekanisme kerja komponen utama komputer dapat dijelaskan sebagai berikut : mula-mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).

Bahasa Pemrograman

            Pemrograman adalah proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman.

 Paradigma Pemrograman
1.      Pemrograman Prosedural
v  Berdasarkan urutan- urutan, sekuensial
v  Program adalah suatu rangkain prosedur untuk memanipulasi data. Prosedur adalah kumpulan instruksi yang dikerjakan dengan berurutan.
v  Harus mengingat prosedur mana yang telah dipanggil dan apa saja yang telah diubah.
2.      Pemrograman Fungsional
v  Berdasarkan teori fungsi matematika
v  Fungsi adalah dasar utama program
3.      Pemrograman Terstruktur
v  Berurutan dan terstruktur
v  Program dapat dibagi menjadi prosedur dan fungsi
v  Contoh : PASCAL dan C
4.      Pemrograman Modular
v  Membentuk banyak modul
v  Modul adalah kumpulan dari prosedur dan fungsi yang berdiri seniri.
v  Sebuah program dapat merupakan kumpulan dari beberapa modul
v  Contoh : MODULA-2 atau ADA
5.      Pemrograman Berorietasi Obyek
v  Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variable/property dan method/event/prosedur yang dapat dimanipulasi
v  Contoh : C++, object pascal dan Java
6.      Pemrograman Berorietasi Fungsi
v  Pemrogrman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman.
v  Contoh : SQL (Structured Query Language), HTML, XML, dan lain sebagainya.
7.      Pemrograman Deklaratif
v  Pemrograman ini mendeskripsikan tentang masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
v  Contoh : PROLOG

KARAKTERISTIK ALGORITMA

  1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh, dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3, dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah.
  2. Setiap langkah harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan “berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p dengan 10 buah bilangan bulat positif”
  3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah masukan, yaitu m dan n.
  4. Algoritma mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1 keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari kedua bilangan.
  5. Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di kerjakan dalam sejumlah waktu yang masuk akal.
FLOWCHART
Definisi Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
   
 Berikut simbol – simbol flowchart yang sering digunakan :
SIMBOL
ARTI
Input / output
Mempresentasikan input data atau output data yang diproses atau informasi
Proses



Mempresentasikan operasi
Penghubung
Keluar ke atau masuk dari bagian lain flowchart khususnya halaman yang sama
Anak Panah
 



Mempresentasikan alur kerja
Penjelasan






Digunakan untuk komentar tambahan

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.
Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan suatu aturan-aturan penulisan syntax yang cukup sederhana agar pembaca dapat lebih mudah dalam mempelajari algoritma-algoritma yang ada di dalam buku ini. Pseudocode yang ditulis di dalam buku ini akan menyerupai (meniru) syntax-syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada kesulitan bagi pembaca untuk memahami algoritma-algoritma dalam buku ini walaupun pembaca belum pernah mempelajari bahasa Pascal.
Contoh algoritma menentukan bilangan terbesar dari tiga bilangan yang ditulis dalam bentuk pseudocode bergaya buku.

BAHASA PEMROGRAMAN
Bahasa pemrograman (programming language) adalah suatu komando atau perintah yang dibuat manusia untuk membuat komputer menjadi memiliki fungsi tertentu. bahasa pemrograman ini adalah suatu susunan aturan penulisan (sintaks) yang membentuk kode kode yang kemudian akan diterjemahkan oleh program kompiler menjadi bahasa rakitan (assembly) dan terus diolah hingga dimengerti oleh mesin. Komputer hanya mengerti bahasa mesin. menurut tingkat kedekatannya bahasa pemrograman ( programming language) terdiri dari
  1. Bahasa mesin. yaitu bahasa yang digunakan untuk memprogram komputer dengan menggunakan kode semacam kode biner misalnya.00100001010100100
  2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP, dsb
  3. Bahasa Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||, dsb.
  4. 4. Bahasa Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb
Bahasa pemrograman yang populer, antara lain :
¨      FORTAN
FORTAN ( formula translation). pertama kali dikembangkan pada tahun 1956 oleh Jhon Backus di IBM. ditujukan untuk mempermudah pembuatann aplikasi matematika , ilmu pengetahuan dan teknik. FORTAN merupakan bahasa pemrograman tingkat tinggi yang pertama ada. keunggulan fortan terletak pada dukungan untuk menangani perhitungan , termasuk bilangan kompleks. Kelemahan bahasa ini adalah pada operasi masukan dan keluaran yang kaku. selain itu kode sumbernya juga sulit dipelajari
Contoh Struktur FORTAN
// JOB
// FOR
* ONE WORD INTEGERS
* IOCS(DISK,TYPEWRITER,KEYBOARD,PAPERTAPE)
______DIMENSION IEMG(10,15),IEMG1(13)
______DEFINE FILE 12(80,150,U,K)
______WRITE(1,10)
___10 FORMAT('PAPERTAPE'//'GIVE NUMBER EXPERIMENT (1-5 IN INT)')
______READ(6,30) M
___30 FORMAT(I1)
______PAUSE 1
______DO 25 N=1,16
______DO 15 I=1,15
______READ(4,20) IEMG1
___20 FORMAT(13I4)
______DO 15 J=4,13
______J3=J-3
___15 IEMG(J3,I)=IEMG1(J)
______NE=N+(M-1)*16
___25 WRITE(12'NE) IEMG
______CALL EXIT
______END
// DUP
*DELETE SJA1
*STORECI WS UA SJA1
*FILES(12,EMG)
¨      BAHASA COBOL
COBOL (comon Businnes Oriented Language) dikembangkan pada tahun 1959 dan tergolong sebagai bahasa pemrograman tingkat tinggi. sesuai dengan kepanjangan namanya bahasa ini dikembangkan untuk keperluan bisnis. keunggulan COBOL antara lain :
o   sintaksnya yang menggunakan kata bahasa inggris
o   kemudahan terhadap penanganan file
o   kemudahan input dan output
Contoh Struktur COBOL
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.     HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500     DISPLAY "Hello world!" LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.

¨      BAHASA PEMROGRAMAN BASIC
Dikembangkan tahun 1965 di Darmouth Collage. penciptanya John Kemeny
Contoh Struktur Pemrograman Basic
REM Program mencari rata-rata 3 buah bilangan

INPUT “Masukkan tiga buah bilangan : “, a, b, c
rata=(a+b+c)/3
PRINT “Rata-rata ketiga bilangan adalah : “; rata

¨      BAHASA JAVA

Dikembangkan tahun 1955 oleh sun microsystem. kode java dikompilasi dalam ormat bytcode.java sangat populer saat ini. terutama bagi para online mania.


Public class SayHello {   Public static void main(String[] args {
    System.out.println(“Hello world!”);
  }
}
¨      PASCAL

perkembangan pemrograman bahasa pascal dimulai pada tahun 1960, yaitu ketika
bahasa pemrograman ALGOL 60 digunakan sebagai algorithmic language  yang digunakan untuk memecah masalah sehari hari dengan menggunakan komputer. Niklaus Wirt dari sekolah teknik tinggi zurich swiss menjadi terkenal sebagai pencipta bahasa pascal.keunggulan pascal adalah pada strukturnya yang mudah dan lengkap. pascal adalah bahasa paling banyak digunakan dalam dunia pendidikan.

PROGRAM CariMin;

{Mencari Bilangan terkecil dari dua buah bilangan}

VAR
  x,y,min:integer;

BEGIN
  WRITE(‘Bilangan pertama : ‘);READLN(x);
  WRITE(‘Bilangan kedua : ‘);READLN(y);
  IF x>y THEN
    Min:=y
  ELSE
    Min:=x;
  WRITE(‘Bilangan terkecil : ‘,min);
END.

REFERENSI
4.      http://rivsoe666.blog.unsoed.ac.id/2011/10/pengertian-algoritma-flow-chart-dan-pseudocode/