pemrograman terstruktur (part 2)

100
PEMROGRAMAN TERSTRUKTUR (PART 2) Nova El Maidah, S.Si. c r e a t e b y n o v a e l i n s 0 3 1

Upload: mahanova

Post on 19-Jun-2015

766 views

Category:

Documents


6 download

DESCRIPTION

bahan kuliah pemrograman terstruktur (setelah midtest)

TRANSCRIPT

Page 1: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR (PART 2)Nova El Maidah, S.Si.

create by n ova elins03

1

Page 2: Pemrograman Terstruktur (Part 2)

SILABUS

1. TIPE DATA SKALAR DEFINISIAN PENGGUNA

2. SET3. LARIK4. SORTING

create by n ova elins03

2

Page 3: Pemrograman Terstruktur (Part 2)

SUMBER

1. Gottfried, Baron S.1986. Programming with Pacsal. Singapore: McGraw-Hill.

2. Hasbi, M. 2003. Struktur Data dan Algoritma dalam Pemrograman Turbo Pascal. Yogyakarta: Gava Media

3. Suyanto, Yohanes. 2005. Pemrograman Terstruktur dengan Delphi. Yogyakarta: UGM Press.

create by n ova elins03

3

Page 4: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR

TIPE DATA SKALAR DEFINISIAN PENGGUNA

create by n ova elins03

4

Page 5: Pemrograman Terstruktur (Part 2)

TIPE DATA SKALAR DEFINISIAN PENGGUNA

Dalam pemrograman bahasa Pascal, pengguna dapat membuat tipe data yang baru dengan menggunakan deklarasi type.

Ada 2 macam tipe data skalar definisian pengguna, yaitu:

1. Tipe data enumerasi2. Tipe data subrange

create by n ova elins03

5

Page 6: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASIPascal memperbolehkan penggunanya

untuk mendefinisikan tipe data baru dengan menyebutkan satu per satu nilai literalnya.

Nilai-nilai literalnya dipisahkan dengan tanda koma dan berada dalam tanda kurung.

Tipe data seperti ini disebut tipe data enumerasi.

create by n ova elins03

6

Page 7: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

Bentuk umum tipe data ini adalah:TypeNamaTipe = (data-1,data-2,…,data-n);

create by n ova elins03

7

Page 8: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASICONTOH 1: Pada contoh ini akan

didefinisikan tipe data enumerasi yang disebut THari. Nilai literal dari tipe data ini adalah: Minggu, Senin, Selasa, Rabu, Kamis, Jumat dan Sabtu.

TypeTHari = (Minggu, Senin,

Selasa, Rabu, Kamis, Jumat, Sabtu);

VarHari : THari;

create by n ova elins03

8

Page 9: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

Setiap nilai literal dari tipe data enumerasi mempunyai nomor urut.

Selain operasi dengan operator boolean, juga dapat dikerjakan operasi ord, pred dan succ.

create by n ova elins03

9

Page 10: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

CONTOH 2: Berdasarkan CONTOH 1 dapat didefinisikan beberapa ekspresi boolean yang menggunakan nilai literal dalam THari

create by n ova elins03

10

Page 11: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

Ekspresi NilaiMinggu < Selasa TrueRabu >= Sabtu FalseSenin <> Jumat Truepred(Jumat) = Kamis Truesucc(Jumat) = Sabtu Truesucc(Selasa) <> pred(Kamis) False

create by n ova elins03

11

Page 12: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASICONTOH 3: mengacu ke CONTOH 1, relasi

berikut semuanya adalah bernilai benar:Succ(Minggu)=SeninPred(Senin)=MingguSucc(Senin)=SelasaPred(Jumat)=KamisSucc(Jumat)=SabtuOrd(Minggu)=0Ord(Senin)=1Ord(Sabtu)=6

create by n ova elins03

12

Page 13: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

Enumerasi juga dapat didefinisikan langsung pada variabel, misalnya:

varKartu : (Club,Diamond,Heart,Spade);

create by n ova elins03

13

Page 14: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASIDengan cara tersebut tidak dapat

didefinisikan lagi variabel dengan nilai literal yang sama, jadi pernyataan dibawah ini adalah salah.

varKartu1 : (Club,Diamond,Heart,Spade);Kartu2 : (Club,Diamond,Heart,Spade);

