Modul Alogaritma

61
MODUL S1 ILKOM SWADAYA Praktikum Algoritma dan Pemrograman Laboratorium Komputer Dasar Ilmu Komputer Universitas Gadjah Mada

Transcript of Modul Alogaritma

Page 1: Modul Alogaritma

MODULȱS1ȱILKOMȱSWADAYAȱ

Praktikumȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱȱ

AlgoritmaȱdanȱPemrogramanȱ

LaboratoriumȱKomputerȱDasarȱIlmuȱ

Komputerȱ

Universitas Gadjah Mada

Page 2: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Daftar Isi

MODUL I FREE PASCAL DAN PEMROGRAMAN PASCAL

MODUL II TIPE DATA DALAM PEMROGRAMAN PASCAL

MODUL III INPUT OUTPUT DI DALAM PASCAL

MODUL IV STRUKTUR PERCABANGAN

MODUL V STRUKTUR PERULANGAN

MODUL VI PEMROGRAMAN MODULAR

MODUL VII TIPE DATA TERSTRUKTUR

MODUL VIII PENGURUTAN DATA

Page 3: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL I

FREE PASCAL DAN PEMROGRAMAN PASCAL

Tujuan

• Praktikan dapat mengenal Free Pascal dan IDE-nya

• Praktikan dapat mengenal Bahasa Pemrograman Pascal

• Praktikan dapat membuat program sederhana dengan menggunakan bahasa pemrograman

Pascal

FREE PASCAL

Pendahuluan

Free Pascal adalah kompiler 32-bit untuk prosesor i386 dan m68k. Sampai saat ini, Free Pascal

mendukung sistem operasi DOS, LINUX, AMIGA (hanya versi 0.99.5), WINDOWS, FREEBSD, NETBSD,

dan NETWARE.

Free Pascal didesain sedemikian rupa sehingga bisa mengenali kode program yang dibuat dengan

menggunakan Turbo Pascal 7.0 dan Delphi 7. Akan tetapi, dibandingkan Turbo Pascal 7.0 dan Delphi

7, Free Pascal mempunyai kelebihan, yaitu bisa bejalan di sistem operasi yang bebeda.

Untuk informasi yang lebih lengkap mengenai Free Pascal, anda bisa mengunjungi situs berikut ini:

• http://www.freepascal.org/

• http://community.freepascal.org:10000/

IDE Free Pascal

IDE (Integrated Development Environment) menyediakan user interface yang nyaman bagi

pengguna Free Pascal. IDE mengandung editor, debugger, symbol browser, dan sebagainya. IDE

Free Pascal dibuat mirip dengan IDE Turbo Pascal, hal ini ditujukan agar pengguna mudah

menggunakannya.

Untuk memulai IDE Free Pascal, Klik Start Menu | All Programs | Free Pascal | Free Pascal

(Windows XP).

Page 4: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Catatan:

Tampilan IDE dapat diubah dari Window Mode ke Full Screen Mode atau sebaliknya dengan cara

menekan tombol Alt + Enter pada Keyboard.

Di dalam IDE Free Pascal, ada beberapa menu yang akan sering digunakan selama praktikum

berlangsung adalah:

• File | New

Menu ini digunakan untuk membuat program baru

• File | Open (F3)

Menu ini digunakan untuk membuka program yang sudah ada

• File | Save (F2)

Menu ini digunakan untuk menyimpan program ke direktori tertentu

• File | Change Dir

Menu ini digunakan untuk mengubah direktori kerja

• File | Exit (Alt + X)

Menu ini digunakan untuk keluar dari IDE Free Pascal

• Run | Run (Ctrl + F9)

Menu ini digunakan untuk meng-compile program, kemudian menjalankannya.

Untuk lebih lengkapnya, anda bisa buka file C:\FPC\2.0.4\doc\user.pdf.

Merubah Direktori Kerja

Secara default, direktori kerja Free Pascal adalah C:\FPC\2.0.4\bin\i386-win32\. Direktori kerja

ini dapat diubah ke direktori lain dengan cara:

• Klik menu File | Change Dir

• Pada Directory Tree, Klik Dua Kali Dirves

• Kemudian pilih direktori kerja baru yang anda inginkan, misalnya D

• Anda juga bisa memilih sub direktori pada drive D sebagai direktori kerja

Page 5: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Perubahan direktori kerja akan mempermudah anda untuk menyimpan atau membuka file – file

program Pascal.

PEMROGRAMAN PASCAL

Bentuk Umum Program Pascal

Secara umum, struktur program Pascal adalah sebagai berikut:

{judul program}

[program nama_program;]

{deklarasi}

[uses deklarasi_penggunaan_unit;]

[label deklarasi_label;]

[const deklarasi_konstanta;]

[type dekalrasi_tipe_data;]

[var deklarasi_variabel;]

[function deklarasi_fungsi;]

[procedure deklarasi_prosedur;]

{bagian_utama}

begin

[statemen;]

end.

Bagian – bagian Program Pascal:

• Judul Program

Merupakan bagian identifikasi nama program. Tujuannya untu mempermudah mengenali dan

manajemen kode sumber.

• Deklarasi

Merupakan bagian deklarasi pengenal – pengenal (identifier) yang digunakan dalam program.

Deklarasi program bersifat opsional khusus, artinya jika diperlukan maka harus ada dalam

program dan apabila tidak diperlukan maka boleh tidak dicantumkan. Deklarasi program

Page 6: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

termasuk identifier (pengenal), yaitu kata-kata yang diciptakan oleh pemrogram untuk

mengidentifikasi sesuatu.

Syarat identifier:

• Harus diawali oleh alphabet.

• Huruf besar/ kecil yang digunakan dianggap sama.

• Penyusun dari sebuah identifier tidak boleh berupa: tanda baca, tanda relasi, symbol

arithmatik, karakter khusus atau reserved word.

• Tidak boleh dipisahkan dengan spasi, apabila hendak dipisahkan maka menggunakan tanda (

_ ).

• Panjang identifier tidak dibatasi tetapi sebaiknya gunakan se-efektif mungkin.

• Program Utama

Bagian yang mutlak harus ada. Bagian ini merupakan bagian minimal yang harus ada dari suatu

program Pascal, dimulai dengan begin dan diakhiri dengan end. (end diikuti dengan tanda

titik).

Program Pertama

Coba anda buat program baru dan simpan di dirive D. Kemudian anda ketik sintaks di bawah ini:

program program_pertamaku;

begin

writeln('Halo Dunia');

readln;

end;

Kalau sudah anda ketik, ada jalankan dengan klik menu Run | Run atau tekan tombol (Ctrl + F9)

pada keyboard.

Catatan:

Sebelum menjalankan suatu program, ada baiknya program tersebut disimpan terlebih dahulu

Page 7: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL II

TIPE DATA DALAM PEMROGRAMAN PASCAL

Tujuan

• Praktikan dapat mengenal tipe data di dalam Pascal

• Praktikan dapat membuat program sederhana dengan menggunakan variable yang memiliki

tipe data tertentu

Apa itu tipe data? Apabila anda mendeklarasikan variabel pada Pascal, anda harus menentukan tipe

datanya. Tipe data ini menentukan nilai yang dapat disimpan oleh variable tersebut dan operator –

operator yang dapat dikenakan padanya. Sebagai contoh, tipe data integer hanya dapat menyimpan

bilangan bulat dari -32768 .. 32767, dan operator yang dapat dikenakan padanya antara lain

operator penjumlahan, perkalian, pembagian, dan sebagainya.

TIPE DATA DALAM PEMROGRAMAN PASCAL

Secara umum, tipe data dalam pemrograman Pascal adalah:

• Tipe data sederhana

o Tipe data standard (standard data type)

--> Integer, Real, Boolean, Char, dan String

o Tipe data didefinisikan pemakai (user defined data type)

--> subrange dan enumerasi

• Tipe data terstruktur

--> Array, record, set, file

• Tipe data penunjuk

--> Pointer

Page 8: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Tipe Data Standard

• Integer

Tipe integer adalah tipe data yang nilainya bulat. Ada 5 macam tpe integer, yaitu:

Tipe Jangkauan Nilai (Range) Format

Shortint -128 .. 127 Signed 8 bit

Integer -32768 .. 32767 Signed 16 bit

Longint -2147483648 .. 2147483647 Signed 32 bit

Byte 0 .. 255 Unsigned 8 bit

Word 0 .. 65535 Unsigned 8 but

Contoh deklarasi:

