Anda di halaman 1dari 12

Nama : Lidia Rosa (4018002)

Kelas : III A
Prodi : PendidikanMatematika
Mata Kuliah : Komputer Pemograman
DosenPengampu : YufitriYanto, S.Si, M.Pd.Mat
Tugas : Latihan Bab 12
 Jelaskan Alur logika (dengan desertai contoh data) metode sorting !
1. Alur Logika Bubble Sort
a. Tuliskan nama program
b. Masukan jumlah data yang akan dicari menggunakan array
c. Gunakan for i := 1 untuk membaca pengulangan atau loop denagan angka dimulai dari
1 sampai seterusnya.
d. Gunakan if untuk membaca data dengan pengurutan data dari terkecil keterbesar
e. Masukan writeln data untuk membaca program yang dimasukan
f. Output
g. End. START

Masukan Data

For i := 1
i< data
11

Hasil Akhir

For j := i + 1
i < data

YES End.

If data [i] > data [j]

NO
YES

T:= data[i]
Data[i]:=data[j]
Data[j]:=t
2. Alur Logika Quik Sort
a. Tuliskan nama program
b. Masukan variabel data yang akan dicari dengan menggunakan pivot(pusat)
c. Pilih pusat sebagai pivot dan bagi elemen – elemen ke dalam 3 larik
(Awal,kanan,kiri).
d. Gunakan pivot data (bawah + atas),dengan kiri:=bawah dan kanan:=atas
e. Gunakan While do untuk memisahkan data kanan dan kiri
f. Gunakan if then untuk mengecek perubahan
g. Masukan writeln data untuk membaca program yang dimasukan
h. Output
i. End
START

Masukan Data

Awal
Pivot

Kanan Kanan=atas

Kiri Kiri=bawah

Output
End.
3. Alur Logika Shell Sort
a. Tulis nama program
b. Masukkan variabel data yang akan digunakan dalam program
c. Masukkan batas jumlah data atau banyaknya data dalam program
d. Ketik begin untuk memulai dan dimulai dengan nilai = 0
e. Untuk i = nilai banyaknya data dibagi 2
f. Utuk j = 1 melakukan proses program apabila nilai banyaknya data-i
g. Dan Jika A[j]> A[j+1] maka mulai kembali atau ganti dengan membaca program
A[j],A[j+i]
h. Ketik end untuk mengakhiri tahap pemasukan nilai
i. Mulai kembali dengan menulis dengan kata ‘’hasil pengukuran shell’’
j. Untuk i=1 dilkukan sampai ke (N)/atau banyaknya data
k. Tulis nilai A[i]
l. End
Flowchart:

star

End.

Iput variabel
(A[j],A[ j+ i ])

N For j=1 If A [j] > A[ j + i] )


For i = 2
4. Alur Logika Selection Sort
a. Tulis nama program
b. Tentukan atau masukkan batas nilai atau banyaknya data yang akan diprogram
c. Input nilai,data
d. Untuk i=1akan dilakukan proses banyak data-1
e. Untuk j=i+1 proses dilakukan sampai ke m dan jika nilai yang ditempat A lebih
besar dari nilai ditempat A[j] maka data akan berpindah ke tempat j
f. Bandingkan bilangan ke-1 atau bilangan ke-2, apabila benar pindahkan bilangan ke
-2 kebilangan sisip
g. Pindah bilangan ke-1 ke bilangan ke-2
h. Pindah bilangan ke-1 ke bilangan sisip
i. Lakukan pengulangan proses sampai pengurutan data selesai
j. Tulislah kalimat’’ Hasil Pengurutan Selection’’
k. Untuk nilai i=1 maka tulis A[i]
l. End.

star

For i=1
Input nilai

Temp i
For j=i+1

End.
Temp j

IFnilai A>A[j]
THEN
5. Alur Logika Insert Sort
a. Tulis nama program
b. Masukkan variabel data yang akan di program
c. Tulis dan masukan jumlah data yang akan diprogram ;baca
d. Nilai dimulai dari=0
e. Untuk i=2 akan dilakukan pengerjaan sampai ke m
f. Ketik begin untuk memulai pemrograman
g. G=A[i]; j=i-1 dan A[0]=G dan selaagi G<A[i] akan dikerjaka prora selanjutnya
h. Dan A[j+1]=A[j] maka data akan ditempatkan di possisi j maksudnya
dan jika data kecil yang diperoleh maka akan ditukar dengnn data kedua sampai
seterusnnya sampai data terurut sampai selesai
i. Tulis ‘’jumlah data yang diurutk’’ agar data yang sudah diperoses akan
menampilkan data yang sudah terurut
j. End

STAR
INPUT DATA N=0

