Latihan C++ BAGIAN II



oke masbor next to bagian II nih,,,,,,,,,lanjut,,,,,,,

Latihan 11 : Menggunakan 'iomanip.h'


#include <iostream>
#include <iomanip.h>

using namespace std;
int main(){
string T =" kalimat";
char S='-';
cout<<setw(10)<<setfill('-')<<S<<endl;
cout<<setw(20)<<setfill('+')<<S<<endl;
cout<<setw(25)<<endl;
cout<<setfill('A')<<T<<endl;
system("pause");
}
Penjelasan :
setw(10) : Perintah ini digunakan agar saat proses keluaran (cout<<..) mendapat spasi sebanyak 10 (setw(10)).
setfill('-') : Perintah ini perlu digabungkan dengan setw(), dan kegunaan perintah ini adalah agar spasi dari setw() diganti dengan karakter yang ada di setfill().

Latihan 12 : Membuat bilangan random

#include <iostream>

using namespace std;

void mulai();
void lagi();

string ma="Masukkan Angka : ";
int j,makr,x;

void mulai(){
cout<<ma; cin>>makr;
j=rand()%makr;
cout<<"Angka randomnya : "<<j<<endl<<endl;
lagi();
}
void lagi(){
cout<<"\nIngin lagi ? \n(jika Iya masukkan bilangan selain nol) : ";
cin>>x;
cout<<endl;
if(x==0)
exit(0);
else
mulai();
} 
int main(){
mulai();
}


Penjelasan :

void mulai(); void lagi(); : Sebelum kita mengisi fungsi void mulai / void lagi, terlebih dahulu kita deklarasikan.
void mulai() : Berisi sebuah variabel yang akan dirandomkan, yaitu j. Karena default-nya adalah 0 maka perhitungan dimulai dari nol - sampai makr.
lagi(); : Setelah mengeluarkan hasil perhitungan, maka perintah selanjutnya adalah masuk ke fungsi 'void lagi()' yang berisi pertanyaan apakah ingin menghitung nilai random lagi..?
Pada fungsi utama (int main()) hanya memiliki tugas memanggil fungsi mulai();.

Latihan 13 : Lebih jauh dengan string

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main(){
string nm;
string nml;
float harga=0;
int jumlah=0;
string jdl1 = "Latihan memasukkan string";
string jdl2 = "Latihan mengubah angka pada string ke nilai";

//judul ke 1
cout << jdl1<<"\nSiapa Nama mu ? ";
getline (cin, nm);
cout << "Hai " << nm << " Apa Kabar ?.\n";
cout << "Apa yang paling kau sukai ? ";
getline (cin, nm);
cout << "Aku juga suka " << nm << " , Serius!\n";

//judul ke 2
cout << jdl2<<"\n\nMasukkan Harga: ";
getline (cin,nml);
stringstream(nml) >> harga;
cout << "Masukkan Jumlahnya: ";
getline (cin,nml);
stringstream(nml) >>jumlah;
cout << "Jadi harga total: " << jumlah*harga << endl;
return 0;
}
Penjelasan :
Pada contoh ini terdapat 2 file header (selain iostream), yaitu : <string> untuk dapat menggunakan perintah getline, <sstream> untuk dapat menggunakan perintah stringstream.
getline(cin, var) : untuk meminta user memasukkan kalimat. Kenapa tidak menggunakan cin ? Karena cin tidak mendukung spasi jadi kemungkinan jika kita menggunakan cin dan mencoba memasukkan kalimat dengan adanya spasi maka program kita akan error.
stringstream(var) : untuk memindahkan angka yang terdapat pada string ke dalam angka. Contoh :
int angka=0;
string cnth="200";
stringstream(cnth)>>angka;
cout<<angka;

//hasil : 200

Latihan 14 : Operator Ternary

Operator ini memiliki konsep sama seperti suatu percabangan atau pemilihan terhadap kondisi tertentu. Bentuk umumnya :
ekspresi 1 ? ekspresi 2 : ekspresi 3;


#include<iostream>

using namespace std;

int main(){
int a;
cout<<"Nilai a tidak boleh negatif\n";
cout<<"Masukkan nilai a = "; cin>>a;
cout<<'\n';
a=(a<0)?-a:a;
cout<<"Nilai a = "<<a<<endl;
system("pause");
}



Penjelasan :

Logika dari program diatas adalah jika nilai a < 0 (ekspresi 1) dan benar maka ekspresi dua akan dijalankan yaitu mengalikan nilai a dengan -, tapi jika salah (nilai a lebih besar dari 0 (a>0)) maka ekspresi 3 akan dijalankan yaitu nilai a itu sendiri.

Latihan 15 : Operator Bitwise

Bahasa C/C++ mendukung penuh operator operator bitwise.
Operator bitwise berguna untuk hal-hal yang berhubungan dengan bit, contohnya untuk mempermudah pemrograman yang berhubungan dengan alat. operator ini hanya dapat digunakan pada operand bertipe char dan int.

operator bitwise : & (AND), | (OR), ^(Exclusive OR / XOR), ~ (NOT) >> (Shift Right), << (Shift Left). Code ini akan menjelaskan 2 operator bitwise saja, yaitu : >>, dan <<.


