Archive for the ‘Algoritma dan Metode Object Oriented Programming (C++)’ Category

Struktur data

Wednesday, January 5th, 2011

1)      Buatlah program untuk mencari nilai minimum dari 10 buah bilangan bulat yang diinputkan oleh user.

#include <iostream>

using namespace std;

int main()

{

// deklarasi variable array untuk menampung 10 bilangan

int num [10];

int min;

cout<<”Masukkan 10 angka : “<< endl;

for (int i = 1;i<=10;i++)

{

cout<<”Bilangan ke-”<<i<<” : “;

cin>>num[i];

cout<<endl;

if (i==1)

{

min=num[1];

}else

{

if (num[i]<min)

{

min=num[i];

}

}

}

cout<<”Bilangan minimum adalah : “<<min<<endl;

system(”pause”);

}

2)      Buatlah program untuk mencari nilai maksimum dari N buah bilangan bulat yang diinputkan oleh user.

#include <iostream>

using namespace std;

int main()

{

//Deklarasi array

int num [10];

int max,x;

cout<<”Jumlah bilangan yang akan dibandingkan : “;

cin>>x;

cout<<”\nMasukkan ke-”<<x<<” bilangan tersebut : “<< endl;

for (int i = 1;i<=x;i++)

{

cout<<”Bilangan ke-”<<i<<” : “;

cin>>num[i];

cout<<endl;

if (i==1)

{

max=num[1];

}else

{

if (num[i]>max)

{

max=num[i];

}

}

}

cout<<”Bilangan maximum adalah : “<<max<<endl;

system(”pause”);

}

3)      Buatlah program dengan struct untuk menginputkan sejumlah data mahasiswa yang terdiri dari NIM, NAMA dan IPK, kemudian menampilkannya data yang sudah diinputkan tersebut dalam bentuk table dengan kolom NIM, NAMA, dan IPK.

#include <iostream.h>

#include <iomanip.h>

struct mhs

{

char NIM[11];

char NAMA[30];

float IPK;

};

typedef mhs mhsArr[3];

int main()

{

mhsArr x;

for (int i=0;i<3;i++)

{

cout<<”\nNIM : “;

cin>>x[i].NIM;

cout<<”NAMA: “;

cin>>x[i].NAMA;

cout<<”IPK : “;

cin>>x[i].IPK;

cout<<endl;

}

cout<<”\n|”<<setw(13)<<”NIM |”;

cout<<setw(32)<<”NAMA |”<<setw(7)<<”IPK |”<<endl;

for (int i=0;i<3;i++)

{

cout<<” |”<<setw(11)<<x[i].NIM<<” |”;

cout<<setw(30)<<x[i].NAMA<<” |”;

cout<<setw(5)<<x[i].IPK<<” |”<<endl;

}

system(”pause”);

}

4)      Buatlah program dengan struct untuk menampilkan NIM dan NAMA mahasiswa yang mempunyai IPK tertinggi dari soal nomor di atas.

#include <iostream.h>

#include <math.h>

#include <iomanip.h>

struct mhs

{

char NIM[11];

char NAMA[30];

float IPK;

};

typedef mhs mhsArr[3];

int main()

{

mhsArr x;

float max=1;

int y;

for (int i=0;i<3;i++)

{

cout<<”\nNIM : “;

cin>>x[i].NIM;

cout<<”NAMA: “;

cin>>x[i].NAMA;

cout<<”IPK : “;

cin>>x[i].IPK;

cout<<endl;

}

cout<<”|”<<setw(13)<<”NIM |”<<setw(32)<<”NAMA |”<<setw(7)<<”IPK   |”<<endl;

for (int i=0;i<3;i++)

{

cout<<”|”<<setw(11)<<x[i].NIM<<” |”<<setw(30)<<x[i].NAMA<<” |”<<setw(5)<<x[i].IPK<<” |”<<endl;

if (x[i].IPK > max)

{

max=x[i].IPK;

y=i;

}

}

cout<<”\nIPK Tertinggi adalah”<<endl;

cout<<”NIM  : “<<x[y].NIM<<endl;

cout<<”Nama : “<<x[y].NAMA<<endl;

cout<<”IPK  : “<<x[y].IPK<<endl;

system(”pause”);

return 0;

}