Tem i

Tem j
End.

i=2

G=A[i]; j=i-1 dan A[0]=G dan G<A[i]


A[j+1]=A[j]
6. Alur Logika Marge Sort
a. Tulis program
b. Masukkan variabel program
c. masukkan jumlah data I=awal’); , data J=awal’); dan K=awal’);readln
d. jika A[j]<A[J] then mulai dengan B[k]:=A[J];
e. If i>tengah maka For t:=j
f. Untuk t=1 maka B[k+t-j]:A[t];
g. End.

Star

Input variabel

A[j]<A[J]

I=awal
J=awalK=awal

B[k]:=A[J]

For i>tengah

End.
Then t=j

B[k+t-j]:A[t] T=1
Buatlah Program Pascal untuk mengurutkan data dengan metode sorting data diatas!

1. Bubble Sort
program bubble_urutan;

uses wincrt;

var data:array[1..5]of integer;

i,j,t,jumlah_data:integer;

begin

data[1]:=3;

data[2]:=1;

data[3]:=4;

data[4]:=2;

data[5]:=6;

jumlah_data:=5;

writeln('data awal:');

for i:=1 to jumlah_data do

begin

writeln('data[',i,']=',data[i]);

end;

for i:=1 to jumlah_data do

for j:=i+1 to jumlah_data do

if data[i]>data[j]then

begin

t:=data[i];

data[i]:=data[j];

data[j]:=t;
end;

writeln('hasil');

for i:=1 to jumlah_data do

begin

writeln('data[',i,']=',data[i]);

end;

end.

2. Quik Sort
Program Quik_sort;

var kiri,kanan,atas,bawah,pivot:integer;

begin

writeln('Mengurutkan data Secara Ascending');

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

pivot:=data[(bawah+atas)div 2];

kiri:=bawah;

kanan:=atas;

while kiri<=kanan do

begin

while data[kiri]<pivot do kiri:=kiri+1;

while data[kanan]>pivot do kanan:=kanan-1;

if kiri<=kanan then

begin

with data[kiri] with data[kanan];

kiri:=kiri+1;

kanan:=kanan-1;
end;

if kanan>bawah then data(bawah,kanan);

if atas>kiri then data(kiri,atas);

end.

3. Shell Sort
Program shell_sort;

Uses wincrt;

Var i,j:longint;

begin

baca:= 0;

for i := (m div 2) downto 1 do

for j:= 1 to m-i do

If A [j] > A[ j + i] ) then

Begin

Ganti (A[j],A[ j+ i ]);

Inc (baca);

End;

Writeln (‘ Hasil pengurutan Shell: ‘);

For i := 1 to m do

Write (A[i],’ ‘);

Writeln ;

End;

End.

4. Selection Sort
sProgram selection_sort;
Uses wincrt;

Var i,j,tempat:longint;

Begin

Writeln (‘Masukan jumlah data :’); readln (i);

Baca:=0;

For i:=1 to m-1 do

Begin

Tempat:= i;

For j := i + 1 to m do

If A [ tempat]> A [j] then

Tempat := j;

Ganti ( A [i], A [tempat];

Inc(baca);

End;

Writeln(‘ hasil pengurutan seleksi:’);

For i:= 1 to m do

Write (A[i],’ ‘);

End;

End.

5. Insert Sort
Program Insert_sort;

Uses wincrt;

Var A: array [1..10] of integer;

i,j,baca,m:integer;
begin

write(‘Masukan Jumlah Data: ‘);readln(m);

writeln;

baca:=0;

for i:= 2 To m do

begin

G:=A[i];

j:= i-1;

A[0]:=G;

While G < A[j] do

Begin

A[j + 1]:=A[j];

Dec [j];

Inc(baca);

End;

A[j+1]:=G;

End;

Writeln (‘jumlah data setelah diurutkan : ‘, A);

End.

6. Marge Sort
Program merge_urutan;
Uses wincrt;
Var data:array[1..5] of integer;
I,j,k,awal,tengah,A,B:integer;
Begin
Writeln(‘masukkan jumlah data I=awal’);readln(i);
Writeln(‘masukkan jumlah data J=awal’);readln(j);
Writeln(‘masukkan jumlah daa K=awal’);readln(k);
Begin
i = awal;
j = awal;
k = tengah;
repeat
if A[j]<A[J] then
begin
B[k]:=A[J];
Inc(j);
End;
Inc(k);
Inc(baca);
Until (i>tengah)or(j>akhir);
If i>tengah then
For t:=j to akhir do
Begin
B[k+t-j]:A[t];
End;
Else
For t:=l to akhir do
Begin
B[k+t-j]:A[t];
End.

Anda mungkin juga menyukai