Cari Blog Ini

Minggu, 18 September 2011

Soal-soal C++


1.    Pernyataan yang paling tepat mengenai definisi Sistem Terdistribusi adalah :

a. Dua atau lebih komputer yang saling berinteraksi dan berkomunikasi melalui media
    komunikasi/transmisi dengan tujuan resource sharing
b. Kumpulan komputer mandiri yang terhubung dengan jaringan komputer dan dilengkapi
    dengan perangkat lunak system terdistribusi, untuk membentuk suatu layanan
    komputerisasi yang terintegrasi
c. Suatu jaringan komputer yang menggunakan teknologi internet dan menggunakan
    protokol TCP/IP
d. Kumpulan perangkat elekotronik (komputer, handphone, laptop,palmtop) yang dapat
     saling berkomunikasi

2.    Di bawah ini adalah contoh dari sistem terdistribusi, kecuali :

a. Internet                                          c. Mainframe
b. WWW                                             d. Intranet

3.    Karakteristik sistem terdistribusi adalah, kecuali :

a. Openness                                                 c. Reasoning
b. Heterogeneity                                d. Security

     4. Pertumbuhan sumber daya tidak boleh berpengaruh pada sistem dan software. Pernyataan
         tersebut termasuk karakteristik dari sebuah system terdistribusi yang :

a. Openness                                                 c. Reasoning
b. Heterogeneity                                d. Scalability

     5. Yang paling dominan dalam “transparency” sistem terdistribusi adalah“transparency”:

a. Scaling                                           c. Performance
b. Mobility                                          d. Access and location

     6. Menjaga kebenaran kinerja sistem dan ketersediaan layanan, termasuk pada :

a. Fault Tolerance                               c. Transparency
b. Reasoning                                       d. Jawaban A, B dan C salah

     7. Dalam karakteristik “concurrency” sistem terdistribusi, dibutuhkan sebuah metode atau     
         cara, yaitu :

a. Synchronisation dan Inter-process Communication
b. Protocol UDP dan TCP
c. Komunikasi Client dan Server
d. Tidak ada jawaban yang tepat

     8. Komunikasi yang didukung oleh proses/objek yang terdistribusi, dapat menggunakan  
         teknologi :

a. Java RMI                                         c. Client Server
b. Wireless                                         d. Jawaban A, B dan C salah

     9. Model arsitektur sistem terdistribusi yang paling umum digunakan dan merupakan
         arsitektur dasar adalah model :

a. Client server                                   c. Proxy servers
b. Multiple servers                               d. Peer processes

   10. Suatu model arsitektur sistem terdistribusi yang bertujuan untuk meningkatkan
        “performance” dan “reliability”, yaitu model :

a. Multiple servers                               c. Peer processes
b. Client server                                   d. Proxy servers
    11. Untuk mengurangi beban dan menambah tingkat keamanan suatu jaringan komputer,
         digunakan suatu model arsitektur sistem terdistribusi yang berbentuk :

a. Client server                                   c. Multiple servers
b. Peer processes                                d. Proxy servers

    12. Untuk alasan supaya respon yang dilakukan lebih cepat dan interaktif,sebuah sistem
          terdistribusi dapat berbentuk sebuah model arsitektur :

a. Peer Processes                                c. Proxy servers
b. Client server                                   d. Multiple Servers

    13. Tipe jaringan komputer yang memiliki ciri, bandwith yang tinggi dan latency yang rendah   
          adalah jaringan :

a. LAN                                                c. WAN
b. MAN                                               d. Ring

    14. Tipe jaringan komputer yang memiliki ciri, bandwith yang rendah dan latency yang tinggi
          adalah jaringan :
a. LAN                                                c. WLAN
b. MAN                                               d. WAN

    15. Teknologi WPAN menggunakan media transmisi/komunikasi :

a. UTP                                                c. BlueTooth
b. Fiber Optic                                     d. BNC

    16. WLAN singkatan dari :

a. Wireless for Low Area Network
b. Waveband Local Area Network
c. Wireless Local Area Network
d. Waveband for Low Area Network

    17. Metode transmisi yang digunakan pada jaringan komputer adalah :

a. TCP/IP                                            c. Packet & Data Streaming
b. UDP & TCP                                      d. Synchronous & Asynchronous

    18. “Broadcast switching” biasanya digunakan pada :

a. Ethernet                                         c. TCP/IP
b. Jaringan telepon                                      d. ATM

    19. Dibawah ini adalah protokol yang terdapat dalam lapisan aplikasi pada lapisan OSI, yaitu :

