Modul algoritma dan struktur data i

2,114 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,114
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
190
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Modul algoritma dan struktur data i

  1. 1. Universitas Putra Indonesia (UPI) “YPTK” Padang Fakultas Ilmu Komputer Bahan AjarMatakuliah : Algoritma dan Struktur Data IKode Mata Kuliah : KKKI13102 Padang 2009/2010 Team Dosen Algoritma dan Struktur Data I
  2. 2. Algoritma dan Struktur Data IMateri Ajar 1. 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 LarikTeam Dosen Algoritma dan Struktur Data
  3. 3. Algoritma dan Struktur Data IPertemuan 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+BC?  Untuk menentukan nilai C maka yang harus kita ketahui terlebih dahulu adalah nilai A dan nilai BUntuk nilai A dan B ini dapat berupa konstanta atau merupakan hasil prosesyang lainnya. Jadi Nilai C tidak akan bisa didapatkan sebelum kita mengetahuinilai A dan nilai B.Jadi langkah pertama kita adalah menentukan nilai A dan B, kemudian barumenghitung penjumlahan kedua nilai tersebut. Urutan inilah yang disebutsebagai urutan logis.Contoh lain adalah : untuk menukar isi bejana A yang berisi air berwarna Birudengan bejana B yang berisi air berwarna Merah. Sehingga nantinya bejana Aberisi 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 Adituangkan ke bejana B maka air yang ada pada bejana B akan tercampurdengan air yang ada pada bejana B, sehingga pada saat isi bejana B dituangkanke 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 ATeam Dosen Algoritma dan Struktur Data
  4. 4. Algoritma dan Struktur Data I Alat-alat Bantu dalam menggambarkan Algoritma Untuk menggambarkan urutan suatu proses maka ada beberapa cara (alatbantu) yang bisa digunakan. Cara yang digunakan harus sudah berlaku secaraumum dan mempunyai aturan-aturan tertentu.Cara yang bisa digunakan antara lain : - Algoritma - IPO Chart - Flow Chart ProgramContoh 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 Chart Dipanggil Memanggil Input A,B Output C Proses C=A+B start 3. Program Flow Chart A,B,C Inpu t A,B C=A+B Cetak C StopTeam Dosen Algoritma dan Struktur Data
  5. 5. Algoritma dan Struktur Data I Mekanisme Pelaksanaan Algoritma oleh Pemroses.Dalam pembuatan algoritma ini maka hasil akan didapatkan dengan adanyaprosesan. Pemroses dapat berupa alat-alat elektronik, manusia, robot dan alat-alat elektronik lainnya.Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusialgoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berartimengerjakan langkah-langkah di dalam algoritma tersebut.Pada algoritma yang akan dipelajari alat peruses yang akan digunakan adalahkomputer.Pada komputer dapat dibedakan atas 4 unit utama - piranti masukan - piranti keluaran - piranti proses - piranti memoriData pada komputer akan diproses pada piranti proses yang sering dikenaldengan CPU. Mekanisme dari ke empat piranti di atas dapat digambarkansebagai berikut : Piranti Masukan Unit pemrosesan Piranti Keluaran Utama (CPU) MemoriMekanisme dari keempat piranti diatas dapat dijelaskan sebagai berikut :Mula-nula program dimasukkan ke dalam memori komputer. Ketika programdilaksanakan, setiap instruksi yang telah disimpan didalam memori dikirim keCPU. CPU mengerjakan operasi-operasi yang bersesuaian dengan instruksitersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan ,disimpan dalam memori lalu dikirim ke CPU untuk operasi yang memerlikantadi.. 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 dipindahkankedalam bentuk yang dapat dimengerti oleh komputer, dalam hal ini disebutdengan program. Ada bermacam-macam bahasa pemrogram yang dikenalseperti, Basic, Bahasa C, Pascal, Fortran, Visual Basic, Delphi ,dll.Team Dosen Algoritma dan Struktur Data
  6. 6. Algoritma dan Struktur Data IPertemuan 2 Simbol-Simbol Program Flow Chart Awal 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 ProgramBlok Program Bagian Deklarasi - variable - label - konstanta - type - procedure - function Bagian Pernyataan Perintah Input OutputTeam Dosen Algoritma dan Struktur Data
  7. 7. Algoritma dan Struktur Data I- Read dan readln (perintah input )- Write dan writeln (perintah output)contoh :readln(a)  input nilai Awrite(A)  cetak nilai Awrite(‘A’)  cetak ‘A’Contoh Soal :Buat flowchart program dan program Pascal untuk menampilkan hasil perkaliansebagai berikut :A=B x C  Nilai B Dan C DiinputkanP=Q(R+S) + R(Q+S)  Nilai Q,R,dan S diinputkan Deklarasi Variabel, Label, KonstantaDeklarasi variable dinyatakan dengan statemen VarContohVar A:integer;Deklarasi Label dinyatakan dengan statemen LabelContohLabel 100Deklarasi konstanta dinyatakan dengan statemen ConstContohConst 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 - Panjang tidak terbatasTeam Dosen Algoritma dan Struktur Data
  8. 8. Algoritma dan Struktur Data I Deklarasi Fungsi dan prosedureFungsi dan prosedure merupakan blok program yang terpisah dariprogram utama yang mempunyai struktur program hampir samadengan program utama. Prosedure dinyatakan dengan statemenPROCEDURE sedangkan fungsi dinyatakan dengan statemenFUNCTIONCONTOH PROSEDURPROCEDURE SATU;VARBEGINEND;CONTOH FUNGSIFUNCTION AKAR;BEGINEND; Tipe Data Pada Program PascalProgram komputer bekerja dengan memanipulasi data didalammemori. Data yang dimanipulasi mempunyai beberapa tipe dataseperti : - 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
  9. 9. 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 - Extend 3.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
  10. 10. Algoritma dan Struktur Data I Contoh : Type mahasiswa=record Nbp :string[13]; Nm :string[25]; End; Pertemuan 3 Operator Pada Program 1. 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 < , > , >= , <= , not , and , or . Hasil dari operator iniadalah benar atau salah. Contoh-contoh soal: Perrtemuan 4 (pratikum)Team Dosen Algoritma dan Struktur Data
  11. 11. Algoritma dan Struktur Data I Runtunan Merupakan urutan proses program yang terurut tanpa adanya proses percabangan. Contoh untuk proses runtunan ini juga bisa dilihat pada pertukaran isi bejana pada pertemuan 1 Contoh : buat algoritma dan program untuk menghitung hasil formula berikut Nilai x bisa didapatkan dari hasil perkalian p dan q. dimana nilai p didapatkan dari formula berikut : P=3a+b *c Sedangkan nilai q didapat kan dari formula q=4b*c+d Tentukan terlebih dahulu data apa yang perlu diinputkan dan urutkan proses yang harus dikerjakan. Algoritma :………. Program pascal ……… Pertemuan 5 dan 6Team Dosen Algoritma dan Struktur Data
  12. 12. Algoritma dan Struktur Data I Struktur PercabanganYaitu pemilihan suatu instruksi yang akan dikerjakan sesuai dengankondisi / syarat tertentu a. IF…………THEN Digunakan jika pada pemilihan hanya ada satu aksi yang akan dilakukan jika kondisi tertentu terpenuhi dan tidak ada aksi yang lain yang akan dikerjakan jika kondisi tidak terpenuhi. Contoh :jika nilai rata besar dari 3 maka ket ‘dapat bonus’ jika tidak tidak dapat apa-apa. Flow chart : Program : Write(‘nilai rata-rata : ‘); Input Nil_rata Readln(nil_rata); If nil_rata > 3 then Begin Nil_rata Ket:=’Dapat Bonus’ >3 End; Ket=’Dapat Bonus’ b. IF………THEN…….ELSE……… Digunakan jika pada pemilihan ada dua aksi yang akan dilakukanTeam Dosen Algoritma dan Struktur Data
  13. 13. Algoritma dan Struktur Data I Contoh : jika nilai besar dari 60 maka keterangan lulus jika tidak keterangan gagal Flowchart : Program : Input nilai 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. IF……THEN……ELSEIF…….THEN……ELSETeam Dosen Algoritma dan Struktur Data
  14. 14. 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 <=0 Suhu >=100 Ket=’Padat’ Ket=’Cair’ Ket=’Gas Write(‘Inputkan Suhu: ‘);Readln(suhu); If suhu <= 0 then Begin Ket:=’Padat’ End Else if suhu >= 100 then Begin Ket:=’Gas’ End Else Begin Ket:=’Cair’ End; Tentukan apakah suatu bilangan negatif, positif, atau nolTeam Dosen Algoritma dan Struktur Data
  15. 15. Algoritma dan Struktur Data I Flowchart : program: Input Bil false Bil<0 false true Bil>0 Ket=’Negatif true Ket=’Nol’ ’ Ket=’Positif ’ 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 CaseTeam Dosen Algoritma dan Struktur Data
  16. 16. 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
  17. 17. Algoritma dan Struktur Data I PENGULANGAN - While……..do - Repeat…….until - For …..to……do 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 K=1 begin write (‘Halo’); While k:=k+1; k<10 do end; Write ‘Halo’ K=k+1Keterangan :Perintah write ‘halo’ akan dilaksanakan selama nilai k<= 1, dimana didalam setiap perulangan nilai k akan bertambah nialainya 1 (satu)sehingga perintah write akan dilakukan sebanyak 10 kali 2. Repeat ........ Until Perulangan dengan repeat until digunakan selama kondisi belum terpenuhi K=1 Repeat Write ‘Halo’ Contoh : mencetak ‘Halo’ sebanyak 10 kali K=k+1Team Dosen Algoritma dan Struktur Data Until
  18. 18. Algoritma dan Struktur Data I K:=1 Repeat write (‘Halo’); k:=k+1; Until k>10; 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’); For k=1 to 10 do k:=k+1; Until k>10; 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
  19. 19. Algoritma dan Struktur Data I 1. For menaik 2. 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
  20. 20. 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. Nested Loop pada For ....... to ........ Do Syntax : For....to.....do Instruksi For....to....do Instruksi... end endKeterangan :Pada perulangan seperti ini proses perulangan yang akan diselesaikanterlebih dahulu adalah perulangan yang terletak pada bagian dalam.Contoh : inputkan data buku maksimal 5 Judul buku dimana masing-masing buku memiliki pengarang maksimal ada 4 pengarang. Berikutdata lengkap yang harus diinputkan :Kode Buku :Judul Buku : Pengarang : Tahun Terbit : For i:=1 to 5 do For i :=1 to 5 Begin Write (‘Kode Buku :’); readln(kdb); Input kdb,jdl Write (‘Judul Buku :’); readln(jdl); For k :=1 to 4 For k:=1 to 4 do Begin Input pg,th Write (‘Pengarang :’); readln(pg); Write (‘Tahun Terbit :’); readln(th); End; End;Keterangan :Team Dosen Algoritma dan Struktur Data
  21. 21. Algoritma dan Struktur Data IPada program diatas proses perulangan pada i akan dilaksanakanterlebih dahulu untuk i=1, berikut proses perulangan akan berada padak dimana perulangan akan dilaksanakan mulai dari k=1 sampai nilaik=4. Begitu nilai k=5 proses akan keluar dari perulangan k dan akankembali ke perulangan i dengan nilai I akan langsung bertambah satusehingga menjadi 2.Perulangan akan dilanjutkan kembali ke perulangan K mulai dari nilaik=1 lagi sampai nilai sama dengan 4. Begitu seterusnya sampai nilai Isama dengan 5. Begitu nilai I=6 maka proses akan keluar dariperulangan secara keseluruhan2. 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 menggunakanwhile....doTeam Dosen Algoritma dan Struktur Data
  22. 22. Algoritma dan Struktur Data I I:=1 I:=1; While I<=5 do Begin While I<=5 do Write (‘Kode Buku :’); readln(kdb); Input kdb,jdl Write (‘Judul Buku :’); readln(jdl); K:=1; K:=1 While k<=1 to 4 do Begin Write (‘Pengarang :’); While K<=4 do readln(pg); Write (‘Tahun Terbit :’); Input pg,th readln(th); K:=K+1; K:=K+1 End; I:+I+1; End; I=I+13. Nested Loop Pada Repeat ..........UntilProses nested repeat until hampir sama dengan proses yang ada padanested for dan nested whie. Tetapi disini masing-masing perulanganpada repeat ...until satu kali proses pasti akan dilakukan sesuaidengan keterangan yang ada pada perulangan dengan repeat until.Contoh :Selesaikan kasus pada nested loop sebelumnya dengan menggunakanRepeat until.Team Dosen Algoritma dan Struktur Data
  23. 23. Algoritma dan Struktur Data I I:=1 I:=1; Repeat Repeat Write (‘Kode Buku :’); readln(kdb); Write (‘Judul Buku :’); Input kdb,jdl readln(jdl); K:=1; K:=1 Repeat Write (‘Pengarang :’); readln(pg); Repeat Write (‘Tahun Terbit :’); readln(th); Input pg,th K:=K+1; Until K>4; I:+I+1; K:=K+1 Until I>5; Until K>4 do I:=I+1 While I<=5 doPertemuan 11, 12Team Dosen Algoritma dan Struktur Data
  24. 24. Algoritma dan Struktur Data I ProcedurePengertian Procedure :Adalah merupakan blok program yang terpisah dari program utamadengan struktur program hampir sama dengan struktur program utamaStruktur Procedure Judul Procedure Bagian Deklarasi Variabel Label Constanta Type Badan Procedure Begin instruksi End;Procedure sendiri harus dibuat sebelum program utama sesuai denganstruktur program.Setiap procedure dibatasi dengan end yang menggunakan tanda titikkoma. Procedure biasanya ditemukan pada program untuk skala yangbesar, sehingga dalam pembuatan program untuk lebih mudah dalammendisainnya dibentuk dalam modul-modul program yang dikenaldengan Procedure. Namun demikian bukan berarti procedure tidakbisa diterapkan untuk program dengan skala yang lebih kecil.Prosedur dideklarasikan dengan menggunakan Statemen Procedure.Setiap procedure selalu diakhiri dengan menggunakan tanad titikkoma pada end yang terakhir.Contoh pendeklarasian prosedur :Procedure Satu;Begin Write (‘ini adalah prosedur yang pertama’); Repeat until keypressed;End;{Program Utama}Begin Satu; Write (‘Prosedur pertama selesai’); Repeat untuil keypressed;End.Team Dosen Algoritma dan Struktur Data
  25. 25. Algoritma dan Struktur Data IPada contoh diatas pada saat program dijalankan maka program utamaakan dieksekusi terlebih dahulu. Pada saat proses eksekusi ditemukanperintah satu yang dikenal sebagai nama sebuah prosedur. Nama inidikenal pada saat compiler mengkompilasi program maka satu dicatatsebagai nama sebuah prosedur . Jadi begitu ditemukan satu makacompiler akan mencari kelisting program prosedur dengan nama satu.Setelah ditemukan maka akan diproses. Setelah proses pada prosedurselesai maka proses program akan kembali pada program utama.Contoh :kasusBuat program dengan menggunakan prosedur untuk menampilkanoutput berikut :Algoritma adalah dasar untuk pembuatan programAlgoritma dapat digambarkan dengan Flow Chart ProgramPascal adalah salah satu bahasa untuk mengantarkan algoritmaKetentuan proses :Kalimat pertama dibuat pada prosedur dengan nama AlgoritmaKalimat kedua dibuat pada prosedur dengan nama Flow_ChartKalimat ketiga dibuat pada prosedur dengan nama Pascal Pendeklarasian Parameter Pada ProcedureVariabel pada program Pascal lebih dikenal dengan nama parameter.Parameter dapat berupa parameter lokal dan dapat berupa parameterglobal.Parameter lokal adalah parameter yang hanya bisa digunakan untukproses pada prosedur yang bersangkutaParameter global adalah parameter yang dapat digunakan untuksemua blok program yang ada sesudahnya dan pada prosedur yangbersangkutan.Contoh pendeklarasian parameter pada prosedur.Team Dosen Algoritma dan Struktur Data
  26. 26. Algoritma dan Struktur Data IProcedure Satu;Var A : integer;BeginEnd;Var X:longint;Procedure Dua;Var B:integer;BeginEnd;Var P,Q : Longint;Begin..............End.Keterangan :Var A dan Var B adalah variabel lokal pada prosedur satu dan dua.Var A hanya bisa digunakan untuk proses yang ada pada prosedur satusedangkan Var B hanya dapat digunakan untuk proses pada prosedurdua.Var X adalah variabel yang bersifat global untuk prosedur dua danprogram utama. Jadi var X dapat digunakan untuk proses baik padaprosedur dua maupun pada program utama, tetapi tidak bisadigunakan untuk proses pada prosedur satu.Var P,Q adalah var yang hanya dapat digunakan pada program utamasaja.Contoh kasusBuat program untuk menghitung luas suatu bangun dengan outputsebagai berikut. Program Menghitung Luas Bangun Bujur Sangkar dan Segitiga Siku-Siku 1. Luas Bujur Sangkar 2. Luas Segitiga Siku-Siku 3. Selesai Input Pilihan [1-2] :..Team Dosen Algoritma dan Struktur Data
  27. 27. Algoritma dan Struktur Data I Mencari Luas Bujur Sangkar Input Panjang Sisi :..... Luas Bujur Sangkar Adalah :...... Tekan Enter Untuk Melanjutkan Mencari Luas Segitiga Siku-Siku Input Panjang Alas :..... Input Tinggi Segitiga :..... Luas Segitiga Adalah :...... Tekan Enter Untuk Melanjutkan Start Pil, Luas Cetak Output Program Utama Input pil pil=1 pil=2 Bujur_sangkar Siku-Siku StopTeam Dosen Algoritma dan Struktur Data
  28. 28. Algoritma dan Struktur Data I Bujur_Sangka r Sisi Cetak Output Prosedur Bujur Sangkar Input sisi Luas = sisi * sisi Cetak Luas Return Siku_Siku Alas,tinggi Cetak Output Prosedur Segitiga Siku-Siku Input alas, tinggi Luas = ½ * alas * tinggi Cetak Luas ReturnTeam Dosen Algoritma dan Struktur Data
  29. 29. Algoritma dan Struktur Data I{Program Pascal}Var Pil : integer ; Luas : real;Procedure bujur_sangkar;Var sisi:integer;Begin Clrscr; Gotoxy (...,...) ; write (‘Mencari Luas Bujur Sangkar’); Gotoxy (...,..) ; write (‘Input Panjang Sisi : ‘); Gotoxy (...,...) ; write (‘ Luas Bujur Sangkar Adalah :’); Gotoxy (...,... ) ; readln (sisi); Luas := sisi * sisi ; Gotoxy (..,...) ; write (luas:6:1); Repeat until keypressed;End;Procedure siku_siku;Var alas,tinggi:integer;Begin Clrscr; Gotoxy (...,...) ; write (‘Mencari Luas Segi Tiga Siku-Siku’); Gotoxy (...,..) ; write (‘Input Panjang Alas : ‘); Gotoxy (...,..) ; write (‘Input Tinggi Segi Tiga : ‘); Gotoxy (...,...) ; write (‘ Luas Segi Tiga Adalah :’); Gotoxy (...,... ) ; readln (alas); Gotoxy (...,... ) ; readln (tinggi); Luas := 0.5 * alas * tinggi ; Gotoxy (..,...) ; write (luas:6:1); Repeat until keypressed;End;Begin Clrscr; Gotoxy (...,...); write (‘Program Menghitung Luas Bangun’); Gotoxy (...,...); write (‘Bujur Sangkar dan Segitiga Siku-Siku’); Gotoxy (...,...); write (‘Luas Bujur Sangkar’); Gotoxy (...,...); write (‘Luas Segitiga Siku-Siku’); Gotoxy (...,...); write (‘Selesai’); Gotoxy (...,...); write (‘Input Pilihan [1-2] :..’); Gotoxy (...,...);readln(pil); If pil=1 then Bujur_sangkar Else if pil=2 thenTeam Dosen Algoritma dan Struktur Data
  30. 30. Algoritma dan Struktur Data I Siku_siku; Repeat until keypressed;End.Keterangan programPada program di atas var pil dan luas adalah bersifat global untuksemua blok program.Var sisi bersifat lokal untuk prosedur bujur sangkarVar alas,tinggi bersifat lokal untuk siku-siku.Kasus :Buatlah program untuk menghitung Nilai Faktorial dan Pangkatdengan output sebagai berikut : Program Menghitung Nilai Faktorial dan Pangkat 1. Faktorial 2. Pangkat 3. Selesai Input Pilihan [1-3] :.. Menghitung Faktorial Input Bilangan Yang Dicari :... Nilai Faktorialnya Adalah :..... Tekan Untuk Melanjutkan Menghitung Pangkat Input Bilangan Yang Dicari :... Input Jumlah angkat Yang Diinginkan :..... ..... Pangkat..... adalah ........ Tekan Enter Untuk MelanjutkanTeam Dosen Algoritma dan Struktur Data
  31. 31. Algoritma dan Struktur Data IPertemuan 13,14 Pengiriman Nilai Parameter Pada ProcedurePada sebuah program dimungkinkan adanya pengiriman nilaiparameter dari satu prosedur ke prosedur yang lainPengiriman nilai parameter ini dapat berupa pengiriman secara nilaidan secara acuan.Contoh :Buat flow chart dan program berikut dengan ketentuan dan outputsebagai berikut :Menghitung Luas permukaan sebuah balok dengan panjang sisi-sisibalok adalah- panjang 10 cm- lebar 5 cm- tinggi balok 100 cmBuat program dengan menggunakan prosedur persegi panjang denganpanjang sisi balok diinputkan melalui program.Output Menghitung Luas Permukaan Balok Input Panjang Alas :…. Input Lebar Alas :…. Input Tinggi Balok :… Luas Permukaan Balok Adalah :… Sisi2 Sisi1 Sisi3Team Dosen Algoritma dan Struktur Data
  32. 32. Algoritma dan Struktur Data I start pj,lb,tg,ls,sisi1,si si2,sisi3 Cetak Output Input pj,lb,tg Persegi_Panjang (pj,tg,ls) Sisi1:=ls Persegi_Panjang (lb,tg,ls) Sisi2:=ls Persegi_Panjang (lb,pj,ls) Sisi3:=ls Lper := 2*sisi1+2*sisi2+2*sisi3 Cetak LPer StopTeam Dosen Algoritma dan Struktur Data
  33. 33. Algoritma dan Struktur Data I Procedure persegi_panjang (panjang,lebar : integer ; var luas:integer );Begin Luas := panjang * lebar;End;{program utama}var pj,lb,tg,ls,sisi1,sisi2,sisi3 :integer;Begin Clrscr; Gotoxy (…,…) ; write (‘Menghitung Luas Permukaan Balok’); Gotoxy (…,… ) ; write (‘Input Panjang Alas :…’); Gotoxy (…,… ) ; write (‘Input Lebar Alas :…’); Gotoxy (…,… ) ; write (‘Input Tinggi Balok :…’); Gotoxy (…,… ) ; write (‘Luas Permukaan Balok Adalah :…..’); Gotoxy (…,… ) ; readln ( pj ); Gotoxy (…,… ) ; readln ( lb ); Gotoxy (…,… ) ; readln ( tg ); Persegipanjang(pj,tg,ls); Sisi1:=ls; Persegipanjang(lb,tg,ls); Sisi2 :=ls; Persegipanjang(pj,lb,ls); Sisi3:=ls; Lper := 2*sisi1+2*sisi2+2*sisi3 Gotoxy (…,…) ; write (lper); Repeat until keypressed;End. Keterangan :Pada program diatas luas permukaan balok merupakan luas semua sisibalok. Dimana balok terdiri dari 6 sisi seperti terlihat pada gambardiatas.Semua permukaan balok merupakan persegipanjang, sehingga kitadapat hanya menggunakan prosedur persegi panjang.Pada prosedur persegi panjang ada 2 cara pengiriman data yaitu secaranilai dan secara acuan. Pengiriman secara nilai ditandai denganpenggunaa kata VARPengiriman secara nilai adalah : bahwa hasil yang didapatkan pada prosedur tidak akanmempengaruhi nilai yang ada pada modul yang mengirim (dalam hal ini adalah programutama). Sehingga perubahan nilai variabel panjang pada prosedur tidak akan mempengaruhinilai var PJ pada program utama.Pengiriman secara Acuan adalah : bahwa hasil yang didapatkan pada prosedur akanmempengaruhi nilai yang ada pada modul yang mengirim. Sehingga perubahan niali var Luaspada prosedur akan mempengaruhi nilai var LS pada program utama.Team Dosen Algoritma dan Struktur Data
  34. 34. Algoritma dan Struktur Data IPengiriman secara nilai begitu proses pada program yang dipanggil sudah selesai maka nilaivariabel yang dikirim akan dikembalikan ke modul yang memanggil.KasusBuat flowchart dan program pascal untuk menghitung formula berikut: 1. Z=2^5 + 5! 2. Z=X! + Y + X^YGunakan prosedur pangkat dan faktorial untuk menyelesaikan kasusdiatas. Tampilan dari hasil program dirancang sendiri.Team Dosen Algoritma dan Struktur Data
  35. 35. Algoritma dan Struktur Data IFUNGSIFungsi hampir sama dengan prosedur yaitu merupakan bagianprogram yang terpisah dari program utama.Perbedaan fungsi dengan prosedur adalah bahwa nilai suatu fungsiterletak pada nama fungsi itu sendiri sedangkan pada prosedur nilaiprosedur terletak pada variabel.Sebuah prosedur dapat saja dijadikan fungsi. Kasus diatas dijadikansebuah fungsi dengan tipe integer.Buat program dengan menggunakan fungsi persegi panjang denganpanjang sisi balok diinputkan melalui program.Output Menghitung Luas Permukaan Balok Input Panjang Alas :…. Input Lebar Alas :…. Input Tinggi Balok :… Luas Permukaan Balok Adalah :… Sisi2 Sisi1 Sisi3Team Dosen Algoritma dan Struktur Data
  36. 36. Algoritma dan Struktur Data I start pj,lb,tg,ls,sisi1,si si2,sisi3 Cetak Output Input pj,lb,tg Sisi1= Persegi_Panjang (pj,tg) Sisi2= Persegi_Panjang (lb,tg) Sisi3= Persegi_Panjang (lb,pj) Lper := 2*sisi1+2*sisi2+2*sisi3 Cetak LPer Stop Function persegi_panjang (panjang,lebar : integer):integer; Var luas : integer;Team Dosen Algoritma dan Struktur Data
  37. 37. Algoritma dan Struktur Data IBegin Luas := panjang * lebar; Persegi_panjang :=luas;End;{program utama}var pj,lb,tg,ls,sisi1,sisi2,sisi3 :integer;Begin Clrscr; Gotoxy (…,…) ; write (‘Menghitung Luas Permukaan Balok’); Gotoxy (…,… ) ; write (‘Input Panjang Alas :…’); Gotoxy (…,… ) ; write (‘Input Lebar Alas :…’); Gotoxy (…,… ) ; write (‘Input Tinggi Balok :…’); Gotoxy (…,… ) ; write (‘Luas Permukaan Balok Adalah :…..’); Gotoxy (…,… ) ; readln ( pj ); Gotoxy (…,… ) ; readln ( lb ); Gotoxy (…,… ) ; readln ( tg ); Sisi1:=Persegipanjang(pj,tg); Sisi2:=Persegipanjang(lb,tg); Sisi3:=Persegipanjang(pj,lb,; Lper := 2*sisi1+2*sisi2+2*sisi3 Gotoxy (…,…) ; write (lper); Repeat until keypressed;End.Team Dosen Algoritma dan Struktur Data

×