create by n ova elins03

14

Page 15: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASICara mendeklarasikannya yang benar

adalah:varKartu1,Kartu2 : (Club, Diamond, Heart,

Spade);Atau:typeTKartu : (Club,Diamond,Heart,Spade);

varKartu1 : TKartu;Kartu2 : TKartu;

create by n ova elins03

15

Page 16: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

Secara bawaan, urutan nilai enumerasi dimulai dari 0 dan berturut-turut diikuti oleh 1, 2, 3, dan seterusnya. Nomor urut ini juga dapat diurutakan secara eskplisit.

Untuk menetapkan nomor urut digunakan format:

nilai = ekspresikonstanta

create by n ova elins03

16

Page 17: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

CONTOH 4:typeUkuran = (Kecil=5, Sedang=10,

Besar=Kecil+Sedang);

create by n ova elins03

17

Page 18: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

varX:Ukuran;…X := Kecil; //Ord(X)=5X := Ukuran(6); //Ord(X)=6Inc(X); //Ord(X)=7

create by n ova elins03

18

Page 19: Pemrograman Terstruktur (Part 2)

TIPE DATA ENUMERASI

typeContohEnum = (e1,e2,e3=1);

Nilai ordinal dari tepe data tersebut diatas adalah:

e1 = 0e2 = 1e3 = 1

create by n ova elins03

19

Page 20: Pemrograman Terstruktur (Part 2)

TIPE DATA SUBRANGE

Konsep tipe data subrange dapat diterapkan pada tipe data ordinal yaitu: integer, char, boolean serta enumerasi.

Bentuk umum tipe data subrange adalah:

typenamatipedata=dataawal..dataakhir;

create by n ova elins03

20

Page 21: Pemrograman Terstruktur (Part 2)

TIPE DATA SUBRANGECONTOH 5:typeTHari =(Minggu,Senin,Selasa,

Rabu,Kamis,Jumat, Sabtu);

THariKerja = Senin..Jumat;TBulan = 1..31;TKapital = ‘A’..’Z’;

create by n ova elins03

21

Page 22: Pemrograman Terstruktur (Part 2)

TIPE DATA SUBRANGECONTOH 6: Berdasarkan CONTOH 5

dapat didefinisikan variabel berikut:varHariKerja,HariLibur:THariKerja;Tanggal : TBulan;JamKerja : 1..24;GajiKotor,GajiBersih: Double;JumlahKaryawan : 1..Maxint;

create by n ova elins03

22

Page 23: Pemrograman Terstruktur (Part 2)

TIPE DATA SUBRANGE

TypeTJamKerja = 1..24;

VarJamKerja : TJamKerja;

Atau:

VarJamKerja : 1..24;

create by n ova elins03

23

Page 24: Pemrograman Terstruktur (Part 2)

PENGGUNAAN TIPE DATA DEFINISIAN PENGGUNA

Tipe data enumerasi dan subrange dapat digunakan sebagai variabel kendali pada struktur for dan struktur pilihan case.

create by n ova elins03

24

Page 25: Pemrograman Terstruktur (Part 2)

PENGGUNAAN TIPE DATA DEFINISIAN PENGGUNA

CONTOH 7: penggunaan tipe data enumerasi pada variabel kendali for adalah:

For HariKerja:=Senin to Jumat do begin……

End;

create by n ova elins03

25

Page 26: Pemrograman Terstruktur (Part 2)

PENGGUNAAN TIPE DATA DEFINISIAN PENGGUNA

CONTOH 8: dengan variabel HariKerja seperti CONTOH 7 dapat dibuat struktur case sebagai berikut:

create by n ova elins03

26

Page 27: Pemrograman Terstruktur (Part 2)

PENGGUNAAN TIPE DATA DEFINISIAN PENGGUNA

Case HariKerja ofSenin:writeln(‘hari kerja pertama’);Selasa:writeln(‘hari kerja kedua’);Rabu:writeln(‘hari kerja ketiga’);Kamis:writeln(‘hari kerja keempat’);Jumat:writeln(‘hari kerja kelima’);End;

create by n ova elins03

27

Page 28: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR

SET

create by n ova elins03

28

Page 29: Pemrograman Terstruktur (Part 2)

DEFINISI SET

