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.
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 ])
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
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;
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:');
begin
writeln('data[',i,']=',data[i]);
end;
if data[i]>data[j]then
begin
t:=data[i];
data[i]:=data[j];
data[j]:=t;
end;
writeln('hasil');
begin
writeln('data[',i,']=',data[i]);
end;
end.
2. Quik Sort
Program Quik_sort;
var kiri,kanan,atas,bawah,pivot:integer;
begin
pivot:=data[(bawah+atas)div 2];
kiri:=bawah;
kanan:=atas;
while kiri<=kanan do
begin
if kiri<=kanan then
begin
kiri:=kiri+1;
kanan:=kanan-1;
end;
end.
3. Shell Sort
Program shell_sort;
Uses wincrt;
Var i,j:longint;
begin
baca:= 0;
Begin
Inc (baca);
End;
For i := 1 to m do
Writeln ;
End;
End.
4. Selection Sort
sProgram selection_sort;
Uses wincrt;
Var i,j,tempat:longint;
Begin
Baca:=0;
Begin
Tempat:= i;
For j := i + 1 to m do
Tempat := j;
Inc(baca);
End;
For i:= 1 to m do
End;
End.
5. Insert Sort
Program Insert_sort;
Uses wincrt;
i,j,baca,m:integer;
begin
writeln;
baca:=0;
for i:= 2 To m do
begin
G:=A[i];
j:= i-1;
A[0]:=G;
Begin
A[j + 1]:=A[j];
Dec [j];
Inc(baca);
End;
A[j+1]:=G;
End;
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.