37
PENGANTAR ALGORITMA & PEMROGRAMAN WILIS KASWIDJANTI, S.SI., M.KOM.

ALGORITMA & PEMROGRAMAN (1)

Embed Size (px)

DESCRIPTION

Pengantar Algoritma dan pemrograman

Citation preview

Page 1: ALGORITMA & PEMROGRAMAN (1)

PENGANTAR ALGORITMA & PEMROGRAMAN

WILIS KASWIDJANTI, S.SI., M.KOM.

Page 2: ALGORITMA & PEMROGRAMAN (1)
Page 3: ALGORITMA & PEMROGRAMAN (1)

Bagan Sistem KomputerHardware

(Perangkat Keras)

Software (Perangkat Lunak)

Brainware (Manusia)

Komputer

Sistem OperasiBahasa

PemrogramanProgram Aplikasi

User/Pemakai

Contoh

Bahasa Pemrograman:

• C• Pascal• Basic• Delphi• Visual Basic• PHP• Java• dll

Page 4: ALGORITMA & PEMROGRAMAN (1)

Siklus Software

Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).

Page 5: ALGORITMA & PEMROGRAMAN (1)

DEFINISI ALGORITMA & PEMROGRAMAN

Page 6: ALGORITMA & PEMROGRAMAN (1)

Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:

Langkah : Menulis surat Surat dimasukkan ke dalam amplop tertutup Amplop dikasih alamat penerima dan pengirim Amplop ditempeli perangko secukupnya. Pergi ke Kantor Pos terdekat untuk

mengirimkannya

Analogi :

Page 7: ALGORITMA & PEMROGRAMAN (1)

Apa Itu Algoritma ?Definisi :

Urutan langkah-langkah untuk memecahkan masalah yang disusun secara sistematis dan logis.

Kamus Besar Bahasa Indonesia:Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah.

Page 8: ALGORITMA & PEMROGRAMAN (1)

Apa Itu Program/Pemrograman?

DefinisiKumpulan instruksi-instruksi

tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program).

Program : Realisasi dari Algoritma.Program = Algoritma +

Bahasa

Page 9: ALGORITMA & PEMROGRAMAN (1)

Mengapa Algoritma ?

Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun.

Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.

Page 10: ALGORITMA & PEMROGRAMAN (1)

Syarat Algoritma Baik?

Tingkat kepercayaannya tinggi (realibility) Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.

Pemrosesan yang efisien (cost rendah)

Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.

Sifatnya general Bukan sesuatu yang hanya untuk

menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.

Page 11: ALGORITMA & PEMROGRAMAN (1)

Bisa dikembangkan (expandable) Haruslah sesuatu yang dapat kita

kembangkan lebih jauh berdasarkan perubahan requirement yang ada.

Mudah dimengerti Siapapun yang melihat, dia akan bisa

memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).

Portabilitas yang tinggi (portability)

Bisa dengan mudah diimplementasikan di berbagai platform komputer.

Precise (tepat, betul, teliti)

Page 12: ALGORITMA & PEMROGRAMAN (1)

Efektif Tidak boleh ada instruksi yang tidak mungkin

dikerjakan oleh pemroses yang akan menjalankannya.

Harus terminate Jalannya algoritma harus ada kriteria berhenti.Output yang dihasilkan tepat.

Page 13: ALGORITMA & PEMROGRAMAN (1)

Langkah Pembuatan Program

1. Mendefinisikan masalah2. Menemukan solusi3. Memilih algoritma4. Menulis program5. Menguji program6. Menulis dokumentasi7. Merawat program

Start

DesainAlgoritma & Flowchart

Menulis program

Test Kebenaran Program

Dokumentasi

Arsip

Page 14: ALGORITMA & PEMROGRAMAN (1)

Mendefinisikan Masalah Langkah penting yang sering dilupakan Pendefinisian masalah secara rinci

pemrograman lebih terarah dan terfokus

Hukum Murphy (Henry Ledgard) :› “Semakin cepat menulis program, maka

semakin lama kita dapat menyelesaikannya”

Berlaku untuk problem yang kompleks Definisikan problem apa yang harus