Set atau himpunan adalah kumpulan nilai bertipe data ordinal yang sama.

Range nilai pada set bergantung dari tipe data induknya.

Bentuk umum dari set adalah:set of tipedataindukDengan tipedatainduk adalah tipe

data ordinal.

create by n ova elins03

29

Page 30: Pemrograman Terstruktur (Part 2)

DEFINISI SETTipe data induk tidak boleh memiliki

kemungkinan nilai lebih dari 256 macam dan nomor urutnya mulai dari 0 sampai 255.

Karena kapasitas dibatasi maka tipe data set biasanya menggunakan tipe data induk subrange.

create by n ova elins03

30

Page 31: Pemrograman Terstruktur (Part 2)

DEFINISI SETCONTOH 9Perhatikan deklarasi berikut:typeTUkuran = (Kecil, Sedang, Besar);TUkuranBaju = set of TUkuran;

varLenganPendek,LenganPanjang :

TUkuranBaju;

create by n ova elins03

31

Page 32: Pemrograman Terstruktur (Part 2)

DEFINISI SETCONTOH 10DeklarasitypeTSomeInts = 1..250;TIntSet = set of TSomeInts;

Deklaresi seperti CONTOH 10 sama seperti:type TIntSet = set of 1..250;

create by n ova elins03

32

Page 33: Pemrograman Terstruktur (Part 2)

DEFINISI SETCONTOH 11Dengan tipe data seperti CONTOH 10 dapat

dibentuk variabel:varSet1, Set2 : TIntSet;Set1, Set2 : set of 1..250;

create by n ova elins03

33

Page 34: Pemrograman Terstruktur (Part 2)

PEMBENTUKAN SETSet (himpunan) berisi sejumlah elemen dari nilai-

nilai pada tipe data induk.Set dibentuk dengan menulis satu per satu elemen

himpunan dengan diapit tanda kurung siku dan dipisahkan dengan koma.

[elemen1,elemen2, …,elemenn];

create by n ova elins03

34

Page 35: Pemrograman Terstruktur (Part 2)

PEMBENTUKAN SET

Elemen-elemen yang masuk dalam set disebut anggota.

Pada CONTOH 12 adalah bentuk set berdasarkan tipe data pada CONTOH 9.

create by n ova elins03

35

Page 36: Pemrograman Terstruktur (Part 2)

PEMBENTUKAN SETCONTOH 12[Kecil, Sedang, Besar][Sedang, Besar][Besar, Kecil][Sedang][ ]

create by n ova elins03

36

Page 37: Pemrograman Terstruktur (Part 2)

PEMBENTUKAN SETCONTOH 13Konstruksi set of dapat juga diterapkan langsung

pada variabel.varMySet : set of ‘a’..’z’;..MySet := [‘a’, ‘b’, ‘c’];

create by n ova elins03

37

Page 38: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETAda 3 operasi yang dapat dilakukan pada set,

yaitu:1. Operasi gabungan (union) dengan simbol +2. Operasi irisan (intersection) dengan simbol *3. Operasi selisih (defference) dengan simbol -

create by n ova elins03

38

Page 39: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETGabungan dari 2 set adalah set yang berisi semua

anggota dari 2 set asal.

create by n ova elins03

39

Page 40: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETCONTOH 14Program ContohUnion;typeTUkuran = (Kecil, Sedang, Besar);TUkuranBaju = set of TUkuran;

varLenganPendek, LenganPanjang : TUkuranBaju;

BeginLenganPendek = [Kecil] + [Besar];LenganPanjang = [Kecil, Sedang] + [Kecil, Besar];

End.

create by n ova elins03

40

Page 41: Pemrograman Terstruktur (Part 2)

OPERASI PADA SET

Nilai dariLenganPendek := [Kecil,Besar];LenganPanjang := [Kecil,Sedang,

Besar];

create by n ova elins03

41

Page 42: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETSet irisan dari 2 set adalah set yang menjadi

anggota set pertama dan sekaligus menjadi anggota pada set kedua.

create by n ova elins03

42

Page 43: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETCONTOH 15Program ContohIrisan;typeTUkuran = (Kecil, Sedang, Besar);TUkuranBaju = set of TUkuran;

varLenganPendek, LenganPanjang : TUkuranBaju;

