Algoritma Deret Genap dan Ganjil

Standard

Bismillahi Alhamdulillahirobbil ‘alamiin.

Kali penulis akan berbagi tutorial yang berkaitan dengan logika pemrograman.

Sebagai langkah awal, mari kita ingat lagi bagaimana cara menentukan bahwa sebuah bilangan itu termasuk bilangan ganjil atau genap.

Beberapa bilangan ganjil mulai dari 1 – 10, yaitu: 1 3 5 7 9

Sedangkan, beberapa bilangan genap mulai dari 1 – 10, yaitu: 2 4 6 8 10

Dalam bidang matematika, setiap bilangan yang habis dibagi 2 atau tidak bersisa atau menghasilkan angka 0, maka termasuk bilangan genap. Sebaliknya, apabila bilangan tersebut bila dibagi 2 ternyata bersisa 1, berarti ganjil.

Dalam penyimbolan, sisa habis bagi ini sering menggunakan istilah mod atau simbol %.

Dan untuk hasil bagi positif (division), dapat digunakan istilah div atau simbol / atau \ jika menggunakan bahasa pemrograman Visual Basic.

Contoh:

4 div 2 = 2

4 mod 2 = 0 –> genap

5 div 2 = 2

5 mod 2 = 1 –> ganjil

Sekarang kita gunakan ilustrasi.

A div B = C

A mod B = D

Artinya, bilangan C dikali B kemudian ditambah D sama dengan A. Matematisnya, (C x B) + D = A

Sekarang kita gunakan logika pemrograman, atau ada yang sering menyebutnya dengan algoritma pemrograman.

Yang perlu diperhatikan bahwa, penentuan bahwa suatu bilangan itu ganjil atau genap cukup dengan memanfaatkan utilitas sisa hasil bagi atau mod saja, tanpa melibatkan div.

Berikut ini adalah contoh pseudocode dalam bahasa Indonesia.

JIKA A mod 2 = 0 MAKA
     A adalah bilangan genap
SEBALIKNYA
     A adalah bilangan ganjil

Sintaks SEBALIKNYA menandakan bahwa A mod 2 ≠ 0.

Sekarang mari kita gunakan algoritma yang sering dipakai di universitas (bidang komputer/pemrograman).

ALGORITMA GENAP_GANJIL
KAMUS
   A : integer
ALGORITMA
   input ( A )
   if ( A mod 2 = 0 ) then
      output ( "Bilangan Genap" )
   else
      output ("Bilangan Ganjil")

Berikutnya, penulis akan memodifikasi algoritma tersebut di atas.

Yaitu, menentukan bilangan genap atau ganjil dari sederet bilangan secara urut, sekaligus penulis juga mengetahui berapa banyaknya bilangan yang dimunculkan, berapa total (jumlah) dan rata-rata dari bilangan-bilangan tersebut.

Berikut ini akan penulis sajikan contoh source code dalam beberapa bahasa pemrograman. Perlu diperhatikan bahwa source code yang penulis berikan ini masih mentah, belum disertakan validasi dalam berbagai hal.

Source Code C.

#include <stdio.h>
#include <conio.h>

main()
{
 int min, max;
 int i, banyak, jml;
 float rata;

 printf ("Bilangan terkecil: ");scanf("%d",&min);
 printf ("Bilangan terbesar: ");scanf("%d",&max);
 printf ("\nBilangan ganjil: ");

 banyak=0;
 jml=0;

 for (i=min;i<=max;i+=1)
 {
     if (i % 2 == 1)
     {
        printf ("%d\t",i);
        banyak+=1;
        jml+=i;
     }

 }

 rata=float(jml)/banyak;

 printf ("\nAda %d bilangan ganjil, dengan total jumlah %d.",banyak,jml);
 printf ("\nRata-ratanya adalah %5.2f",rata);

 printf ("\nBilangan genap: ");

 banyak=0;
 jml=0;

 for (i=min;i<=max;i+=1)
 {
     if (i % 2 == 0)
     {
        printf ("%d\t",i);
        banyak+=1;
        jml+=i;
     }

 }

 rata=float(jml)/banyak;

 printf ("\nAda %d bilangan genap, dengan total jumlah %d.",banyak,jml);
 printf ("\nRata-ratanya adalah %5.2f",rata);

 getch();
 return 0;
}
&#91;/code&#93;

Ini contoh gambar outputnya:

<img src="http://galih.eu/wp-content/uploads/2009/06/deret-ganjil-genap.JPG" alt="deret ganjil genap" title="deret ganjil genap" width="420" height="173" class="alignnone size-full wp-image-283" />

<strong>Source Code C++.</strong>


#include <iostream>

using namespace std;