dicarikan solusi tentukan input dan outputnya

Page 15: ALGORITMA & PEMROGRAMAN (1)

Menemukan Solusi Problem jelas tentukan solusi yang

dipergunakan Problem kompleks bagi menjadi

modul-modul kecil solusi mudah Modul program program lebih simpel,

mudah dilihat, singkat Contoh invers matrik :

› Meminta input matrik dari user› Mencari invers matrik input› Menampilkan matrik hasil invers

Page 16: ALGORITMA & PEMROGRAMAN (1)

Memilih Algoritma Pilihlah algoritma yang benar-benar

sesuai dengan problem yang akan dipecahkan

Pertimbangkan input dan output, serta efisiensi & efektivitas program

Penggunaan algoritma lain merupakan opsi terakhir

Page 17: ALGORITMA & PEMROGRAMAN (1)

Menulis Program Pilihlah bahasa pemrograman yang

mudah Sesuaikan dengan kebutuhan program Memiliki interoperabilitas yang tinggi

terhadap perangkat keras dan platform lainnya

Page 18: ALGORITMA & PEMROGRAMAN (1)

Menguji Program Uji program dengan intensif Handling error yang muncul Black box & white box testing Eror minimal -> program layak

digunakan

Page 19: ALGORITMA & PEMROGRAMAN (1)

Debugging/Pengujian Program Syntax error :

› Kesalahan penulisan program Run time error :

› Kesalahan saat program dijalankan Logic error :

› Kesalahan tata urut dan logika pemrograman

› Program berjalan normal tapi output salah

Page 20: ALGORITMA & PEMROGRAMAN (1)

Menulis Dokumentasi Dokumentasi -> memudahkan back

tracking dan modifikasi/revisi Komentar :

› Judul dan sekilas info program› Fungsi-fungsi dan prosedur› Variabel dan konstanta

Page 21: ALGORITMA & PEMROGRAMAN (1)

Merawat Program Mencegah munculnya bug/error yang

tidak terdeteksi sebelumnya Penambahan fitur baru Modifikasi fitur yang sudah ada

Page 22: ALGORITMA & PEMROGRAMAN (1)

Penulisan algoritma Kalimat Deskriptif Flow Chart (bagan alir) Pseudo Code (kode semu)

Page 23: ALGORITMA & PEMROGRAMAN (1)

Kalimat deskriptif Menggunakan untaian kalimat untuk

menjelaskan langkah – langkah Contoh PROGRAM GanjilGenapDiberikan sebuah bilangan bulat positif X untuk dicek apakah termasuk ganjil atau genap

ALGORITMA1.Jika X habis dibagi 2 maka tulis “Genap”, jika tidak maka tulis “Ganjil”

Page 24: ALGORITMA & PEMROGRAMAN (1)

Flowchart

Menggunakan simbol – simbol untuk menggambarkan aliran atau langkah – langkah

Contoh mulai

baca X

X mod 2 = 0

selesai

Tulis “Genap

Tulis “Ganjil”

tidak

ya

Page 25: ALGORITMA & PEMROGRAMAN (1)

Pseudo code

Menggunakan kode – kode untuk menyatakan langkah – langkah

Mirip bahasa pemrograman Contoh

DEKLARASIX : integer

ALGORITMAread(X)if X mod 2 = 0 then {apakah X habis dibagi 2}

write(“Genap”) {jika ya}else

write(“Ganjil) {jika tidak}

Page 26: ALGORITMA & PEMROGRAMAN (1)

Lambang-lambang flowchart

KETERANGAN SIMBOLMulai / Selesai (Terminator)

Aliran Data

Input / Output

Proses

Percabangan (Decision)

Pemberian nilai awal suatu variabel (Preparation) Memangggil prosedur / fungsi (Call)

Page 27: ALGORITMA & PEMROGRAMAN (1)

Connector (di halaman yang sama)

Connector (di halaman lain)

Sequence process

Perulangan

Page 28: ALGORITMA & PEMROGRAMAN (1)

Contoh Flowchart Problem :

› Menghitung luas persegi panjang

Algoritma :1. Masukkan panjang

