Anda di halaman 1dari 41

PENGANTAR ALGORITMA &

PEMROGRAMAN C/C++
Analisis Algoritma dan Struktur Data (TKE 670)
Jum’at, 04 Februari 2011
Topik Diskusi
Komputer dan Pemrograman
Mengenal Algoritma dan Struktur Data
Langkah Penyelesaian Masalah
Standar Algoritma dan Program yang Baik
Penyajian Algoritma
Komputer dan Pemrograman
Komputer : alat bantu penyelesaian masalah.
Langkah-langkah penyelesaian masalah ditentukan
oleh operator dalam runtunan instruksi
Program adalah sekumpulan instruksi untuk
menyelesaikan masalah
Bahasa pemrograman digunakan untuk menulis
program.
Low-level language dan high-level language
Interpreted dan compiled language
Algoritma & Struktur Data
Pemecahan masalah tidak harus dengan langsung menulis program
dengan bahasa pemrograman tertentu
Disain pemecahan masalah lebih penting
Algoritma menjadi sarana untuk merancang urutan langkah-
langkah logis penyelesaian masalah yang disusun secara sistematis
Variasi algoritma muncul dalam hal penanganan data:
Bagaimana data disusun
Data mana yang disimpan di memori
Data mana yang digunakan pada saat tertentu, dll.
Perlu strategi penanganan data : struktur data
Algoritma

Ciri-ciri algoritma yang baik :


1. Benar secara logika
2. Jumlah langkah/step berhingga dan tertentu
3. Efektif
4. Harus terminate pada kondisi tertentu
5. Output yang dihasilkan tepat
Langkah Pemecahan Masalah

(1) Inisiasi solusi secara umum:


deskripsi masalah
merancang algoritma-algoritma untuk
memecahkan masalah (bisa lebih dari
satu solusi untuk satu permasalahan)
menekankan pada ketepatan solusi
Langkah Pemecahan Masalah
(2) Analisa algoritma :
Menekankan pada efisiensi
Efisiensi waktu dan efisiensi ruang
Melakukan analisa algoritma dari solusi-solusi yang
dirancang
Memilih metode struktur data yang tepat
Contoh: analisis kompleksitas algoritma
(Asymptotic Analysis) untuk membandingkan dua
metode sorting, yakni insertion sort dan merge sort
(akan dijelaskan di pertemuan berikutnya)
Langkah Pemecahan Masalah

(3) Implementasi solusi


Menggambar flowchart dan atau menulis
pseudocode
Menerjemahkan ke dalam bahasa
pemrograman tertentu
Melakukan pengujian (debugging) dan
perbaikan program
Standar Program yang Baik
1. Standar Penyusunan Program
a. Kebenaran logika
b. Waktu untuk penulisan program
c. Kecepatan maksimum eksekusi program
d. Ekspresi penggunaan memori
e. User friendly (bisa dikembangkan programmer
developer lain)
f. Portability (instalasi dan inisiasi mudah)
g. Pemrograman Modular (memudahkan perawatan)
Standar Program yang Baik
2. Standar Perawatan Program
a. Dokumentasi pemakaian untuk pengguna
b. Dokumentasi pengembangan untuk
programmer (biasanya berbentuk komentar-
komentar pada source code program)
c. Konvensi penulisan instruksi (memudahkan
pengerjaan program oleh programmer lain)
Penyajian Algoritma

Algoritma disajikan dengan tulisan dan gambar.


Algoritma yang disajikan dengan tulisan berupa
pseudocode, sedangkan yang disajikan dengan
gambar berupa flowchart (bagan alir).
Contoh Penyajian Algoritma
Algoritma untuk mencari rata-rata dari 3 bilangan bulat yang diinputkan:

a. Algoritma dengan struktur bahasa Indonesia


1. Baca bilangan a, b, dan c
2. Jumlahkan ketiga bilangan tersebut
3. Bagi jumlahnya dengan 3
4. Tulis hasilnya

b. Algoritma dengan pseudocode


Algoritma CARI_RERATA
a, b, c, Jml: integer
Rerata : real
Input (a,b,c)
Jml <- a+b+c
Rerata <- Jml/3
Output (Rerata)

c. Algoritma dengan flowchart


Contoh Penyajian Algoritma
Algoritma untuk mencari luas lingkaran :

a. Algoritma dengan struktur bahasa Indonesia


1. Beri nilai phi dengan 3.14
2. Masukkan jari-jari lingkaran
3. Kalikan phi dengan kuadrat dari jari-jarinya
4. Tulis hasilnya

b. Algoritma dengan pseudocode


Algoritma LUAS_LINGKARAN
phi, L, R : real
phi <- 3.14
Input(R)
L <- phi * R^2
Output(L)

c. Algoritma dengan flowchart


