Kamis, 21 April 2011

Iteratif dan Rekursif

Nama kelompok :
1. Isliyati (10018091)
2. Sri Rustiningsih (10018092)
3. Nurul Hidayah (10018095)

Hasil Diskusi Kelompok :

Contoh konversi dari function rekursif ke iteratif :
#include<cstdlib>
#include<iostream>

using namespace std;
int jumlah(int n) {
int hasil = 0;
for(int i=0; i<n; i=i+2)
hasil = hasil+i;
return hasil;
}
void cetak(int n) {
for(int i=0; i<n; i=i+2)
cout<<i<<””;
}

int main(int arbc, char*argv[])
{
int n = 10;
cout<<jumlah(n);
cetak(n);

System(“PAUSE”);
return EXIT_SUCCESS;
}



Contoh konversi dari fuction iteratif ke rekursif
#include<cstdlib>
#include<iostream>

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;
}




Rangkuman Secara Teori Ke-2 Bentuk Perulangan :
Dalam beberapa situasi, pemecahan secara rekursif maupun secara iteratif mempunyai kelebihan dan kekurangan yang bisa saling diperbandingkan. Cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling mudah dibanding yang lain. Boleh dikatakan pemilihan secara iteratif maupun rekursif merupakan kesenangan seorang programer dan tergantung konteks permasalahan yang akan dipecahkan sesuai dengan kesanggupan yang bersangkutan.
Persamaan antara perulangan iteratif dan rekursif :
·         Iteratif dan rekursif merupakan metode atau teknik didalam perulangan (looping).
·         Sama-sama mengalami perulangan kondisi.
Adapun dalam kedua perulangan terdapat kelebihan dan kekurangan :
Ø      Perulangan iteratif
            Kelebihan :
a.       Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah
b.      Proses lebih singkat karena perulangan terjadi pada kondisi yang telah disesuaikan
Kelemahan :
a.       Tidak dapat menggunakan batasan berupa fungsi
b.      Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri
Ø      Perulangan rekursif
           Kelebihan :
a.       Sangat mudah untuk melakukan perulangan dengan batasan yang luas
b.      Dapat melakukan perulangan dengan batasan fungsi
Kekurangan :
a.       Tidak bisa melakukan looping bersarang.
b.      Membuat fungsi sulit untuk dipahami.
c.       Proses agak berbelit-belit karena terdapat pemanggilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.



Senin, 18 April 2011

Algoritma dan Program Menghitung Pajak

Menghitung pajak dari total pembelian sebuah barang, dimana pajaknya = 10% dari total pembelian.

Algoritma  :
1. Deklarasikan fungsi untuk menghitung pajak 
2. Sesuaikan dengan langkah pertama, untuk menghitung pajak rumusnya adalah sebagai berikut: pembelian * 10%
3. Masukkan Pembelian
4. Untuk menghitung pajak pembelian, kerjakan langkah kedua.
5. Tampilkan pajak pembelian.

Program  :
#include<iostream.h>

float calsSalesTax(float purchase,float taxRate = 0,1);

int main(){
           float purchase;

          cout<<"Masukkan pembelian : ";
          cin>>purchase;

         float tax = calcSalesTax(purchase);
         cout<<"Pajal pembelian adalah: "<<tax<<endl;

        return 0;
}
float calsSalesTax(float purchase,float taxRate);
{
    return purchase * taxRate;
}

Databases

  1. The database is a collection of information stored in the computer in a systematic way so that it can be  checked using a computer program to obtain information from the database.
  2.  A database is a representation of a collection of facts that are interconnected stored together in such a way and without repetition (redundancy) is not necessary, to meet various needs.
  3. The database is a collection of related information on a given subject at a specific destination.
  4. A database is a comprehensive array of operational data records from an organization or company, organized and stored in an integrated way by using certain methods in the computer so as to meet the optimal information needed by the user.

Jumat, 15 April 2011

REKURSIF

Rekursif
            merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atau procedure yang memanggil dirinya sendiri.
