Anda di halaman 1dari 3

SOAL KUIS II Algoritma dan Pemrograman (T0016) Tahun Ajaran 2009-2010 Soal pilihan berganda (bobot 40%) 1.

Diberikan penggalan program sebagai berikut (untuk soal 1 s/d 5):


void main() { int k, p, q[10]; printf(Masukan sebuah bilangan? ); scanf(%d, &p); while(p<0){ printf(Masukan sebuah bilangan? ); scanf(%d, &p); } for (k=0; k<=9; k++){ q[k] = p*p; printf(\n %d*%d = %d , p, p, q[k]); p--; } printf(\n P = %d , p); }

Apabila program dijalankan dan diinputkan angka 3, maka nilai q[0] adalah: A. 3 C. 9 B. 6 D. Masukan sebuah bilangan? 2. Apabila program dijalankan dan diinputkan adalah 5, maka output program adalah: A. 5 C. 25 B. 15 D. Masukan sebuah bilangan? 3. Apabila program dijalankan dan diinputkan angka 3, maka nilai P yang dicetak adalah: A. -3 C. -9 B. -7 D. Masukan sebuah bilangan? 4. Apabila program dijalankan dan diinputkan angka 3, maka nilai q[1] dan q[9] adalah: A. 9 dan 25 C. 9 dan 36 B. 4 dan 36 D. 4 dan 25 5. Apabila program dijalankan dan diinputkan angka 3, maka yang tercetak pada k=5 adalah: A. 5*5 = 25 C. 0*0 = 0 B. 1*-1 = 1 D. 2*-2 = 4 6. Struktur data yang terdiri atas kumpulan data dengan tipe data yang sama disebut: A. Array C. enum B. Struct D. pointer 7. Struktur data yang terdiri atas kumpulan data dengan tipe data yang sama atau berbeda dan untuk mengaksesnya menggunakan operator titik disebut: A. Array C. enum B. Struct D. union 8. Struktur data yang terdiri atas kumpulan data dengan elemen data yang sudah diketahui nilainya disebut: A. Array C. enum B. Struct D. union 9. Diketahui fungsi rekursif 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 B. 18 D. 46

10. Dari deklarasi fungsi berikut yang merupakan fungsi dengan passing by reference adalah: A. void Tukar(int A, int b); C. int Baca(int *bil); B. void Cetak(char ch); D. int Rata2(int data[10], int size); 11. 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(n*sizeof(int)); (float*)malloc(10*sizeof(float)); (double*)malloc(n*sizeof(double)); (int*)malloc(10*sizeof(int));

Untuk soal 12 dan 13 gunakan penggalan program berikut:


void main int int for (){ A[3][4] = {0,1,2,3,4,5,6,7} total = 0, i,j; ( i = 0,i <3; i++) for (j = 0 ; j < 4; j++) printf (%d, A[i][j]); total = total + A[i][j];

12. Berapakah nilai dari A[1][2] dan A[2][1] A. A. 0 dan 1 C. 0 dan 6 B. B. 1 dan 3 D. 6 dan 0 13. Berapakah nilai dari total dari program di atas A. 0 C. 28 B. 3 D. 21 14. Untuk pencarian pada kumpulan data yang tidak sort (acak), seperti berikut ini: 17 10 23 15 40 12 60 19 80 Maka metode pencarian yang paling tepat adalah metode pencarian A. Interpolation search C. Hashing search B. Binary search D. Sequential search 15. Proses sorting dengan metode insertion pada 500 data acak. Maka akan dilakukan proses putaran sebanyak: A. A. 399 C. 499 B. 299 D. 500 16. Tujuan utama dari proses pengurutan (sorting) data adalah: A. A. Untuk membuat data menjadi urut ascending B. Untuk membuat data menjadi urut descending C. Untuk mempercepat proses pengurutan data D. Untuk mempercepat proses pencarian data 17. Algoritma searching yang melakukan pencarian pada posisi relatif kunci terhadap data yang terurut disebut: A. A. Interpolation search C. Hashing search B. Binary search D. Sequential search 18. Algoritma sort yang melakukan perbandingan dua elemen yang berdampingan dan menukarnya jika kedua elemen tersebut belum terurut adalah algoritma sorting: A. A. Bubble sort. C. Merge sort B. Selection sort D. Quick sort. 19. Algoritma sorting yang mempartisi data menjadi dua bagian berdasarkan nilai pivot adalah: A. Bubble sort. C. Merge sort B. Selection sort D. Quick sort.

20. 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? A. A. 235 C. 225 B. 240 D. 250 Soal Essay (bobot 30%): 1. Tuliskan definisi sebuah fungsi int IsPrime(int bil) yaitu fungsi yang dapat menguji suatu bilangan input adalah bilangan prima atau bukan bilangan prima. 2. Buatlah simulasi untuk melakukan sorting secara ascending untuk deret bilangan ini : 10 16 15 34 45 22 18 a. Putaran 1 s/d kedua selection sort, b. Putaran 1 s/d ketiga bubble sort c. Putaran pertama quick sort Buatlah simulasi pencarian (searching) dengan metoda BINARY SEARCH dari deret berikut: 15 23 34 38 45 50 59 77 87 a. untuk menemukan bilangan 77 b. untuk menemukan bilangan 35

3.

Soal Kasus (bobot 30%) Tuliskan program dengan menggunakan array of struct untuk menangani data mahasiswa matakuliah Algoritma pemrograman. Program mempunyai fasilitas untuk menginputkan data record mahasiswa yang terdiri dari field NIM, Nama dan IPK dari keyboard dan menampilkan data tersebut. Disamping itu program juga akan mendeteksi mahasiswa yang mempunyai nilai tertinggi dan ditampilkan sebagai mahasiswa the best of class. Hal-hal yang harus dibuat adalah: a. Fungsi untuk menginputkan data mahasiswa sebanyak N buah b. Fungsi untuk mencari mahasiswa yang mempunyai nilai IPK tertinggi c. Fungsi untuk mengurutkan asc data mahasiswa berdasarkan IPK d. Fungsi untuk menampilkan data mahasiswa sesuai dengan tampilan di bawah e. Fungsi main() untuk menguji program. Contoh data mahasiswa adalah sebagai berikut: NIM Nama 1200400123 Tasya fadilla 1200400034 Agus Padriawan 1200400347 Irene susiyanti 1200400579 Pararto sumbodo 1200400106 Abraham sungkono The best of class is : Irene Susiyanti IPK 3.14 2.50 4.00 1.75 3.80

Anda mungkin juga menyukai