Flowchart
Flowchart (bagan alir) adalah suatu bagan yang
menggambarkan/mempresentasikan suatu
algoritma/prosedur untuk menyelesaikan masalah.
Flowchart ada dua macam :
Flowchart System
Flowchart Program
Flowchart system
Yaitu bagan yang menggambarkan suatu prosedur dan proses suatu file
dalam suatu media menjadi file dalam media yang lain dalam suatu
sistem data.
Simbol yang digunakan :
Flowchart program
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur
pemecahan masalah.
Simbol yang digunakan :

: menunjukkan awal dan akhir dari program

: memberikan niai awal pada suatu variabel atau counter

: menunjukkan pengolahan aritmatika dan pemindahan data

: menunjukkan proses input atau output

: untuk mewakili operasi perbandingan logika

: proses yang ditulis sebagai sub program, yaitu prosedur/ fungsi

: penghubung pada halaman yang sama


: penghubung pada halaman yang berbeda
Pseudocode

Mempermudah pembuatan program


Independen dari berbagai bahasa
pemrograman
Notasi-notasinya bisa diterjemahkan ke
berbagai bahasa pemrograman
Struktur Pseudocode
Algoritma HITUNG_RERATA
(Menghitung rerata bilangan bulat) Kepala Algoritma
x, n, k, jumlah: integer
rerata: real Deklarasi
input(n)
k ← 1
jumlah ← 0 Deskripsi
while k ≦ n do
input(x)
jumlah ← jumlah + x
k ← k + 1
endwhile

rerata ← jumlah/n
output(rerata)
Konversi ke bahasa C
/* Program Hitung Rerata */
/* Menghitung nilai rerata sekumpulan bilangan */
/* bulat yang dibaca dari keyboard */

#include <stdio.h>

main()
{
/*Deklarasi*/
int x, n, k, jumlah;
float rerata;

/*Deskripsi*/
printf(“Masukkan jumlah data: “);
scanf(“%d”, &n);

k = 1;
jumlah = 0;
while (k <= n){
printf(“x = ? “);
scanf(“%d”, &x);
jumlah = jumlah = x;
k++;
}
rerata = (float) jumlah/n;
printf(“Rerata seluruh data = %f”, rerata);
}
STRUKTUR DASAR ALGORITMA

Struktur dasar algoritma ada tiga, yaitu :


1. Sequence Structure (struktur runtunan)
Digunakan untuk program yang instruksinya sequential/
urutan.
2. Selection Structure (struktur percabangan)
Digunakan untuk program yang menggunakan pilihan/
penyeleksian kondisi.
3. Repetition Structure (struktur perulangan)
Digunakan untuk program yang instruksinya akan dieksekusi
berulang-ulang.
STRUKTUR RUNTUNAN
(Sequence Structure)

Dengan Struktur runtunan, berarti :


Setiap instruksi akan dikerjakan satu persatu
Setiap instruksi dilaksanakan tepat satu kali, tidak
ada instruksi yang diulang maupun tidak dilaksanakan
Urutan instruksi yang dilaksanakan pemroses sama
dengan urutan aksi sebagaimana yang tertulis di dalam
teks algoritmanya
Akhir dari instruksi terakhir merupakan akhir
algoritma
Bila runtunan instruksi dalam algoritma berturut-
turut dilambangkan dengan A1, A2, A3, A4, dan A5,
maka pelaksanaan instruksi tersebut adalah :
Contoh:
Pseudocode sebuah algoritma, sbb:

1. A ← 10
A ← 2*A
B ← A
Output(B)

2. A ← 10
B ← A
A ← 2*A
Output(B)

Contoh 1) → keluaran = 20,

Contoh 2) → keluaran = 10
Contoh-Contoh Kasus

1. Algoritma untuk menghitung sisi miring segitiga siku siku


Algoritma HITUNG_SISI_MIRING_SEGITIGA
alas, tinggi: integer
Sisimiring: real
Input(alas,tinggi)
Sisimiring ← sqrt(alas^2 +tinggi^2)
Output(Sisimiring)

2. Algoritma untuk mengkonversi input Jam, Menit, dan Detik, ke


total detik
Algoritma KONVERSI_WAKTU
Jam, Menit, Detik, TotalDetik: integer
Input(Jam,Menit,Detik)
TotalDetik ← Jam*3600 + Menit*60 + Detik
Output(TotalDetik)
STRUKTUR PERCABANGAN
(Selection Structure)

Pernyataan percabangan memungkinkan suatu pernyataan


dieksekusi hanya jika suatu kondisi terpenuhi atau tidak
terpenuhi
Contoh :
Jika mau nonton film, maka belilah tiketnya
Jika suatu bilangan habis dibagi 2, maka bilangan itu adalah
bilangan pastilah bilangan genap
Bentuk instruksi percabangan
Instruksi IF
Pernyataan IF Sederhana
Pernyataan IF-ELSE
Instruksi CASE
INSTRUKSI IF
Secara Umum flowchartnya, sebagai berikut:
Pernyataan IF Sederhana

