Berikut ini adalah pertanyaan dari wiraairasia pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
penjumlahan tersebut.
2. Perhatikan cuplikan program yang menggambarkan proses sorting
bubble sort berikut ini
//cuplikan program dalam C++
for (a=1; a<size; a++) {
// a adalah counter proses
for(b=size-1; b>=a; b--) {
// b adalah counter sub-proses dan index
if( dat[b]<dat[b-1] ) {
// jika data[b] < data [b-1], tukar data
temp=dat[b-1];
dat[b-1]=dat[b];
dat[b]=temp;
}
}
}
Permintaan : Buatlah Program Sorting dengan metode Bubble Sort,
untuk mengurutkan data sebanyak 10 data dalam Array dat[10]
3. Dengan asumsi data sudah terurut dari kecil ke besar (Ascending)
Berikan suatu Contoh bagaimana proses pencarian (Searching) data
X, dengan metode Binary Search, pada Suatu Array dengan 15
elemen ( indeks dari 0 sd 14). Nilai X Anda tentukan sendiri
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
1. Algoritma untuk menghitung jumlah bilangan genap yang habis dibagi 21, dari 50 sampai dengan 500:
• Mulai
• Buat variabel "jumlah" dan berikan nilai 0
• Buat perulangan dari 50 sampai 500
• Dalam perulangan, cek apakah bilangan saat ini genap dan habis dibagi 21
• Jika ya, tambahkan 1 pada variabel "jumlah"
• Setelah perulangan selesai, cetak nilai dari variabel "jumlah"
• Selesai
2. Program Sorting dengan metode Bubble sort, untuk mengurutkan data sebanyak 10 data dalam array dat[10]:
// Program Sorting Bubble sort
#include <iostream> using namespace std;
int main() { int dat[10] = {5, 2, 8, 1, 9, 3, 7, 4, 6, 0}; int temp, a, b; int size = 10;
Copy code
for (a=1; a<size; a++) { for(b=size-1; b>=a; b--) { if( dat[b]<dat[b-1] ) { temp=dat[b-1]; dat[b-1]=dat[b]; dat[b]=temp; } } } // Cetak data yang sudah terurut for(int i=0; i<size; i++) { cout << dat[i] << " "; } return 0;
}
3. Contoh proses pencarian (Searching) data X, dengan metode Binary Search, pada suatu Array dengan 15 elemen:
• Data dalam Array : {2, 3, 5, 7, 8, 11, 13, 15, 18, 20, 22, 25, 30, 35, 40}
• Nilai X yang akan dicari : 25
• Mulai
• Buat variabel "awal" dengan nilai 0 dan "akhir" dengan nilai 14
• Buat perulangan sampai awal >= akhir
• Dalam perulangan, hitung "tengah" dengan (awal + akhir) / 2
• Cek apakah data pada index "tengah" sama dengan X
• Jika ya, cetak "Data ditemukan pada index: " dan nilai dari "tengah"
• Jika tidak, cek apakah data pada index "tengah" lebih besar dari X
• Jika ya, set "akhir" menjadi "tengah" - 1
• Jika tidak, set "awal" menjadi "tengah" + 1
• Setelah perulangan selesai, cetak "Data tidak ditemukan"
• Selesai
Semoga dengan pertanyaan yang sudah terjawab oleh MHaBi dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Mon, 17 Apr 23