include <iostream.h>
main ()
{
char hari;
cout < < "Masukkan kode hari : ";
cin >> hari;
if (hari==’a'||hari == ‘A’){
cout << “Senin”;}
else if (hari==’b'||hari==’B'){
cout << “Selasa”;}
else if (hari==’c'||hari== ‘C’){
cout << “Rabu”;}
else if (hari==’d'||hari== ‘D’){
cout << “Kamis”;}
else if (hari==’e'||hari==’E'){
cout << “Jumat”;}
else if (hari==’f'||hari==’F'){
cout << “Sabtu”;}
else if (hari==’g'||hari== ‘G’){
cout << “Minggu”;}
else
cout << “MAAF KODE YANG ANDA MASUKKAN SALAH.!”;
return 0;
}
Kamis, 07 Juli 2011
Penggunaan Class Pada Bahasa C++
#include
#include
#include
#include
#include
#include
class kelas{
public :
char *value;
kelas(){
value=new char(3);
strcpy(value,”???”);
cetak(“Pertama kali dijalankan value = “);
}
virtual ~kelas();
void input(){baca(80);
}
int length();
int memsize();
private:
void cetak(char *kata){
printf(“%s %s\n”,kata,value);
};
protected:
int len;
int mem;
void baca(int length){
delete value;
value=new char(length);
cout <len;
}
int kelas::memsize(){return this->mem;
}
kelas::~kelas(){
this->cetak(“Keluar dari kelas value = “);
delete value;
}
void main(){
kelas *kata=new kelas;
kata->input();
cout <<”\n\nPanjang string = “<length()<<”\n”;
cout <<”Isinya = “<value <<”\n\n”;
cout <<”Memori kelas kata = “<<sizeof(kata)<len dan kelas->mem dan
//fungsi kelas->baca()
//tidak dikenal pada objek kata.
//hanya ada pada objek kelas
//juga void kelas->cetak() tidak dapat dipakai pada objek kata
delete kata;
return;
}
#include
#include
#include
#include
#include
class kelas{
public :
char *value;
kelas(){
value=new char(3);
strcpy(value,”???”);
cetak(“Pertama kali dijalankan value = “);
}
virtual ~kelas();
void input(){baca(80);
}
int length();
int memsize();
private:
void cetak(char *kata){
printf(“%s %s\n”,kata,value);
};
protected:
int len;
int mem;
void baca(int length){
delete value;
value=new char(length);
cout <len;
}
int kelas::memsize(){return this->mem;
}
kelas::~kelas(){
this->cetak(“Keluar dari kelas value = “);
delete value;
}
void main(){
kelas *kata=new kelas;
kata->input();
cout <<”\n\nPanjang string = “<length()<<”\n”;
cout <<”Isinya = “<value <<”\n\n”;
cout <<”Memori kelas kata = “<<sizeof(kata)<len dan kelas->mem dan
//fungsi kelas->baca()
//tidak dikenal pada objek kata.
//hanya ada pada objek kelas
//juga void kelas->cetak() tidak dapat dipakai pada objek kata
delete kata;
return;
}
Penjelasan :
Class hampir sama dengan tipe struct, bedanya class dapat bersifat public, private, dan protected.
Anggota private hanya digunakan dalam class/friend, semua anggota class adalah private.
Anggota protected, sama saja dengan private. Dikit perbedaan. Susah jelasinnya.
Anggota public dapat digunakan oleh semua fungsi. Juga dapat digelar di luar dari struktur class. Anggota virtual yang terdapat di public digunakan untuk memanggil secara otomatis ketika class menjadi objek dengan operator new (perhatikan void main()). Dan juga dipanggil otomatis ketika objek dihapus dengan operator delete objek.
Dalam contoh di atas fungsi kelas() dipanggil secara otomatis ketika new, dan secara otomatis ~kelas() dipanggil juga secara otomatis ketika delete.
Fungsi-2 atau variabel private/protected tidak dapat dipakai dalam objek.
Class hampir sama dengan tipe struct, bedanya class dapat bersifat public, private, dan protected.
Anggota private hanya digunakan dalam class/friend, semua anggota class adalah private.
Anggota protected, sama saja dengan private. Dikit perbedaan. Susah jelasinnya.
Anggota public dapat digunakan oleh semua fungsi. Juga dapat digelar di luar dari struktur class. Anggota virtual yang terdapat di public digunakan untuk memanggil secara otomatis ketika class menjadi objek dengan operator new (perhatikan void main()). Dan juga dipanggil otomatis ketika objek dihapus dengan operator delete objek.
Dalam contoh di atas fungsi kelas() dipanggil secara otomatis ketika new, dan secara otomatis ~kelas() dipanggil juga secara otomatis ketika delete.
Fungsi-2 atau variabel private/protected tidak dapat dipakai dalam objek.
MATRIKS
Dalam penjumlahan dan pengurangan dua buah matrik, antara marik A dan matrik B, jumlah kolom dan baris haruslah sama. Jika tidak sama, maka dua buah matrik tersebut tidak bisa untuk dijumlahkan maupun dikurangkan.
Dibawah ini merupakan program penjumlahan dan pengurang dua buah matrik, yaitu matrik A dan matrik B.
#include <iostream.h> //Header
#include <conio.h>
int main()
{
int colA,colB,rowA,rowB,i,j; //Deklarasi
int A[10][10],B[10][10],C[10][10];
char answer;
do
{
do
{
cout<<"MATRIKS A : "<<endl;
cout<<"Masukkan Jumlah Baris Matriks A : "; //Input Data Matrik
cin>>rowA;
cout<<"Masukkan Jumlah Kolom Matriks A : ";
cin>>colA;
cout<<endl<<endl;
cout<<"MATRIKS B : "<<endl;
cout<<"Masukkan Jumlah Baris Matriks B : ";
cin>>rowB;
cout<<"Masukkan Jumlah Kolom Matriks B : ";
cin>>colB;
}
while ((colA!=colB) || (rowA!=rowB));
cout<<"\n";
cout<<"Masukkan Nilai Matriks A : "<<endl;
for(i=1;i<=rowA;i++) //Proses
{
for(j=1;j<=colA;j++)
{
cout<<"A["<<i<<","<<j<<"] = ";
cin>>A[i][j];
}
}
cout<<"\n";
cout<<"Masukkan Nilai Matriks B : "<<endl;
for(i=1;i<=rowB;i++)
{
for(j=1;j<=colB;j++)
{
cout<<"B["<<i<<","<<j<<"] = ";
cin>>B[i][j];
}
}
cout<<endl;
//Proses Penjumlahan Matriks
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
C[i][j] = A[i][j] + B[i][j];
}
}
cout<<endl;
cout<<"Penjumlahan Matriks, C = A + B"<<endl;
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
cout<<"C["<<i<<","<<j<<"] = ";
cout<<C[i][j]<<endl;
}
}
cout<<endl;
//Proses Pengurangan Matriks
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
C[i][j] = A[i][j] - B[i][j];
}
}
cout<<"Pengurangan Matriks, C = A - B"<<endl;
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
cout<<"C["<<i<<","<<j<<"] = ";
cout<<C[i][j]<<endl;
}
}
cout<<endl;
getch();
cout<<"== PROGRAM SELESAI =="<<endl<<endl;
cout<<"Mau Melakukan Perhitungan Lagi?? [Y/T]"; cin>>answer;
}
while ((answer == 'y') || (answer == 'Y'));
}
Dibawah ini merupakan program penjumlahan dan pengurang dua buah matrik, yaitu matrik A dan matrik B.
#include <iostream.h> //Header
#include <conio.h>
int main()
{
int colA,colB,rowA,rowB,i,j; //Deklarasi
int A[10][10],B[10][10],C[10][10];
char answer;
do
{
do
{
cout<<"MATRIKS A : "<<endl;
cout<<"Masukkan Jumlah Baris Matriks A : "; //Input Data Matrik
cin>>rowA;
cout<<"Masukkan Jumlah Kolom Matriks A : ";
cin>>colA;
cout<<endl<<endl;
cout<<"MATRIKS B : "<<endl;
cout<<"Masukkan Jumlah Baris Matriks B : ";
cin>>rowB;
cout<<"Masukkan Jumlah Kolom Matriks B : ";
cin>>colB;
}
while ((colA!=colB) || (rowA!=rowB));
cout<<"\n";
cout<<"Masukkan Nilai Matriks A : "<<endl;
for(i=1;i<=rowA;i++) //Proses
{
for(j=1;j<=colA;j++)
{
cout<<"A["<<i<<","<<j<<"] = ";
cin>>A[i][j];
}
}
cout<<"\n";
cout<<"Masukkan Nilai Matriks B : "<<endl;
for(i=1;i<=rowB;i++)
{
for(j=1;j<=colB;j++)
{
cout<<"B["<<i<<","<<j<<"] = ";
cin>>B[i][j];
}
}
cout<<endl;
//Proses Penjumlahan Matriks
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
C[i][j] = A[i][j] + B[i][j];
}
}
cout<<endl;
cout<<"Penjumlahan Matriks, C = A + B"<<endl;
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
cout<<"C["<<i<<","<<j<<"] = ";
cout<<C[i][j]<<endl;
}
}
cout<<endl;
//Proses Pengurangan Matriks
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
C[i][j] = A[i][j] - B[i][j];
}
}
cout<<"Pengurangan Matriks, C = A - B"<<endl;
for(i=1;i<=rowA;i++)
{
for(j=1;j<=colA;j++)
{
cout<<"C["<<i<<","<<j<<"] = ";
cout<<C[i][j]<<endl;
}
}
cout<<endl;
getch();
cout<<"== PROGRAM SELESAI =="<<endl<<endl;
cout<<"Mau Melakukan Perhitungan Lagi?? [Y/T]"; cin>>answer;
}
while ((answer == 'y') || (answer == 'Y'));
}
BUBBLE SORT
Bubble sort is a simple and well-known sorting algorithm. It is used in practice once in a blue moon and its main application is to make an introduction to the sorting algorithms. Bubble sort belongs to O(n2) sorting algorithms, which makes it quite inefficient for sorting large data volumes. Bubble sort is stable and adaptive.
Example, sort (5, 1, 12, -5, 16) using bubble sort
Sorting Process :
5 1 12 -5 16 --> unsorted
5 1 12 -5 16 --> 5 > 1, swap
1 5 12 -5 16 --> 5 < 12, ok
1 5 12 -5 16 --> 12 > -5, swap
1 5 -5 12 16 --> 12 < 16, ok
1 5 -5 12 16 --> 1 < 5, ok
1 5 -5 12 16 --> 5 > -5, swap
1 -5 5 12 16 --> 5 < 12, ok
1 -5 5 12 16 --> 1 > -5, swap
-5 1 5 12 16 --> 1 < 5, ok
-5 1 5 12 16 --> -5 < 1, ok
-5 1 5 12 16 --> sorted
Algorithm
- Compare each pair of adjacent elements from the beginning of an array and, if they are in reversed order, swap them.
- If at least one swap has been done, repeat step 1.
Example, sort (5, 1, 12, -5, 16) using bubble sort
Sorting Process :
5 1 12 -5 16 --> unsorted
5 1 12 -5 16 --> 5 > 1, swap
1 5 12 -5 16 --> 5 < 12, ok
1 5 12 -5 16 --> 12 > -5, swap
1 5 -5 12 16 --> 12 < 16, ok
1 5 -5 12 16 --> 1 < 5, ok
1 5 -5 12 16 --> 5 > -5, swap
1 -5 5 12 16 --> 5 < 12, ok
1 -5 5 12 16 --> 1 > -5, swap
-5 1 5 12 16 --> 1 < 5, ok
-5 1 5 12 16 --> -5 < 1, ok
-5 1 5 12 16 --> sorted
Memindahkan Pointer
Berikut adalah program untuk memindahkan sebuah pointer.
#include <iostream.h>
#include <conio.h>
int main(){
int A=5;
int B=3;
cout<<"Nilai A : "<<A<<endl;
cout<<"Nilai B : "<<B<<endl;
int *Pa =&A;
cout<<"Nilai yg ditunjukkan poiter Pa (var.A) : "<<*Pa<<endl;
int *Pb =&B;
cout<<"Nilai yg ditunjukkan poiter Pb (var.B) : "<<*Pb<<endl;
Pa=Pb;
cout<<"Setelah tugas Pa diubah : \n";
cout<<"Nilai yg ditunjukkan poiter Pb (var.B) : "<<*Pb<<endl;
cout<<"Nilai yg ditunjukkan poiter Pa (var.A) : "<<*Pa<<endl;
getch();
return 0;
}
Hasilnya nanti, ketika nilai A dan B diberikan nilai,
misal, nilai A = 5 dan B = 3
.nilai yang ditunjukkan pointer Pa (var.A) = 5
.nilai yang ditunjukkan pointer Pb (var.B) = 3
=>Setelah Pa diubah atau dipindahkan menjadi :
.nilai yang ditunjukkan pointer Pb (var.B) = 3
.nilai yang ditunjukkan pointer Pa (var.A) = 3
#include <iostream.h>
#include <conio.h>
int main(){
int A=5;
int B=3;
cout<<"Nilai A : "<<A<<endl;
cout<<"Nilai B : "<<B<<endl;
int *Pa =&A;
cout<<"Nilai yg ditunjukkan poiter Pa (var.A) : "<<*Pa<<endl;
int *Pb =&B;
cout<<"Nilai yg ditunjukkan poiter Pb (var.B) : "<<*Pb<<endl;
Pa=Pb;
cout<<"Setelah tugas Pa diubah : \n";
cout<<"Nilai yg ditunjukkan poiter Pb (var.B) : "<<*Pb<<endl;
cout<<"Nilai yg ditunjukkan poiter Pa (var.A) : "<<*Pa<<endl;
getch();
return 0;
}
Hasilnya nanti, ketika nilai A dan B diberikan nilai,
misal, nilai A = 5 dan B = 3
.nilai yang ditunjukkan pointer Pa (var.A) = 5
.nilai yang ditunjukkan pointer Pb (var.B) = 3
=>Setelah Pa diubah atau dipindahkan menjadi :
.nilai yang ditunjukkan pointer Pb (var.B) = 3
.nilai yang ditunjukkan pointer Pa (var.A) = 3
GRAPH
Graf adalah :
♦ Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik).
♦ Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi).
Dalam graph juga terdapat graph dengan tiga titik simpul. Berikut adalah programnya :
#include <iostream.h>
#include <string.h>
#include <conio.h>
int main ()
{
char kata1;
char kata2;
char kata3;
int a, b, c;
cout<<"Menghitung Jarak pada Graf dengan 3 Titik Simpul"<<endl;
cout<<endl;
cout<<"Inputkan titik simpul ke-1 :";cin>>kata1;
cout<<endl;
cout<<"Inputkan titik simpul ke-2 : ";cin>>kata2;
cout<<endl;
cout<<"Inputkan titik simpul ke-3 : ";cin>>kata3;
cout<<endl;
cout<<"Jadi Garis yang dapat dibentuk dari 3 titik simpul tersebut adalah : "<<endl;
cout<<kata1<<kata3<<endl;
cout<<kata3<<kata2<<endl;
cout<<kata2<<kata1<<endl<<endl;
cout<<"Inputkan jarak antara titik simpul "<<kata1<<" dengan "<<kata3<<" : ";cin>>a;
cout<<"Inputkan jarak antara titik simpul "<<kata3<<" dengan "<<kata2<<" : ";cin>>b;
cout<<"Inputkan jarak antara titik simpul "<<kata2<<" dengan "<<kata1<<" : ";cin>>c;
cout<<endl<<endl;
cout<<"Jadi panjang jarak pada graf tersebut adalah : "<<a+b+c<<endl<<endl;
cout<<"Mencari jalur terpendek dari "<<kata1<<" menuju "<<kata3<<" : "<<endl;
cout<<"Alternatif pertama: "<<kata1<<" -> "<<kata2<<" -> "<<kata3<<" = "<<kata1<<kata2<<" + "<<kata2<<kata3<<endl;
cout<<" panjangnya adalah: "<<c<<" + "<<b<<" = "<<c+b<<endl;
cout<<"Alternatif kedua: "<<kata1<<" -> "<<kata3<<" panjangnya adalah: "<<a<<" => jalur terpendek"<<endl;
return 0;
}
♦ Himpunan V (Vertex) yang elemennya disebut simpul (atau point atau node atau titik).
♦ Himpunan E (Edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi).
Dalam graph juga terdapat graph dengan tiga titik simpul. Berikut adalah programnya :
#include <iostream.h>
#include <string.h>
#include <conio.h>
int main ()
{
char kata1;
char kata2;
char kata3;
int a, b, c;
cout<<"Menghitung Jarak pada Graf dengan 3 Titik Simpul"<<endl;
cout<<endl;
cout<<"Inputkan titik simpul ke-1 :";cin>>kata1;
cout<<endl;
cout<<"Inputkan titik simpul ke-2 : ";cin>>kata2;
cout<<endl;
cout<<"Inputkan titik simpul ke-3 : ";cin>>kata3;
cout<<endl;
cout<<"Jadi Garis yang dapat dibentuk dari 3 titik simpul tersebut adalah : "<<endl;
cout<<kata1<<kata3<<endl;
cout<<kata3<<kata2<<endl;
cout<<kata2<<kata1<<endl<<endl;
cout<<"Inputkan jarak antara titik simpul "<<kata1<<" dengan "<<kata3<<" : ";cin>>a;
cout<<"Inputkan jarak antara titik simpul "<<kata3<<" dengan "<<kata2<<" : ";cin>>b;
cout<<"Inputkan jarak antara titik simpul "<<kata2<<" dengan "<<kata1<<" : ";cin>>c;
cout<<endl<<endl;
cout<<"Jadi panjang jarak pada graf tersebut adalah : "<<a+b+c<<endl<<endl;
cout<<"Mencari jalur terpendek dari "<<kata1<<" menuju "<<kata3<<" : "<<endl;
cout<<"Alternatif pertama: "<<kata1<<" -> "<<kata2<<" -> "<<kata3<<" = "<<kata1<<kata2<<" + "<<kata2<<kata3<<endl;
cout<<" panjangnya adalah: "<<c<<" + "<<b<<" = "<<c+b<<endl;
cout<<"Alternatif kedua: "<<kata1<<" -> "<<kata3<<" panjangnya adalah: "<<a<<" => jalur terpendek"<<endl;
return 0;
}
Langganan:
Postingan (Atom)