Var A, B, C : Integer;

D, E, F : Longint;

Operasi – operasi yang bisa dikerjakan pada data bertipe integer adalah:

• Operasi merupakan operasi yang memerlukan dua buah operand. Adapun◊biner macamnya

adalah:

• Penjumlahan (+), Pengurangan (-), dan Perkalian (*)

• Pembagian (/) dengan hasil merupakan bilangan real

• Pembagian integer (div) yaitu operasi pemenggalan. Hal ini berarti bagian pecahan akan

dihilangkan. Misal: 5 div 2, hasilnya adalah 2

• Modulus (mod), merupakan operasi untuk menghasilkan sisa pembagian. Misal: 5 mod 2,

hasilnya adalah 1.

• Operasi uner, merupakan operasi yang hanya memerlukan satu operans saja. Misal: -5, +24.

• Operasi bit per bit (Bitwise Operation), yang terdiri atas:

• Bitwise Negation, berguna untuk merubah nilai bit 1 menjadi bit 0 dan sebaliknya bilai bit

0 menjadi bit 1.

Page 9: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

• Bitwise AND, digunakan untuk membandingkan dua bit yang bersesuaian dari dua buah

nilai, hasilnya adalah 1 jika keduanya adalah 1, pada kondisi lainnya hasilnya 0.

• Bitwise OR, digunakan untuk membandingkan dua bit yang bersesuaian dari dua buah nilai,

hasilnya adalah 1 jika salah satu atau keduanya 1, pada kondisi lainnya hasilnya 0.

• Bitwise XOR (eXclusive OR), digunakan untuk membandingkan dua bit yang bersesuaian

dari dua buah nilai, hasilnya adalah 1 jika salah satu bernilai 1, pada kondisi lainnya adalah

0.

Tabel logikan untuk NOT, AND, OR, dan XOR

A B NOT A NOT

B

A AND B A OR B AXOR B

1

1

0

0

1

0

1

0

0

0

1

1

0

1

0

1

1

0

0

0

1

1

1

0

0

1

1

0

• Shift Left (Shl), digunakan untuk menggeser sejumlah bit ke kiri dengan nilai 0. Misal

Begin

Write(6 shl 2);

End.

Hasil eksekusi program adalah 24

Penjelasan: nilai biner dari 6 adalah 0000000000000110 digeser 2 bit ke kiri menjadi

0000000000011000 = 24

• Shift Right (shr), digunakan untuk menggeser sejumlah bit ke kana dengan nilai bit 0.

• Real

Real merupakan tipe bilangan pecahan. Bilangan real bisa dinyatakan dalam bentuk

eksponensial. Ada 5 macam tipe real, yaitu:

Tipe Jangkauan Nilai Digit Signifikan Ukuran

Page 10: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Tipe Jangkauan Nilai Digit Signifikan Ukuran

Real 2,9 x 10-38 .. 1,7 x 1038 11 - 12 6 byte

Single 1,5 x 10-45 .. 3,4 x 1038 7 - 8 4 byte

Double 5.0 x 10-324 .. 1,7 x 10308 15 - 16 8 byte

Extended 3,4 x 10-4932 .. 1,11 x 104932 19 - 20 10 byte

Comp -263 + 1 .. 263 - 1 19 - 20 8 byte

Contoh deklarasi:

Var A, B, C : Real;

D, E, F : Double;

Operasi – operasi yang bisa dikerjakan oleh tipe data real adalah:

• Operasi biner, seperti penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/)

• Operasi uner. Contoh: -4.25, +1.25

• Boolean

Boolean adalah tipe data yang hanya mempunyai dua kemungkinan, yaitu true dan false.

Biasanya tipe data ini digunakan untuk perbandingan.

Var A, B, C : Boolean;

Operator NOT, OR, AND, dan XOR dapat dibentuk secara bersamaan menjadi sebuah ungkapan

Boolean yang rumit.

Misal:

Var A,B,C: Boolean;

Begin

C := false; B := true;

A := (Not(C) AND Not (B)) XOR (C);

Write(A); readln;

End.

Menurut anda, berapakah nilai A?

Page 11: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

• Char

Char adalah semua tombol yang terdapat pada keyboard atau lebih lengkapnya semua karakter

yang terdapat pada kode ASCII.

Catatan : Apabila char ingin dijadikan sebagai konstanta maka karakter yang dimasukkan harus

diapit dengan tanda kutip satu. Dan apabila karakter itu berupa tanda kutip satu maka harus

diapit dengan dua tanda kutip satu

Beberapa fungsi untuk memanipulasi tipe daa char:

