Thursday, October 22, 2015

Algoritma dan Program Mencari Nilai Tertinggi dan Menampilkan Nilai di Atas Ketuntasan Secara Terurut Menggunakan Bubble Sort

Nama Kelompok :
1. Wensi Sekarsari  (D1041141011)
2. Diera Desmonda  (D1041141013)
3. Yahya Risqi        (D1041141033)

Soal :
Terdapat nilai ujian dari beberapa mahasiswa sebagai berikut :
70,65,45,95,80,75
Jika seorang dosen ingin mencari nilai mahasiswanya yang tertinggi dan nilai yang berada di atas ketuntasan, bagaimanakah algoritma dan program dari penyelesaian masalah tersebut?

Solusi :
            a.       Algoritma :
 6
A[1]  70
A[2]  65
A[3]  45
A[4]  95
A[5]  80
A[6]  75
counter  0
 0

for i  1 to n do
begin
             if (A[i] < 75) then counter  counter + 1
             else
                             begin
                             x  x + 1
                             B[x]  A[i]
                             end
end

 n - counter

for i  1 to m do
begin
             for j  m downto i + 1 do
        begin
                if B[j] >  B[j-1] then
                begin
                 temp  B[j]
                 B[j]  B[j-1]
                 B[j-1]  temp
                end
        end
end

output('Nilai tertinggi adalah ') output(B[1])
output('Yang tidak lulus ada ') output(counter) output(' orang')

output('Nilai yang lulus adalah : ')

for i  1 to m do
begin
        output(B[i])
end

readkey

end.

            b.      Source code dengan menggunakan bahasa pemrograman pascal
Program Perhitungan_nilai;
uses crt;

var
        A,B : array[1..6] of integer;
        i,j,n,m,counter,temp,x : integer;
begin
clrscr;

n:= 6;
A[1] := 70;
A[2] := 65;
A[3] := 45;
A[4] := 95;
A[5] := 80;
A[6] := 75;
counter := 0;
x := 0;

for i:=1 to n do
begin
             if (A[i]<75) then counter:=counter+1
             else
                             begin
                             x := x+1;
                             B[x] := A[i];
                             end;
end;

m := n-counter;

for i:=1 to m do
begin
             for j:= m downto i+1 do
        begin
                if B[j] >  B[j-1] then
                begin
                 temp := B[j];
                 B[j] := B[j-1];
                 B[j-1] := temp;
                end;
        end;
end;

write('Nilai tertinggi adalah '); writeln(B[1]);
write('Yang tidak lulus ada '); write(counter); writeln(' orang');

write('Nilai yang lulus adalah : ');

for i:=1 to m do
begin
        write(B[i]); write(' ');
end;

readkey;
end.

            c.       Output

No comments:

Post a Comment