modul algoritma dan struktur data i

Upload: femara-noflikha-eldayanti

Post on 19-Jul-2015

146 views

Category:

Documents


1 download

TRANSCRIPT

Universitas Putra Indonesia (UPI)YPTK Padang

Fakultas Ilmu Komputer

Bahan Ajar

Matakuliah : Algoritma dan Struktur Data I Kode Mata Kuliah : KKKI13102

Padang 2009/2010Team DosenAlgoritma dan Struktur Data I

Algoritma dan Struktur Data I

Materi Ajar1. Pengantar Algoritma - Pendahuluan - Pengertian Algoritma 2. Dasar-Dasar Algoritma - Struktur Dasar algoritma - Runtunan (Struktur Urut) - Pemilihan Kondisi (Struktur Seleksi) - Perulangan 3. Simbol-Simbol Program Flowchart 4. Tipe Data, Nama (Variabel), dan Nilai - Tipe Dasar - Tipe Bentukan - Rekaman - Nama ( Variabel) - Operator Pada Pemrograman 5. Runtunan 6. Struktur Percabangan(Kondisi) - If........then - If........then ........else....... - If........then.........else if.......then......else............ - Struktur Case 7. Struktur Perulangan - Struktur While........Do - Struktur Repeat .......Until - Struktur For......to..... Do 8. Procedure - Defenisi Procedure - Mendefenisikan Procedure - Pemanggilan Procedure - Nama Global dan Lokal - Parameter Masukan dan Parameter Keluaran 9. Function - Mendefenisikan Function - Pemanggilan Function 10. Larik (Array) - Defenisi Larik - Mendefenisikan Larik - Cara Mengacu Elemen Larik - Pemrosesan Larik

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I Pertemuan 1

Pengantar AlgoritmaPengertian Algoritma : adalah urutan langkah-langkah logis dalam penyelesaian masalah yang disusun secara sistematis. Contoh : Tentukan nilai A dengan rumus yang bisa digunakan adalah C=A+B C? Untuk menentukan nilai C maka yang harus kita ketahui terlebih dahulu adalah nilai A dan nilai B Untuk nilai A dan B ini dapat berupa konstanta atau merupakan hasil proses yang lainnya. Jadi Nilai C tidak akan bisa didapatkan sebelum kita mengetahui nilai A dan nilai B. Jadi langkah pertama kita adalah menentukan nilai A dan B, kemudian baru menghitung penjumlahan kedua nilai tersebut. Urutan inilah yang disebut sebagai urutan logis. Contoh lain adalah : untuk menukar isi bejana A yang berisi air berwarna Biru dengan bejana B yang berisi air berwarna Merah. Sehingga nantinya bejana A berisi air berwarna merah sedangkan bejana B berisi air berwarna Biru. Algoritma adalah : - tuangkan isi bejana A ke bejana B, kemudian tuangkan isi bejana B ke bejana A. Cara yang ditempuh diatas adalah SALAH karena pada saat isi bejana A dituangkan ke bejana B maka air yang ada pada bejana B akan tercampur dengan air yang ada pada bejana B, sehingga pada saat isi bejana B dituangkan ke dalam bejana A maka Warnanya sudah tercampur dengan isi bejana A. Algoritma yang tepat adalah : - Siapkan sebuah bejana dalam keadaan kosong diumpamakan dengan bejana C - Kemudian isi bejana A dituangkan kedalam bejana C sehingga bejana A dalam keadaan kosong - Langkah berikutnya isi bejana B dituangkan kedalam bejana A sehingga bejana B sekarang dalam keadaan kosong. - Baru kemudian isi bejana C dituangkan kedalam bejana B - Perhatikan bahwa isi bejana sudah berpindah ke bejana B dan isi bejana B sudah berpindah ke bejana A

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Alat-alat Bantu dalam menggambarkan AlgoritmaUntuk menggambarkan urutan suatu proses maka ada beberapa cara (alat bantu) yang bisa digunakan. Cara yang digunakan harus sudah berlaku secara umum dan mempunyai aturan-aturan tertentu. Cara yang bisa digunakan antara lain : - Algoritma - IPO Chart - Flow Chart Program Contoh penggunaan alat bantu diatas: (kasus dari contoh pertama) C=A+B 1. Algoritma Urutan instruksi yang diberikan adalah : - Tentukan nilai A dan B - Proses nilai A ditambah nilai B - Cetak hasil (nilai C) 2. IPO ChartDipanggil Input A,B Memanggil Output C