a. Ethernet MAC                                  c. ATM
b. UDP                                                d. SMTP

    20. Pada lapisan transport (OSI layer) terdapat beberapa protokol, diantaranya adalah :

a. SMTP                                              c. UDP
b. ATM                                               d. Ethernet MAC

    21. Lapisan network pada lapisan OSI terdapat protokol :

a. SMTP                                              c. UDP
b. ATM                                               d. Ethernet MAC




  22. Informasi yang berisi “next hop” dalam router disebut sebagai :

a. Routing                                          c. PC Router
b. Routing table                                  d. Cisco Router

 23. Standar yang digunakan untuk Wireless LAN adalah :

a. IEEE 802.2                                       c. IEEE 802.3
b. IEEE 802.11                                     d. IEEE 802.50

 24. Pada MobileIP terdapat agent yang disebut sebagai :

a. Client & Server agent                      c. Jawaban a dan b benar
b. Home & Foreign agent                              d. Jawaban a dan b salah

 25. Tipe interaksi dalam sistem terdistribusi, adalah :

a. Synchronous dan Asyncronous
b. Direct dan Undirect
c. TCP dan UDP
d. Master dan slave

 26. Pernyataan yang tepat untuk socket adalah :

a. Abstraksi komunikasi
b. Alamat socket = alamat IP + Port
c. Konsep IPC diwujudkan dengan socket
d. Jawaban A, B dan C benar

 27. Salah satu jenis komunikasi yang terdapat dalam “Inter-Process Communication (socket)     
       adalah :

a. Komunikasi langsung                       c. Komunikasi datagram
b. Komunikasi telegram                       d. Komunikasi data

 28. Komunikasi yang memungkinkan sebuah objek memanggil method objek lain yang berada di
       remote process, disebut sebagai :

a. Marshalling                                     c. RMI
b. RPC                                                d. Multicast

 29. Proses yang dilakukan oleh pengirim pesan, untuk menerjemahkan suatu struktur data ke   
       “external data representation”, sebelum data tersebut ditransmisikan dalam suatu pesan,
        disebut sebagai :

a. RMI                                                 c. Marshalling
b. RPC                                                d. Multicast

 30. Pengiriman sebuah pesan dari suatu proses ke suatu “group of processes” disebut sebagai :

a. RMI                                                 c. Multicast
b. RPC                                                d. Marshalling

 31. Jika terdapat sebuah proses yang memanggil dan yang dipanggil berada pada satu host,
       disebut sebagai :

a. PPC (Process Procedure Call)
b. RPC (Remote Procedure Call)
c. HPC (Host Procedure Call)
d. LPC (Local Procedure Call)



 32. Komponen inti dari sistem operasi terdistribusi yang bertugas mengabstraksikan perangkat
       keras (interupsi, cache) adalah :

a. Communication Manager                          c. Thread Manager
b. Memory                                                   d. Supervisor

 33. Thread juga sering disebut sebagai :

a. Program yang berjalan                                       c. Kernel
b. Processes                                                          d. Lightweight Processes

 34. Thread mempunyai beberapa arsitektur, antara lain : ,Kecuali

a. Thread per process                                   c. Thread per object
b. Thread per connection                                       d. Thread per request

 35. File system memiliki beberapa karakteristik, diantaranya operasi pada sebuah file. Dibawah
       ini yang bukan termasuk operasi file adalah :

a. Modify attributes                                      c. Creation
b. Access control                                          d. Invocation

 36. File service terdistribusi memiliki beberapa bentuk, diantaranya adalah :

a. RPC                                                          c. Stateful
b. Connectionless                                         d. UDP

 37. Contoh sebuah File System adalah :

a. Kernel                                                      c. RCP
b. NFS                                                          d. NOS

 38. Pada NFS caching terjadi pada :

a. Peer to peer                                             c. Jawaban A dan B benar
b. Client & Server                                         d. Jawaban A dan B salah

 39. AFS kepanjangan dari :

a. Asynchronous File System                         c. Access File System
b. Andrew File System                                   d. Jawaban A, B dan C salah

 40. Yang bukan karakteristik dari software agents adalah :

a. Autonomous                                            c. Intellegent & Learning
b. Hybrid & Multi Agent System                     d. Mobility & Stationary

 41. Suatu Agent yang mempunyai kemampuan untuk bisa cepat beradaptasi dengan lingkungan
       baru dimana dia berada adalah agent :