Definisi menurut Niclaus Wirth :
“ An object is said be recursive if it partially consist or is defines in terms of itself”

Perhitungan matematika ( contoh bilangan Fibonacci)
 Slide 5
 Bilangan Fibonacci

         Fungsi lain yang dapat diubah ke bentuk rekursif adalah perhitungan Fibonacci. Bilangan Fibonacci dapat didefinisikan sebagai berikut:
                        fn = fn-1 + fn-2 untuk n > 2
                        f1 = 1
                        f2 = 1
            Berikut ini adalah barisan bilangan Fibonacci mulai dari n=1
                        1   1    2    3    5    8    13    21   34


Algoritma Fibonacci yang dipakai :
Slide 6
Function Fibonacci(input n:integer) à integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
If (n ==1 || n==2) Then
  return (l)
Else
  return (Fibonacci(n-1)+Fibonacci(n-2))
Endif

Algoritma Untuk Menentukan Bilangan Prima

Function Prima (input m, integer) = Boolean
{Mengembalikan true jika m bilangan prima, dan false jika m bukan prima}

Deklarasi  :
i        : integer
prim  : boolean

Algoritma  :

i ← 2
prim ← true      {asumsikan m  pada awalnya bilangan prima}
while(i ≤ m -1) and (not prim) do
     if  m  mod  i = 0 then       {m habis dibagi dengan bilangan i ≤ m -1}
           prim ← false            {kesimpulannya : m bukan bilangan prima}
    else
           i ← i + 1           {coba bagi dengan i berikutnya}
    endif
endwhile

return prim

Exchange value of 2 variables (Mempertukarkan nilai dari 2 peubah)

ALGORITHM  Exchange value of 2 variables

Exchange Program
{exchange value of A and B, the value of A and B read first.}

Declaration:
A, B, temp: integer

Algorithm:
read (A, B) {read value A and B advance}
exchange process {}

temp ← A {store the value of A in place temporary, temp}
A ← B {A can now be filled with a value of B}
B ← {temp fill B with an A which was originally stored in the temp}
write (A, B) {print value of A and B after the exchange}

