Senin, 12 April 2010

Belajar bahasa C++ episode 5

Categori : pemrograman
Judul : belajar bahasa C++ episode 5

Kemarin kita udah nyampe mana yah belajar C++ nya?? Kayaknya udah mulai pinter nih, heheh..
Sebenernya disini aku bukan ngasih tutorial sih, tapi Cuma sharing ajah, apa yang
kamu
aku tulis itu semua adalah program yang aku bikin, jadi tolong koreksinya kalau ada yang salah ya.
Kali ini aku akan sharing tentang membuat menu, sekaligus disini disertakan pula cara menghitung luas dan keliling bangun datar segitiga, persegi empat, persegi panjang, lingkaran, dan jajar genjang. Selain itu ada juga cara menghitung factorial, membaca karakter huruf vocal atau bukan, menentukan bilangan prima atau bukan dan menentukan bilangan positif, negative dan nol.

Okeh, saya gak akan basa basi lagi, kita langsung ajah yah ke coding. Pertama buka C free nya, kemudian buat new file, dan masukkan script berikut ini [sebenernya ini tugas praktikum sih, hehehe] :
/* TUGAS PRAKTIKUM MATA KULIAH PBO
PENGGANTI PRAKTIKUM KAMIS 2 APRIL 2009
===========================================================================
NAMA : ICEP MULYANA
NIM : 0608658
KELAS : B
PROGRAM STUDI PENDIDIKAN ILMU KOMPUTER UPI 2009
============================================================================
Dibuat dalam C-Free 4.0
============================================================================
*/

#include
#include
#include
#include
#include
#include


const float phi = 3.14;
float luas, kel;
char jawab;

//----------menu utama---------------------------------------------------------
class menu {
private:
//int Pilih;
public:

void pilihan() {

//tampil menu
system ("CLS"); //bersihkan laya
cout <<endl;
cout <<" |===============================================|"<< endl;
cout <<" | MENU UTAMA |"<< endl;
cout <<" |===============================================|"<< endl;
cout <<" | |"<< endl;
cout <<" | 1. Membaca karakter huruf vocal |"<< endl;
cout <<" | 2. Bilangan prima atau bukan |"<< endl;
cout <<" | 3. Bilangan positif, negative atau nol |"<< endl;
cout <<" | 4. Menghitung factorial |"<< endl;
cout <<" | 5. Hitung luas dan keliling bangun datar |"<< endl;
cout <<" | |"<< endl;
cout <<" |===============================================|"<< endl;
cout <<" | 0. EXIT |"<< endl;
cout <<" |===============================================|"<< endl;
cout <<endl;
cout <<" Silahkan memilih menu (0/1/2/3/4/5) : ";

}
};


//--------vocal------------------------------------------------------
class vocal {
private :
char huruf;

public :
void cekvocal();
};

//method untuk mengecek huruf vocal
void vocal::cekvocal() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENU MEMBACA KARAKTER HURUF VOCAL |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inputkan karakter
cout <> huruf;
//cek huruf vocal
if (huruf=='a' || huruf=='A' || huruf=='i' || huruf=='I' || huruf=='u'
|| huruf=='U' || huruf=='e' || huruf=='E' ||huruf=='o' || huruf=='O')
{
cout <<"\n Karakter"<<" '"<<huruf<<"' "<<"adalah huruf VOCAL"<< endl;
} else
{
cout <<"\n Karakter"<<" '"<<huruf<<"' "<<"BUKAN huruf VOCAL"<< endl;
}
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');

}


//-----------prima----------------------------------------------------------
class prima {
private :
int a,b,c,d;
public :
void cekprima();
};

//method untuk mengecek bilangan prima atau bukan
void prima::cekprima() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENU BILANGAN PRIMA ATAU BUKAN |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inputkan angka
cout <>a;
b=1;
c=a-1;
//cek angka
if (a==2) {
cout <<" Angka "<<a<< " adalah bilangan PRIMA"<< endl;
} else
{
while (b<=c) {
b++;
d=a%b;
if (d==0) {
cout <<" Angka "<<a<< " BUKAN bilangan PRIMA"< 0 && b==c) {
cout <<" Angka "<<a<< " adalah bilangan PRIMA"<< endl;
break;
}
}
}
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}

//----------posnenol------------------------------------------------------
class posnenol { //posnenol=positif,negative,nol
private :
int x;
public :
void cekposnenol();
};

//method untuk mengecek bilangan positif, negative atau nol
void posnenol::cekposnenol() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENU BILANGAN POSITIF, NEGATIVE, NOL |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inpukan bilangan
cout <>x;
if (x<0) {
cout <<" Nilai x = "<<x<<" adalah bilangan NEGATIVE"<0) {
cout <<" Nilai x = "<<x<<" adalah bilangan POSITIF"<< endl;
} else {
cout <<" Nilai x = "<<x<<" adalah bilangan NOL"<< endl;
}
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}