a. Mobility                                                   c. Reactive
b. Collaborative                                           d. Hybrid

 42. Pengklasifikasian arsitektur paralel oleh Michael Flynn, membedakan komputer paralel ke
       dalam empat kelas berdasarkan konsep aliran data dan aliran instruksi, yaitu : SISD, SIMD,
       MISD, dan MIMD. Pengklasifikasian tersebut dikenal dengan nama :

a. Flynn Class                                               c. Pararel Flynn
b. Flynn Concept                                          d. Taknonomi Flynn




43.  Proses didistribusikan ke beberapa prosesor independent
       Berbagi sumber daya, termasuk memori dan prosesor
       Operasi tiap prosesor secara independent dan simultan
       Tiap prosesor menjalankan programmnya sendiri
     
      Pernyataan diatas merupakan karakteristik dari :

a. SISD                                                c. MISD
b. SIMD                                              d. MIMD

44. Paradigma pengolahan pararel yang membedakan komputer pararel ke dalam dua kelas
      berdasarkan ada atau tidaknya common global clock, yaitu synchronous dan asynchronous,
      dikemukakan oleh :

a. T. G. Lewis                                     c. Michael Flynn
b. Thomas Mendle                               d. Jawaban A, B dan C salah

45. PVM adalah perangkat lunak implementasi algoritma pararel. Kepanjangan dari PVM adalah :

a. Parallel Virtual Machine
b. Parallel Virtual Mechanism
c. Program Virtual Machine
d. Program Virtual Mechanism

46. Perangkat lunak implementasi algoritma pararel, selain PVM terdapat juga MPI. Kepanjangan
     dari MPI adalah :

a. Media Parallel Interface
b. Media Passing Interface
c. Message Parallel Interface
d. Message Passing Interface

 47. Dalam keamanan sistem terdistribusi, terdapat beberapa teknik yang bisa gunakan, yaitu
      (kecuali) :

a. Firewall                                          c. Password e-mail
b. Algoritma kriptografi                       d. Akses control

 48. Firewall bertugas untuk memonitor dan mengontrol semua komunikasi didalam dan diluar
       Intranet. Kontrol firewall dilakukan terhadap (kecuali) :

a. Service                                           c. Computer
b. Behaviour                                                d. User

 49. Tipe program jahat yang ditempelkan dalam satu program yang menyebabkan penggandaan
      dirinya, disisipkan kesatu program lain atau lebih. Tipe program / kode jahat tersebut
      disebut sebagai :

a. Trojan Horse                                  c. Virus
b. Worm                                             d. Bacteria
 50. Berikut beberapa header yang terdapat dalam C++ , Kecuali ..........
          a. Cdate                                             c. Cmath
          b. Ctime                                             d. Cstring



Universitas Bina NusantaraGanjil / Genap *) 20    /  20 Tahun Ajaran 20      / 20 
Tengah Semester
Akhir Semester
Semester PendekFAK./JURUSAN :

MATA UJIAN : T0474- Bahasa PemrogramanBerorientasi ObyekN.I.M :

HARI / TANGGAL :DOSEN : TEAMNAMA

:

KELAS : PAGIWAKTU : 100 MENITSIFAT UJIAN : TUTUP / BUKA BUKU *)KALKULATOR : YA / TIDAK *)*) Coret yang tidak perluTANDATANGAN:

Naskah dimasukkan ke dalam buku ujian dan dikumpulkan kembali !!!
  
