Nama : Suseno Rudiansyah NPM : 201543501544 Kelas : X2T Prodi : Teknik Informatika Tugas : Kuis Algoritma 2 Tugas Kuiz Algoritma 2. Dosen : Budi Santoso 1. Diketahui dua buah larik A = [12,3,9,4,15,6] dan larik B = [11,2,5,7], urutkan secara naik (ascending) kedua larik di atas menggunakan metode BUBBLE SORT dan INSERTION SORT. 2. Jelaskan perbedaan algoritma sorting (bubble sort dengan gravitation sort) dan (selection sort dengan insertion sort)? 3. Buatkan program pengurutan seleksi (selection sort) dengan jenis variasi pengurutan turun, pemilihan maksimum ditempatkan di bagian awal. 4. Buatlah program array 1 dimensi untuk perhitungan nilai mahasiswa dengan input dan output program sebagai berikut DATA MAHASISWA NO : NPM : Nama : Nilai Tugas : Nilai UTS : Nilai UPM : Nilai Akhir : Nilai Huruf :
Jawaban : 1. Program pengurutan naik bubble sort Codingan program program bubble_sort_kuis_1_a; uses crt; var i,n,j,k : integer; a : array [1..6] of integer; b : array [1..4] of integer; procedure urutkan_larik_a; var z : integer; for i:= 1 to n-1 do for j:= n downto i+1 do if a[j] < a[j-1] then z:= a[j]; a[j]:=a[j-1]; a[j-1]:=z; procedure urutkan_larik_b; var y : integer; for i:= 1 to n-1 do for k:= n downto i+1 do if b[k] < b[k-1] then y:= b[k]; b[k]:=b[k-1]; b[k-1]:=y;
clrscr; Writeln ('Program Mengurutkan Nilai Dengan Bubble Sort Ascending'); Writeln ('Di susun oleh : Suseno Rudiansyah'); Writeln ('NPM : 201543501544 '); Writeln ('Kelas : X2T '); Writeln ('Prodi : Teknik Informatika'); write ('Masukan jumlah angka larik A : '); readln(n); write ('Angka ke : ',i,' Larik A : '); readln(a[i]); write ('Angka sebelum diurutkan : '); write (a[i],' '); urutkan_larik_a; write ('Angka setelah diurutkan : '); for j:= 1 to n do write (a[j],' '); readln; write ('Masukan jumlah angka larik B : '); readln(n); write ('Angka ke : ',i,' Larik B : '); readln(b[i]); write ('Angka sebelum diurutkan : '); write (b[i],' '); urutkan_larik_b; write ('Angka setelah diurutkan : '); for k:= 1 to n do write (b[k],' '); readln; end.
Hasil program 2. Perbedaan algoritma bubble sort dengan gravitation sort : Bubble sort mengurutkan data dimulai dari elemen terakhir (paling kanan) kemudian dibandingkan dengan elemen (sebelah kirinya). jika elemen tersebut lebih kecil dari elemen depannya maka terjadi pertukaran posisi dua elemen tersebut, kemudian dibandingkan lagi dengan elemen di depannya dan seterusnya sampai dengan elemen paling kiri. Gravitation sort dimulai dari elemen pertama (paling kiri) dan dibandingkan dengan elemen di belakangnya (sebelah kanannya), sehingga pada akhir langkah pertama diperoleh elemen terakhir sudah dalam posisi terurut.. Perbedaan algoritma selection sort dengan insertion sort : Selection sort ide pengurutannya dengan memilih elemen-elemen ekstrim, paling besar atau paling kecil, kemudian ditempatkan pada posisi yang sesuai, langkah tersebut diulangi untuk elemen-elemen sisanya, sampai semua elemen terurut.
Insertion sort ide dasar pengurutannya dengan mengambil sembarang elemen, secara beruntun, bandingkan dengan elemen-elemen di depannya untuk mendapatkan posisi yang sebenarnya, jika posisi yang benar sudah diperoleh maka tempatkan elemen tersebut ke posisi yang benar. 3. Program Selection sort, pengurutan turun, pemilihan maksimum ditempatkan di bagian awal. Codingan Program program urut_seleksi_turun_maks; uses crt; var i,j,k,n,imax, temp : integer; a,b,c : array [1..100] of integer; clrscr; writeln ('======================================'); writeln (' Nama : Suseno Rudiansyah '); writeln (' NPM : 201543501544 '); writeln (' Program : Selec_Turun_Maks '); writeln ('======================================'); write ('Banyaknya elemen : '); readln(n); write ('elemen ke-',i,' : '); readln(a[i]); textcolor(15); write ('sebelum urut : '); write (a[i], ' '); textcolor(15); writeln('proses Pengurutan Seleksi : '); for i:= 1 to n-1 do imax := 1; for j:= 2 to n-i+1 do if a[j] > a[imax] then imax:=j; {tukar a[imax] dengan a[n-i+1]} temp:= a[imax]; a[imax]:=a[n-i+1]; a[n-i+1]:= temp; textcolor(i); {cetak array tiap langkah pengurutan : } write ('Hasil akhir langkah ke-',i,':'); for k := n downto 1 do write (a[k],' '); {cetak array setelah pengurutan} write ('Hasil akhir pengurutan seleksi : '); for i:= n downto 1 do
write (a[i],' '); readln; end. Hasil akhir program 4. Program data mahasiswa Codingan program program data_mahasiswa_kuis; uses crt; var No,NPM,Nama : array [1..10] of string [20]; Ntugas,Nuts,Nupm,Nakhir,Nhuruf : array [1..10] of string [20]; i,j : integer ; clrscr; write ('Masukan Jumlah data mahasiswa : '); readln (j); for i:= 1 to j do
writeln ('Data ke-',i); write ('Masukan NPM : '); readln (NPM[i]); write ('Masukan Nama : '); readln (Nama[i]); write ('Masukan Nilai Tugas : '); readln (Ntugas[i]); write ('Masukan Nilai UTS : '); readln (Nuts[i]); write ('Masukan Nilai UPM : '); readln (Nupm[i]); write ('Masukan Nilai Akhir : '); readln (Nakhir[i]); write ('Masukan Nilai Huruf : '); readln (Nhuruf[i]); clrscr; for i:= 1 to j do writeln ('No :',i); writeln ('NPM :',NPM[i]); writeln ('Nama :',Nama[i]); writeln ('Nilai Tugas :',Ntugas[i]); writeln ('Nilai UTS :',Nuts[i]); writeln ('Nilai UPM :',Nupm[i]); writeln ('Nilai Akhir :',Nakhir[i]); writeln ('Nilai Huruf :',Nhuruf[i]); readln; end. Hasil Program