//----------factorial-----------------------------------------------------
class factorial {
private :
long int n,b;
int a;
public :
void cekfactorial();
void cekfactorial2();
};

//method untuk cek factorial (dengan for) dengan for
void factorial::cekfactorial() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENU MENGHITUNG FACTORIAL (FOR) |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;

//input nilai masukan
cout <>n;
cout <<endl;
//proses factorial dengan for
b=1;
for (a=1; a<=n; a++) {
b=b*a;
}
cout <<" Jumlah faktorial dari "<<n<<" adalah : "<<b<<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}
//method untuk cek factorial2 (dengan while) dengan for
void factorial::cekfactorial2() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENU MENGHITUNG FACTORIAL (WHILE) |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;

//input nilai masukan
cout <>n;
cout <<endl;
//proses factorial dengan for
b=1;
a=1;
while ( a<=n ) {
b=b*a;
a++;
}
cout <<" Jumlah faktorial dari "<<n<<" adalah : "<<b<<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}


class segitiga {
private :
float a,t,ab,bc,ca;
public :
void luassegitiga();
// void kelsegitiga();
};

//method hitung luas segitiga
void segitiga::luassegitiga() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENGHITUNG LUAS SEGITIGA ABC |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//input data
cout <> a;
cout <> t;
cout <> ab;
cout <> bc;
cout <> ca;
//hitunh luas
luas= 0.5*a*t;
//hitung keliling
kel=ab+bc+ca;
//output
cout <<endl;
cout <<" Luas segitiga ABC = "<<luas <<endl;
cout <<" Keliling segitiga ABC = "<<kel <<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}

class persegi {
private :
float s;
public :
void luaspersegi();
// void kelpersegi ();
};


//method untuk menghitung luas persegi
void persegi::luaspersegi() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENGHITUNG LUAS PERSEGI |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//input data
cout <> s;
//hitung luas persegi
luas=s*s;
//output

kel=4*s;
//output
cout <<endl;
cout <<" Keliling persegi = "<<kel <<endl;
cout <<" Luas persegi = "<<luas <<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}

class per_panjang {
private :
float p, l;
public :
void luas_per_panjang();
// void kel_per_panjang();
};

//method menghitung luas persegi panjang
void per_panjang::luas_per_panjang() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENGHITUNG LUAS PERSEGI PANJANG |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inputan
cout <> p;
cout <> l;
//hitung luas
luas=p*l;
//hitung keliling
kel=2*(p+l);
//output
cout <<endl;
cout <<" Luas persegi panjang = "<<luas <<endl;
cout <<" Keliling persegi panjang = "<<kel <<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}


class lingkaran {
private :
float r;
public :
void luaslingkaran();
//void kellingkaran();
};

//method hitung luas lingkaran
void lingkaran::luaslingkaran() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENGHITUNG LUAS LINGKARAN |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inputan
cout <> r;
//hitung luas
luas=phi*(r*r);
//hitung keliling
kel=2*phi*r;
//output
cout <<endl;
cout <<" Luas lingkaran = "<<luas <<endl;
cout <<" Keliling lingkaran = "<<kel <<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}


class jajargenjang {
private :
float a,t,ab,bc;
public :
void luasjagen();
//void keljagen();
};

//method hitung luas jajar genjang
void jajargenjang::luasjagen() {
do {
cout <<endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<" | MENGHITUNG LUAS JAJAR GENJANG ABCD |"<< endl;
cout <<" |-----------------------------------------|"<< endl;
cout <<endl;
//inputan
cout <> a;
cout <> t;
cout <> ab;
cout <> bc;
//hitung luas
luas=a*t;
//hitung keliling
kel=2*(ab+bc);
//output
cout <<endl;
cout <<" Luas jajar genjang = "<<luas <<endl;
cout <<" Keliling jajar genjang = "<<kel <<endl;
cout <<endl;
cout <<" ________________________________________"<< endl;
cout <<" Ulangi :"; cin >>jawab;
} while (jawab=='Y' || jawab=='y');
}