5)      Buatlah program dengan struct untuk menginputkan dua buah titik dalam koordinat 3D dan menampilkan panjang atau jarak kedua titik tersebut.

#include <iostream>

#include <math.h>

using namespace std;

struct coordinat

{

int x;

int y;

int z;

};

typedef coordinat koor[2];

int main()

{

coor k;

//deklarasi variable dimensi dan sumbu

float d,dx,dy,dz;

for (int i=1;i<=2;i++)

{

cout<<”Masukkan koordinat titik ke-”<<i<<” : “<<endl;

cout<<” X : “;

cin>>k[i].x;

cout<<” Y : “;

cin>>k[i].y;

cout<<” Z : “;

cin>>k[i].z;

cout<<endl;

}

dx=(k[1].x-k[2].x)*(k[1].x-k[2].x);

dy=(k[1].y-k[2].y)*(k[1].y-k[2].y);

dz=(k[1].z-k[2].z)*(k[1].z-k[2].z);

d=sqrt(dx+dy+dz);

cout<<”Jarak kedua titik adalah sejauh “<<d<<endl;

system(”pause”);

}

Struktur Control

Wednesday, January 5th, 2011
  1. Buatlah program yang untuk menginputkan sebuah bilangan dan mengenalinya apakah bialangan tersebut genap atau ganjil
#include <iostream>

using namespace std;

int main()

{

int num1,num2;

cout<<”masukkan sebuah bilangan : “;

cin>> num1;

num2= num1%2;

if (num2==0)

{

cout<<”\n”<< num1<<” adalah bilangan genap.”<<endl;

}else

{

cout<<”\n”<< num1<<” adalah bilangan ganjil.”<<endl;

}

system(”pause”);

}// end function main

  1. Buatlah program untuk mengkonversi nilai angka menjadi nilai huruf dengan ketentuan sebagai berikut:
  • 0 – 49  = E
  • 50 – 64 = D
  • 65 – 74 = C
  • 75 – 84 = B
  • 85 – 100 = A
#include <iostream>

using namespace std;

int main()

{

// declaration variable input number

int num;

cout<<”masukkan nilai 1 – 100 : “;

cin>> num;

if (num>=0 && num<=49)

{

cout<<”\nNilai “<<num<<” = E.”<<endl;

}else if (num>=50 && num<=64)

{

cout<<”\nNilai “<<num<<” = D.”<<endl;

}

else if (num>=65 && num<=74)

{

cout<<”\nNilai “<<num<<” = C.”<<endl;

}

else if (a>=75 && a<=84)

{

cout<<”\nNilai “<<a<<” = B.”<<endl;

}

else if (num>=85 && num<=6100)

{

cout<<”\nNilai “<<num<<” = A.”<<endl;

}

system(”pause”);

}// end function main

  1. Buatlah program untuk mencari nilai max nilai min dan nilai rata-rata dari tiga buah bilangan input
#include <iostream>

using namespace std;

int main()

{

//declaration variable

float num1,num2,num3,max,min,avg;

//enter number

cout<<”Masukkan nilai Number1 : “;

cin>>num1;

cout<<”\nMasukkan nilai Number2 : “;

cin>>num2;

cout<<”\nMasukkan nilai Number3 : “;

cin>>num3;

max=min=num1;

if (max<num2)

{

max=num2;

}

if (max<num3)

{

max=num3;

}

if (min>num2)

{

min=num2;

}

if (min>num3)

{

min=num3;

}

avg=(num1+num2+num3)/3;

cout<<”\nNilai terbesar  = “<<max<<endl;

cout<<”\nNilai terkecil  = “<<min<<endl;

cout<<”\nNilai rata-rata = “<<avg<<endl;

system(”pause”);

}// end function main

  1. Buatlah program yang dapat menampilkan factor dari suatu bilangan yang diinputkan, contoh factor(6) = 1, 2, 3, 6
#include <iostream>

using namespace std;

int main()

{

// declaration variable

int num1,num2;

// enter number

cout<<”masukkan bilangan : “;

cin>>num1;

cout<<”\nFaktor dari “<<num1<<” adalah : “;

for (int i=1;i<=num1;i++)

{

num2=num1%i;

if (num2==0)

{

cout<<i<<” “;

}

}

cout<<endl;

system(”pause”);

}// end function main

  1. Buatlah program C++ dengan menggunakan for loop untuk menghitung banyaknya bilangan prima dari suatu bilangan yang diinputkan oleh user, dengan bilangan input antara 1 s/d 500.