(p)2. Masukkan lebar (l)3. Hitung luas (L),

yaitu panjang kali lebar

4. Cetak luas (L)

Mulai

Selesai

Masukkan p

Masukkan l

Hitung luasL = p x l

Tulis L

Page 29: ALGORITMA & PEMROGRAMAN (1)

Contoh Flowchart Problem :

› Menentukan suatu bilangan termasuk bilangan ganjil atau genap

Algoritma :› Masukkan bilangan a› Hitung sisa pembagian

a dengan 2› Cek sisa bagi :

0 maka a termasuk bilangan genap

1 maka a termasuk bilangan ganjil

› Cetak hasil

Mulai

Selesai

Masukkan a

Hitung sisa pembagian a

(a mod 2)

Sisa bagi = 0?

Cetak Genap

Y

Cetak Ganjil

T

Page 30: ALGORITMA & PEMROGRAMAN (1)

Beda antara algoritma dan pseudo-code untuk kasus mencari luas persegi panjang :

Algoritma Pseudo-codeMasukkan panjang Input panjang Masukkan lebar Input lebar Nilai luas adalah panjang x lebar

Luas panjang x lebar

Tampilkan luas Print luas

Page 31: ALGORITMA & PEMROGRAMAN (1)

Contoh lain: Algoritma Pseudo-code

Jika sudah selesai, cetak invoice

IF KONDISI_SELESAI = “DONE” THENPRINT INVOICE

Nilai A dibagi dengan 2 A ← A / 2 Jika nilai A lebih besar dari 2maka nilai A dikalikan 3

IF A > 2 THEN A ← A x 3

Dari dua bilangan A dan B, cari bilangan yang terbesar

IF A > B THEN PRINT A ELSE PRINT B

Masukkan semua mata kuliah yang ingin diambil pada semester ini

DARI MATKUL = 0 SAMPAI MATKUL <= MATKUL_DIINGINKAN, MASUKANDATA MATKUL

Page 32: ALGORITMA & PEMROGRAMAN (1)

Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code, karena fungsi kedua hal ini adalah untuk memudahkan seseorang untuk menggambarkan urutan suatu kejadian. Sedangkan untuk para programmer, kedua hal ini berfungsi sebagai dasar alur pembuatan program. Di mana dapat merepresentasikan alur cerita dari client tentang kebutuhan dasar dari sebuah program, sehingga lebih mudah untuk dipahami.

Jadi pseudo-code bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan.

Page 33: ALGORITMA & PEMROGRAMAN (1)

Contoh

Terdapat 2 buah ember A dan B masing – masing memiliki isi yang berbeda. Tuliskan algoritma untuk menukarkan isi masing – masing ember tersebut.

Page 34: ALGORITMA & PEMROGRAMAN (1)

Jawaban ALGORITMA untuk menukar air dari ember A ke ember B,dibutuhkan satu ember kosong yaitu C.

air yang ada di ember A kita pindah dahulu ke ember C.

sekarang ember A kosong, kemudian isi yang ada di ember B kita pindah ke ember A.

sekarang ember A terisi dan ember B kosong.

kemudian isi yang ada di ember C kita pindah ke ember B.

sehingga ember A dan B sudah terisi dan tertukar sedang ember C menjadi kosong.

Page 35: ALGORITMA & PEMROGRAMAN (1)

FLOWCHART

mulai

baca A,B,C

selesai

Tampilkan A,B

C = AA = BB = C

Page 36: ALGORITMA & PEMROGRAMAN (1)

Pseudo code DEKLARASI A,B,C : integer

ALGORITMA A = 2 B = 5 C A isi di variabel A sudah pindah ke variabel C A B isi yang ada di variabel B sudah pindah ke variabel A B C isi yang ada di variabel C sudah pindah ke variabel B sehingga A 5 B 2

Page 37: ALGORITMA & PEMROGRAMAN (1)

TugasBuatlah algoritma dan flowchart Menghitung Luas Lingkaran dan

menampilkan hasilnya Mengecek bilangan di antara 2

bilangan masukan, apakah sama ataukah lebih besar salah satunya, dan tampilkan hasilnya