pemrograman terstruktur (part 2)

Post on 19-Jun-2015

766 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

bahan kuliah pemrograman terstruktur (setelah midtest)

TRANSCRIPT

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

create by n ova elins03

1

SILABUS

1. TIPE DATA SKALAR DEFINISIAN PENGGUNA

2. SET3. LARIK4. SORTING

create by n ova elins03

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

PEMROGRAMAN TERSTRUKTUR

TIPE DATA SKALAR DEFINISIAN PENGGUNA

create by n ova elins03

4

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

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

TIPE DATA ENUMERASI

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

create by n ova elins03

7

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

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

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

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

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

TIPE DATA ENUMERASI

Enumerasi juga dapat didefinisikan langsung pada variabel, misalnya:

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

create by n ova elins03

13

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

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

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

TIPE DATA ENUMERASI

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

Besar=Kecil+Sedang);

create by n ova elins03

17

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

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

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

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

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

TIPE DATA SUBRANGE

TypeTJamKerja = 1..24;

VarJamKerja : TJamKerja;

Atau:

VarJamKerja : 1..24;

create by n ova elins03

23

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

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

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

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

PEMROGRAMAN TERSTRUKTUR

SET

create by n ova elins03

28

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

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

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

varLenganPendek,LenganPanjang :

TUkuranBaju;

create by n ova elins03

31

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

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

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

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

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

create by n ova elins03

36

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

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

OPERASI PADA SETGabungan dari 2 set adalah set yang berisi semua

anggota dari 2 set asal.

create by n ova elins03

39

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

OPERASI PADA SET

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

Besar];

create by n ova elins03

41

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

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

OPERASI PADA SET

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

create by n ova elins03

44

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

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

OPERASI PADA SET

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

create by n ova elins03

47

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)

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

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

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

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

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

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

PEMROGRAMAN TERSTRUKTUR

LARIK SATU DIMENSI

create by n ova elins03

55

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

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

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

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

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

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

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

INDEKS DALAM LARIKIndeks tertingi dan terrendah juga dapat diketahui

saat program berjalan dengan memanfaatkan fungsi Low dan High:

create by n ova elins03

63

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

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

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

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

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

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

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

PEMROGRAMAN TERSTRUKTUR

LARIK MULTIDIMENSI

create by n ova elins03

71

LARIK DUA DIMENSILarik berdimensi dua berguna untuk

mendefinisikan matriks, yang banyak digunakan dalam aplikasi numeris.

create by n ova elins03

72

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

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

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

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

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

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

create by n ova elins03

78

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

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

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

PEMROGRAMAN TERSTRUKTUR

SORTING (PENGURUTAN DATA)

create by n ova elins03

82

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

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

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

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]

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

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

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

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

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

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

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

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

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

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

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

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

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

QUICK SORTUntuk segmen atas dan segmen bawah lakukan

prosedur yang sama sampai semua data terurut.

create by n ova elins03

100

top related