Proses C=A+B

3. Program Flow Chart

start

A,B,C Inpu t A,B C=A+B

Cetak C StopTeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Mekanisme Pelaksanaan Algoritma oleh Pemroses.Dalam pembuatan algoritma ini maka hasil akan didapatkan dengan adanya prosesan. Pemroses dapat berupa alat-alat elektronik, manusia, robot dan alatalat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pada algoritma yang akan dipelajari alat peruses yang akan digunakan adalah komputer. Pada komputer dapat dibedakan atas 4 unit utama - piranti masukan - piranti keluaran - piranti proses - piranti memori Data pada komputer akan diproses pada piranti proses yang sering dikenal dengan CPU. Mekanisme dari ke empat piranti di atas dapat digambarkan sebagai berikut :Piranti Masukan Unit pemrosesan Utama (CPU) Piranti Keluaran

Memori

Mekanisme dari keempat piranti diatas dapat dijelaskan sebagai berikut : Mula-nula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan, setiap instruksi yang telah disimpan didalam memori dikirim ke CPU. CPU mengerjakan operasi-operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan , disimpan dalam memori lalu dikirim ke CPU untuk operasi yang memerlikan tadi.. Bila proses menghasilkan keluaran, keluaran disimpan ke dalam memori, lalu dari memori keluaran dikirimkan ke piranti keluaran. Sebuah algoritma akan dapat dikenal oleh komputer jika sudah dipindahkan kedalam bentuk yang dapat dimengerti oleh komputer, dalam hal ini disebut dengan program. Ada bermacam-macam bahasa pemrogram yang dikenal seperti, Basic, Bahasa C, Pascal, Fortran, Visual Basic, Delphi ,dll.

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Pertemuan 2

Simbol-Simbol Program Flow ChartAwal dan akhir suatu program Inisialisasi variable ( persiapan awal ) Input dan output ( masukan dan keluaran ) program Proses program Percabangan / perulangan Perulangan Connector (tanda sambung untuk halaman sama ) Connector ( tanda sambung untuk halaman berbeda ) Arah proses Sub program / Procedure ( blok program )

Struktur Bahasa PascalJudul Program Blok Program Bagian Deklarasi variable label konstanta type procedure function Bagian Pernyataan

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Perintah Input Output- Read dan readln - Write dan writelncontoh : readln(a) input nilai A write(A) cetak nilai A write(A) cetak AContoh Soal : Buat flowchart program dan program Pascal untuk menampilkan hasil perkalian sebagai berikut : A=B x C P=Q(R+S) + R(Q+S) Nilai B Dan C Diinputkan Nilai Q,R,dan S diinputkan

(perintah input ) (perintah output)

Deklarasi Variabel, Label, KonstantaDeklarasi variable dinyatakan dengan statemen Var Contoh Var A:integer; Deklarasi Label dinyatakan dengan statemen Label Contoh Label100 Deklarasi konstanta dinyatakan dengan statemen Const Contoh Const a:=100; Syarat-syarat pemberian nilai variable harus dimulai dengan huruf harus merupakan satu kesatuan Tidak boleh ada symbol-simbol khusus kecuali _ (garis bawah) Huruf besar dan kecil dianggap sama

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

- Panjang tidak terbatas

Deklarasi Fungsi dan prosedureFungsi dan prosedure merupakan blok program yang terpisah dari program utama yang mempunyai struktur program hampir sama dengan program utama. Prosedure dinyatakan dengan statemen PROCEDURE sedangkan fungsi dinyatakan dengan statemen FUNCTIONCONTOH PROSEDUR PROCEDURE SATU; VAR BEGIN END; CONTOH FUNGSI FUNCTION AKAR; BEGIN END;

Tipe Data Pada Program PascalProgram komputer bekerja dengan memanipulasi data didalam memori. Data yang dimanipulasi mempunyai beberapa tipe data seperti : - nilai numerik - karakter - string - rekaman (record) Tipe data dapat dikelompokkan dalam dua kelompok yaitu : - Tipe Dasar (nilainya bias langsung dipakai) - Tipe Bentukan (tipe data yang didefeisikan dari tipe dasar) 1. Tipe Dasar Yang termasuk tipe dasar adalah : - karakter - bilanganTeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