o Ord(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk memperoleh

nilai urutan dalam kode ASCII yang digunakan untuk melambangkan karakter

tersebut. Contoh: Ord('C') adalah 67.

o Char(x) dengan x adalah data bertipe byte. Fungsi ini adalah kebalikan dari fungsi

Ord. Nilai yang diperoleh merupakan karakter ASCII yang dinyatakan dengan urutan

ke x. Contoh: Char(67) adalah 'C'.

o Pred(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui

karakter yang mendahului x. Contoh: Pred('h') adalah 'g'.

o Succ(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui

karakter sesudah x. Contoh: Succ('h') adalah 'i'. Jika x tidak mempunyai penerus,

maka nilai fungsi ini tidak terdefinisikan.

o Upcase(x) dengan x adalah data bertipe char. Jika x merupakan huruf kecil maka

akan dikembalikan huruf kapitalnya. Contoh: upcase('a') adalah 'A'.

• String

String adalah data yang berisi sederet karakter yang terletak diantara tanda kutip satu. Jika

karakter kutip merupakan bagian dari konstanta string, maka ditulis dengan menggunakan dua

buah tanda kutip satu berurutan. Nilai data string akan menempati memori sebesar maksimla

jumlah karakter yang dapa ditampung ditambah denga 1 byte (index ke-0) untuk menyimpan

panjang string yang sebenarnya. Jika panjang string tidak ditulis, maka panjang string dianggap

255 karakter. Panjang string yang diijinkan antara 1 sampai 255.

Bentuk umum dari deklarasi tipe string adalah:

Var pengenal : string[panjang];

dimana

pengenal : nama variabel

panjang : bilangan bulat yang menunjukkan banyaknya karakter (1 – 255).

Page 12: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Untuk tipe data string, operator yang berlaku adalah operator penggabungan (+).

Tipe data didefinisikan pemakai (user-defined data type)

• Subrange

Tipe data subrange adalah suatu range yang menunjukkan nilai terkecil dan nilai terbesar yang

dapat dipergunakan. Deklarasi tipe data subrange mempunyai bentuk:

Type pengenal = konstanta1 .. konstanta2;

dimana:

pengenal : nama tipe data yang dideklarasikan

konstanta1 : batas bawah nilai data

konstanta2 : batas atas nilai data

Kedua konstanta di dalam subrange harus bertipe ordinal yang sama, di mana nilai konstanta

pertama lebih kecil atau sama dengan nilai konstanta kedua. Tipe data real tidak dapat

digunakan sebagai nilai subrange, karena buka tipe ordinal. Contoh:

Type tanggal = 1 .. 31;

bulan = 1 .. 12;

• Enumerated

Tipe data enumerated (skalar) menunjukkan kumpulan dari nilai yang urutannya sudah pasti.

Nilai dari tipe yang dideklarasikan ini akan diwakili dengan pengenal – pengenal (identifiers)

yang akan menjadi nilai suatu konstanta. Contoh:

Type bahasa = (delphi, java, c, pascal, basic);

bulan = (maret, april, mei, juni, juli);

Tipe data bulan mempunya 5 elemen dari maret sampai juli. Dari urutannya, maret adalah

identifier berupa konstanta bernilai 0 dan juli bernilai 4. Yang perlu diperhatikan dengan tipe data

skalar ini adalah tipe data ini sudah berbeda dengan tipe standar yang ada dan pascal tidak

mengijinkan operasi dengan tipe data yamg berbeda.

Derajat Operator

Anda sudah mengenal beberapa tipe data di dalam Pascal dan operatornya. Di dalam Pascal,

operator – operator tersebut memiliki derajat atau tingakatan. Adapun kegunaan dari derajat ini

adalah Pascal dapat menentukan operator mana yang akan di jalankan terlebih dahulu.

Page 13: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Misal: x := 4 + 5 * 3

Menurut anda, berapakah nilai dari x? Apakah 27 (hasil dari 9 * 3) atau 19 (hasil dari 4 + 15)

Berikut ini urutan operator berdasarkan derajatnya:

@, not, *, /, div, mod, as, and, shl, shr, +, -, or, xor, :=, <>, <, >, <=, >=, in

Berdasarkan dari urutan operator di atas, maka nilai x pada x := 4 + 5 * 3 adalah 19, karena

operator * lebih dulu dikerjakan daripada operator +.

Akan tetapi, jika kita ingin agar operator + dikerjakan terlebih dahulu, kita bisa meletakkan operasi

penjumlahan tersebut di dalam kurung, musalnya: x := (4 + 5) * 3. Di sini nilai x itu adalah 27,

karena di dalam Pascal operasi yang di dalam kurung akan dilakukan terlebih dahulu, tidak

dipengaruhi oleh derajat operator.

Latihan:

1. Buatlah program untuk mengalikan dua buah bilangan!

2. Buatlah program untuk menghitung luas lingkaran!

Page 14: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL III

INPUT OUTPUT DI DALAM PASCAL

Tujuan:

• Praktikan dapat mengenal beberapa prosedur dan fungsi standard dalam Pascal untuk

keperluan input dan output.

• Praktikan dapat membuat program dengan menggunakan prosedur dan fungsi standard

tersebut

Write dan Writeln

Perintah ini digunakan untuk mencetak kata-kata atau variable ke layer kompuer. Sebagai contoh

untuk mencetak kata ‘Sedang Belajar Pascal’, perintah yang diberikan adalah:

Write(‘Sedang Belajar Pascal’);

atau

Writeln(‘Sedang Belajar Pascal’);

Jika menggunakan write, setelah mencetak kata – kata atau variable, kursor akan diletakkan di

samping hasil cetakan. Jka menggunakan perintah writeln, setelah mencetak kata – kata atau

variable, kursor akan dipindahkan ke bawah satu baris dengan posisi horizontal pada awal baris.

Untuk mencetak suatu variable, tidak perlu tanda petik satu. Contoh:

Var A : integer;

Begin

A:= 9;

Writeln(A);

End.

Dengan menggunakan write atau writeln, kita bisa menampilkan kata – kata dan variable dengan

tanda koma (,) sebagai pemisah antara variable dan kata - kata, Contoh:

Page 15: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Var A : integer;

Begin

A:= 9;

Writeln(‘Nilai A adalah ’, A);

End.

Terkadang kita menemukan prosedur write atau writeln yang ditulis seperti ini,

writeln(‘Asyik’: Jika ditulis seperti ini, maka akan menghasilkan space yang◊10) disediakan untuk

menuliskan kata asyik di layar monitor adalah 10 karakter, mulai dari kiri ke kanan. Coba tuliskan

program berikut ini:

begin

write(‘Sehat’: 10); write(‘Senang’: 10);

readln;

end.

Perhatikan apa yang terjadi pada penggalan program di atas!

Selain itu, dengan menggunakan write atau writeln, kita dapat mengatur berapa banyak angka di

belakang koma yang akan ditampilkan di layar monitor jika kita ingin menampikan bilangan real,

caranya adalah dengan menuliskan seperti program di bawah ini

Begin

Write(1/3: 5 : 2); write(2/3: 5: 2);

Readln;

End.

Read dan Readln

Read atau readln digunakan untuk menerima masukan dari user untuk disimpan ke dalam suatu

variable. Contoh:

Page 16: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Var A: Integer;

Begin

Write(‘Masukkan nilai A: ’);readln(A);

Writeln(‘Nilai yang anda masukkan adalah: ’, A);

End.

Catatan:

Terkadang kita menggunakan fungsi readln pada satu baris sebelum kata end.. Hal ini dimaksudkan

agar suatu program tidak akan langsung terminate (berhenti) tanpa menunggu suatu masukan dari

user. Adapun masukan tersebut berupa penekanan tombol enter pada keyboard.

Komentar

Komentar adalah bagian dari program yang tidak akan diproses oleh compiler (Free Pascal).

Komentar hanya digunakan untuk dokumentasi saja. Cara pemberian komentar adalah dengan

menambahkan // untuk 1 baris atau {…} untuk lebih dari 1 baris. Contoh pemberian komentar:

Program Komentar;

Begin

//Ini Adalah Komentar

(Pernyataan – pernyataan ini

Tidak kan Diproses}

End.

Unit

Di dalam Pascal, ada bagian yang disebut sebagai unit. Unit ini menyimpan fungsi dan prosedur

standard yang sudah didefinisikan oleh pembuat compiler. Beberapa unit standard yang ada dalam

Pascal adalah Crt, System, Graph, Dos, Printer, dan Overlay. Cara penggunaan unit adalah dengan

menambahkan statemen:

Uses nama_unit;

pada bagian Deklarasi.

Page 17: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Misal:

Uses Crt;

Beberapa fungsi dan prosedur yang ada dalam unit Crt:

Clrscr

Clrscr adalah suatu prosedur untuk membersihkan layer. Contoh:

Uses crt;

Begin

clrscr;

Writeln(‘Layar Sudah Bersih’);

Readln;

End.

Page 18: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Readkey

Readkey adalah fungsi masukan yang hanya akan mengambil satu karakter masukan. Jenis variable

yang dapat diinput oleh readkey pun hanya jenis variable karakter. Contoh:

Uses crt;

Var A : Char;

Begin

Write(‘Tekan karakter apa saja di dalam keyboard’);

A := Readkey;

Writeln(‘Karakter yang barusan anda tekan adalah: ’, A);

Readln;

End.

TextBackground

TextBackground merupakan prosedur untuk mengganti warna background tulitan yang ditampilhan

di layer dengan warna yang kita inginkan. Perintah yang digunakan adalah:

Textbackground(warna);

Warna merupakan variable yang bias diganti dengan nama warna atau nilai warna tersebut:

Warna Konstanta Nilai Warna Konstanta Nilai

Hitam Black 0 Coklat Tua Dark Brown 8

Biru Blue 1 Biru Muda Light Blue 9

Hijau Green 2 Hijau Muda Light Green 10

Cyan (Biru Cyan 3 Cyan Muda Light Cyan 11

Page 19: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Laut)

Merah Red 4 Merah Muda Light Red 12

Magenta Magenta 5 Magenta Muda Light

Magenta

13

Coklat Brown 6 Kuning Yellow 14

Coklat Muda Light Gray 7 Putih White 15

Contoh:

Uses Crt;

Begin

Textbackground(Red);

Writeln(‘Laboratorium Komputasi FMIPA UGM’);

Readln;

End.

Textcolor

Textcolor merupakan prosedur yang digunakan untuk mewarnai tulisan. Perintahnya adalah:

Textcolor(warna);

Cara pengisian warna sama dengan Textbackground.

Contoh:

Uses crt;

Begin

Textbackground(Red);

Textcolor(Blue);

Writeln(‘Laboratorium Komputasi FMIPA UGM’);

Page 20: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Readln;

End.

Beberapa fungsi dan prosedur untuk operasi Aritmatika:

Sqr(Value) fungsi ini digunakan untuk menghasilkan nilai perpangkatan◊

Sqrt(Value) fungsi ini digunakan untuk menghasilkan nilai akar pangkat dua◊

Abs(Value) untuk menghasilkan nilai mutlak◊

Ln(Value) untuk mencari nilai logaritma natural◊

Exp(Value) untuk mencari nilai eksponennya◊

Trunc(Value) untuk memotong nilai real ke suatu nilai integer◊

Round(Value) untuk membulatkan nilai real ke nilai integer yang terdekat◊

Latihan:

1. Buatlah sebuah program untuk menjumlahkan dua buah bilangan bulat, a dan b. Program

menerima masukan dari user.

2. Buatlah sebuah program untuk mengalikan dua buah bilangan bulat, a dan b. Program

menerima masukan dari user.

Page 21: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL IV

STRUKTUR PERCABANGAN

Tujuan

• Praktikan dapat mengenal struktur percabangan di dalam Pascal

• Praktikan dapat membuat program dengan menggunakan struktur percabangan

Struktur percabangan atau sering disebut dengan struktur kontrol ini memungkinkan programmer

untuk membuat program yang dapat memilih satu langkah di antara sejumlah langkah untuk

dikerjakan.

Dalam Pascal disediakan 2 buah struktur kontrol seleksi, yaitu:

1. Struktur IF……THEN…..

Merupakan struktur kontrol di mana suatu aksi dilaksanakan berdasarkan kondisi logikanya (benar

atau salah). Struktur if .. then … sendiri memiliki 4 jenis, yaitu:

• Bentuk 1

if (kondisi) then aksi;

{Jika kondisi benar maka aksi akan dilaksanakan dan sebaliknya }

• Bentuk 2

if (kondisi) then aksi1 else aksi2 ;

{Jika kodisi benar maka aksi1 diaksanakan, jika kondisi salah maka aksi2 akan

dilaksanakan}

• Bentuk 3

if (kondisi1) then aksi1 else

if (kondisi2) then aksi2 else

……………………..

Page 22: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

if (kondisi-n) then aksi-n ;

{Jika kondisi1 benar maka aksi1 dilaksanakan tanpa membaca kondisi2 dan seterusnya.

Jika kondisi1 salah maka aksi2 dilaksanakan tanpa membaca aksi3 dan selanjutnya.

Demikian seterusnya}

• Bentuk 4

if (kondisi1) then aksi1 ;

if (kondisi2) then aksi2 ;

……………………….

if (kondisi-n) then aksi-n ;

{Masing-masing kondisi akan dibaca dan aksi akan tetap dilaksanakan. Jadi masing-

masing struktur terpisah satu dengan yang lain}

Contoh program 1:

Program menghitung akar kwadrat

uses crt;

var A,B,C:integer;

x1,x2,D:real;

begin

clrscr;

write('Baca koofisien:');readln(A,B,C);writeln;

writeln(A,'x*x + (',B,') x +',C);

if A=0 then writeln('Bukan persamaan kwadrat') else

begin

D:=(B*B) - (4*A*C);

writeln('Determinannya :',D:2:2);readln;

if D>0 then

begin

writeln('Persamaan kwadrat mempunyai 2 akar yang berbeda');

x1:= (-B + sqrt(D))/(2*A);

x2:= (-B - sqrt(D))/(2*A);

writeln('Akar-akarnya adalah:',x1:2:2,'dan',x2:2:2);

end else

if D=0 then

begin

Page 23: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

writeln('Persamaan kwadrat mempunyai akar yang sama'

x1:= -B/(2*A);

x2:= -B/(2*A);

writeln('Akar-akanya adalah:',x1:2:2);

end else

writeln('Tidak memiliki akar riil');

end;

readln;

end.

Contoh Program 2:

Program Konversi nilai

Uses Crt;

var Nilai : Byte;

begin

clrscr;

write('Baca nilai :');readln(Nilai);

if nilai>=80 then write('Nilai = A') else

if nilai>=65 then write('Nilai = B') else

if nilai>=41 then write('Nilai = C') else

if nilai>=26 then write('Nilai = D') else

write('Nilai = E');

readln;

end.

Catatan:

Jika anda menggunakan else, perlu diinga bahwa satu baris sebelum else tidak

diperkenankan mengandung tanda ;

2. Struktur CASE…OF…

Merupakan peluasan dari struktur IF. Karena kalau dalam struktur IF hanya disediakan dua

pilihan (berdasarkan kondisi logikanya) maka dalam struktur Case ..of dimungkinkan untuk

memilih satu pilihan di antara banyak pilihan yang ada. Bentuk umumnya :

Case var_pilih of

Page 24: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Pilih1 : aksi1 ;

Pilih2 : aksi2 ;

……………. ;

pilih-n : aksi-n ;

end;

atau

Case var_pilih of

pilih1 : aksi1 ;

pilih2 : aksi2 ;

……………. ;

pilih-n : aksi n;

else aksi-n+1

end;

Catatan :

Ekspresi yang digunakan dalam statemen Case adalah yang mempunyai tipe ordinal yaitu

dengan batas antara (-32768 s/d 32767). Sehingga tipe lain seperti integer yang bertipe

longint, tipe string atau real tidak boleh digunakan.

Contoh program 3:

Program Konversi nilai 2

Uses Crt;

Var Nilai : integer;

begin

Clrscr;

write('Baca nilai =');readln(Nilai);

Case Nilai of

0..25 : writeln('Nilainya = E');

26..39 : writeln('Nilainya = D');

40..64 : writeln('Nilainya = C');

65..79 : writeln('Nilainya = B');

80..100: writeln('Nilainya = A');

Page 25: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

else

writeln('Tidak ada nilai yang dimaksud');

end;readln;

end.

Catatan : Program ini akan memberikan nilai yang sama persis dengan yang menggunakan struktur

IF.

Latihan

1. Buatlah program untuk menentukan suatu bilangan yang dimasukkan oleh user, merupakan

bilangan genap atau ganjil

2. Buatlah sebuah program untuk menentukan bilangan tahun yang dimasukkan oleh user

merupakan bikangan tahun kabisat atau bukan

3. Buatlah sebuah program yang akan meneriman masukan bilangan bulat dari user. Jika

bilangan yang dimasukkan 0, maka program akan menampilkan string ‘Minggu’; jika user

memasukkan bilangan 1, maka program akan menampilkan string ‘Senin’; dan seterusnya

sampai Sabtu; jika user memasukkan bilangan lebih dari 6, maka akan keluar string ‘Hari

tidak valid’.

Page 26: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL V

STRUKTUR PERULANGAN

Tujuan

• Praktikan dapat mengenal struktur perulangan di dalam Pascal

• Praktikan dapat membuat program dengan menggunakan struktur perulangan

Perulangan

Dalam membuat suatu program kadang-kadang diinginkan agar program tersebut mampu

memproses hal yang sama secara berulang-ulang sampai ditemukan suatu nilai tertentu yang

diinginkan atau mencapai batas yang telah ditentukan. Untuk itu maka Turbo Pascal telah

menyediakan suatu struktur perulangan yang memudahkan untuk melakukan proses tersebut,

sehingga kode-kode dalam program menjadi lebih sederhana. Ada beberapa struktur perulangan,

yaitu :

o Struktur FOR….DO….

o Struktur WHILE…DO……

o Struktur REPEAT…UNTIL….

a) Struktur FOR

Ada 2 jenis struktur FOR, yaitu :

Ascendant (Naik) dan Descendant (Turun)

Naik

Format : For count := awal to akhir do aksi/ blok aksi ;

Catatan :

Nilai awal <= nilai akhir

Variabel count akan naik satu setelah menyelesaikan aksi

Turun

Page 27: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Format : For count := awal downto akhir do aksi1/ blok aksi ;

Catatan :

Nilai awal >= nilai akhir

Variabel count akan turun satu setelah menyelesaikan aksi

Struktur FOR hanya dapat digunakan pada cacah perulangan yang diketahui (berapa kali

perulangan tersebut akan dilakukan).

Contoh program :

Program Latihan1:

uses Crt;

var N,i :integer;

begin

clrscr;

write('Baca nilai : ');readln(N);

for i:= 1 to N do

write(i:3);

readln;

end.

Hasil Run Program :

Baca nilai : 7

1 2 3 4 5 6 7

Page 28: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Program Latihan2:

uses Crt;

var N,i :integer;

begin

clrscr;

write('Baca nilai : ');readln(N);

for i:= N down to 1 do

write(i:3);

readln;

end.

Bagaimanakah output untuk Program Latihan2?

b) Struktur WHILE .. DO..

Format : While (kondisi) do Aksi/blok aksi

Kondisi: Ekspresi Boolean

Di dalam struktur while … do … pengecekan untuk melakukan perulangan dilakukan pada

awal proses dan perulangan akan dikerjakan selama kondisi benar. Oleh karena itu, perlu adanya

suatu proses yang dapat mengontrol kondisi agar dapat menghentikan proses.

Contoh program :

Program Latihan3;

uses crt;

var i:integer;

begin

clrscr;

write('Masukkan angka :');readln(i);

while i<5 do

begin

write('Matematika UGM');

Page 29: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

i:=i+1;

end;

readln;

end.

Hasil Run program :

Masukkan angka :1

Matematika UGMMatematika UGMMatematika UGMMatematika UGMMatematika UGM

Keterangan :

Program di atas akan dilaksanakan jika angka yang kita masukkan kurang dari atau sama dengan

lima. Dan dalam program di atas yang bertugas menghentikan perulangan adalah proses i:= i+1;

sebab jika tidak ada statement itu, apabila angka yang kita masukkan benar <= 5 maka program

akan berulang sampai tak hingga banyak.

Catatan :

Struktur perulangan while..do dapat digunakan untuk melakukan perulangan baik yang diketahui

maupun yang tidak diketahui jumlah perulangannya.

c) Struktur REPEAT..UNTIL..

Format : Repeat aksi/ blok aksi until (kondisi) ;

(kondisi) di sini berupa Boolean.

Perulangan dilakukan terus-menerus hingga diperoleh kondisi bernilai benar. Dalam hal inipun

diperlukan adanya kondisi yang dapat mengontrol program agar program dapat berhenti namun

berbeda dengan while do yang kontrolnya ditempatkan pada awal proses, maka repeat until

kontrolnya diletakkan pada akhir proses.

Contoh program :

PROGRAM Latihan4;

Uses crt;

var

n,tot,x: integer;

Page 30: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Mean: real;

begin

clrscr;

tot:=0;

n:=0;

write ('Baca data :');readln(x);

repeat

tot:= tot + x;

n:= n + 1;

write('Data lagi :');readln(x);

until x=0;

end.

Hasil Run Program :

Baca data :12

Data lagi :3

Data lagi :4

Data lagi :5

Data lagi :0

Perulangah Berkalang

Perulangan berkalang terjadi apabila di dalam struktur perulangan, ada perulangan lagi.

Perhatikan contoh program di bawah ini

Program Latihan5:

uses Crt;

var N,i,j :integer;

begin

clrscr;

write('Baca nilai : ');readln(N);

for i:= 1 to N do

begin

for j:=1 to i do

Page 31: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

write(i:3);

writeln;

end;

readln;

end.

Pada program Latihan5 di atas, perulangan:

for j:=1 to i do,

ada di dalam perulangan

for i:= 1 to N do,

sehingga perulangan for j:=1 to i do akan dilakukan sebanyaj N, sedangkan perulangan itu sendiri

melakukan aksi untuk menampilkan nilai I sebanyak i.

Bagaimanakah output dari program Latihan5 di atas?

Latihan

1. Buatlah program untuk menampilkan keluaran berikut ini:

*

**

***

****

…. Sampai sebanyak n, dimana n dimasukkan oleh user.

Gunakan perulangan while … do …

2. Gunakan perulangan repeat … until …. Untuk soal nomor 1

3. Buatlah sebuah program untuk menampilkan table penjumlahan n x n, dimana n diinputkan

oleh user. Misal, untuk n = 3, maka keluarannya adalah sebagai berikut:

+ 1 2 3

1 2 3 4

2 3 4 5

3 4 5 6

Page 32: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL VI

PEMROGRAMAN MODULAR

Tujuan

• Praktikan dapat mengenal struktur prosedur dan fungsi di dalam Pascal

• Praktikan dapat membuat program dengan menggunakan prosedur dan fungsi

Pemrograman modular merupakan salah satu kemudahan yang diberikan oleh bahasa

pemrograman Pascal terhadap programmer, karena di sini programmer dapat membagi program

yang sedang dibuatnya ke dalam modul-modul program tertentu. Sehingga dapat menghindari

penulisan teks program yang sama berkali-kali dan dapat juga memudahkan dalam melakukan

pelacakan kesalahan dalam program yang sedang dibuatnya.

Ada 2 jenis pemograman modular yang dibahas dalam praktikum ini, yaitu :

• PROCEDURE (Prosedur)

• FUNCTION (Fungsi)

PROCEDURE

Deklarasi :

Procedure NamaProcedure(DaftarParameter) ;

{Deklarasi}

Begin

.............

.............

End ;

Pemanggilan Procedure :

Page 33: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Suatu procedure bukan merupakan program yang berdiri sendiri sehingga tidak dapat dielsekusi

secara langsung. Untuk itu suatu procedure memerlukan sebuah akses pada program utama / modul

lain yang befungsi sebagai pemanggil. Sedangkan cara pemanggilannya adalah dengan : menuliskan

nama procedurenya berikut parameternya (jika ada).

Hal-hal yang berhubungan dengan procedure :

Ada beberapa hal yang berhubungan dengan penulisan sebuah procedure program yaitu:

• Variabel Global dan variabel Lokal

Variabel Global adalah variabel yang dapat dikenali diseluruh bagian program biasanya variabel

ini merupakan variabel yang dideklarasikan pada deklarasi program umum.

Variabel Lokal adalah variabel yang dikenal pada lingkup yang lebih sempit dari pada variabel

global.

• Parameter

Ada 2 paramete yang berlaku dalam sebuah procedure, yaitu :

• Parameter Aktual

Yaitu parameter yang dideklarsikan mengikuti pendeklarasian program utama

• Paramete Formal

Yaitu parameter yang dituliskan mengikuti pemanggilan procedure

Aturan antara parameter formal dan parameter aktual :

• Banyaknya parameter aktual harus sama dengan banyaknya parameter formal

• Tiap-tiap parameter aktual harus bertipe sama dengan parameter formal yang bersesuaian

• Tiap-tiap parameter aktual harus diekspresikan yang sesuai dengan parameter formal

Pengiriman parameter :

o Pengiriman parameter secara nilai (by Value)

Tiap-tiap parameter dalam prosecure utama akan beisi nilai yang dikirim

oleh parameter aktual dan bersifat lokal diprocedure

Page 34: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Pengiriman nilai parameter secara by value merupakan pengiriman searah,

artinya hanya dari parameter aktual ke parameter formal

Perubahan parameter formal tifak mempengaruhi terhadap nilai parameter

aktual

Contoh :

procedure Hitung(A,B,C : integer) ;

begin

B: = A;

C: = A + B ;

Writeln(A,B,C) ;

end;

var X,Y,Z : integer ;

begin

readln(X) ; Readln(Y) ; Readln(Z);

Hitung(X,Y) ; Writeln(X,Y,Z) ;

readln ;

end.

Keterangan :

Misalkan dimasukkan nilai dari X=5, Y=7 dan Z=15 maka nilai ini akan dikirim ke

parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5, B=7 dan Z=15.

Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=5 , Y=7 dan Z=15.

Sebab apapun yang diproses pada procedure tidak akan mempengaruhi nilai dari

parameter aktual X,Y,Z.

o Pengiriman parameter secara acuan (by Reference)

Merupakan pengiriman dua arah yaitu dari parameter aktual ke parameter

formal dan dari parameter formal ke parameter aktual sebagai hasil output

dari procedure

Page 35: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Perubahan nilai pada parameter formal mempengaruhi pada parameter

aktual

Dicirikan dengan pengunaan deklarasi VAR , pada parameter procedurenya

Contoh :

Procedure Hitung(Var A,B,C : integer) ;

Begin

B: = A;

C: = A + B ;

Writeln(A,B,C) ;

End;

Var X,Y,Z : integer ;

Begin

Readln(X) ; Readln(Y) ; Readln(Z);

Hitung(X,Y,Z) ; Writeln(X,Y,Z) ;

Readln ;

End.

Keterangan :

Misalkan dimasukkan nilai dari X=5, Y=8 dan Z=15 maka nilai ini akan dikirim ke

parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5, B=8 dan C=15.

Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=A=5 , Y=B=A=5 dan

Z=C=10. Sebab apapun yang diproses pada procedure akan mempengaruhi nilai dari

parameter aktual X,Y,Z.

Contoh program yang menggunakan procedure :

Program KOMBINASI;

uses crt;

var f1,f2,f3:longint;

n,r,delta:integer;

Page 36: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

c: real;

Procedure facto( n:integer; var f:longint);

var i:integer;

begin

f:=1;

for i:=1 to n do

f:= f * i;

end;

{======================PROGRAM UTAMA=======================}

Begin

clrscr;

gotoxy(12,3);

write('Kita akan menghitung nilai kombinasi dari suatu angka');

gotoxy(19,4);

writeln('Yang mempunyai rumus : rCn = n!/(r!(n-r)!)'); gotoxy(20,5);

writeln('Nilai r harus lebih kecil/sama dengan n');

writeln;gotoxy(28,6);

write('Masukkan nilai n :',' ');readln(n);

writeln;gotoxy(28,8);

write('Masukkan nilai r :',' ');readln(r);

facto(n,f1);

facto(r,f2);

delta:=(n-r);

facto(delta,f3);

c:= f1/(f2*f3);gotoxy(30,10);

write('Hasilnya :',' ',c:2:0);

readln;

Page 37: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

end.

Hasil Run Program :

Kita akan menghitung nilai kombinasi dari suatu angka

Yang mempunyai rumus : rCn = n!/(r!(n-r)!)

Nilai r harus lebih kecil/sama dengan n

Masukkan nilai n : 6

Masukkan nilai r : 2

Hasilnya : 15

FUNCTION

Deklarasi :

Function NamaFungsi(NamaParameter) : TipeData ;

{Deklarasi}

Begin

...........

...........

End ;

Struktur dari fungsi ini hampir sama dengan procedur hanya saja function harus

dideklarasikan beserta tipe datanya dan fungsi ini adalah mengembalikan nilai sehingga Tipe data

dalam sebuah function menunjukkan tipe dari data akhir dari deklarasi sebuah fungsi.

Suatu fungsi dapat dipanggil dengan menggunakan beberapa cara, misalkan :

Nama Fungsinya adalah Rata, maka ia akan dapat dipanggil dengan menggunakan

Rata2 : = Rata(vector,Ukuran) ;

X : = Y + Rata(vector,Ukuran) ;

Write(‘Nilai rata-ratanya = ‘, rata(vector,ukuran));

Perbedaan prinsip antara procedure dengan function :

Page 38: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

• Pada function nilai yang dikirim balik terdapat nama fungsinya (Karena nama fungsi

digunakan untuk menampung nama fungsi yang terakhir)

• Function dapat langsung ditampikan hasilnya. Misal : writeln( Hitung(X,Y)) ;

Catatan :

Untuk keterangan yang lain yang meliputi macam variabel, parameter, aturan antar parameter dan

cara pengiriman parameter sama dengan yang ada pada procedure, sehingga tidak perlu dituliskan

lagi.

Contoh Program yang menggunakan fungsi :

PROGRAM FAKTORIAL;

Uses crt;

Var i,N,Hsl:integer;

Function Fakto(N:integer):integer;

Var Fak: integer;

Begin

Fak:= 1;

for i:=1 to N do

Fak := Fak * i;

Fakto:= Fak;

end;

Begin

clrscr;

write('Faktorial berapa yang anda ingin hitung : ');

readln(N);

writeln('Hasil perhitungan : ',Fakto(N));

readln;

end.

Page 39: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Hasil Run Program :

Faktorial berapa yang anda ingin hitung : 5

Hasil perhitungan : 120

REKURSI

Salah satu keistimewaan yang dimiliki oleh bahasa pemrograman Pascal adalah bahwa pascal dapat

melakukan suatu proses yang dinamakan sebagai proses Rekursi, yaitu proses untuk memanggil

dirinya sendiri. Dalam procedure dan function proses ini bisa berarti proses berulang yang tidak

diketahui kapan akan berakhirnya. Contoh paling sederhana dari proses rekursi adalah Proses

mencari faktorial dari suatu.

Faktorial N = N! = N (N-1) (N-2)……………..3.2.1

N! = N (N-1)! ,untuk N>0

N! = N (N-1) (N-2)!

Jika ditulis dalam program menjadi :

Faktorial(0) = 1 ;

Faktorial(N) = N (N-1)!

Ini merupakan sebuah hubungan rekurens yang berarti nilai suatu fungsi dengan argument tertentu

dapat dihitung dengan menggunakan fungsi yang sama hanya saja dengan argument yang lebih

kecil.

Contoh program :

PROGRAM FAKTORIAL;

Uses crt ;

Var i , N , Hsl : integer

Function Fakto(N:integer):integer ;

Var Fak: integer ;

Begin

if (N=0) or (N=1) then

Fakto:= 1

else

Fakto:= N*Fakto(N-1) ;

end;

Page 40: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Begin

clrscr;

write('Faktorial berapa yang anda ingin hitung : ') ;

readln(N) ;

writeln('Hasil perhitungan : ',Fakto(N)) ;

readln ;

end.

Hasil Run Program :

Faktorial berapa yang anda ingin hitung : 5

Hasil perhitungan : 120

Dari program diatas maka notasi Fakto(N-1) yang digunakan untuk memanggil program sebelumnya

dinamakan sebagai Pemanggil atau rekursi.

Latihan

1. Buatlah sebuah program yang menampilkan menu seperti di bawah ini:

MENGHITUNG LUAS BENDA DATAR

1. Lingkaran

2. Persegi Panjang

3. Segitiga

4. Keluar

Silahkan Pilih Salah Satu:

Jika user memasukkan bilangan 1, maka program akan menghitung Luas Lingkaran dengan

jari – jari r, di mana r diinputkan oleh user.

Jika user memasukkan bilangan 2, maka program akan menghitung Luas Persegi Panjang

dengan panjang p dan lebar l, di mana p dan l diinputkan oleh user.

Jika user memasukkan bilangan 3, maka program akan menghitung Luas Segitiga dengan

tinggi t dan panjang alas a, di mana t dan a diinputkan oleh user.

Page 41: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Jika user memasukkan bilangan 4, maka program selesai.

Page 42: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL VII

TIPE DATA TERSTRUKTUR

Tujuan:

• Praktikan bisa mengenal tipe data terstruktur di dalam Pascal

• Praktikan dapat membuat program dengan menggunakan tipe data terstruktur

ARRAY

Array atau larik terdiri atas bagian-bagian komponen yang memiliki tipe data sama. Dalam

penyimpanannya array selalu mempunyai jumlah komponen yang tetap yang ditunjukkan oleh

indeksnya. Dimana indeks ini harus merupada data dengan tipe ordinal artinya mempunyai urutan

tertentu.

Ada 2 cara untuk mendeklarasikan larik yaitu :

1. Sebagai tipe data baru

Type

Larik=Array[1..n] of datatype ;

Var x : larik ;

2. Langsung sebagai variabel

Var x : Array[1..n] of datatype ;

Mengakses Data larik :

Cara mengakses data larik adalah dengan menunjukkan :

Nama_Larik[no.indeks] ;

Misal : x[1] berarti kita mengakses data larik x pada no.indeks ke-1.

Page 43: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Keuntungan :

Menggunakan data larik adalah bahwa kita tidak akan kehilangan nilai dari suatu data.

Kelemahan :

Saat ditentukan suatu variable bertipe data array maka ia akan langsung mengambil tempat pada

memory penyimpanannya sesuai dengan tipe data yang digunakan pada array, baik nantinya semua

komponen pada array itu digunakan ataupun tidak.

Contoh program :

Program Rata_rata;

Uses crt;

type

larik = array[1..10] of integer;

var

x : larik;

Tot, i, n : integer;

mean : real;

Begin

clrscr;

write('Masukkan jumlah data : '); readln(n);

writeln;

Tot := 0;

for i:= 1 to n do

begin

write('Masukkan Data ke-',i,' ', 'Anda : '); readln(x[i]);

Tot:= Tot + x[i];

end;

writeln;

Page 44: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

mean:= Tot/n;

write('Dan hasil perhitungan meannya : ');

writeln(mean:8:2);

readln;

end.

Hasil Run Program :

Masukkan jumlah data : 5

Masukkan Data ke-1 Anda : 1

Masukkan Data ke-2 Anda : 2

Masukkan Data ke-3 Anda : 3

Masukkan Data ke-4 Anda : 4

Masukkan Data ke-5 Anda : 5

Dan hasil perhitungan meannya : 3.00

MATRIKS

Dalam pemrograman kadang kita menghadapi masalah saat kita akan mendeklarasikan suatu

matriks dengan adanya tipe data array maka masalah itu dapat diselesaikan, yaitu dengan

menggunakan array dengan dimensi dua atau lebih yang kemudian dikenal dengan array dimensi

banyak.

Pendeklarasian :

Type

Nama_Array = Array[tipe-indeks1,tipe-indeks2] of tipe data ;

Contoh :

Type

Matriks = Array[1..10, 1..10] of integer ;

Page 45: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Berarti matriks itu akan mempunyai dimensi (10x10), namun itu hanya batas atas dari

indeks yang dipesan dalam memori penyimpanan (di atas itu tidak akan disimpan), sedangkan

apabila nantinya kita hanya memasukkan jumlah baris missal 2 dan jumlah kolom 2 itu boleh saja

selama tidak lebih dari 10.

Entry-entry dari matriks tersebut dapat kita panggil dengan mengetikkan

Nama_Array[indeks1, indeks2] ; dari contoh diatas berarti Matriks[2,3] yaitu entry dari

matriks pada baris kedua kolom ketiga.

Program Matriks :

Program Baca_tulis_matriks ;

uses crt;

Var m,n,i,j : integer;

x: Array[1..100,1..100] of integer;

begin

clrscr;

write('Baca ukuran baris Matriks :',' ');readln(m);

write('Baca ukuran kolom matriks :',' ');readln(n);

writeln('Matriks anda berukuran',' ',m,'x',n,' ');

for i:=1 to m do

for j:=1 to n do

begin

write('Baca nilai :',' ');readln(x[i,j]);

end;

writeln;

writeln('Matriksnya :',' ');

for i:=1 to m do

begin

for j:=1 to n do

write(x[i,j]:3); writeln;

end;

Page 46: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

writeln;writeln('Matriks tranposenya :',' ');

for j:= 1 to n do

begin

for i:=1 to m do

write(x[i,j]:3);writeln;

end;writeln;

writeln('Matriks anda berukuran',' ',n,'x',m,' ');

readln;

end.

Hasil Run Program :

Baca ukuran baris Matriks : 2

Baca ukuran kolom matriks : 2

Matriks anda berukuran 2x2

Baca nilai : 1

Baca nilai : 2

Baca nilai : 3

Baca nilai : 4

Matriksnya :

1 2

3 4

Matriks tranposenya :

1 3

2 4

Matriks anda berukuran 2x2

STRING

Page 47: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Tipe data string merupakan array of Char, di mana panjang array dari sebuah tipe data

string adalah 255 Char. Dengan demikian, string bisa kita kenakan operasi seperti halnya tipe data

array. Perhatikan program di bawah ini:

Program Array_String;

Var S : string;

I : integer;

Begin

S := ‘FMIPA UGM’;

For I := 1 To Length(S) do

Writeln(S[I]);

Readln;

End.

Perhatikan apa keluaran dari Program Array_String di atas!

Beberapa prosedur dan fungsi untuk tipe data string:

• Val (String, Var1, Var2); digunakan untuk merubah teks (string) menjadi nilai angkanya.

• Str(Value, Teks); digunakan untuk merubah nilai numeric menjadi string

• Upcase(Param): Char; merupakan fungsi yang digunakan untuk merubah satu huruf menjadi

huruf capital.

• Length(Param): integer; merupakan fungsi untuk mengembalikan panjang teks

• Insert(String, var1, indeks); merupakan procedure untuk menyisipkan suatu string ke string

lain, dengan catatan panjang string hasil harus kurang dari 256. Jika tidak, maka mulai dari

indeks 256 dan seterusnya tidak akan ditampilkan.

• Concat (String1, String2, …): String; merupakan fungsi untuk menggabungkan beberapa

strng.

• Copy(String, Index, Count): String; merupakan untuk menyalin beberapa karakter dari suatu

string ke string lain mulai dari indeks tertentu.

Latihan

1. Buatlah sebuah program untuk konversi bilangan decimal ke biner.

Hasil konversi bisa langsung ditampilkan atau di simpan ke dalam

Page 48: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

sebuah variable string terlebih dahulu. Petunjuk: gunakan variable

bertipe array untuk implementasinya.

2. Buatlah sebuah program untuk menghitung perkalian matrix A dan

matrix B. Petunjuk: Perhatikan syarat bagaimana dua buah matrix

bisa dikenakan operasi perkalian.

RECORD

Tipe data ini merupakan perluasan dari tipe data Array, yaitu karena pada array masing-masing

komponennya harus menggunakan tipe data yang sama, maka pada record hal itu tidak berlaku lagi.

Artinya diperbolehkan untuk menggunakan tipedata yang berbeda pada masing-masing komponen

(field) dari record tersebut.

Pendeklarasian record :

Sebagai Tipe Data Baru

Type Nama_record = record

Field1: tipe data1;

Field2: tipe data2;

…………………

…………………

Fieldn: tipe datan;

End ;

Contoh :

Type TipeBarang = record

Nama : string[20];

Jenis : string [20];

Jumlah : integer;

End ;

Var Barang : TipeBarang;

Page 49: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Sebagai Variabel

Var Nama_record : record

Field1: tipe data1;

Field2: tipe data2;

…………………

…………………

Fieldn: tipe datan;

End ;

Contoh :

Var Barang : record

Nama : string[20];

Jenis : string [20];

Jumlah : integer;

End ;

Memasukkan data ke dalam record :

Untuk memberikan nilai dari masing-masing field maka kita harus menuliskan

Nama_record.field := (nilainya);

Misalkan : dari contoh diatas kita akan mengisikan nama barang dengan Piring, jenis barang yaitu

barang pecah belah dan jumlah barang 3 lusin maka kita harus menuliskan pada program utama

Page 50: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Barang.Nama := ‘Piring’ ;

Barang.Jenis := ‘Pecah belah’ ;

Barang.Jumlah:= 36 ;

atau

With Barang do

begin

Nama := ‘Piring’; Jenis := ‘Pecah Belah’; jumlah:= 36;

end;

Menampilkan data dalam record:

Untuk menampilkan data dari suatu record pada layer monitor, maka kita harus menuliskan:

Writeln(Nama_record.field);

Contoh

Writeln(Barang.Nama);

Writeln(Barang.Jenis);

Writeln(Barang.Jumlah);

atau

With Barang do

begin

Writeln(Nama);Writeln(Jenis);Writeln(Jumlah);

end;

Ada kalanya jumlah record lebih dari satu sehingga kita perlu mendeklarasikan array of record.

Perhatikan dan coba conoh program di bawah ini:

Page 51: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Contoh program :

PROGRAM DATABASE;

Uses crt;

TYPE mahasiswa = record

nama: string;

nim: string;

alamat: string;

ipk: real;

end;

mahasiswa1 = array [1..20] of mahasiswa;

VAR data1: mahasiswa1; data2: mahasiswa;

PROCEDURE data(var mhs:mahasiswa1; mhs1: mahasiswa);

Var i,n,no:integer;

pilih,tekan:char;

Begin

write('Masukan jumlah mahasiswa : ');readln(n);

writeln;

for i:= 1 to n do

begin

writeln('Masukan data mahasiswa ke - ',i);writeln;

write('Nama Mahasiswa : ');readln(mhs[i].nama);

write('No. Mahasiswa : ');readln(mhs[i].nim);

write('Alamat Mahasiswa : ');readln(mhs[i].alamat);

write('IPK : ');readln(mhs[i].ipk);writeln;

end;

writeln;

writeln('DATA MAHASISWA');writeln;

writeln('==========================================================');

Page 52: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

writeln('|','No':5,'Nama':20,'NIM':10,'Alamat':20,'IPK':10,'|':2);

writeln('==========================================================');

for i:=1 to n do

writeln('|',i:5,mhs[i].nama:20,mhs[i].nim:10,mhs[i].alamat:20,mhs[i].ipk:10:2,

'|':2);

writeln('==========================================================');

writeln;

write('Ingin mencari data tertentu (y/n) ? ');readln(pilih);

writeln;

case pilih of

'y': begin

tekan:='Y';

while upcase(tekan)='Y' do

begin

clrscr;writeln;

writeln('MENU PILIHAN');writeln;

writeln('[1] NAMA');

writeln('[2] NIM');

writeln('[3] ALAMAT');

writeln('[4] IPK');writeln;

write('Pilihan anda : ');readln(no);

case no of

1: begin

write('Masukan Nama Mahasiswa : ');readln(mhs1.nama);

writeln;

writeln('=========================================================');

writeln('|','Nama':20,'NIM':10,'Alamat':20,'IPK':10,'|':2);

writeln('=========================================================');

for i:=1 to n do

if (mhs1.nama) = (mhs[i].nama) then

begin

writeln('|',mhs[i].nama:20,mhs[i].nim:10,mhs[i].alamat:20,mhs[i].ipk:10:2, '|':2);

Page 53: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

end;

writeln('=========================================================');

writeln;

end;

2: begin

write('Masukan No. Mahasiswa : ');readln(mhs1.nim);

writeln;

writeln('=========================================================');

writeln('|','Nama':20,'NIM':10,'Alamat':20,'IPK':10,'|':2);

writeln('=========================================================');

for i:=1 to n do

if (mhs1.nim) = (mhs[i].nim) then

begin

writeln('|',mhs[i].nama:20,mhs[i].nim:10,mhs[i].alamat:20,mhs[i].ipk:10 :2,'|':2);

end;

writeln('==========================================================');

writeln;

end;

3: begin

write('Masukan Alamat Mahasiswa : ');readln(mhs1.alamat);

writeln;

writeln('=========================================================');

writeln('|','Nama':20,'NIM':10,'Alamat':20,'IPK':10,'|':2);

writeln('=========================================================');

for i:=1 to n do

if (mhs1.alamat) = (mhs[i].alamat) then

begin

writeln('|',mhs[i].nama:20,mhs[i].nim:10,mhs[i].alamat:20,mhs[i].ipk:10 :2,'|':2);

end;

writeln('=========================================================');

writeln;

end;

Page 54: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

4: begin

write('Masukan IPK : ');readln(mhs1.ipk);writeln;

writeln('=======================================================');

writeln('|','Nama':20,'NIM':10,'Alamat':20,'IPK':10,'|':2);

writeln('=======================================================');

for i:=1 to n do

if (mhs1.ipk) = (mhs[i].ipk) then

begin

writeln('|',mhs[i].nama:20,mhs[i].nim:10,mhs[i].alamat:20,mhs[i].ipk: 10:2,'|':2);

end;

writeln('=======================================================');

writeln;

end;

end;

write('Ingin mencari data lagi (y/n) ? ');readln(tekan);writeln;

end;end;end;end;

{====================PROGRAM UTAMA========================}

BEGIN

clrscr;

data(data1, data2);

readln;

end.

Latihan

1. Suatu data mahasiswa terdiri dari Nama, Alamat, Program Studi, dan Orang Tua. Coba

buatlah sebuah tipe data record yang mengimplementasikan data di atas. Kemudian buat

juga sebuha array (1 sampai 10) yang bertipe record tersebut. Selanjutnya buatlah sebuah

program untuk mengisi data, menyisipkan data, menghapus data, dan menampilkannya

kembali.

SET

Page 55: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Set (Himpunan) merupakan kumpulan objek yang mempunyai tipe data sama dan urutan penulisan

tidak diperhatikan. Tiap obyek di dalam suatu himpunan disebut dengan anggota (member) atau

elemen (element of set).

Adapun deklarasinya adalah:

type pengenal = set of tipe-data;

Dalam dekalrasi var:

var pengenal : set of tipe-data;

Dimana:

pengenal : merupakan nama pengenal yang akan dinyatakan sebagai tipe hipunan

Tipe-data: tipe data dari anggota himpunan.

Aturan dari tipe-data adalah:

• bukan merupakan tipe data terstruktur

• bukan tipe real

• merupakan tipe enumerated, subrange dari integer, char atau subrange dari char atau

boolean.

Contoh:

Type HB = 'A..Z';

Burung = Set Of (Kutilang, Perkutut, Betet);

Var huruf_Besar = HB;

myBird = Burung;

Operasi terhadap SET:

• Union (+). Contoh [1,2,3,4] + [3,4,5,6] = [1,2,3,4,5,6]

• Interseksi (*). Contoh [1,2,3,4] * [3,4,5,6] = [3,4]

• Differece (-). Contoh: [1,2,3,4] – [3,4,5,6] = [1,2]

• Relasional

Ada beberapa operasi relasional yang bisa dikenakan pada tipe data set, yaitu:

• = : Tes kesamaan dua himpunan

• <> : Tes untuk ketidaksamaan dua himpunan

Page 56: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

• >= : Bernilai true jika bila semua anggota dari himpunan kedua terdapat dalam himpunan

pertama

• <= : Bernilai true jika bila semua anggota dari himpunan pertama terdapat dalam himpunan

kedua

• in : Bernilai true jika bila operand pertama merupakan anggota operand kedua.

Latihan

1. Buatlah sebuah program untuk menghitung jumlah vokal di dalam suatu kata atau kalimat

yang diinputkan oleh user!

Page 57: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

MODUL VIII

PENGURUTAN DATA

Tujuan:

• Mahasiswa dapat memahami bentuk pengurutan data

• Mahasiswa dapat mengurutkan data berupa array

Pengurutan atau shorting merupakan proses untuk menyusun kembali kumpulan entri-entri yang

telah dimasukkan dengan suatu aturan tertentu. Secara umum ada 2 macam pengurutan yaitu

pengurutan secara menaik (ascenden) dan pengurutan secara menurun (descenden).

Metode-metode pengurutan data :

• METODE SELEKSI (SELECTION SORT)

Masukkan dinyatakan sebagai vector misal vector A (belum terurut), dan N (missal banyak

elemen yang akan diurutkan). Keluaran adalah vector A yang telah terurut.

Algoritma metode seleksi :

• langkah 0 : Baca vector yang akan diurutkan (dalam program utama)

• langkah 1 : Kerjakan langkah 2 sampai 4 untuk i = 1 sampai N -1

• langkah 2 : Tentukan awal = i , kerjakan langkah 3 untuk j = i +1 sampai N

• langkah 3 : (Mencari data terkecil)

Tes : apakah A[awal] > A[j], jika ya maka ubah awal = j

• langkah 4 : Tukarkan nilai A[awal] dengan A[i]

• langkah 5 : selesai

Contoh Program :

PROGRAM contoh;

USES CRT;

TYPE ArrInt = array [1..100] of real ;

PROCEDURE Tukar(var a,b : real);

Page 58: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

var Bantu : real;

begin

Bantu := a;

a := b;

b := Bantu;

end;

PROCEDURE SelectionSort(var X : ArrInt; N : integer);

var i,j : integer;

begin

for i:=1 to N-1 do

for j := i+1 to N do

if x[i] > x[j] then

Tukar(x[i],x[j]);

end;

VAR

Data : ArrInt;

i,j,n : integer;

BEGIN

clrscr;

Writeln('Masukkan data anda !');writeln;

Write('Berapakah frekuensi data anda ? ');readln(n);

writeln('Silakan masukkan data yang Anda punya !');

for i:=1 to n do

begin

Write('Data ke-',i,' = ');readln(data[i]);

end;

SelectionSort(data,n);

for i:=1 to n do

write('(',data[i]:4:2,'),');

readln;

end.

Hasil Run Progam :

Masukkan data anda !

Berapakah frekuensi data anda ? 5

Page 59: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Silakan masukkan data yang Anda punya !

Data ke-1 = -2

Data ke-2 = -2.9

Data ke-3 = 31

Data ke-4 = 0

Data ke-5 = 1

(-2.90),(-2.00),(0.00),(1.00),(31.00)

• METODE GELEMBUNG (BUBLE SORT)

Disebut juga dengan metode Penukaran (Exchange Sort), yaitu metoda yang mendasarkan

pada penukaran elemen untuk mencapai keadaan urut yang diinginkan.

Algoritma Metode gelembung :

• langkah 0 : Baca vector yang akan diurutkan (dalam program utama)

• langkah 1 : Kerjakan langkah 2 untuk i = 1 sampai N-1

• langkah 2 : Kerjakan langkah 3 untuk j = 1 sampai N- i

• langkah 3 : Tes apakah A[j] > A[j +1] ? Jika ya, tukarkan nilai kedua elemen ini

• langkah 4 : Selesai

Contoh Program :

PROGRAM STATISTIK;

Uses Crt;

TYPE ArrInt = array [1..100] of integer;

PROCEDURE Tukar(var a,b : integer);

var Bantu : integer;

begin

Bantu := a;

a := b;

b := Bantu;

end;

PROCEDURE BubleSort(var X : ArrInt; N : word);

var i, j : word;

begin

Page 60: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

for i:=1 to N-1 do

for j := 1 to N-i do

if x[j] > x[j+1] then

Tukar(x[j], x[j+1]) ;

end;

Var

Data: ArrInt ;

i, j, n: integer ;

Begin

clrscr;

writeln('Masukkan data anda !');writeln;

write('Berapakah frekuensi data anda ? ');readln(n);

writeln('Silakan masukkan data Anda !');

for i:=1 to n do

begin

Write('Data ke-',i,' = ');readln(data[i]);

end;

BubleSort(data,n);

write('Hasil Pengurutan data dengan BubleSort : ');

for i:=1 to n do

write(data[i]:3);

readln;

end.

Hasil Run Program :

Masukkan data anda !

Berapakah frekuensi data anda ? 5

Silakan masukkan data Anda !

Data ke-1 = 0

Data ke-2 = -1

Data ke-3 = 2

Data ke-4 = -10

Data ke-5 = 30

Page 61: Modul Alogaritma

Praktikum Algoritma dan Pemrograman

Laboratorium Komputer Dasar Ilmu Komputer

Universitas Gadjah Mada

Hasil Pengurutan data dengan Gelembung : -10 -1 0 2 30

Latihan:

1. Buatlah sebuah program untuk mencari kuartil 1, kuartil 2, dan kuartil 3 dari deret data

berikut ini:

2 4 2 1 7 3 5 7