#include<iostream>

using namespace std;

int main(){
int x=255,y=255,z=32,zz=45;
x=x>>1;
y=y>>3;
z=z<<1;
zz=zz<<3;
cout<<"Contoh operator bitwise >>\n";
cout<<"Nilai x : "<<x<<endl;
cout<<"Nilai y : "<<y<<endl;
cout<<"\nContoh operator bitwise <<\n";
cout<<"Nilai z : "<<z<<endl;
cout<<"Nilai zz : "<<zz<<endl;
system("pause");
}


Penjelasan :

x=x>>1; : Nilai awal x adalah 255 atau 1111.1111 (8 bit) dalam biner , digeser ke kanan sebanyak 1 kali menjadi 0111.1111 atau 127 (desimal).
y=y>>3; : Untuk y sama seperti x tapi disini digeser sebanyak 3 kali, awal : 1111.1111 menjadi 0001.1111.
Untuk variabel z dan zz yang berbeda adalah pergesarannya saja, yaitu ke kiri. Pada variabel zz, awal : 10.1101 menjadi 1.0110.1000 atau 350.

Latihan 16 : For bersarang


#include<iostream>

using namespace std;

int main(){
int x,y,z;
cout<<"Masukkan bilangan (tidak boleh lebih dari 15) : ";
cin>>z;
if(z<=15){
for(x=1;x<=z;x++){
y=1;
for(y;y<=x;y++){
cout<<'X';
}
cout<<endl;
}
for(x;x>=0;x--){
y=1;
for(y;y<=x;y++){
cout<<'X';
}
cout<<endl;
}
}else{
cout<<"\nTerlalu besar!\n\n";
}
system("pause");
}


Penjelasan :

Logika dari program diatas adalah untuk x=1 dan x lebih kecil atau sama dengan z, maka x akan bertambah dan statemen didalamnya akan dijalankan. Statemennya berupa pengulangan lagi. Didalam pengulangan tersebut terdapat y=1; dan pernyataan ini sangat diperlukan karena jika tidak maka pengulangan hanya terjadi pada pengulangan x mungkin disebabkan karena nilai y sebelumnya adalah 0 (default)
dan dalam pengulangan for y harus true.

Latihan 17 : File Header 'cstring'

berikut ini beberapa perintah yang terdapat di file header cstring, yaitu :
- strcpy
- strdup
- strchr
- strstr
- strrev
Sebetulnya masih banyak tapi pas dicoba pada error nggak tau kenapa... hehehe..


#include<iostream>
#include<cstring>

using namespace std;

int main(){
char* A1;
char* A2;
char* A3;
A1="Contoh Duplikasi String";
A2=strdup(A1);
strcpy(A3,A1);
cout<<A2<<endl<<endl;
cout<<A3<<endl<<endl;
A1=strchr(A2,'t');
cout<<A1<<endl<<endl;
A2=strstr(A1,"Duplikasi");
cout<<A2<<endl<<endl;
strrev(A1);
cout<<A1<<endl<<endl;
system("pause");
}

Penjelasan :

A2=strdup(A1) : Melakukan proses duplikat untuk A2.
strcpy(A3,A1) : Melakukan proses copy dari A1 untuk A3.
A1=strchr(A2,'t') : Melakukan proses copy tapi dimulai dari karakter t (huruf kecil).
A2=strstr(A1,"Duplikasi") : Melakukan proses copy dimulai dengan string Duplikasi , perlu diperhatikan antara huruf besar dan huruf kecil.
strrev(A1) : Melakukan proses reverse (membalikkan) string.Catatan : Sebagian besar dari latihan-latihan ini saya ambil dari buku yang berjudul "Pemrograman C++ : Mudah dan Cepat Menjadi Master C++ dengan Mengungkap Rahasia-rahasia Pemrograman dalam C++" penulis "Budi Raharjo", dan penerbit Informatika.

Latihan 18 : Tipe Data Bentukan


/*

Tipe data Bentukan

*/
#include<iostream>

using namespace std;

string nm="Nama : ";
string nl="Nilai : ";
string hf="Huruf : ";

struct Murid{
char* nama;
int nilai;
char huruf;
}A, B;
Murid C;

void mrdA(){
A.nama="Anton";
A.nilai=80;
A.huruf='B';
cout<<nm<<A.nama<<endl;
cout<<nl<<A.nilai<<endl;
cout<<hf<<A.huruf<<endl;
cout<<endl;
}

void mrdB(){
B.nama="Bagus";
B.nilai=78;
B.huruf='B';
cout<<nm<<B.nama<<endl;
cout<<nl<<B.nilai<<endl;
cout<<hf<<B.huruf<<endl;
cout<<endl;
}

void mrdC(){
C.nama="Charles";
C.nilai=90;
C.huruf='A';
cout<<nm<<C.nama<<endl;
cout<<nl<<C.nilai<<endl;
cout<<hf<<C.huruf<<endl;
cout<<endl;
}

//Fungsi utama
int main(){
mrdA();
mrdB();
mrdC();
system("pause");
}