BeginLenganPendek = [Kecil, Sedang] * [Sedang,

Besar];LenganPanjang = [Kecil] * [Sedang,Besar];

End.

create by n ova elins03

43

Page 44: Pemrograman Terstruktur (Part 2)

OPERASI PADA SET

Nilai dariLenganPendek := [Sedang];LenganPanjang := [ ];

create by n ova elins03

44

Page 45: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETSet selisih dari dua set adalah set dengan

anggota berasal dari set pertama tetapi tidak menjadi anggota set kedua.

create by n ova elins03

45

Page 46: Pemrograman Terstruktur (Part 2)

OPERASI PADA SETCONTOH 16Program ContohSelisih;typeTUkuran = (Kecil, Sedang, Besar);TUkuranBaju = set of TUkuran;

varLenganPendek, LenganPanjang : TUkuranBaju;

BeginLenganPendek = [Kecil,Sedang]-[Kecil,Besar];LenganPanjang = [Kecil,Sedang,Besar]– [Besar];

End.

create by n ova elins03

46

Page 47: Pemrograman Terstruktur (Part 2)

OPERASI PADA SET

Nilai dariLenganPendek := [Sedang];LenganPanjang := [Kecil,Sedang];

create by n ova elins03

47

Page 48: Pemrograman Terstruktur (Part 2)

PEMBANDINGAN SETPembandingan antar set menghasilkan nilai

boolean.Tabel 1 Operator Pembandingan Set

create by n ova elins03

48

Operator Arti

= Kesamaan set

<> Ketidaksamaan set

<= Himpunan bagian (subset, semua anggota set pertama adalah anggota set kedua)

>= Himpunan bagian (subset, semua anggota set kedua adalah anggota set pertama)

Page 49: Pemrograman Terstruktur (Part 2)

PEMBANDINGAN SETCONTOH 17Mengacu pada CONTOH 9, berikut contoh ekspresi

dan nilainya.

create by n ova elins03

49

Ekspresi Nilai

[Kecil, Besar] = [Kecil, Sedang, Besar] False

[Kecil, Besar] = [Besar, Kecil] True

[Kecil, Sedang, Besar] = [Kecil..Besar] True

[Kecil, Sedang] <>[Sedang] True

[Kecil..Besar] <= [Besar] False

[Sedang] >= [Kecil, Sedang] False

Page 50: Pemrograman Terstruktur (Part 2)

PEMBANDINGAN SETCONTOH 18Buatlah program untuk menentukan huruf apa

saja yang digunakan dalam kalimat. Input untuk program berupa sebaris teks dan output program adalah daftar huruf yang digunakan dalam teks tersebut.

Jawaban:

create by n ova elins03

50

Page 51: Pemrograman Terstruktur (Part 2)

CEK KEANGGOTAANDalam Pascal disediakan operator in yang

digunakan untuk mengecek apakah suatu nilai merupakan anggota dari suatu himpunan.

Hasil dari operator in bertipe boolean.Bentuk umum dari operator in adalah:nilai in set

create by n ova elins03

51

Page 52: Pemrograman Terstruktur (Part 2)

CEK KEANGGOTAAN

CONTOH 19Berdasarkan deklarasi berikut:typeTukuran = (Kecil,Sedang,Besar);TUkuranBaju = set of Tukuran;

varLenganPendek,LenganPanjang:

TUkuranBaju;Ukuran:TUkuran;

create by n ova elins03

52

Page 53: Pemrograman Terstruktur (Part 2)

CEK KEANGGOTAAN

Beberapa ekspresi boolean yang menunjukan penggunaan in terlihat sebagai berikut:

1.Kecil in [Kecil,Sedang,Besar];2.Sedang in [Kecil,Besar];3.Ukuran in [Kecil,Sedang]4.Ukuran in LenganPendek

create by n ova elins03

53

Page 54: Pemrograman Terstruktur (Part 2)

CEK KEANGGOTAANCONTOH 20: Buatlah program dalam aplikasi

GUI untuk menghitung jumlah huruf konsonan dan vokal dari suatu masukan teks.

JAWABAN

create by n ova elins03

54

Page 55: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR

LARIK SATU DIMENSI

create by n ova elins03

55

Page 56: Pemrograman Terstruktur (Part 2)

TIPE DATA TERSTRUKTURTipe data terstruktur meliputi array, record dan

