You are on page 1of 6

I.

Soal Pilihan (40 poin)
1. Yang dimaksud dengan one way parameter di passing parameter adalah
What is meant by one way parameter in passing parameter?#
a. passing by value
b. passing by address
c. passing by reference
d. passing by constant reference
2. Diketahui penggalan kode berikut
Carefully consider the following code fragment:#
int square (int n) {
return n * n;
}
int sum(int (*pf) (int k), int n) {
int s = 0;
for (int i=1; i <= n; i++) s+= (*pf) (i)
return s;
}
main() {
cout << sum(square, 4) << endl;
}
Apa keluaran dari penggalan kode di atas?
This code compiles and runs correctly. What is printed?
a.10
b. 16
c. 20

d. 30

3. Diketahui penggalan kode berikut
Carefully consider the following code fragment:#
main() {
int m, n, r;
cout << “Masukkan dua bilangan integer positif : “; cin >> m >> n;
if (m < n) { int temp = m; m = n; n = temp; }
cout << “GCD dari “ << m << “dan “ << n << “ adalah “;
while (n > 0) { r = m % n; m = n; n = r; }
cout << m << endl;
}
Jika dimasukkan m = 112 dan n = 532 maka keluaran dari kode di atas adalah
This code compiles and runs correctly. What is printed if m = 112 and n = 532?
a.18

b. 28

c. 38

4. Function overloading dibedakan berdasarkan

d. 48

46 10. c. Diketahui penggalan kode berikut Carefully consider the following code fragment:# main() { cout. Deallocated pointer dan Initialized pointer. b. Dua kasus yang dapat menyebabkan terjadinya dangling pointer adalah: These are two cases that can dangling pointer:# a. 123. Opsi berikut yang bukan merupakan fitur utama suatu bahasa OOP adalah This option which doesn’t has a main fiture in the OOP language are… # a.setf(ios::fixed). cout. Level akses anggota klas yang hanya dapat diakses oleh lingkungan internal klas itu sendiri dan semua klas turunannya adalah . 123. c. ADT 8. tipe parameter. volatile b. urutan parameter dan tipe parameter sequence and type of parameter d. banyak parameter dan urutan parameter quantity and sequence of parameter c. Allocated pointer dan Initialized pointer b. **123. template b. int& r = n++. virtual c. polimorfisme c. except… a. tipe parameter dan banyak parameter type and quantity of parameter b. Modifier berikut yang dapat digunakan untuk memodifikasi destructor adalah What is modifier that can be used to modified destructor?# a.Overloading function can be divided into:# a.456789 c. inheritance d. int& r = 44. What is printed? a. const d. 9. d.int& r= n. cout. Allocated pointer dan Uninitialized pointer d. static 6.width(8). banyak parameter dan urutan parameter type. **123. quantity. cout. cout << 123. } Keluaran dari penggalan kode berikut adalah This code compiles and runs correctly.fill(’*’).precision (2). int& r = sqrt(n). Opsi-opsi berikut adalah salah kecuali These options are wrong. Deallocated pointer dan Uninitialized 7. and sequence of parameter 5.46 d.45 b.456789 return 0.

. const dan reference b. pass by value b.# .private b. nilai yang sama untuk semua obyek pada class yang sama. OOP b. reference dan pointer c. friend 11. pass by constant reference 13. Structured Programming c. nilai yang tetap untuk semua obyek pada class yang sama constant value for all objects in the same classess d. Dalam passing parameter. pass by reference d. Pernyataan const int * const x = &y. x adalah pointer ke integer d. pointer dan const d. read as a.. nilai yang sama untuk semua obyek pada semua class same value for all objects in all classess c. formal parameter that is a duplicate actual parameter contained in. Istilah spaghetti code digunakan untuk mewakili paradigma The term of spaghetti code used to represent a paradigm # a.# a. pass by address c. public c. Tipe data yang harus diinisialisasi adalah# What is type of data that should inisiated?# a. Tipe memori yang dikenal di bahasa C/C++ adalah Memore type in C/C++ programming language is…. x adalah pointer ke konstanta integer c.: same value for all abjects in the same classess b. nilai yang tetap untuk semua obyek pada semua class constant value for all objects in all classess 12.# a. x adalah konstanta pointer ke integer b.Access level of class member that can be a access with the internal class environment it self and all inheritants class is ……# a. Procedural Programming 15. dibaca sebagai Statement: const int * const x = &y. protected d. reference dan pointer 14. Kata kunci static pada data member di dalam suatu class digunakan untuk membuat suatu variabel yang mempunyai: The key words of static in a class of data member can make a variable which has…. Unstructured Programming d. x adalah konstanta pointer ke konstanta integer 16. const. parameter formal yang merupakan duplikat parameter aktual terdapat di In passing parameter.