int main()
{
 int min, max;
 int i, banyak, jml;
 float rata;

 cout << "Bilangan terkecil: ";
 cin >> min;
 cout << "Bilangan terbesar: ";
 cin >> max;
 cout << "\nBilangan ganjil: ";

 banyak=0;
 jml=0;

 for (i=min;i<=max;i+=1)
 {
     if (i % 2 == 1)
     {
        cout << i << "\t";
        banyak+=1;
        jml+=i;
     }

 }

 rata=float(jml)/banyak;

 cout.setf(ios::fixed);
 cout.setf(ios::showpoint);
 cout.precision(2);

 cout << "\nAda " << banyak << " bilangan ganjil, dengan total jumlah " << jml;
 cout << "\nRata-ratanya adalah " << rata;

 cout << "\nBilangan genap: ";

 banyak=0;
 jml=0;

 for (i=min;i<=max;i+=1)
 {
     if (i % 2 == 0)
     {
        cout << i << "\t";
        banyak+=1;
        jml+=i;
     }

 }

 rata=float(jml)/banyak;

 cout << "\nAda " << banyak << " bilangan genap, dengan total jumlah " << jml;
 cout << "\nRata-ratanya adalah " << rata;
 cout << endl;
 system("PAUSE");
 return 0;
}

&#91;/code&#93;

<strong>Source Code JAVA.</strong>


import java.util.Scanner;

public class DeretGanjilGenap
{
    public static void main( String[] args )
    {
        Scanner input = new Scanner( System.in );            

        int min, max;
        int i, banyak, jml;
        float rata;       
        
        System.out.print( "Bilangan terkecil: " );
        min = input.nextInt();
        
        System.out.print( "Bilangan terbesar: " );  
        max = input.nextInt();
        
        System.out.print( "\nBilangan Ganjil: " );  
        
        banyak=0;
        jml=0;

        for (i=min;i<=max;i++)
        {
            if (i % 2 == 1)
            {
                System.out.printf("%d\t",i);
                banyak++;
                jml+=i;
            }
        }
        
        rata = (float)jml / banyak;
         
        System.out.printf ("\nAda %d bilangan ganjil, dengan total jumlah %d.",banyak,jml);
        System.out.printf ("\nRata-ratanya adalah %5.2f",rata);

        System.out.print( "\nBilangan Genap: " );  
        
        banyak=0;
        jml=0;

        for (i=min;i<=max;i++)
        {
            if (i % 2 == 0)
            {
                System.out.printf("%d\t",i);
                banyak++;
                jml+=i;
            }
        }
        
        rata = (float)jml / banyak;
         
        System.out.printf ("\nAda %d bilangan genap, dengan total jumlah %d.",banyak,jml);
        System.out.printf ("\nRata-ratanya adalah %5.2f",rata);
        
    }
}
&#91;/code&#93;

<strong>Source Code PHP.</strong>


<?php

echo "

<form method='POST' action='$_SERVER&#91;PHP_SELF&#93;'>

Bilangan Terkecil: <input type='text' name='min'><br />
Bilangan Terbesar: <input type='text' name='max'>

<br />

<input type='submit' value='Proses'>
<input type='hidden' name='periksa' value='1'>


</form>

";

if(isset($_POST['periksa']))
{
	 $min = $_POST['min'];
	 $max = $_POST['max'];
	 
	 echo "Bilangan terkecil: {$min}";
	 echo "<br />Bilangan terbesar: {$max}";
	 echo "<br /><br />Bilangan ganjil: ";

	 $banyak=0;
	 $jml=0;

	 for ($i=$min;$i<=$max;$i+=1)
	 {
		 if ($i % 2 == 1)
		 {
			echo "{$i}\t";
			$banyak++;
			$jml+=$i;
		 }

	 }

	 $rata=$jml/$banyak;

	 echo "<br />Ada {$banyak} bilangan ganjil, dengan total jumlah {$jml}.";
	 echo "<br />Rata-ratanya adalah {$rata}";
	 
	 echo "<br /><br />Bilangan genap: ";

	 $banyak=0;
	 $jml=0;

	 for ($i=$min;$i<=$max;$i+=1)
	 {
		 if ($i % 2 == 0)
		 {
			echo "{$i}\t";
			$banyak++;
			$jml+=$i;
		 }

	 }

	 $rata=$jml/$banyak;

	 echo "<br />Ada {$banyak} bilangan genap, dengan total jumlah {$jml}.";
	 echo "<br />Rata-ratanya adalah {$rata}";
}
?>

Untuk versi Visual Basic 6 bisa Anda lihat di http://if.web.id/visual-basic-vb/beginner-bilangan-ganjil-atau-genap-2-t827.0.html

Alhamdulillah. Untuk selanjutnya silakan dikembangkan sendiri.

La hauwlaa wa laa quwwata illa billaah.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.