Soal KuiS Algo TOO16 – 2008/2009 Soal Pilihan ganda: (bobot 10%) 1. Struktur Struktur data yang terdiri terdiri atas kumpulan kumpulan data dengan dengan tipe data yang yang sama atau berbeda dan untuk mengaksesnya menggunakan operator titik disebut: A. Array C. enum D. union B. Struct
2. Struktur Struktur data yang terdiri terdiri atas kumpulan kumpulan data dengan dengan elemen elemen data yang sudah sudah diketahui nilainya disebut: C. enum A. Array B. St Struct D. union
3. Diketahui Diketahui fungsi rekursif rekursif berikut: berikut: int Ulangi(int a, int b) { if(b == 0) return(a); else return(Ulangi(3*a, b-1)); }
Apabila fungsi tersebut dipanggil dengan Ulangi(2, 2); maka hasilnya adalah: A. 12 C. 24 D. 46 B. 18
4. Dari deklarasi deklarasi fungsi fungsi berikut berikut yang merupakan merupakan fungsi fungsi dengan passing passing by reference adalah: C. int Baca(int *bil); A. void Tukar(int A, int b); B. void Cetak(char ch); D. int Rata2(int data[10], int size); 5. Untuk membuat alokasi memori dinamis sebesar 10 bilangan integer dari
deklarasi sebuah array berikut: int *arr; adalah: A.
A. B. C. D.
arr arr arr arr
= = = =
(int*)malloc( (int*)malloc(n*size n*sizeof(int) of(int)); ); (float*)mallo (float*)malloc(10*s c(10*sizeof(f izeof(float)) loat)); ; (double*)mall (double*)malloc(n*s oc(n*sizeof(d izeof(double) ouble)); ); (int*)malloc(1 (int*)malloc(10*siz 0*sizeof(int eof(int)); ));
6. Proses Proses sorting dengan dengan metode metode insertion insertion pada 500 500 data acak. Maka akan akan dilakukan proses putaran sebanyak: A. C. 499 A. 399 B. 299 D. 500 7. Tujuan utama utama dari dari proses proses pengurutan pengurutan (sorting) (sorting) data data adalah: A. A. Untuk memb membuat uat data menjad menjadii urut ascendin ascending g B. Untuk memb membuat uat data menjad menjadii urut descend descending ing C. Untuk memp memperce ercepat pat proses proses pengurutan pengurutan data data D. Untuk mempercepa mempercepatt proses pencarian data 8. Algoritma searching yang melakukan pencarian pada posisi relatif kunci
terhadap data yang terurut disebut: A. A. Interpolation search C. Ha H ashing search B. Binary search D. Sequential search
9. Algoritma sort yang melakukan perbandingan dua elemen yang berdampingan dan menukarnya jika kedua elemen tersebut belum terurut adalah algoritma sorting: A. C. Merge sort A. Bubble sort. B. Selection sort D. Quick sort. 10. Diketahui sebuah list DataXYZ terdiri 301 record, dan kunci terrendah 50 dan tertinggi 650. Target yang ingin dicari adalah 500. dengan metode Interpolation search dimanakah perkiraan posisi target? 11. A. 235 C. 225 B. 240 D. 250
Soal Essay: (bobot 40%) 1. Buatlah fungsi untuk mencari faktor genap dari suatu bilangan input. 2. Buatlah fungsi untuk mengurutkan data character sebanyak 20 buah. 3. Bila diketahui data sebagai berikut: A, B, H, I, J, F, K. maka dengan
menggunakan algoritma InsertionSort, bagaimana komposisi data hasil pengurutan pada putaran ke-5. (simulasikan) 4. Buatlah simulasi pencarian (searching) dengan metoda BINARY SEARCH 34 18 25 untuk menemukan bilangan 25 dari deret berikut: 15 23 40 19 27 37 Jawaban soal essay mudah2an bener wakak. 2. void sorting() { int I,j; int temp; int nilai,banyak;
for(i=0;iI;j--) { If (stcmp(nilai[j],nilai[j-1]<0) { Strcpy(temp,nilai[j]); Strcpy(nilai[j],nilai[j-1]); Strcpy(nilai[j-1],temp); } } } } 3. simulasi pencarian dengan etode binary search. 15 18 19 23 25 27 34 37 (0)
(1)
(2)
(3)
(4)
(5)
Mid =( index 0 + index trakir)/2 =(0+8)/2 =4 Midnya adalah index ke 4 >> 25. Keteranganya adalah 25. Berarti keynya adalah 25.
(6)
(7)
40 (8)
Soal Kasus: (bobot 40%) Buatlah program lengkap untuk menginputkan sejumlah data yang bertipe character, kemudian program dapat menampilkan data tersebut dalam keadaan urut secara ascending dan descending serta dapat menampilkan data tertinggi data terendah dan nilai tengah (median) dari data yang sudah terurut tersebut. Program dibuat dengan fungsi-fungsi dan menggunakan menu dengan tampilan menu sebagai berikut: Menu program KUIS ALGO T0016 1. Input data char 2. Tampil urut ascending 3. Tampil urut descending 4. Tampil min, max, dan median 5. Exit 1.
1.
#include #include #include #include #include #include void menu() { printf("Menu program KUIS ALGO T0016\n"); printf("1. Input data char\n"); printf("2. Tampil urut ascending\n"); printf("3. Tampil urut descending\n"); printf("4. Tampil min, max, dan median\n"); printf("5. Exit\n"); }