/*Penjelasan :

Tipe data bentukan dapat dibuat dengan perintah
'struct'. Tipe ini berguna untuk Menyimpan variabel-variabel
yang memiliki tipe sama atau berbeda. 

----------------
struct Murid(){
....
}A,B;

Murid C;
----------------
Untuk membuat variabel agar dapat memanggil atau menggunakan
tipe-tipe data di dalam struct.

----------------
A.nama="....";

----------------
Untuk mengisi nilai variabel tersebut dengan menggunakan variabel
yang terdapat dalam struct.

Latihan 19 : While dan Do-While Bersarang


/*

While dan Do while Bersarang

Kalau sebelumnya kita udah membahas pengulangan bersarang dengan for kali ini
dengan while dan do while. Hati-hati dalam mengisi statement jika salah
pengulangan akan terjadi terus-menerus.

*/
#include<iostream>

using namespace std;

int a,b,c;
string kal = "\nMasukkan angka (lebih kecil dari 15) : ";
string tb = "\nTerlalu Besar\n\n";

//Fungsi untuk while bersarang
void nestwhile(){
cout<<kal;
cin>>c;
if(c<=14){
while(a<=c){
b=1;
a++;
while(b<=a){
cout<<'X';
b++;
}
cout<<endl;
}
while(a>=2){
b=1;
a--;
while(b<=a){
cout<<'X';
b++;
}
cout<<endl;
}
}else{
cout<<tb;
}
}

//Fungsi untuk do while bersarang
void nestdowhile(){
cout<<kal;
cin>>c;
if(c<=14){
do{
b=1;
a++;
do{
cout<<'X';
b++;
}while(b<=a);
cout<<endl;
}while(a<=c);
do{
b=1;
a--;
do{
cout<<'X';
b++;
}while(b<=a);
cout<<endl;
}while(a>=2);
}else{
cout<<tb;
}
}

//Fungsi utama
int main(){
int x;
cout<<"Pilihlah Pengulangan bersarang berikut ini : \n";
cout<<"1. Pengulangan bersarang while\n";
cout<<"2. Pengulangan bersarang do while\n";
cout<<"Masukkan pilihan : ";
cin>>x;
if(x==1)
nestwhile();
else if(x==2)
nestdowhile();
else
cout<<endl<<"Maaf tidak ada dalam daftar\n\n";
system("pause");
}

/*

Penjelasan :

Sebelumnya buat dahulu 2 fungsi selain fungsi utama
agar mempermudahkan dalam pembuatan program.

untuk 'while(a>=2)' (dapat ditulis dengan 'while(a>1)')
jika ditulis 'while(a>=0)' maka hasil yang didapat, 
akan seperti berikut ini :
-------------
X
XX
XXX
XX
X


--------------
Terdapat spasi sebanyak 2 saat proses output.

dan untuk do while, pada baris while terakhir terdapat kondisi '(a>=2);'
(dapat ditulis dengan 'while(a>1)')
kondisi ini ditulis agar hasilnya seperti berikut :
--------------
X
XX
XXX
XX
X
--------------
jika ditulis '(a>=0);' maka hasilnya akan seperti berikut :
--------------
X
XX
XXX
XX
X
X
X
--------------
Karena pada pengulangan do while memungkinkan terjadi
pengulangan sebanyak 1 kali walaupun kondisinya false.
Untuk lebih mudah memahami contoh code diatas perhatikan
kondisi-kondisi dan statement yang terdapat dalam fungsi
'void nestwhile()' dan 'void nestdowhile()',
keduanya hampir sama hanya penempatannya saja.

Latihan 20 : Statemen Peloncatan : Break, dan Continue


/*

Statemen Peloncatan : Break, dan Continue


*/
#include<iostream>

using namespace std;

//Fungsi utama
int main(){
int x=2,y=2;
while(x>1){
cout<<"AAA\n";
if(x==6) break;
x++;
}
cout<<"\nSelanjutnya\n";
while(y>1){
cout<<"Masukkan nilai Y : ";
cin>>y;
if(y<=0){
y=0;
continue;
}
}
system("pause");
}

/*Penjelasan :

Statemen Peloncatan digunakan agar jalannya program
sesuai dengan urutan yang telah kita tentukan. Statemen ini
biasanya digunakan pada sebuah pengulangan (loop) dan
struktur kondisi switch.

'break' akan menghentikan pengulangan.

'continue' akan mengulangi lagi statemen ke awal blok pengulangan
tapi perintah ini akan berhenti jika program tersebut ditulis
seperti berikut :
------------
if(y>=0){
continue;
y=0;
}
------------









sumber: http://www.videogamesindonesia.com/

1 komentar:

  1. Latihan C++ Bagian Ii - Okriade >>>>> Download Now

    >>>>> Download Full

    Latihan C++ Bagian Ii - Okriade >>>>> Download LINK

    >>>>> Download Now

    Latihan C++ Bagian Ii - Okriade >>>>> Download Full

    >>>>> Download LINK

    BalasHapus

Komentar Anda Menjadi Masukan Buat Saya, untuk Menjadi Lebih Baik...