Algoritma 1 Semester 2
Algoritma 1 Semester 2
MATERI
Pendahuluan Struktur dasar Algoritma (Notasi, Kondisi, Aksi),
nama dan harga
Tipe data dasar (Boolean, Integer, Real, Char, String)
Tipe Bentukan (Record, Procedure, Fungsi).
Pengkondisian (if_endif, if_else_endif, case_endcase)
Perintah Pengulangan (while_endwhile), (repeat_until) dan
(for_endfor)
Procedure (variabel global dan lokal) dan parameter input,
output dan input/output
Function (parameter input dan output)
Array (larik
Pustaka
Harry R. Lewis and Larry Denenberg Data Structures and Their
Algorithms, HarperCollins Publishers Inc, 1991
Inggriani Liem , Algoritma dan Pemrograman, ITB,1992
Knuth, Fundamental of Algorithm, Addison Wisley, 1978
Mewati Ayub, Ir Dasar-Dasar Pemrograman, DCI, 1994
Niklause Wirth, Algorithms + Data Structures = Programs,
Prentice Hall, 1991
Antony Pranata, Algoritma dan Pemrograman,Graha Ilmu,
Yogyakarta, 2005
Rinaldi Munir, Algoritma dan Pemrograman dalam Bahasa
Pascal dan C, Informatika, 2005
LOGIKA ALGORITMA
Penilaian :
Partisipasi 10 %
Tugas 20 % (Perorangan & kelompok)
U T S 30 %
U A S 40 %
Jumlah : 100 %
Tugas Kelompok (maks 4 orang)
Buat Makalah tentang Logika & Algoritma,
dengan membahas tentang salah Materi
Kuliah, misal. Struktur Dasar Algoritma,
Fungsi seleksi Kondisi, Pengulangan dll
Makalah harus sesuai dengan Aturan
penulisan di PIKSI Ganesha.
Isi Makalah terdiri dari Pendahuluan, Kajian
Teoritis, dan Pembahasan
"Algoritma adalah urutan langkah-langkah
logis penyeluatan masalah yang disusun
secara sistematis dan logis".
Kata logis merupakan kata kunci dalam
algoritma.
Langkah-langkah dalam algoritma harus logis
dan harus dapat ditentukan bernilai salah
atau benar.
Definisi Algoritma
Pertimbangan penulisan Algoritma
1. Algoritma haruslah benar
2. Algoritma harus bisa diketahui seberapa
baik hasilnya
3. Algoritma harus efisien
Program merupakan kumpulan peryataan komputer.
Metode dan tahapan sistematis dalam program
adalah algoritma
Program ditulis dalam bahasa pemrograman
sehingga bisa dikatakan bahwa program adalah
implementasi dari bahasa pemrograman.
Program = Algoritma + Bahasa (Struktur Data)
Hubungan Algoritma dengan Program
Keuntungan membuat algoritma a.l :
1. Tidak tergantung pada bahasa pemrograman
2. Notasi Algoritma dapat diterjemahkan ke
berbagai bahasa pemrograman
3. Output yang dihasilkan sama
Contoh Algoritma dalam kehidupan
sehari hari :
Persoalan : Membuat pakaian
Algoritma : Pola Pakaian
Langkah dalam algoritma :
Gunting pakaian dari kiri bawah ke
arah kanan sejauh 5 cm
Mekanisme pelaksanaan Algoritma oleh
Pemroses :
Agar dapat dilaksanakan oleh komputer
Algoritma harus ditulis dalam bahasa
pemrograman yang disebut program
Jadi program sebagai implementasi teknis
dari algoritma
Kegiatan membuat program disebut
pemrograman.
Orang yang menulis program disebut
pemrogram
Belajar memprogram adalah belajar tentang
metodologi pemecahan masalah dan
menuangkannya kedalam notasi tetentu
yang mudah dibaca dan dipahami.
Belajar bahasa pemrograman berarti belajar
memakai suatu bahasa dan aturan tata
bahasanya
Contoh Bahasa Pemrograman
Assembly
Fortran
Cobol
Pascal
C / C++
Basic
Prolog
Pembagian Bahasa Pemrograman
Bahasa tingkat rendah, dirancang agar setup instruksinya
langsung dikerjakan oleh komputer, tanpa harus melalui
penerjemah (translator). Contohnya : bahasa mesin.
CPU mengambil instruksi dari memori, langsung mengerti
dan langsung mengerjakan operasinya.
Bahasa tingkat rendah bersifat primitit sangat sederhana,
orientasinya lebilr dekat ke mesin, dan sulit dipahami
manusia.
Sedangkan bahasa rakitan dimasukkan ke dalam kelompok
ini karena alasan notasi yang dipakai dalam bahasa ini
lebih dekat ke mesin, meskipun untuk melaksanakan
intruksinya masih perlu penerjemahan ke dalam bahasa
mesin
Bahasa tingkat tinggi, yang membuat pemrograman lebih
mudah dipahami, lebih "manusiawi", dan berorientasi ke
bahasa manusia (bahasa Inggris).
Hanya saja, program dalam bahasa tingkat tinggi tidak
dapat langsung dilaksanakan oleh komputer.
Ia perlu diterjemahkan terlebih dahulu oleh sebuah
translator bahasa (yang disebut kompilator atau compiler)
ke dalam bahasa mesin sebelum akhimya dieksekusi oleh
CPU.
Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada,
Cobol, Basic, Fortran, C, dan sebagainya
Persyaratan sebuah Algoritma yang Baik
Reliabel
Pemrosesan yang efisien
Besrifat general
Dapat dikembangkan
Mudah dimengerti
Portabilitas tinggi
Presisi
Junlah intrsuksi tertentu
Efektif
Harus terminate
Hasil tepat
Penyajian Algoritma
Pseudocode (kode yang mirip dengan
program)
Flowchart (Penyahian algoritma dengan
gambar)
Runtunan
Pemilihan
Perulangan
Struktur dasar Algoritma
Runtunan
Sebuah runtunan terdiri dari satu atau lebih
pernyataan.
Tiap pernyataan dikerjakan secara berurutan
sesuai dengan urutan penulisannya.
Urutan instruksi menentukan keadaan akhir
algoritma.
Bila urutannya diubah, maka hasil akhirnya
mungkin juga berubah.
Algoritma merupakan runtunan (sequence) satu
atau lebih instruksi, yang berarti bahwa:
1. Tiap instruksi dikerjakan satu per satu.
2. Tiap instruksi dilaksanakan tepat sekali; tidak ada
instruksi yang diulang;
3. Urutan instruksi yang dilaksanakan pemroses
sama dengan urutan instruksi sebagaimana yang
tertulis di dalam teks algoritmanya.
4. Akhir dari instruksi terakhir merupakan akhir
algoritma.
Contoh:
Program Tukar_isi
Algoritma :
1. Tuangkan air dari gelas A ke dalam gelas C
2. Tuangkan air dari gelas B ke dalam gelas A
3. Tuangkan air dari gelas C ke dalam gelas B
Algoritma di atas disusun oleh runtunan yang terdiri atas 3
buah pernyataan.
Tiap pernyataan akan dieksekusi dalam urutan yang sama
sebagaimana tertulis dalam teks algoritma tersebut.
Hasil akhir dari algoritma diatas adalah gelas A berisi air
dari gelas B, dan gelas B berisi air dari gelas A
sebelumnya.
Pemilihan/Pengkondisian/Percabangan
Sewaktu-waktu dalam kehidupan sehari-hari kita
dihadapkan pada sebuah kondisi atau lebih, dimana
kita harus memilih salah satunya.
Begitu pula dengan program, pada suatu saat kita
perlu membuat suatu aturan untuk melakukan
pemilihan terhadap suatu kondisi, yang
memungkinkan kita untuk membuat deretan instruksi
yang sama, namun menghasilkan eksekusi yang
berbeda-beda.
Pernyataan pemilihan memungkinkan suatu
pernyataan dieksekusi hanya jika suatu kondisi
terpenuhi atau tidak terpenuhi.
Contoh :
Program Pemilihan
Algoritma :
If hujan turun Then
Pakai payung
Else
Tidak pakai payung
Algoritma tsb disusun oleh 4 baris instruksi.
Hasil akhir dari algoritma di atas adalah sesuai
dengan kondisi, yaitu:
1. Jika kondisi terpenuhi artinya hujan turun , maka
hasil akhir dari algoritma di atas adalah Pakai
payung
2. Jika kondisi tidak terpenuhi, artinya tidak turun
hujan, maka hasil akhir dari algoritma di atas
adalah Tidak pakai payung
Pengulangan
Pengulangan digunakan untuk menjalankan satu atau
beberapa pernyataan sebanyak beberapa kali.
Dengan kata lain, pengulangan memungkinkan Anda
menjalankan beberapa pernyataan hanya dengan
menuliskan pernyataan 1 kali saja.
Contoh :
Program Tulis_1000_kali
Deklarasi :
i: integer
Algoritma :
for i dari 1 sampai 1000 do
Tulis Saya belajar Logika dan Algoritma
Algoritma tsb disusun oleh 2 baris instruksi.
Hasil akhir dari algoritma di atas adalah
menuliskan kalimat Saya belajar Logika
dan Algoritma sebanyak 1000 kali.
Dari algoritma di atas, dapat diketahui
bahwa i adalah pencacah pengulangan
yang mencacah pengulangan dari 1 sampai
1000. Komputer akan melaksanakan aksi
tulis kalimat sebanyak pencacahan, yaitu
1000 kali.
Notasi Algoritma
Teks algoritma berisi deskripsi langkah-langkah
penyelesaian suatu masalah.
Langkah-langkah tersebut dapat ditulis dalam
notasi algoritmik apa pun, asalkan mudah dibaca
dan dimengerti.
Penulisan algoritma tidak bergantung pada Bahasa
Pemrograman dan Komputer
Asalkan notasinya dapat diterjemahkan ke
dalam Bahasa Pemrograman
Notasi algoritmik bukan notasi baku
sebagaimana pada notasi bahasa
pemrograman.
Namun kekonsistenan terhadap suatu notasi
perlu diperhatikan untuk menghindari
kekeliruan.
Beberapa notasi yang digunakan untuk menulis
algoritma :
( Masalah yang dijadikan contoh adalah menentukan apakah
suatu bilangan merupakan bilangan genap atau bukan )
Notasi I : Menggunakan diagram alir (flow chart)
Gambar Diagram Alir Kasus Penentuan Bilangan Genap Atau Ganjil
Notasi II : Menggunakan Pseudo-Code (notasi
yang menyerupai notasi bahasa pemrograman
tingkat tinggi, khususnya bahasa Pascal & C )
Program Cek_Bilangan_Genap
Deklarasi :
Bilangan : integer
Algoritma :
Read (Bilangan)
If (Bilangan mod 2 = 0) then
Write (Bilangan genap)
Else
Write (Bilangan ganjil)
End if
Perbandingan Notasi I & II :
Notasi I :
Diagram alir lebih menggambarkan aliran instruksi di
dalam program secara visual ketimbang
memperlihatkan struktur program.
Notasi algoritmik dengan diagram alir cocok untuk
masalah yang kecil, namun tidak cocok untuk
masalah yang besar, karena akan membutuhkan
berlembar halaman kertas
Pengkonversian (translasi) notasi algoritma ke
notasi bahasa pemrograman juga cenderung relatif
sukar.
Notasi II:
Keuntungan menggunakan notasi pseudo-
code adalah kemudahan mengkonversinya
(mentranslasi) ke notasi bahasa
pemrograman, karena terdapat
korespondensi antara setiap pseudo-code
dengan notasi bahasa pemrograman.
ATURAN PENULISAN ALGORITMA
Judul Algoritma
Berisi nama penjelasan algoritma
Deklarasi
Mendefinisikan semua tipe, variable, fungsi dan
prosedur
Algoritma
Bagian utama Algoritma
Sekumpulan perintah untuk penyelesaian
permasalahan
Ditulis dengan notasi tertentu (standar
STRUKTUR PENULISAN ALGORITMA
Pada dasarnya, teks algoritma selalu
disusun oleh 3 bagian (blok), yaitu :
Bagian judul (header)
Bagian deklarasi (declaration)
Bagian algoritma
PROGRAM Nama_Algoritma
{Judul Program}
DEKLARASI
{Semua nama yang dipakai, meliputi nama
tipe,nama konstanta, nama peubah, nama
prosedur, dan nama fungsi dituliskan disini}
ALGORITMA
{semua langkah/aksi algoritma dituliskan disini}
Dalam bahasa Pascal :
Program Nama_Program;
{Penjelasan tentang program yang berisi uraian singkat mengenai
masalah yang akan diselesaikan}
{*Deklarasi*}
CONST
{Untuk mendefinisikan nama dan harga tetapannya}
TYPE
{Untuk mendefinisikan type data bentukan}
VAR
{Untuk mendefinisikan nama variabel dan tipe data dari masing-masing variabel }
{Deklarasi prosedur dan fungsi ditulis disini}
{*Algoritma :*}
Begin
{semua instruksi program dituliskan disini}
End.
Dalam bahasa C :
/* Program Nama_Program */
/* Penjelasan tentang program yang berisi uraian singkat mengenai
masalah yang akan diselesaikan*/
/*Deklarasi*/
/* semua nama yang penggunaannya global didefinisikab disini */
/* semua prosedur dan fungsi d idefinisikab disini */
/*Algoritma :*/
void main()
{
/* disini juga mungkin ada DEKLARASI lokal */
/* semua instruksi program dituliskan disini */
}
Beberapa hal penting yang harus diketahui
dari Bahasa C dan Pascal adalah :
Bahasa C bersifat case sensitive, artinya Bahasa C
membedakan huruf besar dengan huruf kecil.
Misalnya a tidak sama dengan A.
Berbeda dengan bahasa Pascal yang tidak case
sensitive.
Dalam bahasa C, deklarasi yang didefinisikan
sebelum kata main() adalah deklarasi global, artinya
semua yang didefinisikan di dalam deklarasi global
dikenal diseluruh bagian program, termasuk di
dalam fungsi atau prosedur yang ada di dalam
program itu.
Apabila deklarasi didefinisikan di dalam main(),
maka nama di dalam bagian deklarasi (disebut
deklarasi lokal) hanya dikenal oleh program utama
saja, tetapi tidak dikenal oleh fungsi atau prosedur.
Dalam bahasa C, komentar ditulis diantara /*
dan */ . Sedangkan dalam bahasa Pascal,
komentar dapat ditulis diantara { dan } atau
diantara (* dan *).
Contoh :
Tuliskan Algoritma untuk menuliskan atau mencetak nama
sesuai dengan input dari keyboard!
ALGORITMIK :
PROGRAM CetakNama
{Program untuk mencetak nama sesuai dengan input dari
keyboard}
Deklarasi:
Nama : string
ALGORITMA:
Write (Masukan Nama Anda)
read (Nama)
write (Nama Anda, Nama)
PASCAL:
PROGRAM CetakNama;
{Program untuk mencetak nama sesuai dengan
input dari keyboard}
(*Deklarasi*)
Var
Nama :string;
Begin
Write (Masukan Nama Anda);
read (Nama);
writeln (Nama Anda, Nama);
End.
C :
/* PROGRAM CetakNama */
/*{Program untuk mencetak nama sesuai dengan input dari
keyboard*/
#include <stdio.h>
void main ()
{
/* Deklarasi: */
char Nama[20];
/* ALGORITMA*/
printf(Masukan Nama Anda) ;
scanf(%s, Nama);
printf (Nama Anda %s ,Nama);
}
Keterangan : pernyataan #include <stdio.h> adalah
pernyataan untuk melibatkan
pustaka standard yang berisi operasi masukan/keluaran
(operasi baca/scanf dan tulis/printf). Pustaka masukan
dan keluaran ini terdapat di dalam file header stdio.h.
Definisikan Masalah
Buat Algortma dan struktur
penyelesaian
Menulis Program
Mencari Kesalahan
Uji dan verifikasi
Dokumentasi
Pemeliharaan
Tahapan dalam Pemrograman
Contoh Kasus dan penyelesaian
Menghitung Luas dan Keliling Lingkaran
Cara Kerja sbb :
Baca jari-jari lingkaran
Tentukan konstanta phi = 3,14
Hitung Luas dan keliling
Luas = phi x r x r
Keliling = 2 x phi x r
Cetak Luas dan Keliling