file.Karakteristik tipe data terstruktur secara umum

bahwa pengenal tunggal dapat mewakili banyak item data.

Item-item dalam data terstruktur dapat dimanipulasi secara bersamaan atau terpisah.

create by n ova elins03

56

Page 57: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSILarik atau array digunakan untuk menampung

agregat data (kumpulan dari beberapa data).Ciri array adalah data-data anggotanya memiliki

tipe data yang sama.Larik diwujudkan dengan pertama

mendeklarasikan tipe datanya, kemudian diikuti dengan definisi variabel dengan tipe data tersebut.

create by n ova elins03

57

Page 58: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSIDeklarasi larik dapat ditulis dalam kelompok type

sebagai berikut:typenamaaray = array [indeks] of tipedata;

varnamavariabel : namaarray;

Atau dalam kelompok var sebagai berikut:varnamavariabel:array [indeks] of

tipedata;

create by n ova elins03

58

Page 59: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSICONTOH 21typet_nama = array [1..30] of char; (1)t_data = array [1..100] of real; (2)

Atau dalam kelompok var sebagai berikut:varnama : t_nama; (3)data : t_data; (4)

create by n ova elins03

59

Page 60: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIKLarik diakses melalui elemen-elemen dari

variabelnyaNama[1] := j;Nama[2] := o;Nama[3] := k;Nama[4] := o;Pengaksesan larik juga dapat melibatkan proses

iterasi dengan perintah kendali for..do:for i := 1 to 100 do begindata[i] := 0.0;

create by n ova elins03

60

Page 61: Pemrograman Terstruktur (Part 2)

INDEKS DALAM LARIKBerikut adalah contoh deklarasi larik integer

dalam Pascal dalam lingkungan Delphi:Procedure TForm1.Button1Click(Sender:Tobject);varArraySaya : array [0..10] of integer;Bilangan : integer;

BeginArraySaya[0] := 1;Bilangan := ArraySaya[0];

End;

create by n ova elins03

61

Page 62: Pemrograman Terstruktur (Part 2)

INDEKS DALAM LARIKSelain menentukan indeks tertinggi, juga dapat

ditentukan indeks terrendahnya.Perhatikan contoh berikut:Procedure TForm1.Button1Click(Sender:Tobject);VarArraySaya : array [14..24] of integer;Bilangan : integer;

BeginArraySaya[14] := 1;Bilangan := ArraySaya[14];

End;

create by n ova elins03

62

Page 63: Pemrograman Terstruktur (Part 2)

INDEKS DALAM LARIKIndeks tertingi dan terrendah juga dapat diketahui

saat program berjalan dengan memanfaatkan fungsi Low dan High:

create by n ova elins03

63

Page 64: Pemrograman Terstruktur (Part 2)

INDEKS DALAM LARIKProcedure TForm1.Button1Click(Sender:Tobject);VarArraySaya : array [14..24] of integer;IndeksTertinggi,IndeksTerrendah : integer;

BeginIndeksTertinggi := High(ArraySaya);IndeksTerrendah := Low(ArraySaya);Label1.Caption := ‘Indeks

Tertinggi:’+IntToStr(IndeksTertinggi);Label2.Caption := ‘Indeks Terrendah:’+IntToStr(IndeksTerrendah);

End;

create by n ova elins03

64

Page 65: Pemrograman Terstruktur (Part 2)

KONSTANTA LARIKBerikut contoh deklarasi konstanta larik:Procedure TForm1.Button1Click(Sender:Tobject);TypeTMyStringArray : array [0..2] of string;

ConstMyIntArray : array [0..3] of integer = (1, 2,

3, 4);MyStringArray : TMyStringArray =(‘Satu’,

’Dua’, ’Tiga’);BeginListBox1.Items.Add(IntToStr(MyIntArray[0]));ListBox1.Items.Add(MyStringArray[0]);

End;

create by n ova elins03

65

Page 66: Pemrograman Terstruktur (Part 2)

LARIK DINAMISLarik dinamis tidak mempunyai ukuran atau

panjang yang tetap. Ukuran atau panjang larik dapat ditentukan pada saat program berjalan.

Deklarasi untuk larik dinamis adalah:typenamatipe = array of tipedata;

varnamavar : namatipe;