- logika - Tipe bilangan ada beberapa macam a. Bilangan bulat - Shortint -128 s/d +127 - Byte 0 s/d 255 - Integer -32768 s/d +32767 - Longint -2147483648 s/d +2147483648 - Word 0 s/d 65535 b. Bilangan pecahan - Real 2.9 X 10 39 s/d 1,7 X 10 38 - Single 1.5 X 10 45 s/d 3,4 X 10 38 - Double 5.0 X 10 324 s/d 1,7 X 10 308 - Extend3.4 X 10 4932 s/d 1,1 X 10 4932 - Tipe data Karakter Yang termasuk kedalam tipe data karakter adalah : huruf-huruf alfabet, tanda baca, angka 0,1,.9 dan karakter khusus &,^, .. - Logika Tipe data ini mempunyai nilai Benar dan Salah 2. Tipe Bentukan Tipe bentukan adalah tipe data yang didefenisikan sendiri oleh pemrogram. Ada 3 tipe data bentukan 1. String 2. Tipe data dasar yang diberi nama dengan nama tipe baru. 3. Rekaman (record) 1. String Adalah deretan karakter dengan panjang tertentu Contoh : a:string[15] 2. Tipe data dasar yang diberi nama baru Contoh : Type BilBulat : Integer: 3. RekamanTeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Contoh : Type mahasiswa=record Nbp :string[13]; Nm :string[25]; End;Pertemuan 3

Operator Pada Program1. Operator Aritmatika Yaitu symbol yang digunakan untuk proses perhitungan +, - , * , / , div , mod - operator / digunakan untuk pembagian dengan hasil adalah bilangan pecahan - operator div digunakan untuk pembagian dengan hasil adalah bilagan bulat - mod adalah operator yang digunakan untuk mencari sisa hasil bagi Pada proses aritmatik adakalanya ada beberapa operator ditemui pada satu ekspresi. Contoh : Z=A+B*C Pada contoh diatas ada 2 operator yang ditemui yaitu + dan *. Jika hal ini terjadi maka yang akan diproses terlebih dahulu adalah operator dengan prioritas tertinggi. Berikut prioritas pengerjaan dari masing-masing operator. 1. * , /, mod , div 2. + dan 2. Operator Relasional Adalah < , > , >= , 3

Write(nilai rata-rata : ); Readln(nil_rata); If nil_rata > 3 then Begin Ket:=Dapat Bonus End;

Ket=Dapat Bonus

b. IFTHEN.ELSE Digunakan jika pada pemilihan ada dua aksi yang akan dilakukanTeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Contoh : jika nilai besar dari 60 maka keterangan lulus jika tidak keterangan gagal Flowchart :Input nilai

Program :

Nilai>60 Ket=Gagal Ket=Lulus

Write(Inputkan nilai: );Readln(nilai); If nilai > 60 then Begin Ket:=Lulus End Else Begin Ket:=Gagal End;

c. IFTHENELSEIF.THENELSETeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Digunakan jika pada pemilihan ada beberapa aksi yang akan dilakukan berdasarkan beberapa syarat yang harus terpenuhi. Contoh : Tentukan apakah wujud air dalam keadaan cair, padat, atau gas. Flowchart :Input Suhu Suhu =100 Ket=Padat Ket=Gas Ket=Cair

Write(Inputkan Suhu: );Readln(suhu); If suhu = 100 then Begin Ket:=Gas End Else Begin Ket:=Cair End;

Tentukan apakah suatu bilangan negatif, positif, atau nol

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Flowchart :

program:

Input Bilfalse false

Bil0true Ket=Positif

Ket=Negatif

Ket=Nol

Write(Inputkan Bil: );Readln(bil); If bil < 0 then Begin Ket:=Negatif End Else if bil > 0 then Begin Ket:=Positif End Else Begin Ket:=Bil. Nol End;

d. Struktur Case

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Struktur case adalah cara lain yang bisa digunakan untuk memilih suatu kondisi tertentu. Syntax: Case (var) Var = ..: hasil =.. Var = ...: hasil =.. . . Endcase

Pertemuan 7,8Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