Bentuk:
IF <kondisi> THEN
<pernyataan>
ENDIF
Pernyataan IF dengan Syarat Tunggal
Instruksi untuk memeriksa sebuah kondisi saja
Contoh :
IF komentar=”coba” THEN
Output(“Anda memasukan kata yang benar”)
ENDIF
Pernyataan IF Sederhana

Pernyataan IF dengan Syarat Majemuk


Digunakan operator AND dan OR
Contoh :
IF nilai = “A” OR nilai = “B” THEN
Output(“Anda dapat mengikuti tes asisten”)
ENDIF
atau
IF nilai<=100 AND nilai>=80THEN
Output(“Nilai mata kuliah Anda A”)
ENDIF
Pernyataan IF – ELSE

Bentuk:
IF <kondisi> THEN
<pernyataan_1>
ELSE
<pernyataan_2>
ENDIF
Pernyataan IF – ELSE

Contoh :
IF x>0 THEN
Output(“X adalah bilangan positif”)
ELSE
Output(“X adalah bilangan negatif”)
ENDIF
INSTRUKSI CASE

Alternatif dari pernyataan IF untuk masalah dengan pilihan ganda


Semua masalah yang bisa CASE pasti bisa ditangani oleh IF, tetapi
tidak sebaliknya
Bentuk:
SELECT CASE <ekspresi>
CASE <ekspresi_1>
<blok instruksi_1>
CASE <ekspresi_2>
<blok instruksi_2>
...
CASE ELSE
<blok instruksi_m>
END SELECT
STRUKTUR PERULANGAN
(Repetition Structure)

Pemrograman untuk melakukan suatu proses yang berulang-


ulang, jika suatu kondisi dipenuhi atau tidak
Proses ini biasanya digunakan, untuk :
Mengulang proses pemasukan data
Mengulang proses perhitungan
Mengulang proses penampilan hasil pengolahan data
STRUKTUR PERULANGAN
(Repetition Structure)

Struktur perulangan terdiri dari 2 bagian :


Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi
untuk melaksanakan pengulangan
Badan (body) pengulangan, yaitu satu atau lebih aksi yang akan
diulang
Disamping itu biasanya disertai dengan :
Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan
dilakukan pertama kali
Terminasi, yaitu aksi yang dilakukan setelah pengulangan
selesai dilaksanakan
STRUKTUR PERULANGAN
(Repetition Structure)

Bentuk instruksi perulangan :


Instruksi FOR
Instruksi WHILE – DO
Instruksi REPEAT-UNTIL
INSTRUKSI FOR

Digunakan untuk mengeksekusi suatu baris/blok instruksi secara


berulang-ulang selama kondisi terpenuhi
Kondisi yang digunakan untuk menguji hanya sebatas
perhitungan menambah/mengurangi isi variabel counter dengan
STEP tertentu

Jumlah perulangan diketahui secara pasti (n kali)


INSTRUKSI FOR
Bentuk instruksi :

FOR variable_counter ← nilai_awal TO nilai_akhir DO

<blok instruksi/pernyataan>

ENDFOR
INSTRUKSI FOR

Contoh: Mencetak tulisan ‘HALO’ sepuluh kali

Algoritma CETAK_HALO_SEPULUH_KALI
k : integer

FOR k ← 1 TO 10 DO
output(‘HALO’)
ENDFOR
Instruksi WHILE-DO

INSTRUKSI
Proses berulang selama sebuah kondisi terpenuhi
Proses berulang tidak diketahui jumlahnya
Bentuk Instruksi :
WHILE <kondisi> DO
<blok pernyataan>
ENDWHILE
Instruksi WHILE-DO

Contoh: mencetak tulisan “Halo” sebanyak 10 kali

Algoritma CETAK_HALO_SEPULUH_KALI
k : integer
k ← 1
WHILE k ≦ 10 DO
output(‘Halo’)
k ← k + 1
ENDWHILE
Instruksi REPEAT-UNTIL

Instruksi REPEAT - UNTIL


Pengulangan dilakukan selama kondisi bernilai salah
Pengujian dilakukan setelah blok pernyataan dijalankan,
sehingga minimal sekali pernyataan akan dieksekusi
Bentuk Instruksi :
REPEAT

<blok pernyataan>

UNTIL <kondisi>
Instruksi REPEAT-UNTIL

Contoh: Menampilkan angka 1, 2, ......., 20

Algoritma CETAK_ANGKA_1-20
angka : integer
angka ← 1

REPEAT
output(angka)
angka ← angka + 1
UNTIL angka > 20
Tugas
Kerjakan TugasASD040311.pdf

Waktu pengerjaan dua minggu, deadline hari Kamis,


17 Maret 2011 pkl. 23.59 WIB

Tugas dikumpul via email : sunu_jteti@yahoo.co.id

Minggu depan kelas ditiadakan, mohon selama dua


minggu pelajari dasar-dasar C/C++ Programming

PEMBAGIAN GRUP untuk TUGAS PRESENTASI


(ambil no. undian). Tema presentasi dan jadwal
presentasi diunduh di course page dan papirus

Anda mungkin juga menyukai