#include <iostream>

using namespace std;

int main()

{

int num1,num2=0,num3,prima=0;

cout<<”Masukkan bilangan 1-500: “;

cin>>num1;

if (num1>=1 && num1<=500)

{

cout<<”Bilangan prima dari “<<num1<<” : “;

for (int i=1;i<=num1;i++)

{

num3=0;

for (int j=1;j<=i;j++)

{

num2=i%j;

if (num2==0)

{

num3++;

}

}

if (num3==2)

{

prima++;

cout<<i<<” “;

}

}

cout<<endl;

cout<<”Banyaknya bilangan prima pada “<<num1<<” adalah “<<prima<<endl;

}else

{

cout<<”Bilangan “<<num1<<” diluar range 1-500!”;

}

system(”pause”);

}// end function main

  1. Tuliskan program untuk menampilkan bilangan sempurna (perfect number) yang kurang dari 1000. Bilangan sempurna adalah bilangan yang sama dengan jumlah faktornya selain bilangan itu sendiri, contoh: 6 = 1+ 2+ 3.
#include <iostream>

using namespace std;

int main()

{

//declaration variable

int num1,num2;

cout<<”Bilangan sempurna range 1-1000 = “;

for (int i=1;i<=1000;i++)

{

num1=0;

num2=0;

for (int j=1;j<i;j++)

{

num1=i%j;

if (num1==0)

{

num2=num2+j;

}

}

if (i==num2)

{

cout<<i<<” “;

}

}

cout<<endl;

system(”pause”);

}// end function main

Assingment Week 1 | Algoritma Pemrograman

Wednesday, January 5th, 2011
  1. Buatlah algoritma untuk mencari luas dan keliling lingkaran.
  1. Set variable R untuk inputan jari-jari lingkarang dengan tipe float
  2. Set variable L untuk luas lingkaran
  3. Set variable K untuk keliling lingkaran
  4. Set nilai PI = 3,14
  5. Gunakan nilai diatas untuk mencari:
    1. Luas lingkarang gunakan rumus L = PI*R*R
    2. Keliling lingkaran gunakan rumus K = 2*PI*R
    3. Cetak nilai L dan K
    4. Proses selesai.

  1. Buatlah algoritma untuk mencari factor dari suatu bilangan input.
  1. Set  N=0
  2. Masukkan nilai inputan bilangan pada variable N
  3. Set counter k = 1
  4. Ulangi langkah berikut  selama k<=N
    1. Jika N modulus k = 0 maka k sebagai factor dari bilangan N
    2. Tambahkan 1 pada k
    3. Hasilnya adalah  bilangan k
    4. Cetak nilai k
    5. Proses selesai

  1. Buatlah algoritma untuk menghitung rata-rata dari 10 bilangan yang diinputkan

  1. Set N1=0, N2=0, N3=0, N4=0, N5=0, N6=0, N7=0, N8=0, N9=0, N10=0
  2. Set x = 0
  3. Input N1, N2, N3, N4, N5, N6, N7, N8, N9, N10  sebagai angka
  4. Hitung nilai x =(N1+N2+N3+N4+N5+N6+N7+N8+N9+N10)/10
  5. Cetak nilai x sebagai hasil dari rata-rata 10 bilangan yang diinput
  6. Proses selesai

  1. Buatlah algoritma untuk menghitung factorial dari suatu bilangan bulat positif.

  1. Set sum sebagai angka, dan inisialisai untuk nilai pertama dari sum = 1
  2. Set N =0
  3. Set counter k = 1
  4. Input nilai N sebagai angka
  5. Ulangi langkah berikut  selama k<=N
    1. Hitung sum = sum * k
    2. Tambahkan 1 pada k
    3. Hasilnya adalah bilangan sum
    4. Cetak nilai sum
    5. Proses selesai
  1. Tulis algoritma untuk menghitung akar persamaan kuadrat. Akar persamaan kuadrat dapat dicari dengan menentukan terlebih dahulu nilai diskriminan dengan rumus

D = B2 – 4AC.

Jika Nilai D < 0 maka merupakan “Akar Imaginer”.