PENGULANGAN- While..do - Repeat.until - For ..todo 1. While ..... Do Perulangan dengan while ..do digunakan selama kondisi (syarat) yang ada pada perulangan benar (terpenuhi) Contoh :Mencetak Halo sebanyak 10 kali K:=1 While k< 10 do begin write (Halo); k:=k+1; end;

K=1 While k10;

Keterangan : Write (halo) akan dilakukan selama nilai K tidak besar dari 10. Pada struktur repeat until instruksi yang ada anatara repeat dan until minimal satu kali proses akan dilakukann karena nilai / syarat dari perulangan terletak di akhir struktur. 3. For ....to... do Perulangan dengan struktur for akan dilakukan sesuai dengan jumlah perulangan yang ditetapkan pada struktur for. Contoh : menampilkan halo sebanyak 10 kali K:=1 Repeat write (Halo); k:=k+1; Until k>10;

For k=1 to 10 do

Write(halo )

Keterangan : Write(halo) akan dilaksanakan sebanyak 10 kali sesuai dengan jumlah perulangan yang udah ditetapkan pada struktur For yaitu 1 s/d 10. pada struktur perulangan ini nilai K akan bertambah 1 secara otomatis begitu perintah sampai pada khir perulangan. Erulangan dengan struktur for dapat dibagi menjadi 2 bagianTeam Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

1. 2.

For menaik For menurun

1. For menaik - peubah haruslah bertipe sederhana kecuali tipe real - nilai awal harus lebih kecil atau sama dengan nilai akhir - pada awalnya peubah diinisialisasi dengan nilai awal. Nilai peubah otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir - jumlah pengulangan yang terjadi adalah nilai akhir nilai awal +1 2. For menurun - peubah haruslah bertipe sederhana kecuali tipe real - nilai awal harus lebih besar atau sama dengan nilai akhir - pada awalnya peubah diinisialisasi dengan nilai awal. Nilai peubah otomatis berkurang satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah sama dengan nilai akhir - jumlah pengulangan yang terjadi adalah nilai awal nilai akhir +1 Contoh-contoh Kasus

Pertemuan 10

Loop Dalam Loop ( Nested Loop)

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Pada proses perulangan sangat dimungkinkan adanya terjadi proses perulangan didalam perulangan yang lain, proses ini dikenal dengan istilah Nested Loop 1. to ........ Do Syntax : For....to.....do Instruksi For....to....do Instruksi... end end Nested Loop pada For .......

Keterangan : Pada perulangan seperti ini proses perulangan yang akan diselesaikan terlebih dahulu adalah perulangan yang terletak pada bagian dalam. Contoh : inputkan data buku maksimal 5 Judul buku dimana masingmasing buku memiliki pengarang maksimal ada 4 pengarang. Berikut data lengkap yang harus diinputkan : Kode Buku : Judul Buku : Pengarang : Tahun Terbit

: For i:=1 to 5 do Begin Write (Kode Buku :); readln(kdb); Write (Judul Buku :); readln(jdl); For k:=1 to 4 do Begin Write (Pengarang :); readln(pg); Write (Tahun Terbit :); readln(th); End; End;

For i :=1 to 5

Input kdb,jdl

For k :=1 to 4

Input pg,th

Keterangan :Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

Pada program diatas proses perulangan pada i akan dilaksanakan terlebih dahulu untuk i=1, berikut proses perulangan akan berada pada k dimana perulangan akan dilaksanakan mulai dari k=1 sampai nilai k=4. Begitu nilai k=5 proses akan keluar dari perulangan k dan akan kembali ke perulangan i dengan nilai I akan langsung bertambah satu sehingga menjadi 2. Perulangan akan dilanjutkan kembali ke perulangan K mulai dari nilai k=1 lagi sampai nilai sama dengan 4. Begitu seterusnya sampai nilai I sama dengan 5. Begitu nilai I=6 maka proses akan keluar dari perulangan secara keseluruhan 2. Nesterd Loop Pada While ......Do Pada prinsip kerjanya nested loop while ...do sama dengan for..to..do dimana proses perulangan yang akan diselesaikan terlebih dahulu adalah perulangan yang terletak bagian dalam Syntax : While.........do Instruksi While .....do Instruksi End End Selesaikan contoh pada for ...to...do dengan menggunakan while....do

Team Dosen Algoritma dan Struktur Data

Algoritma dan Struktur Data I

I:=1

While I