Atauvarnamavar : array of tipedata;

create by n ova elins03

66

Page 67: Pemrograman Terstruktur (Part 2)

LARIK DINAMISLarik dinamis diakses dengan cara yang sama

dengan larik statis dengan beberapa batasan: Penentuan panjang digunakan SetLength(larikdinamis,panjang)

Indeks menggunakan bilangan integer Indeks selalu diawali dengan 0 Indeks tertinggi adalah panjang atau ukuran

larik dikurangi dengan 1

CONTOH PROGRAM LARIK DINAMIS

create by n ova elins03

67

Page 68: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSICONTOH 22Menghitung deviasi dengan menggunakan

persamaan:deviasi = x[i] – rerata

Dimana x[i] adalah nilai-nilai input dan rerata adalah nilai yang didapat saat program dikerjakan.

JAWABANMisalkan nilai x dibatasi hanya 100 data.Program Deviasi

create by n ova elins03

68

Page 69: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSICONOTH 23Buatlah program untuk menyimpan data nama,

alamat dan kota dan menampilkannya.JAWABANDibatasi setiap nama, alamat dan kota hanya 60

karakter saja.Program Nama dan Alamat

create by n ova elins03

69

Page 70: Pemrograman Terstruktur (Part 2)

LARIK SATU DIMENSISOAL LATIHAN:Tulis program yang mendeklarasikan x sebagai

larik 10 elemen bilangan bulat, membaca 10 data dari keyboard dan memasukan ke larik x, dan mencetak jumlahan dari semua elemen dalam larik x

create by n ova elins03

70

Page 71: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR

LARIK MULTIDIMENSI

create by n ova elins03

71

Page 72: Pemrograman Terstruktur (Part 2)

LARIK DUA DIMENSILarik berdimensi dua berguna untuk

mendefinisikan matriks, yang banyak digunakan dalam aplikasi numeris.

create by n ova elins03

72

Page 73: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIK DUA DIMENSICara mendeklarasikan larik dua dimensi adalah

sebagai berikut:typeTMatriks = array[1..5,1..6] of real;

varMat : TMatriks;

create by n ova elins03

73

Page 74: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIK DUA DIMENSIContoh untuk mengakses larik tersebut dapat

berbentuk:Mat[3,2] := 10.0;

for i := 1 to 5 dofor j := 1 to 6 do

Mat[i,j] :=0.0;

create by n ova elins03

74

Page 75: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIK DUA DIMENSICONTOH 24Buatlah program untuk mengolah matriks ukuran

3 x 3 yang meliputi: Pembacaan matriks Penulisan matriks Penjumlahan matriks Perkalian matriks

create by n ova elins03

75

Page 76: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIK DUA DIMENSIPenyelesaian masalah ini dapat ditempuh dengan

menyusun prosedur untuk masing-masing keperluan, yaitu:

Prosedur bacamatriks untuk pembacaan matriks Prosedur tulismatriks untuk penulisan matriks Prosedur tambahmatriks untuk penjumlahan

matriks Prosedur kalimariks untuk perkalian matrik

create by n ova elins03

76

Page 77: Pemrograman Terstruktur (Part 2)

PEMROSESAN LARIK DUA DIMENSIProsedur baca matrriks perlu 1 parameter variabel

matriks untuk menampung pembacaan sedang tulismatrik perlu 1 parameter nilai matriks karena nilai matriks hanya dibaca oleh prosedur ini.

Prosedur tambahmatriks dan kalimatriks perli 1 parameter variabel matriks dan 2 parameter nilai matriks. Parameter variabel digunakan untuk menampung hasil penjumlahan atau perkalian matriks.

Program Mengolah Matriks

create by n ova elins03

77

Page 78: Pemrograman Terstruktur (Part 2)

LARIK DINAMIS DUA DIMENSIUntuk mendeklarasikannya adalah sebagai berikut:typenamaarray = array of array of tipedata;

create by n ova elins03

78

Page 79: Pemrograman Terstruktur (Part 2)

LARIK DINAMIS DUA DIMENSICONTOH 25Segitiga Pascal adalah deretan bilangan yang

membentuk segitiga sebagai berikut:1

1 11 2 1

1 3 3 11 4 6 4 1

1 5 10 10 5 11 6 15 20 15 6 1

1 7 21 35 35 21 7 1

