PENGANTAR ALGORITMA &
PEMROGRAMAN C/C++
Analisis Algoritma dan Struktur Data
(
TKE 670
)
Topik Diskusi
Komputer dan Pemrograman
Mengenal Algoritma dan Struktur Data
Langkah Penyelesaian Masalah
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
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
Algoritma
Ciri-ciri algoritma yang baik :
1. Benar secara logika
2. Jumlah langkah/step berhingga dan tertentu
3. Efektif
Langkah Pemecahan Masalah
(1) Inisiasi solusi secara umum:
deskripsi masalah
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
Langkah Pemecahan Masalah
(3) Implementasi solusi
Menggambar flowchart dan atau menulis
pseudocode
Menerjemahkan ke dalam bahasa
pemrograman tertentu
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)
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
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
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
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 system
Yaitu bagan yang menggambarkan suatu prosedur dan proses suatu file dalam suatu media menjadi file dalam media yang lain dalam suatu
sistem data.
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
Pseudocode
Mempermudah pembuatan program
Independen dari berbagai bahasa
pemrograman
Struktur Pseudocode
Kepala Algoritma
Algoritma HITUNG_RERATA
(Menghitung rerata bilangan bulat)
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);
rerata = (float) jumlah/n;
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)
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
Contoh:
Pseudocode sebuah algoritma, sbb:
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)
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 IF
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
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
Pernyataan IF – ELSE
Bentuk:
IF <kondisi> THEN <pernyataan_1> ELSE
Pernyataan IF – ELSE
Contoh :
IF x>0 THEN
Output(“X adalah bilangan positif”) ELSE
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
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
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
STRUKTUR PERULANGAN
(Repetition Structure)
Bentuk instruksi perulangan :
Instruksi FOR
Instruksi WHILE – DO
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
Bentuk instruksi :
FOR variable_counter ← nilai_awal TO nilai_akhir DO
<blok instruksi/pernyataan>
ENDFOR
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>
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>
Instruksi REPEAT-UNTIL
Contoh: Menampilkan angka 1, 2, ..., 20
Algoritma CETAK_ANGKA_1-20 angka : integer
angka ← 1
REPEAT
output(angka)
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