Thursday 21 March 2013

ALGORITMA

Algoritma
Arti umum adalah serangkaian urutan langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan suatu masalah yang disusun secara sistematis.
1.  Algoritma adalah inti dari ilmu komputer
2.  Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah
3.  Algoritma adalah blueprint dari program
4.  Sebaiknya disusun sebelum membuat program
5.  Kriteria suatu algoritma:
·         Ada input dan output
·         Efektifitas dan efisien
·         Terstruktur

Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1.  Tuangkan larutan dari bejana A ke dalam bejana B
2.  Tuangkan larutan dari bejana B ke dalam bejana A

Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana, diperlukan sebuah tambahan sebagai tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah sebagai berikut:

Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1.  Tuangkan larutan dari bejana A ke dalam bejana C.
2.  Tuangkan larutan dari bejana B ke dalam bejana A.
3.  Tuangkan larutan dari bejana C ke dalam bejana B.

Ciri Penting Algoritma
1.  Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas.
2.  Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3.  Algortima memiliki nol atau lebih masukan.
4.  Algoritma memiliki nol atau lebih keluaran.
5.  Algoritma harus efektif (setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

Memrogram dan Bahasa Pemrograman:
1.  Belajar memrogram adalah belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
2.  Belajar bahasa pemrograman adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam bahasa itu saja.

Notasi Algoritma:
1.  Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
2.  Notasi algoritma dapat berupa:
·         Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
            Jika nilai >= 60 maka
            Keterangan = lulus
                  Tetapi jika salah
                  Keterangan = tidak lulus
            Tulis nama dan keterangan.

Tahapan Pembuatan Program:
1.  Mendefinisikan masalah dan menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman yang digunakan.
2.  Merealisasikan dengan langkah-langkah sebagai berikut:


Contoh Algoritma:
1.  Mengirim surat kepada teman:
·         Tulis surat pada secarik kertas surat
·         Ambil sampul surat
·         Masukkan surat ke dalam sampul
·         Tutup sampul surat dengan perekat
·         Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·         Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·         Tempel prangko pada sampul
·         Bawa sampul ke kantor pos untuk diposkan
2.  Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap:
·         Masukkan sebuah bilangan sembarang
·         Bagi bilangan tersebut dengan 2
·         Hitung sisa hasil bagi pada langkah 2
·         Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·         Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil


Flowchart
1.  Flowchart adalah bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian suatu masalah
2.  Merupakan cara penyajian dari suatu algoritma
3.  Ada 2 macam flowchart:
·         System flowchart:
                       Urutan proses dalam system dengan menunjukkan alat media input, output serta jenis penyimpanan dalam proses pengolahan data.
·         Program flowchart:
                       Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.

Contoh program Flowchart


Simbol-simbol Flowchart
1.  Flow Direction Symbols (simbol penghubung alur)
2.  Processing Symbols (simbol proses)
3.  Input-Output Symbols (simbol input-output)

Tabel Simbol-simbol Flowchart


Pembuatan Flowchart
1.  Tidak ada kaidah yang baku
2.  Flowchart = gambaran hasil analisa suatu masalah
3.  Flowchart dapat bervariasi antara satu pemrograman dengan pemrograman lainnya.
4.  Secara garis besar ada 3 bagian utama:
·         Input
·         Proses
·         Output
5.  Hindari pengulangan yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6.  Jalannnya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7.  Sebuah Flowchart diawali dari satu titik START dan diakhiri dengan End.


Pseudocode:
1.  Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus.
Deklarasi:
Nama          : String
Nilai            : Integer
Keterangan  : String
      Deskripsi:
            Read (nama, nilai)
            if nilai >= 60 then
            Keterangan = 'lulus'
            else
            Keterangan = 'tidak lulus'
            write (nama, keterangan)

Aturan Penulisan Teks Algoritma
1.  Judul Algoritma
          Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut. Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut.
2.  Deklarasi
          Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure, dan fungsi.
3.  Deskripsi
          Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.

Contoh Pseudocode:
1.  Algoritma Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
{Menghitung luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran} (ini spesifikasi algoritma)
 
2.  Deklarasi
const phi = 3.14 {nilai konstanta phi}
R          : real {jari-jari lingkaran}
Luas     : real {luas lingkaran}
Keliling : real {keliling lingkaran}
3.       Deskripsi
Read (R)
Luas     = phi * R * R
Keliling       = 2 * phi * R
Write (luas, keliling)

The Men and Women in Computing

Ada LovelaceAdam OsborneAlan CurtisAlan Sugar
Ada Lovelace
 
Adam Osborne
 
Alan Curtis
 
Alan Sugar
 
Alan TuringAllen AdhamAndy HopperArthur Lee Samuel
Alan Turing
 
Allen Adham
 
Andy Hopper
 
Arthur Lee Samuel
 
Bill EnglishBill GatesBill MoggridgeBlaise Pascal
Bill English
 
Bill Gates
 
Bill Moggridge
 
Blaise Pascal
 
Bob MetcalfeBrian RandellCharles BabbageCharles P. Thacker
Bob Metcalfe
 
Brian Randell
 
Charles Babbage
 
Charles P. Thacker
 
Chris CurryChuck PeddleClaude ShannonClive Sinclair
Chris Curry
 
Chuck Peddle
 
Claude Shannon
 
Clive Sinclair
 
Dan BricklinDavid BrabenDavid BradleyDavid Caminer
Dan Bricklin
 
David Braben
 
David Bradley
 
David Caminer
 
David Johnson-DaviesDennis RitchieDon EstridgeDoron Swade
David Johnson-Davies
 
Dennis Ritchie
 
Don Estridge
 
Doron Swade
 
Douglas EngelbartEdsger DijkstraFrank PearceGary Kildall
Douglas Engelbart
 
Edsger Dijkstra
 
Frank Pearce
 
Gary Kildall
 
Grace Murray HopperHarlan E. AndersonHermann HauserHermann Hollerith
Grace Murray Hopper
 
Harlan E. Anderson
 
Hermann Hauser
 
Hermann Hollerith
 
Hewitt CraneHoward AikenIan BellIan Porteous
Hewitt Crane
 
Howard Aiken
 
Ian Bell
 
Ian Porteous
 
J. Presper Eckert and John MauchlyJack KilbyJames GoslingJean Bartik
J. Presper Eckert and John Mauchly
 
Jack Kilby
 
James Gosling
 
Jean Bartik
 
Jeff MinterJim WestwoodJohn von NeumannJonathan Ive
Jeff Minter
 
Jim Westwood
 
John von Neumann
 
Jonathan Ive
 
Joseph Marie JacquardKen OlsenLeon BagritLinus Torvalds
Joseph Marie Jacquard
 
Ken Olsen
 
Leon Bagrit
 
Linus Torvalds
 
Marc AndreessenMike MorhaimePeter DaweRalph Baer
Marc Andreessen
 
Mike Morhaime
 
Peter Dawe
 
Ralph Baer
 
Ray TomlinsonRichard StallmanRick DickinsonRobert Noyce
Ray Tomlinson
 
Richard Stallman
 
Rick Dickinson
 
Robert Noyce
 
Roger Michael NeedhamSeymour CraySimon LavingtonSophie Wilson
Roger Michael Needham
 
Seymour Cray
 
Simon Lavington
 
Sophie Wilson
 
Steve FurberSteve JobsSteve WozniakSusan Kare
Steve Furber
 
Steve Jobs
 
Steve Wozniak
 
Susan Kare
 
Ted NelsonTim Berners-LeeTommy FlowersTony Hoare
Ted Nelson
 
Tim Berners-Lee
 
Tommy Flowers
 
Tony Hoare

Hewitt CraneHoward AikenIan BellIan Porteous
Hewitt Crane
 
Howard Aiken
 
Ian Bell
 
Ian Porteous
 
J. Presper Eckert and John MauchlyJack KilbyJames GoslingJean Bartik
J. Presper Eckert and John Mauchly
 
Jack Kilby
 
James Gosling
 
Jean Bartik
 
Jeff MinterJim WestwoodJohn von NeumannJonathan Ive
Jeff Minter
 
Jim Westwood
 
John von Neumann
 
Jonathan Ive
 
Joseph Marie JacquardKen OlsenLeon BagritLinus Torvalds
Joseph Marie Jacquard
 
Ken Olsen
 
Leon Bagrit
 
Linus Torvalds
 
Marc AndreessenMike MorhaimePeter DaweRalph Baer
Marc Andreessen
 
Mike Morhaime
 
Peter Dawe
 
Ralph Baer
 
Ray TomlinsonRichard StallmanRick DickinsonRobert Noyce
Ray Tomlinson
 
Richard Stallman
 
Rick Dickinson
 
Robert Noyce
 
Roger Michael NeedhamSeymour CraySimon LavingtonSophie Wilson
Roger Michael Needham
 
Seymour Cray
 
Simon Lavington
 
Sophie Wilson
 
Steve FurberSteve JobsSteve WozniakSusan Kare
Steve Furber
 
Steve Jobs
 
Steve Wozniak
 
Susan Kare
 
Ted NelsonTim Berners-LeeTommy FlowersTony Hoare
Ted Nelson
 
Tim Berners-Lee
 
Tommy Flowers
 
Tony Hoare
 
Vannevar BushVint CerfWillard Boyle
Vannevar Bush
 
Vint Cerf
 
Willard Boyle