Jika Nilai  D= 0, maka X1=X2 = –B / (2A).

Jika Nilai D > 0, maka terdapat dua akar berbeda

X1 = (-B + ÖD) / (2A) dan X2 = (-B – ÖD) / (2A)

  1. Set D=0
  2. Set B=0
  3. Set A=0
  4. Set C=0
  5. Set X1=0 dan X2=0
  6. D, B, A, C sebagai angka kemudian input nilai dari masing-masing variable tersebut
  7. Hitung nilai dari D = B2 – 4AC
  8. Jika D<0 maka X1=X2 = Akar imaginer
  9. Jika D=0 maka hitung nilai untuk X1=X2 = -B/(2A)

10.  Jika D>0 maka hitung nilai untuk

  1. X1 = (-B + ÖD) / (2A)
  2. X2 = (-B – ÖD) / (2A)

11.  Hasilnya adalah X1 dan X2

12.  Cetak nilai X1 dan X2

13.  Proses selesai

  1. Sebuah program C++ memuat deklarasi dan inisialisasi berikut :

int ix = 5, iy = 10;

float fx = 0.001, fy = -17.08;

char ch1 = ‘A’, ch2 = ‘E’;

Tentukanlah hasil evaluasi pernyataan-pernyataan berikut. Untuk setiap soal gunakan kembali nilai yang diberikan pada saat inisialisasi :

a. ch1 = ch2 * ix;

b. ch1 += ch2;

c. fx += (fy *= (iy/ix));

d. iy = (int) (iy / ((int) fy));

e. ch2 == ch1 + ix;

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int ix = 5;
int iy = 10;
float fx = 0.001;
float fy = -17.08;
char ch1 = ‘A’;
char ch2 = ‘E’;

cout << ch1 = ch2 * ix << endl;
cout << ch1 += ch2 << endl;
cout << fx += (fy *= (iy/ix)) << endl;
cout << iy = (int) (iy / ((int) fy)) << endl;
cout << ch2 == ch1 + ix << endl;

system(”pause”);
return 0; // indicate that program ended successfully
} // end function main

  1. Tulis program untuk menghitung konversi temperatur dari celcius ke fahrenheit, reamur, dan kelvin.

Konversi dari C ke F :  1.8 t  + 32

Konvesi dari C ke R : 0.8 t

Konversi dari C ke K: t + 273

1         2

12345678901234567890123456

1

2

3

4

5

6

Konversi Temperatur

Temperatur asal, C ? 72.8

F =   163.04

R =    58.24

K =   345.80

#include <iostream.>

using namespace std;

int main()

{

float C, R, F, K;

cout << “Konversi Temperatur “;

cout << “\n\nTemperatur asal, C : “;

cin >> C;

R=(0.8)*C;

F=((1.8)*C)+32;

K=C+273;

cout << “F = ” << F << endl;

cout << “R = ” << R << endl;

cout << “K = ” << K << endl;

system(”pause”);

return 0; // indicate that program ended successfully

} // end function main

  1. Buatlah program sederhana untuk menghitung akar persamaan kuadrat. Akar persamaan kuadrat dapat dicari dengan menentukan terlebih dahulu nilai diskriminan dengan rumus D = B2 – 4AC.

Jika Nilai D < 0 maka merupakan “Akar Imaginer”.

Jika Nilai  D= 0, maka X1=X2, yang didapat dengarn rumus –B / (2A).

Jika Nilai D > 0, maka terdapat dua akar berbeda yaitu

X1 = (-B + ÖD) / 2A dan X2 = (-B – ÖD ) / 2A

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
float A, B, C, D;

cout << “Rumus : D = (B*B) – 4AC ” << endl;
cout << “Input A = “;
cin >> A;
cout << “\nInput B = “;
cin >> B;
cout << “\nInput C = “;
cin >> C;
cout << “\nInput D = “;
cin >> D;

if (D<0){

cout << “\nX1 dan X2 adalah Akar Imaginer” << endl;

}
if (D==0){

cout << “\nX1 = X2 = ” << -B / (2*A) << endl;

}
if (D>0){
cout << “X1 = ” << (-B + sqrt(D)) / 2*A << endl;
cout << “X2 = ” << (-B – sqrt(D)) / 2 << endl;
}

system(”pause”);  // indicate that program ended successfully

return 0;
}// end function main