algoritma & pemrograman (1)
DESCRIPTION
Pengantar Algoritma dan pemrogramanTRANSCRIPT
![Page 1: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/1.jpg)
PENGANTAR ALGORITMA & PEMROGRAMAN
WILIS KASWIDJANTI, S.SI., M.KOM.
![Page 2: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/2.jpg)
![Page 3: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/3.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/4.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/5.jpg)
DEFINISI ALGORITMA & PEMROGRAMAN
![Page 6: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/6.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/7.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/8.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/9.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/10.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/11.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/12.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/13.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/14.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/15.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/16.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/17.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/18.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/19.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/20.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/21.jpg)
Merawat Program Mencegah munculnya bug/error yang
tidak terdeteksi sebelumnya Penambahan fitur baru Modifikasi fitur yang sudah ada
![Page 22: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/22.jpg)
Penulisan algoritma Kalimat Deskriptif Flow Chart (bagan alir) Pseudo Code (kode semu)
![Page 23: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/23.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/24.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/25.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/26.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/27.jpg)
Connector (di halaman yang sama)
Connector (di halaman lain)
Sequence process
Perulangan
![Page 28: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/28.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/29.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/30.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/31.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/32.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/33.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/34.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/35.jpg)
FLOWCHART
mulai
baca A,B,C
selesai
Tampilkan A,B
C = AA = BB = C
![Page 36: ALGORITMA & PEMROGRAMAN (1)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/36.jpg)
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)](https://reader033.vdocuments.site/reader033/viewer/2022061420/5695d0061a28ab9b02909c89/html5/thumbnails/37.jpg)
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