Soal-soal Pilihan Ganda (Beri tanda silang ( X ) pada jawaban yang benar pada lembar jawaban:(Nilai 50%)
1.

Apabila program C++ terdiri dari lebih dari satu fungsi (modul), maka pernyataan yang benar di bawah ini adalah :
(A).
Fungsi yang pertama kali dijalankan adalah fungsi yang paling bawah dari program C++ tersebut.
 
(B).
Fungsi yang pertama kali dijalankan adalah fungsi main() dari program C++ tersebut.
(C).
Fungsi yang pertama kali dijalankan adalah fungsi yang paling atas dari program C++ tersebut.
(D).
Semua jawaban di atas benar.2.

Alasan kenapa perlu membuat program berorientasi objek adalah:
(A).

Mempercepat proses pembuatan program.
(B).

Memudahkan pembuatan program dengan menggunakan program yang telah ada dan mengembangangkannya(Reusability dan Extensibility).
(C).

Memudahkan penulisan dan pemeliharaan program.
(D).

Semua jawaban di atas benar.3.

Pernyataan  yang benar di bawah ini adalah :
(A).
Setiap program C++ terdiri dari  satu atau lebih fungsi.
(B).
Setiap program C++ hanya terdiri dari satu fungsi saja.
(C).
Fungsi yang pertama kali dikerjakan tidak harus fungsi main().
(D).
Tidak ada jawaban yang benar.4.

Pernyataan yang benar di bawah ini adalah :
(A).
Dalam Built In Data Type ada 5 buah Modifier yaitu : int, float, double, char, void.
(B).
Dalam Built In Data Type ada 4 buah Tipe Data Dasar yaitu : unsigned, signed, short, dan long.
(C).
Ada 2 jenis tipe data pada C++ yaitu: Built In Data Type dan Abstract data Data Type.
(D).
Abstract Data Type merupakan tipe data yang telah disediakan oleh kompiler C/C++.5.

Untuk menampilkan tiga buah data ( misal:
int  INT1, INT2, INT3;
) ke monitor, digunakan object class iostream dalambentuk stream yang benar adalah:
(A).
cin >> INT1, INT2, INT3;
(B).
cout << INT1 << INT2 << INT3;
(C).
cin << INT1 << INT2 << INT3;
(D).
cout >> INT1 >> INT2 >> INT3;
 1
Description: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/1-dcf4c80559.pngDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/1-dcf4c80559.pngDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/1-dcf4c80559.pngDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/1-dcf4c80559.pngDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/1-dcf4c80559.png
 
6.

Untuk membaca tiga buah data ( misal:
float FLOAT1, FLOAT2, FLOAT3
)

dari keyboard, digunakan object classiostream dalam bentuk stream yang benar adalah:
(A).
cin >> FLOAT1 >> FLOAT2 >> FLOAT3;
(B).
cin << FLOAT1,  FLOAT2 ,  FLOAT3;
(C).
cout << FLOAT1 << FLOAT2 << FLOAT3;
(D).
cout >> FLOAT1 >> FLOAT2 >> FLOAT3;7.

Deklarasi variabel yang benar di bawah ini adalah :
(A).

float unsigned long
Biaya_Sewa_Rumah  500000;
(B).

long float
Biaya  Sewa  Rumah=500000;
(C).

long float
Biaya_Sewa_Rumah=500000;
(D).

Long Float
Biaya-Sewa-Rumah=500000;Ngga ada yang bener, yang bener, klo maw:
unsigned long int
Biaya_Sewa_Rumah =500000;
//mendekati jawaban A

long
Biaya_Sewa_Rumah =500000;
//mendekati jawaban B, C, D

float
Biaya_Sewa_Rumah =500000;
//mendekati jawaban B, C, D
 float long
Biaya_Sewa_Rumah =500000;
//mendekati jawaban B, C, D

//catatan, coba deh yang "long float" di Borland C++, pasti ngga bisa, bisanya//cuman "float long", aneh kan?
 8.

Pemberian nama variabel yang benar adalah:
(A).
Panjang maksimum adalah 255 karakter (ANSI).
(B).
Tidak membedakan huruf kecil atau huruf besar.
(C).
Boleh menggunakan kata-kata kunci (keywords) sebagai variabel.
(D).
Diawali dengan huruf atau garis bawah (_ ) dan baru boleh dikuti dengan angka, huruf dan garis bawah.9.

Pernyataan mengenai konstanta (
const
) di bawah ini  mana yang benar :
(A).
Nama constant dapat dimulai dengan menggunakan angka.
(B).
Pada C++, deklarasi constant membutuhkan alokasi memori.
(C).
Ada 2 jenis constant yaitu Macro-based Constant dan Named Constant (Formal).
(D).
Constant adalah identifier yang nilainya bisa berubah selama program berjalan.10.

Bila diketahui tiga buah bilangan :
int
i = 79, j = 5;  dan
float
k = i / j;  maka pernyataan:cout << “k = “;  cout.width(5); cout.precision(2);  cout << k << endl;  akan manampilkan hasil di bawah ini:
(A).
k =  15.8
(B).
k =  4.00
(C).
k =    15
(D).
k =    1611.

Bila diketahui tiga buah bilangan :
float
i = 79.0;
int
j = 5;
float
k = i / j;  maka pernyataan:cout << “k = “; cout.width(5); cout.precision(2);  cout << k << endl;  akan manampilkan hasil di bawah ini:
(A).
k =  15.8
(B).
k =  4.00
(C).
k =    15.00
(D).
k =    16.0012.

Pernyataan yang benar mengenai Akses anggota klass (
class
) di bawah ini adalah:
(A).

Protected 
adalah bagian class yang hanya dapat diakses oleh anggota dari class itu sendiri.
(B).

Public
adalah bagian class yang  dapat diakses oleh anggota dari class itu sendiri maupun dari luar class.
(C).

Private
adalah bagian class yang hanya dapat diakses oleh anggota dari class itu sendiri dan anggota class   turunannya.
(D).
Semua jawaban di atas benar.13.

Untuk mendeklarasikan suatu kumpuln data yang terdiri dari 2 baris dan 3 kolom digunakan pernyataan yang benar dibawah ini adalah:
(A).

int
Jumlah[2,3] = { 3, 5, 7, 4, 6, 8 };
(B).

int
Jumlah[2][3] = 3, 5, 7, 4, 6, 8;
(C).  int
Jumlah[2][3] = { 3, 5, 7, 4, 6, 8 };
(D).

int
Jumlah(2,3)  = { { 3, 5, 7 }, { 4, 6, 8 } };Ngga ada yang bener, yang bener, klo maw:
int
Jumlah[2][3] = {{3,5,7}, {4,6,8}};
//mendekati jawaban D


14.

Deklarasi konstanta di bawah ini mana yang benar :
(A).

const unsigned int
Jumlah – Partai  24 ;
(B).

#define
Jumlah – Partai    24
(C).

const unsigned
Jumlah   Partai = 24;
(D).

#define
Jumlah_Partai   24
 2
Description: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpgDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/2-ee1402d249.jpg
 
15.

Penggunaan struktur kondisi seleksi bertingkat:  perintah:

if 
,
untuk menyatakan pilihan selain dari kondisi yang adadigunakan :
(A).
 
otherwise (B). else
 
(C).
 
default
 
(D).

else if 
 16.

Penggunaan struktur kondisi seleksi:
switch – case
,
untuk menyatakan pilihan selain dari nilai konstanta yang adadigunakan :
(A).

otherwise (B).

else

(C).

default

(D).

else if 
  17.

Pernyataan
Array
yang benar di bawah ini adalah :
(A).
Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya berlainan.
(B).
Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya sama atau berlainan.
(C).
Array adalah struktur data yang terdiri dari kumpulan variabel yang tipe datanya sama.
(D).
Semua jawaban di atas benar.18.

Pernyataan tentang struktur  (
struct
) yang benar di bawah ini adalah:
(A).
Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data sama.
(B).
Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data berlainan.
(C).
Struktur merupakan struktur data yang terdiri dari satu atau lebih variabel yang mempunyai tipe data sama atauberlainan.
(D).
Tidak ada jawaban yang benar.19.

Pernyataan yang benar mengenai Object Oriented Programming di bawah ini adalah:
(A).
Objek merupakan gabungan antara data dan fungsi menjadi satu kesatuan serta hubungan antar anggotanya.
(B).
Definisi objek dalam Pemrograman Berorientasi Objek (C++) menggunakan keyword:
class
.
(C).
Akses anggota data (
Data Member 
) suatu class tidak bisa langsung, tetapi hanya melalui method (
Fungsi Member 
).
(D).
Semua jawaban di atas benar.20.

Deklarasi yang benar mengenai suatu class yang dinamakan Karyawan di bawah ini adalah:
(A).

(B).

class
Karyawan { 
public:char
Id_Karyawan[10]; 
char
Nama[30]; 
float
Gaji; 
private:
Karyawan() { Id_Karyawan = “ “;Nama = “ “;  Gaji = 0; }Karyawan(
char
*id,
char
*nm,
float
gj){  Id_Karyawan = id;  Nama = nm;Gaji = gj;  } 
void
Tampil() {  cout << “Id = “ <<Id_Karyawan << “\nNama = “ <<“\nGaji = “ << Gaji << endl; }~Karyawan() {};};

class
Karyawan { 
private:char
Id_Karyawan[10]; 
char
Nama[30]; 
float
Gaji; 
public:

void
Karyawan() {strcpy(Id_Karyawan, “ “);strcpy(Nama, “ “);  Gaji = 0; } 
void
Karyawan(
char
*id,
char
*nm,
float
gj){  strcpy(Id_Karyawan, id);strcpy(Nama, nm);  Gaji = gj;  } 
void
Tampil() {  cout << “Id = “ << “\n”<<  “Id = “ << Id_Karyawan << “\n”<< “Nama = “ << Nama = “ << “\n”<< “Gaji = “ << Gaji << endl; }~Karyawan() {};     
              
 3
Description: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpgDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpgDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpgDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpgDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpgDescription: http://htmlimg3.scribdassets.com/9kjpyv55tsvdutc/images/3-19bd7926a8.jpg
 
 (C).

(D).
Semua jawaban di atas benar.               BTW, pilihan jawaban C itu dah hampir bener, cuman cukup buang/hapus yang aq kase highlight merah ajah.
 
class
Karyawan { 
private:char
Id_Karyawan[10]; 
char
Nama[30]; 
float
Gaji; 
public:
Karyawan() {strcpy(Id_Karyawan, “ “);strcpy(Nama, “ “);  Gaji = 0; }Karyawan(
char
*id,
char
*nm,
float
gj){  strcpy(Id_Karyawan, id);strcpy(Nama, nm);  Gaji = gj;  } 
void
Tampil() {  cout << “Id = “ << “\n”<<  “Id = “ << Id_Karyawan << “\n”<< “Nama = “ << Nama = “ << “\n”<< “Gaji = “ << Gaji << endl; }~Karyawan() {};};


LEMBAR JAWABAN SOAL PILIHAN GANDA No A B C D

No A B C D1

11

2

12

3

13

4

14

5

15

6

16

7

17

8

18

9

19

10

20

           4
Description: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/4-79df391b1d.png
Description: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/4-79df391b1d.pngDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/4-79df391b1d.pngDescription: http://htmlimg1.scribdassets.com/9kjpyv55tsvdutc/images/4-79df391b1d.png
 
Essay (Nilai 50%):
1.

Berikan keterangan (
komentar
) pada setiap baris pada program di bawah ini (
Nilai 20%
):                     2.

Kasus (
Nilai 30%
):Buatkan program C++ lengkap menggunakan prinsip PBO (
class
) yang lengkap dari objek-objek seperti di bawah ini:          
#include
<iostream.h>                                  // menambahkan pustaka iostream
#include
<conio.h>                                       // menambahkan pustaka conio
#define
PHI  3.14   //  mendefinisikan constanta macro 
void
Masuk (
float
Jari2 );                              //  membuat function prototype untuk method masuk 
float
Hitung (
float
Jari2 );    //  membuat function prototype untuk method hitung
void
Tampil (
float
Luas );  //  membuat function prototype untuk method tampil

void
main()    //  merupakan bagian program yg akan dijalankan pada awal eksekusi{     //  …………………………………………………………………………clrscr();    //  membersihkan layar 
float
Jari_jari, Luas;   //  mendeklarasikan variabel yg dibuthkanMasuk ( Jari_jari );   //  memanggil fungsi masuk Luas = Hitung ( Jari_jari );  // menghitung luas dengan memanggil fungsi hitungTampil ( Luas );   //  memanggil fungsi untuk mencetak hasil (output program)getch();    //  menghentikan layar dengan meminta input sembarang dari pengguna}     //  ………………………………………………………………………… 
void
Masuk ( float Jari2 )   //  fungsi yg dipake untuk meminta input jari-jari{     //  …………………………………………………………………………cout << “Masukkan Jari-jari lingkaran=”;   //  mencetak pertanyaancin >> Jari2;    //  mengambil jari-jari}     //  BTW!! Fungsi ini ERROR, harusnya dy passing by reference//  bukannya by value ckckck, jadinya yg bener adalah// 
void
Masuk ( float &Jari2 ) perhatikan ada tanda ampersand-nya (&) 
float
Hitung
( float
Jari2
)
//  fungsi yg dipake untuk hitung luas lingkaran{     //  ………………………………………………………………………… 
return
PHI * Jari2 * Jari2;    //  langsung menhitung dan mengembalikan nilai yg telah diproses}     //  ………………………………………………………………………… 
void
Tampil (
float
Luas )   //  fungsi yg dipake untuk cetak hasil{     //  …………………………………………………………………………

cout
<< 
“Luas Lingkaran = “ << Luas //  mencetak kata-kata pembuka dan output hasil hitungcout << end;    //  tidak ada symbol end dalam iostream.h yang benar harusnya endl}     //  …………………………………………………………………………

 Id  : B0001Nama : AyamJumlah_Kaki : 2Id  : B0002Nama : AnjingJumlah_Kaki : 4 Id  : B0003Nama : TikusJumlah_Kaki : 4 5
Description: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpgDescription: http://htmlimg4.scribdassets.com/9kjpyv55tsvdutc/images/5-bd08853fca.jpg
 
 Dimana program mempunyai tugas memberikan nama awal pada objek-objek tersebut di atas, danuser bisa memasukkan data pada objek-objek tersebut di atas, serta dapat menampilkan data-datanya. Jangan lupa ada program utama yang dapat menciptakan 3 buah objek, dan mengaksesfungsi member dari class yang ada. 
Jawab :
#include <iostream.h>#include <string.h> 
class
Hewan {
private
char
Id[6]; 
char
Nama[100]; 
int
Jumlah_Kaki; 
public
:Hewan(
char
Id[],
char
Nama[],
int
Jumlah_Kaki) {strcpy(
this
->Id, Id);strcpy(
this
->Nama, Nama); 
this
->Jumlah_Kaki = Jumlah_Kaki;}  
void
SetId(
char
Id[]) {strcpy(
this
->Id, Id);} 
void
SetNama(
char
Nama[]) {strcpy(
this
->Nama, Nama);} 
void
SetJumlah_Kaki(
int
Jumlah_Kaki) {
this
->Jumlah_Kaki = Jumlah_Kaki;} 
char
*GetId() {
return
Id;} 
char
*GetNama() {
return
Nama;} 
int
GetJumlah_Kaki() {
return
Jumlah_Kaki;} ~Hewan() {}}; 
void
GantiData(Hewan &objHewan,
char
NamaHewan[]) { 
char
Pilihan; 
char
Id[6]; 
char
Nama[100]; 
int
Jumlah_Kaki; 
 6
 
cout << endl<<"Ingin ganti data "<< NamaHewan <<"? [y/n]: "; cin >> Pilihan; cin.clear(); cin.sync();  
if
(Pilihan =='y') {cout <<"Id "<< NamaHewan <<": "; cin >> Id; cin.clear(); cin.sync();objHewan.SetId(Id); cout <<"Nama "<< NamaHewan <<": "; cin.getline(Nama,100); cin.clear(); cin.sync();objHewan.SetNama(Nama); cout <<"Jumlah Kaki "<< NamaHewan <<": "; cin >> Jumlah_Kaki; cin.clear(); cin.sync();objHewan.SetJumlah_Kaki(Jumlah_Kaki);}} 
void
CetakData(Hewan objHewan,
char
NamaHewan[]) {cout << endl<< NamaHewan <<":"<< endl<<"Id          = "<< objHewan.GetId() << endl<<"Nama        = "<< objHewan.GetNama() << endl<<"Jumlah Kaki = "<< objHewan.GetJumlah_Kaki() << endl;
void
main() {Hewan objAyam("B0001","Ayam", 2); Hewan objAnjing("B0002","Anjing", 4); Hewan objTikus("B0003","Tikus", 4);  GantiData(objAyam,"objAyam");GantiData(objAnjing,"objAnjing");GantiData(objTikus,"objTikus"); CetakData(objAyam,"objAyam");CetakData(objAnjing,"objAnjing");
 7
 
CetakData(objTikus,"objTikus"); cin.get();}

3.

Buat program C++ untuk membuat perhitungan besarnya potongan harga pembelian denganketentuan sebagai berikut:

Memiliki fungsi untuk memasukkan data dari keyboard data sebagai berikut:

No, Id_Barang, Nama Barang, Harga Barang, Jumlah Item Barang

Memiliki fungsi untuk menghitung potongan harga dan Total Pembelian dengan aturan:

Jika total harga pembelian barang di bawah 250,000 tidak mendapat potongan harga.

Jika total harga pembelian barang antara 250,000 s/d 500,000 akan mendapatkan potonganharga sebesar 5% dari total harga pembelian per item.

Jika total harga pembelian di atas 500,000 s/d 1000,000 akan mendapatkan potongan hargasebesar 10% dari total harga pembelian per item.

Jika total harga pembelian di atas 1000,000 akan mendapatkan potongan harga sebesar 20%dari total harga pembelian per item.

Memiliki fungsi untuk menampilkan daftar barang yang dibeli beserta harga total dan potonganharganya.

Contoh tampilan seperti terlihat di bawah ini:         012345678901234567890123456789012345678901234567890123456789012345678901234No  Id_Barang    Nama Barang Harga Barang   Jumlah Item Total Harga Potongan1    M0001    Meja Tamu    70,000    22    M0002    Meja Belajar  350,000  13    K0001    Kursi Tamu    60,000  84    K0002    Kursi Belajar 250,000  15    L0001    Lemari Buku 650,000  2 
Jawaban:
#include <iostream.h>#include <string.h> 
class
DataBarang {
private
int
No; 
char
Id_Barang[6]; 
char
Nama_Barang[100]; 
int
Harga_Barang; 
int
Jumlah_Item_Barang; 
float
Potongan_Harga; 
int
Total_Pembelian; 
 8
Description: http://htmlimg2.scribdassets.com/9kjpyv55tsvdutc/images/8-f8c2a7c692.jpg
 
public
void
SetDataBarang(
int
No,
char
Id_Barang[],
char
Nama_Barang[], 
int
Harga_Barang,
int
Jumlah_Item_Barang, 
float
Potongan_Harga,
int
Total_Pembelian) { 
this
->No = No;strcpy(
this
->Id_Barang, Id_Barang);strcpy(
this
->Nama_Barang, Nama_Barang); 
this
->Harga_Barang = Harga_Barang; 
this
->Jumlah_Item_Barang = Jumlah_Item_Barang; 
this
->Potongan_Harga = Potongan_Harga; 
this
->Total_Pembelian = Total_Pembelian;}  
int
GetNo() {
return
No;} 
char
*GetId_Barang() {
return
Id_Barang;} 
char
*GetNama_Barang() {
return
Nama_Barang;} 
int
GetHarga_Barang() {
return
Harga_Barang;} 
int
GetJumlah_Item_Barang() {
return
Jumlah_Item_Barang;} 
float
GetPotongan_Harga() {
return
Potongan_Harga;} 
int
GetTotal_Pembelian() {
return
Total_Pembelian;}}; 
int
Menghitung_Total_Pembelian(
int
Jumlah_Item_Barang,
int
Harga_Barang) { 
return
Jumlah_Item_Barang * Harga_Barang;
float
Menghitung_Potongan_Harga(
int
Total_Pembelian) { 
if
(Total_Pembelian <250000) { 
return
0;}
else if
((250000<= Total_Pembelian) && (Total_Pembelian <=500000)) {  
return
0.05 * (float) Total_Pembelian;}
else if
((500000< Total_Pembelian) && (Total_Pembelian <=1000000)) {  
return
0.1 * (float) Total_Pembelian;}
else if
(1000000< Total_Pembelian) { 
return
0.2 * (float) Total_Pembelian;}} 
void
Memasukkan_Data(DataBarang &Data,
int
&TotalBarang) { 
int
No; 
char
Id_Barang[6]; 
char
Nama_Barang[100]; 
int
Harga_Barang; 
int
Jumlah_Item_Barang; 
float
Potongan_Harga; 
int
Total_Pembelian; cout << endl<<"Data Barang "<< (TotalBarang + 1) << endl
 9
 
<<"No: "; cin >> No;cin.clear(); cin.sync();cout <<"Id Barang: "; cin.getline(Id_Barang,6); cin.clear(); cin.sync();cout <<"Nama Barang: "; cin.getline(Nama_Barang,100); cin.clear(); cin.sync();cout <<"Harga Barang: "; cin >> Harga_Barang;cin.clear(); cin.sync();cout <<"Jumlah Item Barang: "; cin >> Jumlah_Item_Barang;cin.clear(); cin.sync(); Total_Pembelian = Menghitung_Total_Pembelian(Jumlah_Item_Barang, Harga_Barang);Menghitung_Potongan_Harga(Total_Pembelian); Data.SetDataBarang(No, Id_Barang, Nama_Barang, Harga_Barang,Jumlah_Item_Barang, Potongan_Harga, Total_Pembelian);TotalBarang = TotalBarang +1;} 
void
Menampilkan_Daftar_Barang(DataBarang Data[],
int
TotalBarang) {cout << endl<<"No\tId_Barang\tNama Barang\tHarga Barang\tJumlah Item\t" <<"Total Harga Potongan"<< endl; 
for
(
int
a =1; a <=80; a = a +1) cout <<"-";   
for
(
int
a =0; a < TotalBarang; a = a +1) { cout << Data[a].GetNo() <<"\t" << Data[a].GetId_Barang() <<"\t" << Data[a].GetNama_Barang() <<"\t" << Data[a].GetHarga_Barang() <<"\t" << Data[a].GetJumlah_Item_Barang() <<"\t" << Data[a].GetTotal_Pembelian() <<"\t" << Data[a].GetPotongan_Harga() << endl;}} 
void
main() {DataBarang Data[6]; 
int
TotalBarang =0;  
for
(
int
a =0; a <5; a = a + 1) Memasukkan_Data(Data[a], TotalBarang);Menampilkan_Daftar_Barang(Data, TotalBarang); cin.get();}
 4.

Buat program C++ dengan menggunakan struktur bertingkat (Nested Structure). Program tersebutakan digunakan untuk memasukkan dan menampilkan data Pegawai dalam bentuk daftar (Tabel)sebagai berikut : 10
 
Kelompok :

Anggota    : 1. Wahyu Agung Nugroho
                    2. Yulia ayu Mulati
                    3.  Siti Nur Anifah
                    4.  Ratih
Top of Form
Bottom of Form