• Tidak ada hasil yang ditemukan

03 pengantar algoritma

N/A
N/A
Protected

Academic year: 2018

Membagikan "03 pengantar algoritma"

Copied!
41
0
0

Teks penuh

(1)

PENGANTAR ALGORITMA &

PEMROGRAMAN C/C++

Analisis Algoritma dan Struktur Data

(

TKE 670

)

(2)

Topik Diskusi

Komputer dan Pemrograman

Mengenal Algoritma dan Struktur Data

Langkah Penyelesaian Masalah

(3)

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

(4)

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

(5)

Algoritma

Ciri-ciri algoritma yang baik :

1. Benar secara logika

2. Jumlah langkah/step berhingga dan tertentu

3. Efektif

(6)

Langkah Pemecahan Masalah

(1) Inisiasi solusi secara umum:

deskripsi masalah

(7)

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

(8)

Langkah Pemecahan Masalah

(3) Implementasi solusi

Menggambar flowchart dan atau menulis

pseudocode

Menerjemahkan ke dalam bahasa

pemrograman tertentu

(9)

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)

(10)

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)

(11)

Penyajian Algoritma

Algoritma disajikan dengan

tulisan

dan

gambar

.

Algoritma yang disajikan dengan tulisan berupa

(12)

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

(13)

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

(14)

Flowchart

Flowchart

(bagan alir) adalah suatu bagan yang

menggambarkan/mempresentasikan suatu

algoritma/prosedur untuk menyelesaikan masalah.

Flowchart ada dua macam :

Flowchart System

(15)

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.

(16)

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

(17)

Pseudocode

Mempermudah pembuatan program

Independen dari berbagai bahasa

pemrograman

(18)

Struktur Pseudocode

Kepala Algoritma

Algoritma HITUNG_RERATA

(Menghitung rerata bilangan bulat)

(19)

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;

(20)

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)

(21)

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

(22)

Contoh:

Pseudocode sebuah algoritma, sbb:

(23)

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)

(24)

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

(25)

INSTRUKSI IF

(26)

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

(27)

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

(28)

Pernyataan IF – ELSE

Bentuk:

IF <kondisi> THEN <pernyataan_1> ELSE

(29)

Pernyataan IF – ELSE

Contoh :

IF x>0 THEN

Output(“X adalah bilangan positif”) ELSE

(30)

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

(31)

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

(32)

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

(33)

STRUKTUR PERULANGAN

(Repetition Structure)

Bentuk instruksi perulangan :

Instruksi FOR

Instruksi WHILE – DO

(34)

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

(35)

Bentuk instruksi :

FOR variable_counter nilai_awal TO nilai_akhir DO

<blok instruksi/pernyataan>

ENDFOR

(36)

Contoh: Mencetak tulisan ‘HALO’ sepuluh kali

Algoritma CETAK_HALO_SEPULUH_KALI k : integer

FOR k 1 TO 10 DO output(‘HALO’) ENDFOR

(37)

Instruksi WHILE-DO

INSTRUKSI

Proses berulang selama sebuah kondisi terpenuhi Proses berulang tidak diketahui jumlahnya

Bentuk Instruksi :

WHILE <kondisi> DO

<blok pernyataan>

(38)

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

(39)

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>

(40)

Instruksi REPEAT-UNTIL

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

Algoritma CETAK_ANGKA_1-20 angka : integer

angka 1

REPEAT

output(angka)

(41)

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

Gambar

gambar berupa flowchart (bagan alir).

Referensi

Dokumen terkait

Hasil analisis ranah kognitif diketahui ketuntasan belajar secara klasikal kondisi awal siswa yang tuntas 8 siswa dengan persentase 40%, meningkat pada siklus I

Badan Wakaf Indonesia Provinsi Sulawesi Utara seharusnya dalam melakukan perlakuan akuntansi berpedoman terhadap standar akuntansi yang berlaku baik itu PSAK 16, PSAK 109, akan

Dari Gambar 1.3 terlihat bahwa baja yang mempunyai kuat tarik tinggi pada umumnya regangan batasnya rendah atau getas, sedang baja yang kuat tariknya rendah mempunyai regangan

Faktor – faktor yang menyebabkan terjadinya cacat benang adalah tidak ada jadwal penggantian part pada mesin spinning, tidak ada jadwal penggantian part pada mesin roving, tidak

Probabilitas hasil uji t yang diperoleh sebesar 0,175 &gt; 0,05 sehingga Ho diterima dan Ha ditolak yang menyatakan bahwa tidak terdapat perbedaan yang signifikan

Pengetahuan yang didapat digunakan untuk meningkatkan ( enhance ) layanan kepada pelanggan, mendapatkan ( acquire ) pelanggan yang baru, dan juga mempertahankan ( retain

KAPRODI MAGISTER ILMU

Wasir atau biasa disebut kebanyakan orang sebagai ambeien atau dalam bahasa kedokteran adalah hemoroid merupakan suatu kondisi membengkaknya jaringan dinding dubur