Minggu, 22 Mei 2011

faktor persekutuan terbesar


3.3 faktor persekutuan terbesar
1. masalah
                  Di berikan 2 integer positif tidak atau bukan nol n & m, pola algoritma untuk mencari pembagi yang paling besar.
2. input dan output
                  M= integer (input)
                  N =integer
                  Gcd= integer (output)
                  R= integer
                  D= integer
3. algoritma
                  Read m,n
While (m <0) do
R ß n mod m
N ß m
End while
Gcd ß m
Write = gcd
4. test data
M= 36             n= 28
N= 28            m=8
R=36 % 28      gcd = 8
R= 8
5. coding
Class gcd {
Friend ostream& operator << (ostream. Gcd&);
Friend istream& operator >> (istream. Gcd&);
Public;
Int hitung gcd (int ,int);
Private ;
Int x,y;
};
Int gcd :: hitung gcd (int ,(int d)
{ int r;
While ( d> 0);
R = c % d;
D= d;
D= r;
}
Return  ( r );
}
(istream& operation >> (istream& in, gcd& a){
Cout << “ masukan bilangan petama ;” ;
In >> a.x;
Cout << “ masukan bilangan kedua ; “ ;
In >> a.x;
Return in; }

Ostream& operation << istream& out , gcd& a){
Out << “gcd ‘ << a.c << “.” << a. x << );”;
Out << a.hitung gcd (a.x, a.y);
Return out;
}
Void main (){
Gcd run;
Cin >> run ;
Cout << run ;
Getch ();
}


pembagi terkecil di sebuah integer terkecil (KPK)


3.2 pembagi terkecil di sebuah integer terkecil (KPK)
1. masalah
                  Di berikan sebuah n integer kemudian memikirkan algoritma untuk menentukan pembagi terkecil selain angka 1.
2. input dan output
X=integer (input)
R=integer
D= integer
Kpk = integer (output)
3. algoritma
                  Menetukan pembagi terkecil dari sebuah bilangan
Deklarasi
X=integer
R= integer
D=integer
Deskripsi
Read x
R ß sqrt (x);
D ß 3
If (n ! = n) then kpk =2
Else
While (n mod d ≤ 0) and (d < r) do
D ß d + 2
If (n mod :: 0) then kpk. D
Else then kpk=1
End while
4. test data
X= 25
R= 5
If(x! =x)
Kpk =2
While x mod <> 0 end (d < r)
Kpk = d+2
5. coding
Class terkecil
Friend istream& operator >> (istream&, terkecil&);
Friend ostream& operator >> (ostream&, terkecil&);
Public;
Void kpk ();
Private ;
Int x,n,d,k;
};
Istream& operator >> (istream& in, terkecil& a)}
Cout <<”masukan bilangan “ ; in >> a,x;}
Ostream& operator << (ostream out. Terkecil& b)}
Out << “hasilnya “ << b.k <<endl; }
Terkecil::terkecil (){
Cout <<”mencari kpk “ ; }
Void terkecil :: kpk (){
If (n! =n) k= 3;
Else while (n % d<) 0 && d < r ){
D=d+2
If (n % d :: 0 ) k=d;
Else k = 1;}
Int main (){
terkecil m;
Cin >>m ;
m.FPB ();
cout <<m ;
getch ();
return 0;
}


2.3 menjumlahkan beberapa bilangan


2.3 menjumlahkan beberapa bilangan
1. masalah
                  Diberikan pada sejumlah dari sebuah algoritma kemudian di tambahakan nol tersebut dan kemudian di tambahakan pengambilan n lebih besar atau sama dengan 0.
2. input dan output
                  X= integer (menggunakan array)
                  Sum= integer
3. algoritma
                  Menjumlahkan sejumlah bilangan
Deklarasi
                  Read n
                  For I ß 0 to n do
                  Read x
                  Sum ß 0
                  Sum : sum + x
                  End for
                  Write sum
4.   test data
·         Input n : 3
·         For 1 ß 0 to 3 do
·          Read x 1 : 3
·          Sum = 0+3
·          Read x 1, 4
·          Sum = 4+ 3
·          Read x 3 : 7
·          Sum = 7+ 7
·          Write = 14