PROGRAM:
# include "stdio.h"
main ()
{
/ * Declaration * /
int A, B, temp;

/ * Algorithm * /
/ * read value A and value B * /

printf ("A =?"); scanf ("% d ", & A);
printf ("B =?"); scanf ("% d ", & B);

/ * The process of exchange * /
temp = A;
A = B;
B = temp;

/ * write the value A and value B after the exchange * /
printf (A =% d \ n ", A);
printf (B =% d \ n ", B);

Kamis, 14 April 2011

Tahun Kabisat (Leap year)

           To determine whether a particular year is a leap year, you can write a formula that determines whether the twenty-ninth day of February occurred in February or March. You can take advantage of the fact That Excel's DATE function adjusts the result Pls you supply an invalid argument-for example, a day of 29 Pls you can take advantage of the fact that the function DATE Excel adjust the results if you provide the argument-for example, invalid days from 29 now contains only 28 days in February.
 
THIS PROGRAM :
public class tahun kabisat {
int x;
public int bil(int x){
return x;
}
            public final void kabisat()
            {
            int bil;
             bil=Input.readInt();  //Input bilangan
               if(bil % 4 == 0)        //Proses perhitungan tahun kabisat,bilangan yang habis dibagi 4
              {
                     System.out.print("Tahun kabisat.\n");   //Jika true maka tahun kabisat
                  }
              else
              {
                  System.out.print("Tahun bukan kabisat.\n");    //Jika false maka bukan tahun kabisat
              }
         
              System.out.print(bil);
         
           }
            public tahun_kabisat()
            {
            System.out.print("Program untuk menampilkan tahun kabisat");
            System.out.print("\n");    //Output tulisan
            }
}
public class MyClass {    //Methode area
   public static void main() {
   tahun_kabisat x = new tahun_kabisat();    //tahun kabisat x dipanggil       
   x.kabisat();
System.out.print("\n");
    }
}

Sabtu, 09 April 2011

Determining Program Area of ​​Circles & Balls Volume

# Include <iostream>  
# Include <conio> 

  
class count {
   
friend ostream & operator <<(ostream &, const count &);
   
friend istream & operator>> (istream &, & count); public:
  

 count ();
   
hitung_luas void () {area = (3.14 * r * r);}    / / formula to find area of ​​a circle
   
hitung_volum void () {volume = (3.14 * (r * r * r) * 4 / 3);}    / / formula to find the volume of the ball.
  
private:
   
int r int wide; float volume;     / / declaring variables that will be used
   
}; 


count:: count () {
    
court <<"Counting Program Area of ​​Circles and Balls Volume: \ n";
   


istream & operator>> (istream & ins, count & input)   {/ * input function to call the class count * /
   
court <<"Enter the value jari2:"; in>> masukkan.r;    / / input value of the radius
   
return ins;  



ostream & operator <<(ostream & out, const count & output) {
  
out <<"The value of r:" <<keluaran.r <<endl <<endl;
  
out <<"broad circle:" <<keluaran.luas <<endl;
  
out <<"volume of the ball:" <<keluaran.volum <<endl;   / * court or the output of the value of r, n lingkran Area Volume of ball * /
  
return out;
  
}

  
main () {
  
count x;      / / x function to replace the class count
  
cin>> x;    / / input value x (the radius).
  
x.hitung_luas ();     / / call the formula area of ​​a circle that is in a class count
  
x.hitung_volum ();    / / call volume sphere formula that is in a class count
  
court <<x;    / / results
  
getch ();
  
return 0;
  
}

Program mencari volum bola

#include <iostream>
#define phi 3.14

using namespace std;

int main(int argc, char *argv[])
{
    float jari2, tinggi, volum;
    cout<<"Masukkan jari2 : ";
    cin>>jari2;
    cout<<"Masukkan tinggi : ";
    cin>>tinggi;
    volum = 4/3*3.14*jari2*tinggi*tinggi*tinggi;
    cout<<"Volum bola : "<<volum;
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Luas lingkaran

#include<iostream.h>
#include<conio.h>
#define phi 3.14

void main(){

float jari2,luas;
clrscr();
cout<<"Masukkan jari2 : ";
cin>>jari2;
luas = phi *jari2*jari2;
cout<<"Luas lingkaran : "<<luas;
getch();
}

Program Menentukan Bilangan Prima

#include <iostream.h>
#include <stdlib.h>
       int main()
 {
       int a,n,h;
   cout << "Masukan Nilai Bilangan yang akan di cek: ";
   cin >> a;
   for (n=2;n<=a-1;n+=1)
   {
      h = a % n;
      if ( h != 0)
      {
      n = n+1;
         for (n=2;n<=a-1;n+=1)
         {
                   if (n == a-1)
               {
                   cout << "Bilangan Tersebut adalah Bilangan Prima"
                  << endl;
                     }
                  }
               }
               else
                   cout << "Bilangan Tersebut Bukanlah Bilangan Prima"
                  << endl;
            system ("pause");
            return 0;
                               }
       }

Kamis, 07 April 2011

Algoritma untuk menentukan nilai terkecil, terbesar, dan jumlah semua bilangan positif yang dimasukkan.

Algoritma (sentinel)

Algoritma NilaiTerkecilTerbesardanJumlahSemuaBilanganPositif
{ menentukan nilai terkecil, terbesar, dan jumlah semua bilangan positif yang dimasukkan}

Deklarasi :
x,y        : integer  {data yang dibaca}
n          : integer  {banyak data masukan, >0}
min       : integer  {data terkecil/minimum}
maks    : integer  {data terbesar/maksimum}
i           : integer  {pencacah pengulangan}
jumlah  : real        {jumlah bilangan positif} 

Algoritma :
            read(n)
            read(x)             {baca data pertama}
            min x           {asumsikan min adalah data pertama}
            maks y        {asumsikan maks adalah data terakhir}

            for i 2 to  n  do        {lanjutkan dengan ke-2 sampai ke-n}
                        read(x)
                        if x < min then
                                    min x
                        if y > maks then
                                    maks y
                        endif
            while (x > 0) do
                        jumlah jumlah + x
                        read(x)
                        n n + 1
                        write(‘positif’)
            endfor
                        jumlah x + 1
            write(min)
                        write(maks)
                                    write(jumlah)

Algoritma untuk menghitung nilai dari 1 - 1/2 + 1/3 - 1/4 +....+ 1/n

Algoritma PenjumlahanDeretPecahan
{Menjumlahkan deret dengan bentuk pecahan 1-1/2+1/3-1/4+…1/n. Nilai n dibaca, ditentukan terlebih dahulu}

Deklarasi :
jumlah  : real       {jumlah deret}
n          : integer  {penyebut pada suku terakhir, n >0}
i           : integer  {suku ke-i}
p          : integer  {penyebut suku ke-i}

Algoritma :
read(n)
jumlah 0
i 1   {suku pertama}
p 1  {penyebut suku pertama}
while p n do
                        if i mod 2 = 1 then   {suku ke-i ganjil}
                                    jumlah jumlah + 1/p
                        else
                                    jumlah jumlah – 1/p
                        endif
                        i i+1    {tinjau suku berikutnya}
                        p p + 1    {tinjau penyebut suku berikutnya}
endwhile
{p > n}
write(jumlah)

Selasa, 05 April 2011

Even-odd program with pascal

Even-odd program with pascal
{program to determine whether a number is even or odd}

Declaration:
x: integer

function
even (input n = integer) boolean
(true if n is even number, or false if otherwise)

Algorithm:
read (x)
      if even (x) then
           write ('even')
      else
           write ('odd')
endif


Program

(* declaration *)
var
      x: integer


function even (n : integer) :boolean;
(true if n is even number, or false if otherwise)

begin
     even :=(n mod 2 =0)
end


(*Algorithm*)
begin 
      write('enter any integer  :  '); readln(x);
      if even (x)then
            writeln('even')
      else
             writeln('odd')
     (endif)
end


 

Senin, 04 April 2011

Operator overloading

Operator overloading
Privileges program C + + is the existence of operator overloading facilities, namely
naming does not function like in general, but the name of the function keyword
operator followed by the operator symbol is used. For example the name of the function
operator = that can be called with only write the operator = as in surgery
regular assignment, so it can be its own version of the assignment functions for types
certain data, such as we can express Time t2 = t1, and so forth. Now
operators that can be used as listed in the following list:
 
+      -    *     /      %   ^   &   |
~     !     =   < >  +=  -=  *=
/=  %=  ^=  &=  |=   <<  >>  >>=
<<=  ==  !=  <=  >=  &&  ||  ++
--  ->*  ,  ->   []  ()   new   delete

The algorithm calculates the number of rows of 1 +2 +3 +....+ n (Algoritma menghitung jumlah deret 1+2+3+....+n)

The algorithm calculates the number of rows of 1 +2 +3 +....+ n
With loop for:

# algorithmic
{summing the series 1 +2 +3 +...+ n, where n is a positive integer. The value n read terlabih first.}

# Declaration
n: integer
i: integer
number: integer

# Algorithm
read (n);
number <= 0; {initialize number of runs with 0}
for <= 1 to n; {repeat the summation of series with a lot of n times}
    number <= sum + i
endfor
write (amount)

Progam with pascal:
(* Declaration: *)
var
n: integer;
i: integer
number: integer

(* Algorithm: *)
begin
write ('How many n'); readln; {many tribes series}
number: = 0; {initialize number of runs with 0}
for i: = 1 to n
    begin
      total: = total + i;
    end; {for}
writeln ('number of rows =', number);

Program with C:
# include (stdio.h)
main ()
{
/ * Declaration * /
int m;
int i;
int count;

/ * Algorithm * /
prinf ("How many n?"); scant ("% d", & n); {a lot of spare rows}
number = 0; {initialize number of runs with 0}
for (i = 1; i <= n; i + +)
{
total = total + i;
}
printf ("number of rows =% d \ n", amount);
}