Modul Algoritma Dan Struktur Data
-
Upload
abdul-hamid -
Category
Documents
-
view
129 -
download
1
description
Transcript of Modul Algoritma Dan Struktur Data
Algoritma Dan Struktur Data
Algoritma dan Struktur Data I
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
Materi 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 Flowchart4. 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
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+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 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
Alat-alat Bantu dalam menggambarkan Algoritma
Untuk 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+B1. Algoritma
Urutan instruksi yang diberikan adalah :
- Tentukan nilai A dan B- Proses nilai A ditambah nilai B- Cetak hasil (nilai C)2. IPO Chart
3. Program Flow Chart
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 alat-alat 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 :
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.
Pertemuan 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 Pascal
Judul Program
Blok Program
Bagian Deklarasi
variable
label
konstanta
type
procedure
function
Bagian Pernyataan
Perintah Input Output
- Read dan readln (perintah input )
- Write dan writeln (perintah output)
contoh :
readln(a)( input nilai A
write(A)( cetak nilai A
write(A)( cetak A
Contoh Soal :
Buat flowchart program dan program Pascal untuk menampilkan hasil perkalian sebagai berikut :
A=B x C
( Nilai B Dan C Diinputkan
P=Q(R+S) + R(Q+S)( Nilai Q,R,dan S diinputkan
Deklarasi Variabel, Label, Konstanta
Deklarasi variable dinyatakan dengan statemen Var
Contoh
VarA: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
Panjang tidak terbatas
Deklarasi Fungsi dan prosedure
Fungsi 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 FUNCTION
CONTOH PROSEDUR
PROCEDURE SATU;
VAR
BEGIN
END;
CONTOH FUNGSI
FUNCTION AKAR;
BEGIN
END;
Tipe Data Pada Program Pascal
Program 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
bilangan
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
- Word0 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
- Double5.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. Rekaman
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 < , > , >= , 3 then
Begin
Ket:=Dapat Bonus
End;
b. IFTHEN.ELSE
Digunakan jika pada pemilihan ada dua aksi yang akan dilakukan
Contoh : jika nilai besar dari 60 maka keterangan lulus jika tidak keterangan gagal
Flowchart :
Program :
Write(Inputkan nilai: );Readln(nilai);
If nilai > 60 then
Begin
Ket:=Lulus
End
Else
Begin
Ket:=Gagal
End;
c. IFTHENELSEIF.THENELSE
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 :
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
Flowchart :
program:
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
Struktur case adalah cara lain yang bisa digunakan untuk memilih suatu kondisi tertentu.
Syntax:
Case (var)
Var = ..: hasil =..
Var = ...: hasil =..
.
.
Endcase
Pertemuan 7,8
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;
Keterangan :
Perintah write halo akan dilaksanakan selama nilai 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;
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 bagian
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)
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
end
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 masing-masing 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;
Keterangan :
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
I:=1;
While I5;
Pertemuan 11, 12
Procedure
Pengertian Procedure :
Adalah merupakan blok program yang terpisah dari program utama dengan struktur program hampir sama dengan struktur program utama
Struktur Procedure
Judul Procedure
Bagian Deklarasi
Variabel
Label
Constanta
Type
Badan Procedure
Begin
instruksi
End;
Procedure sendiri harus dibuat sebelum program utama sesuai dengan struktur program.
Setiap procedure dibatasi dengan end yang menggunakan tanda titik koma. Procedure biasanya ditemukan pada program untuk skala yang besar, sehingga dalam pembuatan program untuk lebih mudah dalam mendisainnya dibentuk dalam modul-modul program yang dikenal dengan Procedure. Namun demikian bukan berarti procedure tidak bisa diterapkan untuk program dengan skala yang lebih kecil.
Prosedur dideklarasikan dengan menggunakan Statemen Procedure. Setiap procedure selalu diakhiri dengan menggunakan tanad titik koma 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.
Pada contoh diatas pada saat program dijalankan maka program utama akan dieksekusi terlebih dahulu. Pada saat proses eksekusi ditemukan perintah satu yang dikenal sebagai nama sebuah prosedur. Nama ini dikenal pada saat compiler mengkompilasi program maka satu dicatat sebagai nama sebuah prosedur . Jadi begitu ditemukan satu maka compiler akan mencari kelisting program prosedur dengan nama satu. Setelah ditemukan maka akan diproses. Setelah proses pada prosedur selesai maka proses program akan kembali pada program utama.
Contoh :kasus
Buat program dengan menggunakan prosedur untuk menampilkan output berikut :
Algoritma adalah dasar untuk pembuatan program
Algoritma dapat digambarkan dengan Flow Chart Program
Pascal adalah salah satu bahasa untuk mengantarkan algoritma
Ketentuan proses :
Kalimat pertama dibuat pada prosedur dengan nama Algoritma
Kalimat kedua dibuat pada prosedur dengan nama Flow_Chart
Kalimat ketiga dibuat pada prosedur dengan nama Pascal
Pendeklarasian Parameter Pada Procedure
Variabel pada program Pascal lebih dikenal dengan nama parameter.
Parameter dapat berupa parameter lokal dan dapat berupa parameter global.
Parameter lokal adalah parameter yang hanya bisa digunakan untuk proses pada prosedur yang bersangkuta
Parameter global adalah parameter yang dapat digunakan untuk semua blok program yang ada sesudahnya dan pada prosedur yang bersangkutan.
Contoh pendeklarasian parameter pada prosedur.
Procedure Satu;
Var A : integer;
Begin
End;
Var X:longint;
Procedure Dua;
Var B:integer;
Begin
End;
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 satu sedangkan Var B hanya dapat digunakan untuk proses pada prosedur dua.
Var X adalah variabel yang bersifat global untuk prosedur dua dan program utama. Jadi var X dapat digunakan untuk proses baik pada prosedur dua maupun pada program utama, tetapi tidak bisa digunakan untuk proses pada prosedur satu.
Var P,Q adalah var yang hanya dapat digunakan pada program utama saja.
Contoh kasus
Buat program untuk menghitung luas suatu bangun dengan output sebagai 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] :..
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
{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 then
Siku_siku;
Repeat until keypressed;
End.
Keterangan program
Pada program di atas var pil dan luas adalah bersifat global untuk semua blok program.
Var sisi bersifat lokal untuk prosedur bujur sangkar
Var alas,tinggi bersifat lokal untuk siku-siku.
Kasus :
Buatlah program untuk menghitung Nilai Faktorial dan Pangkat dengan 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 Melanjutkan
Pertemuan 13,14
Pengiriman Nilai Parameter Pada Procedure
Pada sebuah program dimungkinkan adanya pengiriman nilai parameter dari satu prosedur ke prosedur yang lain
Pengiriman nilai parameter ini dapat berupa pengiriman secara nilai dan secara acuan.
Contoh :
Buat flow chart dan program berikut dengan ketentuan dan output sebagai berikut :
Menghitung Luas permukaan sebuah balok dengan panjang sisi-sisi balok adalah
- panjang 10 cm
- lebar 5 cm
- tinggi balok 100 cm
Buat program dengan menggunakan prosedur persegi panjang dengan panjang sisi balok diinputkan melalui program.
Output
Menghitung Luas Permukaan Balok
Input Panjang Alas:.
Input Lebar Alas:.
Input Tinggi Balok:
Luas Permukaan Balok Adalah :
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 sisi balok. Dimana balok terdiri dari 6 sisi seperti terlihat pada gambar diatas.
Semua permukaan balok merupakan persegipanjang, sehingga kita dapat hanya menggunakan prosedur persegi panjang.
Pada prosedur persegi panjang ada 2 cara pengiriman data yaitu secara nilai dan secara acuan. Pengiriman secara nilai ditandai dengan penggunaa kata VAR
Pengiriman secara nilai adalah : bahwa hasil yang didapatkan pada prosedur tidak akan mempengaruhi nilai yang ada pada modul yang mengirim (dalam hal ini adalah program utama). Sehingga perubahan nilai variabel panjang pada prosedur tidak akan mempengaruhi nilai var PJ pada program utama.
Pengiriman secara Acuan adalah : bahwa hasil yang didapatkan pada prosedur akan mempengaruhi nilai yang ada pada modul yang mengirim. Sehingga perubahan niali var Luas pada prosedur akan mempengaruhi nilai var LS pada program utama.
Pengiriman secara nilai begitu proses pada program yang dipanggil sudah selesai maka nilai variabel yang dikirim akan dikembalikan ke modul yang memanggil.
Kasus
Buat flowchart dan program pascal untuk menghitung formula berikut :
1. Z=2^5 + 5!
2. Z=X! + Y + X^Y
Gunakan prosedur pangkat dan faktorial untuk menyelesaikan kasus diatas. Tampilan dari hasil program dirancang sendiri.
FUNGSI
Fungsi hampir sama dengan prosedur yaitu merupakan bagian program yang terpisah dari program utama.
Perbedaan fungsi dengan prosedur adalah bahwa nilai suatu fungsi terletak pada nama fungsi itu sendiri sedangkan pada prosedur nilai prosedur terletak pada variabel.
Sebuah prosedur dapat saja dijadikan fungsi. Kasus diatas dijadikan sebuah fungsi dengan tipe integer.
Buat program dengan menggunakan fungsi persegi panjang dengan panjang sisi balok diinputkan melalui program.
Output
Menghitung Luas Permukaan Balok
Input Panjang Alas:.
Input Lebar Alas:.
Input Tinggi Balok:
Luas Permukaan Balok Adalah :
Function persegi_panjang (panjang,lebar : integer):integer;
Var luas : integer;
Begin
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.
Dipanggil
Memanggil
Output C
Input A,B
Proses C=A+B
start
A,B,C
Input A,B
C=A+B
Cetak C
Stop
Piranti Masukan
Unit pemrosesan Utama (CPU)
Piranti Keluaran
Memori
K=1
While k10 do
Write Halo
K=k+1
Repeat
Input kdb,jdl
For k :=1 to 4
For i :=1 to 5
Write(halo)
For k=1 to 10 do
Input pg,th
While I0
Ket=Negatif
Bil60
Input nilai
Cetak Output Program Utama
Input pil
pil=1
pil=2
Start
Bujur_sangkar
Siku-Siku
Bujur_Sangkar
Cetak Luas
Luas = sisi * sisi
Return
Return
Input sisi
Cetak Output Prosedur Bujur Sangkar
Sisi
Cetak Luas
Luas = * alas * tinggi
Siku_Siku
Input alas, tinggi
Cetak Output Prosedur Segitiga Siku-Siku
Alas,tinggi
Sisi2
Sisi3
Sisi1
start
pj,lb,tg,ls,sisi1,sisi2,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
Stop
Sisi2
Sisi3
Sisi1
start
pj,lb,tg,ls,sisi1,sisi2,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
false
false
true
true
Team Dosen Algoritma dan Struktur Data