create by n ova elins03

79

Page 80: Pemrograman Terstruktur (Part 2)

LARIK DINAMIS DUA DIMENSISegitiga Pascal tersebut dapat diubah bentuknya

menjadi:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 1Program Segitiga Pascal

create by n ova elins03

80

Page 81: Pemrograman Terstruktur (Part 2)

LARIK MULTIDIMENSILarik adalah kumpulan komponen yang

mempunyai tipe data sama dan diurutkan pada dimensi N (N >= 1).

Setiap komponen diakses menggunakan N indeks, yang masing-masing indeks menunjukan posisi komponen dalam dimensi.

create by n ova elins03

81

Page 82: Pemrograman Terstruktur (Part 2)

PEMROGRAMAN TERSTRUKTUR

SORTING (PENGURUTAN DATA)

create by n ova elins03

82

Page 83: Pemrograman Terstruktur (Part 2)

PENGERTIANMetode pengurutan (sorting) data diklasifikasikan

menjadi 2 kategori:1. Pengurutan array (larik) disebut juga

pengurutan internal (internal sorting)2. Pengurutan berkas masuk urut (sequential

access file) disebut juga eksternal sorting.Sorting data dimungkinkan mengurutkan data

dengan 2 cara:1. Ascending (sorting data dari paling kecil ke

paling besar)2. Descending (sorting data dari paling besar ke

paling kecil)

create by n ova elins03

83

Page 84: Pemrograman Terstruktur (Part 2)

ARRAY SORTINGDalam internal sorting ada beberapa metode yang

bisa digunakan:1. Penyisipan (insertion)2. Seleksi (selection)3. Penukaran (exchange)

create by n ova elins03

84

Page 85: Pemrograman Terstruktur (Part 2)

INSERTIONDengan tujuan ingin membuat daftar elemen-

elemen yang urut dari data yang dimasukan secara acak.

Dilakukan dengan cara menempatkan elemen pertama ke dalam daftar lokasi pertama kemudian untuk penambahan elemen, elemen disisipkan ke dalam daftar sehingga daftar selalu dalam keadaan berurutan

create by n ova elins03

85

Page 86: Pemrograman Terstruktur (Part 2)

INSERTION

CONTOH 26Dalam program dimasukan data berturut-turut 23,

-5, 2, 80, 16Berikut sorting data dengan cara insertion:

create by n ova elins03

86

Data[1] 23Data[2]Data[3]Data[4]Data[5]

Data[1] -5Data[2] 2Data[3] 23Data[4]Data[5]

Data[1] -5Data[2] 23Data[3]Data[4]Data[5]

Page 87: Pemrograman Terstruktur (Part 2)

INSERTION

Program Insertion

create by n ova elins03

87

Data[1] -5Data[2] 2Data[3] 23Data[4] 80Data[5]

Data[1] -5Data[2] 2Data[3] 16Data[4] 23Data[5] 80

Page 88: Pemrograman Terstruktur (Part 2)

SELECTIONMetode seleksi meliputi pencarian elemen terkecil

dan menempatkannya pada lokasi pertama. Berikutnya adalah mencari elemen terkecil selanjutnya dan menempatkannya di lokasi selanjutnya.

Berikut sorting data dengan metode selection:

create by n ova elins03

88

Data[1] 23Data[2] -5Data[3] 2Data[4] 80Data[5] 16

Data[1] -5Data[2] 23Data[3] 2Data[4] 80Data[5] 16

Data[1] -5Data[2] 2Data[3] 23Data[4] 80Data[5] 16

Page 89: Pemrograman Terstruktur (Part 2)

SELECTION

Program Selection

create by n ova elins03

89

Data[1] -5Data[2] 2Data[3] 23Data[4] 80Data[5] 16

Data[1] -5Data[2] 2Data[3] 16Data[4] 80Data[5] 23

Data[1] -5Data[2] 2Data[3] 16Data[4] 23Data[5] 80

Page 90: Pemrograman Terstruktur (Part 2)

BUBBLE SORTMetode pengurutan untuk mengurutka data dalam

tempatnya. Metode ini menyebabkan elemen yang terbesar

bergeser ke posisi yang terbawah dalam daftar sekali proses ke seluruh array dengan menjalankan pembandingan pada elemen-elemen secara berturut-turut dan menukarkan elemen-elemen tersebut jika diperlukan.

