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
1 0 . 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
1 1 . 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
1 2 . 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
1 3 . Tipe jaringan komputer yang memiliki ciri, bandwith yang tinggi dan latency yang rendah
adalah jaringan :
a. LAN c. WAN
b. MAN d. Ring
1 4 . Tipe jaringan komputer yang memiliki ciri, bandwith yang rendah dan latency yang tinggi
adalah jaringan :
a. LAN c. WLAN
b. MAN d. WAN
1 5 . Teknologi WPAN menggunakan media transmisi/komunikasi :
a. UTP c. BlueTooth
b. Fiber Optic d. BNC
1 6 . 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
1 7 . Metode transmisi yang digunakan pada jaringan komputer adalah :
a. TCP/IP c. Packet & Data Streaming
b. UDP & TCP d. Synchronous & Asynchronous
1 8 . “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
2 0 . Pada lapisan transport (OSI layer) terdapat beberapa protokol, diantaranya adalah :
a. SMTP c. UDP
b. ATM d. Ethernet MAC
2 1 . Lapisan network pada lapisan OSI terdapat protokol :
a. SMTP c. UDP
b. ATM d. Ethernet MAC
2 2 . Informasi yang berisi “next hop” dalam router disebut sebagai :
a. Routing c. PC Router
b. Routing table d. Cisco Router
2 3 . Standar yang digunakan untuk Wireless LAN adalah :
a. IEEE 802.2 c. IEEE 802.3
b. IEEE 802.11 d. IEEE 802.50
2 4 . 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
2 5 . Tipe interaksi dalam sistem terdistribusi, adalah :
a. Synchronous dan Asyncronous
b. Direct dan Undirect
c. TCP dan UDP
d. Master dan slave
2 6 . 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
2 7 . Salah satu jenis komunikasi yang terdapat dalam “Inter-Process Communication (socket)
adalah :
a. Komunikasi langsung c. Komunikasi datagram
b. Komunikasi telegram d. Komunikasi data
2 8 . 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
3 0 . Pengiriman sebuah pesan dari suatu proses ke suatu “group of processes” disebut sebagai :
a. RMI c. Multicast
b. RPC d. Marshalling
3 1 . 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)
3 2 . Komponen inti dari sistem operasi terdistribusi yang bertugas mengabstraksikan perangkat
keras (interupsi, cache) adalah :
a. Communication Manager c. Thread Manager
b. Memory d. Supervisor
3 3 . Thread juga sering disebut sebagai :
a. Program yang berjalan c. Kernel
b. Processes d. Lightweight Processes
3 4 . Thread mempunyai beberapa arsitektur, antara lain : , Kecuali
a. Thread per process c. Thread per object
b. Thread per connection d. Thread per request
3 5 . 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
3 6 . File service terdistribusi memiliki beberapa bentuk, diantaranya adalah :
a. RPC c. Stateful
b. Connectionless d. UDP
3 7 . Contoh sebuah File System adalah :
a. Kernel c. RCP
b. NFS d. NOS
3 8 . 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
4 0 . Yang bukan karakteristik dari software agents adalah :
a. Autonomous c. Intellegent & Learning
b. Hybrid & Multi Agent System d. Mobility & Stationary
4 1 . 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
4 2 . 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
4 3 . • 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
4 4 . 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
4 5 . 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
4 6 . 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
4 7 . Dalam keamanan sistem terdistribusi, terdapat beberapa teknik yang bisa gunakan, yaitu
(kecuali) :
a. Firewall c. Password e-mail
b. Algoritma kriptografi d. Akses control
4 8 . 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
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
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
(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
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 : B0002 Nama : AnjingJumlah_Kaki : 4 Id : B0003Nama : TikusJumlah_Kaki : 4 5
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
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