#include <iostream.h>
#include <string.h>
#include <conio.h>
class Kabisat
{
private:
int bil;
char tahun[30];
public:
Kabisat();
void hitungKabisat();
friend istream &operator >> (istream &in, Kabisat &);
friend ostream &operator << (ostream &out, Kabisat &);
};
int main()
{
Kabisat x;
cin >> x;
cout << x;
system ("pause");
return EXIT_SUCCESS;
}
Kabisat::Kabisat(){
cout << "============================================" << endl;
cout << "|| PROGRAM UNTUK MENENTUKAN TAHUN KABISAT ||" << endl;
cout << "============================================" << endl << endl << endl;
}
void Kabisat::hitungKabisat()
{
if ( bil % 4 != 0)
strcpy(tahun,"BUKAN TAHUN KABISAT");
else if (bil % 100 == 0 && bil % 400 !=0)
strcpy(tahun,"BUKAN TAHUN KABISAT");
else
strcpy(tahun," TAHUN KABISAT");
}
istream &operator >> (istream &in, Kabisat &masukan)
{
cout << " Masukan Sebuah tahun : " ;
in >> masukan.bil;
return in;
}
ostream &operator << (ostream &out, Kabisat &tampil)
{
tampil.hitungKabisat();
out << tampil.bil << " "
<< tampil.tahun << endl;
return out;
}
OUTPUT :
Selasa, 12 April 2011
Program untuk mencari baris "ORI" dari kata "ALGORITMA" menggunakan dev c++
Program mencari baris O,R,I pada kata “ALGORITMA” menggunakan dev (c++) :
#include <cstdlib>
#include <iostream>
#include <string.h>
using namespace std;
int main (int argc, char *argv[])
{
char str[]="ALGORITMA";
cout<<"pada kata:"<<str<<"\n"<<endl;
char *b;
cout<<"kata 'O' pada kalimat diatas"<<"\n"<<endl;
b=strchr (str, 'O');
while (b!=NULL)
{
cout<<"ada pada urutan ke:"<<b-str+1<<"\n"<<endl;
b=strchr (b+1,'O');
}
cout<<"pada kata:"<<str<<"\n"<<endl;
cout<<"kata 'R' pada kalimat diatas"<<"\n"<<endl;
b=strchr (str, 'R');
{
cout<<"ada pada urutan ke:"<<b-str+1<<"\n"<<endl;
b=strchr (b+1,'R');
}
while (b!=NULL)
cout<<"pada kata:"<<str<<"\n"<<endl;
cout<<"kata 'I' pada kalimat diatas"<<"\n"<<endl;
b=strchr (str, 'I');
while (b!=NULL)
{
cout<<"ada pada urutan ke:"<<b-str+1<<"\n"<<endl;
b=strchr (b+1,'I');
}
system ("PAUSE");
return EXIT_SUCCESS;
}
OUTPUT :
Algoritma :
Dari kata "Algoritma" terdapat kata "ORI", maka pada program tercebut jika kita masukkan
kata O,R, dan I akan mucul baris nya .
O baris ke-4
R baris ke-5
I baris ke-6.
Dari kata "Algoritma" terdapat kata "ORI", maka pada program tercebut jika kita masukkan
kata O,R, dan I akan mucul baris nya .
O baris ke-4
R baris ke-5
I baris ke-6.
Sabtu, 09 April 2011
Tugas Kelompok Alpro
1. #include <iostream>
2.
3.
4.
5. using namespace std;
6.
7.
8.
9. int prime(int x) {
10.
11. int a;
12.
13.
14.
15. for(a=2;a<=x;a++) {
16.
17. if(x%a==0) {
18.
19. cout << a << " * ";
20.
21. x/=a;
22.
23. a--;
24.
25. }
26.
27. }
28.
29. return 0;
30.
31. }
32.
33.
34.
35. main() {
36.
37. int x;
38.
39. cin.clear();
40.
41. cout << "\nInput an integer\n";
42.
43. cin >> x;
44.
45. prime(x);
46.
47. system("PAUSE");
48.
49.
50.
51. }
...
* 3.2 kpk;
1. #include <iostream.h>
2.
3. #include <conio.h>
4.
5.
6.
7. class kpk {
8.
9. friend istream& operator>>(istream&, kpk&);
10.
11. public :
12.
13. kpk ();
14.
15. private:
16.
17. int a,b,nilai;
18.
19. };
20.
21.
22.
23. kpk::kpk() { cout<<"Menghitung KPK"<<endl; }
24.
25.
26.
27. istream& operator>>(istream& in, kpk& masuk) {
28.
29. masuk.nilai=0;
30.
31. cout<<"Masukkan A: "; in>>masuk.a;
32.
33. cout<<"Masukkan B: "; in>>masuk.b;
34.
35. for (int z=1; z<=masuk.b; z++) {
36.
37. masuk.nilai=masuk.nilai+masuk.a;
38.
39. if (masuk.nilai%masuk.b==0) {
40.
41. cout<<"KPK dari "<< masuk.a << " dan "<< masuk.b <<" adalah "<< masuk.nilai <<endl;
42.
43. return in;
44.
45. }
46.
47. }
48.
49. }
50.
51.
52.
53. main () {
54.
55. kpk X;
56.
57. cin >> X;
58.
59. getch ();
60.
61. }
* 3.2 GCD;
1. #include <cstdlib>
2.
3. #include <iostream>
4.
5. using namespace std;
6.
7.
8.
9. class hitung_Gcd {
10.
11. public :
12.
13. int gcd_iteratif(int c, int d);
14.
15. int gcd(int c, int d);
16.
17. private:
18.
19. int bil1, bil2;
20.
21. int hasil;
22.
23. };
24.
25.
26.
27. int hitung_Gcd::gcd_iteratif(int c, int d)
28.
29. { int r;
30.
31. while (d > 0) {
32.
33. r = c % d;
34.
35. c = d;
36.
37. d = r;
38.
39. }
40.
41. return (c);
42.
43. }
44.
45.
46.
47. int hitung_Gcd::gcd(int c, int d)
48.
49. {
50.
51. if (d==0) return(c);
52.
53. if (c<d) return(gcd(d,c));
54.
55. return(gcd(c-d, d));
56.
57. }
58.
59.
60.
61. int main(int argc, char *argv[])
62.
63. {
64.
65. hitung_Gcd X;
66.
67. int a = 20, b = 10;
68.
69. cout << "Gcd (iteratif) dari : " << X.gcd_iteratif(a,b) << endl;
70.
71. cout << "Gcd (rekursi) dari : " << X.gcd(a,b) << endl;
72.
73. system("PAUSE");
74.
75. return EXIT_SUCCESS;
76.
77. }
* 3.5 bilnangan prima tanpa clss
1. #include <cstdlib>
2.
3. #include <iostream>
4.
5.
6.
7. using namespace std;
8.
9.
10.
11. int main(int argc, char *argv[])
12.
13. {
14.
15. long unsigned int nUserInput;
16.
17. cin >> nUserInput;
18.
19. for(long unsigned int nIterator = 2; nIterator <= nUserInput; nIterator++)
20.
21. {
22.
23. if((nUserInput % nIterator) == 0)
24.
25. {
26.
27. cout << nIterator;
28.
29. nUserInput /= nIterator;
30.
31. nIterator = 1;
32.
33. if(nIterator != nUserInput) {
34.
35. cout << " * ";
36.
37. }
38.
39. }
40.
41. }
42.
43. system("PAUSE");
44.
45. return EXIT_SUCCESS;
46.
47. }
Lihat Selengkapnya
2.
3.
4.
5. using namespace std;
6.
7.
8.
9. int prime(int x) {
10.
11. int a;
12.
13.
14.
15. for(a=2;a<=x;a++) {
16.
17. if(x%a==0) {
18.
19. cout << a << " * ";
20.
21. x/=a;
22.
23. a--;
24.
25. }
26.
27. }
28.
29. return 0;
30.
31. }
32.
33.
34.
35. main() {
36.
37. int x;
38.
39. cin.clear();
40.
41. cout << "\nInput an integer\n";
42.
43. cin >> x;
44.
45. prime(x);
46.
47. system("PAUSE");
48.
49.
50.
51. }
...
* 3.2 kpk;
1. #include <iostream.h>
2.
3. #include <conio.h>
4.
5.
6.
7. class kpk {
8.
9. friend istream& operator>>(istream&, kpk&);
10.
11. public :
12.
13. kpk ();
14.
15. private:
16.
17. int a,b,nilai;
18.
19. };
20.
21.
22.
23. kpk::kpk() { cout<<"Menghitung KPK"<<endl; }
24.
25.
26.
27. istream& operator>>(istream& in, kpk& masuk) {
28.
29. masuk.nilai=0;
30.
31. cout<<"Masukkan A: "; in>>masuk.a;
32.
33. cout<<"Masukkan B: "; in>>masuk.b;
34.
35. for (int z=1; z<=masuk.b; z++) {
36.
37. masuk.nilai=masuk.nilai+masuk.a;
38.
39. if (masuk.nilai%masuk.b==0) {
40.
41. cout<<"KPK dari "<< masuk.a << " dan "<< masuk.b <<" adalah "<< masuk.nilai <<endl;
42.
43. return in;
44.
45. }
46.
47. }
48.
49. }
50.
51.
52.
53. main () {
54.
55. kpk X;
56.
57. cin >> X;
58.
59. getch ();
60.
61. }
* 3.2 GCD;
1. #include <cstdlib>
2.
3. #include <iostream>
4.
5. using namespace std;
6.
7.
8.
9. class hitung_Gcd {
10.
11. public :
12.
13. int gcd_iteratif(int c, int d);
14.
15. int gcd(int c, int d);
16.
17. private:
18.
19. int bil1, bil2;
20.
21. int hasil;
22.
23. };
24.
25.
26.
27. int hitung_Gcd::gcd_iteratif(int c, int d)
28.
29. { int r;
30.
31. while (d > 0) {
32.
33. r = c % d;
34.
35. c = d;
36.
37. d = r;
38.
39. }
40.
41. return (c);
42.
43. }
44.
45.
46.
47. int hitung_Gcd::gcd(int c, int d)
48.
49. {
50.
51. if (d==0) return(c);
52.
53. if (c<d) return(gcd(d,c));
54.
55. return(gcd(c-d, d));
56.
57. }
58.
59.
60.
61. int main(int argc, char *argv[])
62.
63. {
64.
65. hitung_Gcd X;
66.
67. int a = 20, b = 10;
68.
69. cout << "Gcd (iteratif) dari : " << X.gcd_iteratif(a,b) << endl;
70.
71. cout << "Gcd (rekursi) dari : " << X.gcd(a,b) << endl;
72.
73. system("PAUSE");
74.
75. return EXIT_SUCCESS;
76.
77. }
* 3.5 bilnangan prima tanpa clss
1. #include <cstdlib>
2.
3. #include <iostream>
4.
5.
6.
7. using namespace std;
8.
9.
10.
11. int main(int argc, char *argv[])
12.
13. {
14.
15. long unsigned int nUserInput;
16.
17. cin >> nUserInput;
18.
19. for(long unsigned int nIterator = 2; nIterator <= nUserInput; nIterator++)
20.
21. {
22.
23. if((nUserInput % nIterator) == 0)
24.
25. {
26.
27. cout << nIterator;
28.
29. nUserInput /= nIterator;
30.
31. nIterator = 1;
32.
33. if(nIterator != nUserInput) {
34.
35. cout << " * ";
36.
37. }
38.
39. }
40.
41. }
42.
43. system("PAUSE");
44.
45. return EXIT_SUCCESS;
46.
47. }
Lihat Selengkapnya
Jumat, 01 April 2011
Sekilas Mengenai Algoritma
Algoritma seperti kata kebanyakan orang, bukanlah sesuatu yang hanya berhubungan dengan dunia komputer saja. Algoritma juga berlaku dalam kehidupan sehari-hari. Kali ini saya mau membahas contoh yang mungkin kedengaran tidak “lazim” digunakan untuk memberi gambaran mengenai algoritma :D.
Beberapa contoh sederhana mengenai algoritma yang dapat ditemui dalam kehidupan sehari – hari misalnya:
1. Memasak mie instant.
Prosesnya sbb: memanaskan air, membuka pembungkus mie instant (tentunya), memasukkan mie ke dalam air, taruh bumbu di piring, angkat mie jika sudah masak, campurkan dengan bumbu yang sudah ada di piring dengan mie, makan…
2. Menelepon
Prosesnya sbb: angkat telepon, tekan nomor teleponnya:
· jika diangkat maka mulai berbicara setelah selesai tutup teleponnya
· jika tidak diangkat, maka tutup teleponnya
Dan masih banyak lagi contoh – contoh sederhana mengenai algoritma yang dapat kita jumpai dalam kehidupan sehari – hari.
Algoritma Pemrograman
Sekarang kita mulai membicarakan mengenai algoritma pemrograman. Pertama – tama, akan saya kutip dulu ciri – ciri dari algoritma seperti yang dipaparkan oleh Donald E. Knuth:
· Algoritma mempunyai awal dan akhir.
· Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda (ambigu).
· Memiliki masukan (input) atau kondisi awal.
· Memiliki keluaran (output) atau kondisi akhir.
· Algoritma harus efektif; bila digunakan benar – benar menyelesaikan persoalan.
Saya sendiri sebenarnya tidak terlalu setuju dengan hal – hal seperti itu yang terkesan terlalu membatasi. Karena sebenarnya ada banyak cara untuk menghasilkan sesuatu tanpa harus mengikuti aturan yang “baku ” / satu aturan saja yang terkesan mengikat, iya kan ? Namun jika ada yang mau “bertindak” seperti yang telah dipaparkan di atas, itu sah – sah saja.
Sekarang, kita akan melihat beberapa program, mulai dari yang mudah sampai yang cukup sulit, beserta penjelasannya.
Nilai Terbesar Dari 3 Buah Bilangan
Untuk mencari nilai terbesar dari 3 buah bilangan, dalam C++, kode yang saya gunakan adalah sbb:
#include <iostream>
using namespace std;
void main() {
int a, b, c, d;
cout << "nilai 1: ";
cin >> a;
cout << "nilai 2: ";
cin >> b;
cout << "nilai 3: ";
cin >> d;
c = (a > b ? a : b);
cout << "nilai terbesar adalah : " << (c > d ? c : d) << "\n";
}
Logika:
Bandingkan nilai pertama dengan nilai kedua. Kemudian yang lebih besar di antara nilai tersebut di bandingkan dengan nilai berikutnya (nilai ke tiga), sehingga di dapat nilai terbesar di antara ketiga variabel tersebut.
Penjelasan kode:
Seperti yang kita lihat di atas, pertama – tama, kita membuat tiga variabel yaitu, variabel a, b, c, dan d. Kemudian, kita meminta user untuk memasukkan nilai untuk variabel a, b, dan d. Setelah itu, kita membandingkan nilai masing – masing variabel. Disini digunakan variabel c sebagai “alat bantu”. Variabel c sendiri menyimpan nilai terbesar antara variabel a dan b. Kemudian ditampilkan nilai yang terbesar yang didapat setelah membandingkan variabel c dan d.
Jumlah Deret
Yang dimaksud dengan jumlah deret di sini adalah misalnya saja yang diminta adalah 3 suku deret. Maka dikalkulasikan menjadi:
1 – 1/3 + 1/5 – 1/ 7
Perhatikan bahwa dalam proses kalkulasi tersebut tanda + dan – berubah setiap kali dilakukan proses perhitungan. Baiklah, sekarang kita membahas kodenya:
#include <iostream>
using namespace std;
void main () {
int mp = -1;
double satu = 1, ulang = 3;
int masuk;
cout << "masukan nilai : ";
cin >> masuk;
for (int ulang2 = 1; ulang2 <= masuk; ++ulang2) {
satu = satu + ((1 / ulang) * mp);
mp *= -1;
ulang += 2;
}
cout << satu << "\n";
}
Logika:
Melakukan perhitungan dari suku pertama sampai suku ke – n (jumlah suku yang diminta oleh user). Mungkin yang paling “mengganggu” pemikiran Anda adalah bagaimana cara untuk membuat tanda + dan minus berubah – ubah setiap kali, kan ? Padahal itu bisa saja diatasi hanya dengan mengalikan -1 dengan -1 sehingga hasilnya bisa menjadi positif , ya kan ? Jika sudah begitu, “urusan” berikutnya menjadi beres J.
Penjelasan kode:
Kode di atas juga cukup jelas jika diamati dengan baik. Awalnya kita membuat beberapa “buah” variabel:
· Yang akan menjadi input bagi / dari user, yaitu masuk
· Yang akan “menampung” hasil perhitungan, yaitu satu
· Yang akan menjadi pembagi dan terus dinaikkan nilainya, yaitu ulang
· Yang akan “merubah” tanda dan jenis perhitungan (dari penjumlahan menjadi pengurangan dan sebaliknya), yaitu mp
Kemudian kita melakukan perulangan dengan menjumlahkan variabel satu yang bernilai 1 (pada awalnya) dengan hasil dari 1 dibagi dengan variabel ulang dimana nilai awalnya adalah 3, dan kemudian ditambah 2 untuk setiap perulangan yang dilakukan kemudian dikalikan dengan variabel mp yang bernilai -1 pada awalnya sehingga menghasilkan perhitungan: 1 – (1/3).Variabel mp kemudian dikalikan dengan -1 untuk menghasilkan nilai positif sehingga pada perhitungan berikutnya menjadi seperti berikut:
1 – (1/3) + (1/5)
Begitu seterusnya hingga perhitungan mencapai suku ke – n, dan proses perhitungan pun dilakukan sekali lagi dan berhenti. Hasilnya kemudian ditunjukkan oleh variabel satu.
ALGORITMA DAN PEMROGRAMAN
1. while loop
#include <iostream.h>
int main()
{
int len;
cout<<"masukan panjang (1-79): ";
cin>>len;
while(len>0&&len< 80){
cout<<len<<" ";
len--;
}
cout<<endl;
return 0;
2. DO WHILE
#include <iostream.h>
int main()
{
for(int i=0; i<=3; i++)
cout<<i<<" ";
cout<<endl;
cout<<"pake while\n";
int i=0;
while(i<=3){
cout<<i<<" ";
i++;}
cout<<endl;
cout<<"pake do while\n";
i=0;
do{
cout<<i<<" ";
i++;
}
while(i<=3);
return 0;
}
Selasa, 22 Maret 2011
ALGORITMA DAN PEMROGRAMAN
KONVERSI HARI
Algoritma :
1. Masukkan pilihan hari, misalnya : hari 1 = senin, hari 2 = selasa, hari 3 = rabu, dan seterusnya sampai hari minggu.
2. Kemudian kita coba panggil misalnya angka 1 maka outputnya adalah hari senin, dan seterusnya.
3. Jumlah hari hanya ada 7. Oleh karena itu kata “default” pada program tersebut untuk mengoutputkan hari yang salah atau hari yang tidak dicantumkan pada program. Misalnya output selain nama hari tersebut saya beri nama “hari ilegal” sehingga apabila kita memasukkan angka selain angka 1-7 maka outputnya “hari ilegal”.
Program :
#include <iostream.h>
#include <conio.h>
int main ()
{
char pilihan;
cout<<"masukkan pilihan:";
cin>>pilihan;
switch(pilihan)
{
case '1' :
cout<<"senin";
break;
case '2' :
cout<<"selasa";
break;
case '3' :
cout<<"rabu";
break;
case '4' :
cout<<"kamis";
break;
case '5':
cout<<"jum'at";
case '6':
cout<<"sabtu";
case '7':
cout<<"minggu";
default :
cout<<"hari ilegal";
break;
}
getch ();
return 0;
}
BILANGAN GENAP DAN GANJIL
Algoritma :
Berikut ini adalah bentuk program menentukan bilangan genap atau ganjil. Jadi, apabila kita masukkan sebuah angka, maka outputnya akan keluar angka dari 0 sampai banyaknya angka yang dimasukkan tadi. Disini juga terdapat keterangan bahwa angka tersebut genap atau ganjil.
Program :
#include <iostream.h>
#include <stdio.h>
int main ()
{
int angka;
cout<<"masukkan angka positif ";
cin>>angka;
for(int i = 0; i < angka; i++)
{
if (i%2==0)
cout<< i <<" genap "<<endl;
else
cout<< i <<" ganjil "<<endl;
}
cout<<endl;
getchar ();
return 0;
}
OUTPUT:
PERKALIAN
Algoritma :
1. Program dibawah ini adalah bentuk program untuk mengalikan dua buah angka.
2. Masukkan dua buah angka misalnya a dan b, yang sebelumnya sudah di int a,b,c.
3. Maka kedua angka a dan b tersebut akan dikalikan dengan rumus c= a*b.
4. Tampilkan hasilnya
Program :
#include <iostream.h>
#include <conio.h>
void kali()
{
int a,b,c;
cout<<"Masukan angka:";
cin>>a;
cout<<"Masukan angka:";
cin>>b;
c=a*b;
cout<<"A X B="<<c;
cout<<endl;
}
int main()
{
cout<<"Kali"<<endl;
kali();
getch();
return 0;
}
PENJUMLAHAN
Algoritma :
1. Program dibawah ini adalah bentuk program untuk mejumlahkan dua buah angka.
2. Masukkan dua buah angka misalnya z dan x, yang sebelumnya sudah di int z,x,c.
3. Maka kedua angka z dan x tersebut akan dikalikan dengan rumus c= z+x.
4. Tampilkan hasilnya
Program :
#include <iostream.h>
#include <conio.h>
void jumlah()
{
int z,x,c;
cout<<"Masukan angka:";
cin>>z;
cout<<"Masukan angka:";
cin>>x;
c=z+x;
cout<<"A+B="<<c;
cout<<endl;
}
int main()
{
cout<<"jumlah"<<endl;
jumlah();
getch();
return 0;
}
PENGURANGAN
Algoritma :
1. Program dibawah ini adalah bentuk program pengurangan dua buah angka.
2. Masukkan dua buah angka misalnya p dan o, yang sebelumnya sudah di int p,o,i.
3. Maka kedua angka p dan o tersebut akan dikalikan dengan rumus i=p-o.
4. Tampilkan hasilnya
Program :
#include <iostream.h>
#include <conio.h>
void kurang()
{
int p,o,i;
cout<<"Masukan angka:";
cin>>p;
cout<<"Masukan angka:";
cin>>o;
i=p-o;
cout<<"A-B="<<i;
cout<<endl;
}
int main()
{
cout<<"kurang"<<endl;
kurang();
getch();
return 0;
}
Jumat, 11 Maret 2011
ALGORITMA DAN PEMROGRAMAN
Algoritma Menentukan Luas Lingkaran :
1. Tentukan jari jari lingkaran (r)
2. Masukkan rumus luas lingkaran yaitu pi*r*r dengan pi=3,14
3. Hitung luas lingkaran
4. Tampilkan hasil
#include<iostream.h>
#include<stdio.h>
int main(){
float r,l,pi;
pi=3,14;
cout<<"masukkan nilai r:";
cin>>r;
l=pi*(r*r);
cout<<"luas lingkaran adalah:";
cout<<l;
getchar();
return 0;
Algoritma Memanggil bulan :
1. Masukkan nama bulan misalkan bulan 1 adalah Januari dan seterusnya
2. Misalnya bulan yang dimasukkan hanya ada 4 nama bulan
3. Selain ke-4 nama bulan tersebut berarti “luar” atau salah
#include <iostream.h>
#include <conio.h>
int main ()
{
char pil;
cout<<"masukkan pilihan:";
cin>>pil;
switch(pil)
{
case '1' :
cout<<"januari";
break;
case '2' :
cout<<"februari";
break;
case '3' :
cout<<"maret";
break;
case '4' :
cout<<"april";
break;
default :
cout<<"luar";
break;
}
getch ();
return 0;
}
Algoritma Mencari volume Tabung :
1. Masukkan jari-jari tabung atau r.
2. Masukkan tinggi tabung atau t.
3. Masukkan rumus volume tabung yaitu phi*r2*t (phi =3,14).
4. Hitung volume tabung tersebut.
5. Tampilkan hasil.
#include<iostream.h>
#include<stdio.h>
int main()
{
float v,phi,r,t;
phi=3,14;
cout<<"masukkan nilai r:" ;
cin>>r;
cout<<"masukkan nilai t:";
cin>>t;
v=phi*(r*r)*t;
cout<<"volume tabung adalah:";
cout<<v;
getchar();
return 0;
}
Langganan:
Postingan (Atom)