create by n ova elins03

90

Page 91: Pemrograman Terstruktur (Part 2)

BUBBLE SORTcreate by n ova elins03

91

Data[1] 23Data[2] -5Data[3] 2Data[4] 80Data[5] 16

Data[1] -5Data[2] 2Data[3] 23Data[4] 80Data[5] 16

Data[1] -5Data[2] 2Data[3] 23Data[4] 16Data[5] 80

Page 92: Pemrograman Terstruktur (Part 2)

BUBBLE SORTcreate by n ova elins03

92

Data[1] -5Data[2] 2Data[3] 23Data[4] 16Data[5] 80

Data[1] -5Data[2] 2Data[3] 16Data[4] 23Data[5] 80

Data[1] -5Data[2] 2Data[3] 23Data[4] 16Data[5] 80

Page 93: Pemrograman Terstruktur (Part 2)

QUICK SORTPengurutan data berdasarkan nilai tengah (letak

secara fisik).Ada 8 data sebagai berikut yang akan diurutkan

dengan metode quick sort:

create by n ova elins03

93

Data[1] 23Data[2] -5Data[3] 14Data[4] 16Data[5] 80Data[6] 3Data[7] 5Data[8] 0

Page 94: Pemrograman Terstruktur (Part 2)

QUICK SORTPertama adalah memilih elemen yang digunakan

untuk membagi daftar data menjadi 2 segmen. Dalam kasus ini data[4] merupakan perkiraan

nilai tengah.Tujuannya adalah membagi 2 daftar data dengan

16 sebagai nilai pembagi.Kelompok bawah berisi nilai kurang dari atau

sama dengan 16 dan kelompok atas berisi data yang nilainya lebih atau sama dengan 16.

create by n ova elins03

94

Page 95: Pemrograman Terstruktur (Part 2)

QUICK SORTDalam elemen pertama dari daftar data, cari

secara mundur untuk nememukan elemen pertama yang lebih dari atau sama dengan nilai tengah

create by n ova elins03

95

Data[1] 23Data[2] -5Data[3] 14Data[4] 16Data[5] 80Data[6] 3Data[7] 5Data[8] 0

bawah

Nilai tengah

atas

Page 96: Pemrograman Terstruktur (Part 2)

QUICK SORTNilai data[bawah] lebih dari nilai tengah dan nilai

data[atas] kurang dari nilai tengah, maka tukar nilai data[1] dan data[8]:

create by n ova elins03

96

Data[1] 0Data[2] -5Data[3] 14Data[4] 16Data[5] 80Data[6] 3Data[7] 5Data[8] 23

Nilai dari data[8]

Nilai dari data[1]

bawah

atas

Page 97: Pemrograman Terstruktur (Part 2)

QUICK SORTUlangi prosedur tersebut. Cari dulu elemen

bawahberikutnya yang lebih dari atau sama dengan nilai tengah, yaitu data[4]. Kemudian cari elemen atas yang kurang dari atau sama dengan nilai tengah, yaitu data[7] :

create by n ova elins03

97

Data[1] 0Data[2] -5Data[3] 14Data[4] 16Data[5] 80Data[6] 3Data[7] 5Data[8] 23

Nilai dari data[8]

Nilai dari data[1]

bawah

atas

Page 98: Pemrograman Terstruktur (Part 2)

QUICK SORTHasil prosedur berikutnya adalah sebagai berikut

serta variabel atas dan bawahnya:

create by n ova elins03

98

Data[1] 0Data[2] -5Data[3] 14Data[4] 5Data[5] 80Data[6] 3Data[7] 16Data[8] 23

bawah

atas

Page 99: Pemrograman Terstruktur (Part 2)

QUICK SORTTukar kembali antara variabel atas dan bawah.

Kemudian hasilnya dibagi menjadi 2 segmen

create by n ova elins03

99

Data[1] 0Data[2] -5Data[3] 14Data[4] 5Data[5] 3Data[6] 80Data[7] 16Data[8] 23

Segmen bawah

Segmen atas

Page 100: Pemrograman Terstruktur (Part 2)

QUICK SORTUntuk segmen atas dan segmen bawah lakukan

prosedur yang sama sampai semua data terurut.

create by n ova elins03

100