5.coding
Class jumlah c
Friend istream & operator >> (istream&, jumlah&);
Friend ostream& operator <<(ostream& jumlah&);
Public:
Int hitung ();
Jumlah();
Private;
Int x [50], sum, n;
};
Istream& operator >>(istream&, jumlah& a);
Output << “masukan banyak input “ ;
In >> a.n;
ostream& operator <<(istream& out, jumlah& b){
out <<” hasil semua bilangan “<<b.sum <<endl;
jumlah :: jumlah (){
cout <<” menjumlahkan sejumlah bil “; {
int jumlah :: hitung (){
sum : 0 for (int i= 0 ;; < n , i++){
cout <<” masukan angka ke-“ << i+1;
cin >> x [i];
sum = sum + x [i] ;
};
Int main (){
Jumlah tuty;
Cin >> tuty;
Tuty.hitung;
Cout<<tuty;
Getch();
Return 0;
}








Sabtu, 21 Mei 2011

1. iteratif
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok instruksi di mana perulangan tersebut akan berhenti jika batasan syarat sudah tidak terpenuhi.
Kelebihan perulangan iteratif:
• Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah.
• Dapat melakukan nested loop atau yang disebut dengan looping bersarang.
• Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan.
• Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.
Kelemahan perulangan iteratif:
• Tidak dapat menggunakan batasan berupa fungsi.
• Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri.
program 1
Bentuk fungsi iteratif :
#include
#include
using namespace std;
int jumlah(int n) {
int hasil = 0;
for (int i=0; i hasil = hasil + i;
return hasil;
}
void cetak(int n) {
for (int i=0; i cout << i << ” “;
}
int main(int argc, char *argv[])
{
int n = 10;
cout << jumlah(n);
cetak(n);
system(“PAUSE”);
return EXIT_SUCCESS;
}
2. rekursif
Rekursif berarti bahwa suatu proses bisa memanggil dirinya sendiri. Menurut definisi dalam Microsoft Bookshelf, Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Dalam Rekursif sebenarnya terkandung pengertian prosedur dan fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur dan fungsi harus dipanggil lewat pemanggil prosedur dan fungsi. Rekursif merupakan teknik pemrograman yang penting dan beberapa bahasa pemrograman mendukung keberadaan proses rekursif ini. Dalam prosedur dan fungsi, pemanggilan ke dirinya sendiri bisa berarti proses berulang yang tidak bisa diketahui kapan akan berakhir.
Kelebihan perulangan rekursif:
• Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
• Dapat melakukan perulangan dengan batasan fungsi.
Kekurangan perulangan rekursif:
• Tidak bisa melakukan nested loop atau looping bersarang.
• Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
• Trace error sulit.
• Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
• Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.
diubah kedalam bentuk rekursif :
Dalam bentuk rekursif :
#include
#include
using namespace std;
int jumlah(int n) {
if(n==0) return (0);
else return (n-2 + jumlah(n-2));
}
void cetak(int n) {
if(n!=0){
cetak(n-2);
cout << n-2 << ” “;
}
}
int main(int argc, char *argv[])
{
int n = 10;
cout << jumlah(n);
cetak(n);
system(“PAUSE”);
return EXIT_SUCCESS;
}
3. Array dua dimensi adalah array yang memiliki dua buah subskrip yaitu baris dan kolom.
Bentuk umum pendeklarasian array dua dimensi:
Tipe_data nama_array [banyak_baris] [banyak_kolom] ;
Contoh program:
/* program array multi dimensi*/
# include
main()
{
int i,j;
int x[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
for(i=0; i<3; i++) { for(j=0; j<4; j++) printf(“%6d”,x[i][j]); printf(“\n”); } printf(“\n”); } /* program array multi dimensi*/ #include
main()
{
int x[3][4],i,j;
for(i=0; i<3; i++) { for(j=0; j<4; j++) { printf(“input data matrik [%i][%i]:”,i,j); scanf(“%i”,&x[i][j]); } } printf(“\nOutput data matrik\n”); for(i=0; i<3; i++) { for(j=0; j<4; j++) printf(“%6i”,x[i][j]); printf(“\n”); } } #include
main()
{
int A[3][2], B[3][2],C[3][2], i, j;
for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf(“input data matrik A[%i][%i] :”,i,j); scanf(“%i”,&A[i][j]); } } for(i=0;i<3;i++) { for(j=0;j<2;j++) { printf(“input data matrik B[%i][%i] :”,i,j); scanf(“%i”,&B[i][j]); } } for(i=0;i<3;i++) { for(j=0;j<2;j++) { C[i][j]=A[i][j]+B[i][j]; } } printf(“\n matrik penjumlahan A+B\n”); for(i=0;i<3;i++) { for(j=0;j<2;j++) printf(“%6i”,C[i][j]); printf(“\n\n”); } Ini contoh program untuk input data/nilai dan mencari rata-rata dengan menggunakan array. #include
#include
main()
{
int i,data;
char nama[30];
float nilai[100];
float rata;
printf(“Bayaknya data : “);
scanf(“%d”,&data);
for(i=0; i {
printf(“Data mahasiswa ke-[%d]\n”,i+1);
printf(“Nama = “);
scanf(“%s”,&nama);
printf(“Nilai = “);
scanf(“%f”,&nilai[i]);
}
{
float jum=0;
for(i=0; i jum+=nilai[i];
rata=jum/data;
}
printf(“\n”);
printf(“Daftar Nilai Mahasiswa\n”);
printf(“================================\n”);
printf(“Nama mahasiswa Nilai \n”);
printf(“================================\n”);
for(i=0; i {
printf(“\n%s “,nama);
printf(“%1.f”,nilai[i]);
}
printf(“\n================================\n”);
printf(“rata-rata adalah = %.1f”,rata);
}

Selasa, 17 Mei 2011

tugas Diskusi Membuat Simulasi Bahan Bakar Bensin



Nama kelompok:
1.       Desmala Dewi (10018061)
2.       Tutik Lestari     (10018070)
3.        Muhammad Kholid Immawan Danuha (10018077)

       Berikut ini program  simulasi bahan bakar bensin, dengan ketentuan inputnya adalah sebagai berikut:
·         Inputannya : -uang/liter dan - Jenis bahan bakar
·         Outputnya : jumlah liter dan uang yang hrs dibayar

#include <iostream.h>
#include <conio.h>
class SPBU (){
friend ostream& opreator<<(ostream&,SPBU&);
friend istream& operator>>(istream&,SPBU&);
public :
    void banyak();
    void pilihan();
    void hitung_liter();
    void hitung_harga();
private :
    int harga;
    int Biaya;
    int x,y ;
    float hasil ;
    float premium ;
    float solar ;
    float pertamax ;
};
void banyak::liter(){
    cout<<"Masukkan berapa liter yang dibutuhkan : ";
    cin>>x;
}
void banyak::pilihan(){
    cout<<"pilih 1 untuk premium\n"<<premium;
    cout<<"pilih 2 untuk solar\n"<<solar;
    cout<<"pilih 3 untuk pertamax\n"<<pertamax;
    cout<<"Masukkan pilihan anda : ";
    cin>>y;
}
void banyak::hitung_liter(){
    float i = 0.0;
    while(i <= x){
        i = i + 0.1;
        cout<<i<<endl;
    }
}
void banyak::hitung_harga(){
    float hasil = 0.0;
    float premium = 4500;
    float solar = 6000;
    float pertamax = 8000;
    if(y == 1)
        hasil = x * premium;
    else if(y == 2)
        hasil = x * solar;
    else if(y == 3)
        hasil = x * pertamax;
    cout<<"Biaya : "<<hasil<<endl;
}
void main(){
    SPBU :
    banyak.banyak();
    banyak.harga();
    banyak.hitung_liter();
    banyak.hitung_harga();
    return EXIT_SUCCESS;
}


Sabtu, 14 Mei 2011

Mengimplementasikan ratio class


1.      Mengimplementasikan ratio class
Untuk deklarasi sebagai objek dari class pecahan.karena itu class pecahan memiliki internal datanya sendiri members lang dan but, dan juga dapat mamnggil empat class member function seperti : isikan(),nilai(), seperX(), dan cetak(). Pemngilan anggota fungsi selalu di awali dengan nama objek pemiliknya: x. nilai(). Dan memang function member hanya dapat di panggil dengan cara ini.
#include <iostream.h>
Class pecahan {
Public:
Void isikan(int, int);
Double nilai();
Void seperX();
Void cetak();
Private:
Int lang,but;
};
Int main(){
Pecahan x;
x.isiskan (22,7);
cout <<”x=  ”;
x.seperX();
cout <<”1/x= “;.cetak();
cout << endl;
return 0;
}
Void pecahan :: isikan(int pembilang,int penyebut){
Lang= pembilang;
But=penyebut;
}
Double pecahan ::nilai (){
Return double (lang)/but;
}
Void pecahab ::seperX(){
Int temp =lang;
Lang =but;
But=temp;
}
Void pecahan ::cetak(){
Cout<<lang<<”/”<<but;
}


constructor class untuk pecahan


2. constructor class untuk pecahan
                  Constructor menginisialisasikan objek dengan nilai tertentu pada anggota data.pada saat deklarasi dari x, constructor terpanggil secara otomatis dan integers -1 dan 3 di terima oleh parameter n dan d. kemudian fungsi mengisikan nilai tersebut ke anggota   data dan but dari objek x.jadi deklarasinya
Pecahan x(-1,3), y(22,7);
Adalah sebanding dengan tiga baris
Pecahan x,y;
X.isikan (-1,3);
y.isikan (22,7);
berikut program c++ nya

#include <iostream.h>
 Class pecahan {
Publice :
Pecahan(int,int);
Void cetak ();
Private :
Int lang, but;
};
Int main (){
Pecahan x(-1,3), y(22,7);
Cout <<” x = “;
x.cetak ();
cout <<” dan y = “;
y.cetak();
return 0;
}
Pecahan ::pecahan (int n, int d)[
Lang = n;
But = d;
}
Void pecahan :;cetak (){
Cout<<lang <<’/’<<but;
}