stack memory dan static memory stack and static memory dan stack memory static. c. const int getData() {return data.a. d. heap 17. heap d. passing by address and passing by reference. inline 19. The following options are wrong:# a. b. Soal Uraian. the correct option is… a. r dan n mempunyai different address and different value r and n have different anddress and different value d. (30 poin) 1.# a. heap and stack memory b.} c. r dan n mempunyai same address and same value r and n have a same address and same value b. static. r dan n mempunyai same address but different value r and n have a same address but different value c. passing by address dan passing by reference.} b. T operator-. static memory dan heap memory static and heap memory memory dan stack memory heap annd stack memory c. b. There are three methods how to passing parameters in C/C++ programming language: passing by value. what is sintax for overloaded pre decrement operator?# a. Ada banyak passing parameters yang dikenal di bahasa pemrograman tetapi hanya tiga metode yang sering digunakan di bahasa C/C++ yaitu passing by value.# a.(int). Fungsi const adalah fungsi yang tidak boleh memuat instruksi untuk mengubah nilai data anggota. int getData() const {return data. virtual . r dan n mempunyai different address but same value 20. sintaks untuk overloaded pre decrement operator adalah For the T class. Dari deklarasi int& r = n pilih opsi yang benar Statement: int& r = n. T :: operator-. Opsi-opsi berikut ini yang salah adalah: Const function is a function that should not include instructions for changing the value of the data members.().(). static c. (5 poin) Uraikan apa yang anda ketahui tentang ketiga metode passing parameter tersebut. void setData(int idata) {data = idata.} d. friend d. Untuk klas T.(int). void setData(int idata) const {data = idata.} 18. T operator-. II. (5 points) Describe all three methods how to passing parameter! . T :: operator-. Run-time polymorphism diimplementasikan menggunakan fungsi Run-time polymorphism is implemented using the function….

44.b. metode atau fungsi anggota. 77. } for(i=0. Operasi utama array adalah store dan retrieve. 33. (5 poin) Jika data masukan adalah (11. 88). i<n. Soal Kasus (30 poin) Array adalah suatu ADT. i++) a[i] = temp[i]. methods or member functions. Array main operations are store and retrieve. 22. Diketahui penggalan kode berikut: Carefully consider the following code fragment: //The perfect shuffle for an even number of element: void shuffle(int a[]. Mention anything that can be used as devalut value. passing by value lebih aman dalam arti tidak ada side effect walaupun tidak fleksibel! (5 points) Explain why passing by reference and passing by value are more secure or no side effect eventhough not flexible compare with passing by address! 02. Seperti halnya ADT lain. 66. Array is an ADT. # 03. (5 poin) Jelaskan kenapa jika dibandingkan dengan passing by address dan passing by reference. 44. (5 points) Write the main() function as a driver to test data inputs in question above. 88) apa keluaran dari kode tersebut. Mengapa nilai constant tidak dapat digunakan sebagai default value untuk reference variable? (10 points) Describe what do know about default arguments in C++. i < n/2. Similar with other ADT. array has data members and operations. temp[2*i+1] = a[n/2+i]. int n) { int temp[n]. 55. (5 poin) Berdasarkan data point a. } a. 33. 22. i++) { temp[2*i] = a[i]. Operasi store untuk menyimpan elemen e di indeks i array A[] adalah A[i] = e sedangkan operasi retrieve untuk mengambil suatu elemen dari array A[] di indeks i dan disimpan di elemen e adalah A[i] = e. What is printed?# b. Array’s element accessed by its position (first element). 66. (5 points) If data inputs are (11. array mempunyai data anggota dan operasi. 77. Elemen array diakses berdasarkan posisinya di dalam array relatif terhadap elemen pertama. Sebutkan apa saja yang dapat digunakan sebagai devalut value.(10 point) Uraikan apa yang anda ketahui tentang default arguments di C++. 55. Why constant value can not be used as the default value for the reference variable?# III. Store operation to save an element e at . tuliskan fungsi main() sebagai driver untuk menguji kode di atas. for(int i= 0.

semua fungsi anggota kecuali constructor dan destructor. Dalam desain ini. Selain itu anda harus menambahkan constructor dan destructor pada class tersebut.index i array A [] is a [i] = e while retrieving operation to take an element of the array A [] at index i and stored in element e is A [i] = e. Design it as a prototype except constructor and destructor. a. (10 points) Design array class according to ADT array above and access level of data member is private. . harus berbentuk prototype. access level of function is public. Use the scope resolution operator c. b. (10 poin) Tuliskan fungsi main() sebagai driver untuk menguji desain yang anda buat. (10 poin) Definisikan semua fungsi anggota di luar class Array. (10 poin) Desain class Array berdasarkan uraian ADT Array di atas dengan ketentuan level akses data anggota adalah private dan level akses fungsi anggota adalah public. Gunakan scope resolution operator :: (10 points) Define all member functions outside the class Array. (10 points) Write the mai() function as a test driver for the design you create. Add constructor and destructur in that class.