//---------------------------------------------------------------------
//PROGRAM UTAMA
int main() {
//local variabel
//char pilih;
char nomor;
char user[20];
char jawab;
char pilih_menu;
menu men;
vocal voc;
prima prim;
posnenol pos;
factorial fac;
segitiga seg;
persegi per;
per_panjang per_p;
lingkaran ling;
jajargenjang jargen;
//menu men;

//input data user
cout <<endl;
cout <<"Masukkan nama Anda (max 20 karakter) : "; cin.getline(user,20);
cout <<endl;
system ("CLS"); //bersihkan layar
cout <<endl<<"Selamat datang "<<"'"<< user <<"'"<<" di PROGRAM ICEP MULYANA"<< endl;
cout <<"Program ini dibuat sebagai tugas pengganti praktikum PBO"<< endl;
cout <<"hari kamis tanggal 2 April 2009"<< endl;
cout <<endl;

//pilih menu utama program
do {
if (pilih_menu!='0') {
cout<< endl;
cout <<" Tekan ENTER untuk melihat MENU UTAMA..."<> pilih_menu;
cout << "\n";

//loop menu utama
//menu telah dipilih
switch (pilih_menu) {
//keluar
case '0' : {
system ("CLS"); //bersihkan layar
cout <<endl<<endl;
cout <<" |===============================================|"<<endl;
cout <<" | :::::: TERIMA KASIH :::::: |"<<endl;
cout <<" |===============================================|"<<endl;
cout <<endl;
exit(0);
break;
}
//menu 1
case '1': {
system ("CLS"); //bersihkan layar
voc.cekvocal();
break;
}
//menu 2
case '2': {
system ("CLS"); //bersihkan layar
cout <<endl;
prim.cekprima();
break;
}
//menu 3
case '3': {
system ("CLS"); //bersihkan layar
cout <<endl;
pos.cekposnenol();
break;
}
//menu 4
case '4': {
do {
system ("CLS"); //bersihkan layar
cout <<endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<" | SILAKAN PILIH METODE YANG ANDA INGINKAN |"<< endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<" | 1. Hitung factorial dengan for |"<< endl;
cout <<" | 2. Hitung factorial dengan while |"<< endl;
cout <<" | 3. Kembali ke menu utama |"<< endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<endl;
cout <<" Masukkan pilihan anda : ";
cin >>nomor;
cout <<endl;
switch (nomor) {
case '1' :
fac.cekfactorial();
cout <<endl;
cout <<" Kembali ke MENU FACTORIAL... :"; cin >>jawab;
break;
case '2' :
fac.cekfactorial2();
cout <<endl;
cout <<" Kembali ke MENU FACTORIAL... :"; cin >>jawab;
break;
case '3' :
goto label_1; //kembali ke menu utama
break;
default :
cout <<" Pilih sesuai menu !!!"<< endl;
cout <<" Masukkan pilihan anda : ";
cin >>nomor;
break;
}
} while (jawab=='y' || jawab=='Y');
break;
}
//menu 5
case '5': {
do {
system ("CLS"); //bersihkan layar
cout <<endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<" | MENU HITUNG LUAS DAN KELILING BANGUN DATAR |"<< endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<" | 1. Hitung segitiga |"<< endl;
cout <<" | 2. Hitung persegi |"<< endl;
cout <<" | 3. Hitung persegi panjang |"<< endl;
cout <<" | 4. Hitung lingkaran |"<< endl;
cout <<" | 5. Hitung jajar genjang |"<< endl;
cout <<" | 6. Kembali ke menu utama |"<< endl;
cout <<" |--------------------------------------------|"<< endl;
cout <<endl;
cout <<" Masukkan pilihan anda : ";
cin >>nomor;
cout <<endl;
switch (nomor) {
case '1' :
seg.luassegitiga();
cout <<endl;
cout <<" Kembali ke MENU HITUNG LUAS... :"; cin >>jawab;
break;
case '2' :
per.luaspersegi();
cout <<endl;
cout <<" Kembali ke MENU HITUNG LUAS... :"; cin >>jawab;
break;
case '3' :
per_p.luas_per_panjang();
cout <<endl;
cout <<" Kembali ke MENU HITUNG LUAS... :"; cin >>jawab;
break;
case '4' :
ling.luaslingkaran();
cout <<endl;
cout <<" Kembali ke MENU HITUNG LUAS... :"; cin >>jawab;
break;
case '5' :
jargen.luasjagen();
cout <<endl;
cout <<" Kembali ke MENU HITUNG LUAS... :"; cin >>jawab;
break;
case '6' :
goto label_1; //kembali ke menu utama
break;
default :
cout <<" Pilih sesuai menu !!!"<< endl;
cout <<" Masukkan pilihan anda : ";
cin >>nomor;
break;
}
} while (jawab=='y' || jawab=='Y');
break;
}
// pilihan menu tidak ada
default : {
system ("CLS"); //bersihkan layar
cout <<endl<<" PILIH MENU YANG SESUAI !!!"<<endl;
break;
}

}
} while (pilih_menu!=0); //end looping

}


Nah kaoo udah semua di ketik, baru save file tersebut dengan nama latihanmenu.cpp , kemudian coba run, jalan nggak yah??
Sekarang tolong koreksi apa kesalahannya, trus apa kekurangannya, pliss banget kalo ada yang kurang mohon bantuannya yah, heheheh…
sourc code boleh anda copy....

1 komentar:

  1. 8 Casino City, LA, USA | Mapyro
    › › Downtown Casinos › › Downtown 양산 출장샵 Casinos › 거제 출장샵 Downtown Casinos 익산 출장샵 This bustling gaming destination is easy to navigate 강원도 출장마사지 with a quick phone number, easy banking and 24 hour customer support. Mapyro offers an 삼척 출장마사지

    BalasHapus