Alhamdulillahi nahmaduhu wa nusholli wa nusallimu ‘alaa rasulihil kariim.
Setelah menuliskan tutorial mengenai deret bilangan genap ganjil, selanjutnya penulis akan memberikan tutorial yang hampir sama, yaitu bagaimana mengetahui dalam satu deret bilangan, bilangan mana saja yang habis dibagi oleh bilangan tertentu.
Misal, penulis punya sederet bilangan: 1 2 3 4 5 6 7 8 10
Habis dibagi 2: 2 4 6 8 10
Habis dibagi 3: 3 6 9
Habis di bagi 5: 5 10
Dan seterusnya.
Logika pemrogramannya adalah:
KAMUSi, bagi, banyak, jum : integer rata : realALGORITMAinput ( bagi )jum ← 0 banyak ← 0for i ← 1 to 10 doif (i mod bagi = 0) thenoutput ( i ) banyak ← banyak + 1 jum ← jum + iendifendfor rata ← jum / banyakoutput ( "Total Jumlah bilangan ada ", jum ) output ( "Rata-ratanya: ", rata )
Algoritma di atas memungkinkan kita untuk dapat mengetahui bilangan mana saja dalam sebuat deret yang habis dibagi oleh bilangan tertentu hanya sebatas satu kali periksa.
Sekarang bagaimana kalau kita ingin mencari tahu bahwa bilangan-bilangan dalam deret tersebut mana saja yang habis dibagi oleh bilangan-bilangan berapapun yang kita inginkan.
Misal, kita punya deret: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Yang habis dibagi 3: 3 6 9 12 15
Yang habis dibagi 3 dan 4: 12
Yang habis dibagi 2 dan 3: 6 12
Dan seterusnya.
Langsung saja penulis sajikan source code-nya.
Source Code JAVA.
import java.util.Scanner;
public class HabisDibagi2
{
public static void main( String[] args )
{
Scanner input = new Scanner( System.in );
int i,j=0,jum=0;
float rata=0;
int min,max,g;
int kali,k,l;
int m1,m2;
System.out.print( "Nilai awal: " );
min = input.nextInt();
System.out.print( "Nilai akhir: " );
max = input.nextInt();
while (max < min)
{
System.out.print( "Nilai max harus lebih besar dari nilai min.\n\nMasukkan angka akhir: " );
max = input.nextInt();
}
int[] larik = new int[max-min+1];
//Isi larik
k=min;
do{
larik[j] = k;
j++;
k++;
} while (k <= max);
System.out.print( "Dibagi berapa kali: " );
kali = input.nextInt();
k=1;
m1=0;
m2=j;
do{
System.out.printf( "Pembagi ke %d : ",k );
g = input.nextInt();
while (g > max)
{
System.out.printf( "Bilangan pembagi harus lebih kecil dari nilai max.\n\nPembagi ke %d : ",k );
g = input.nextInt();
}
j=0;
for (i=m1;i<m2;i++)
{
if (larik[i] % g == 0)
{
larik[j] = larik[i];
j=j+1;
}
}
k=k+1;
m1=0;
m2=j;
} while (k <= kali);
jum=0;
for (i=0;i<j;i++)
{
System.out.println(larik[i]);
jum=jum+larik[i];
}
rata = (float)jum/j;
System.out.printf("\nAda %d bilangan dengan total jumlah %d",j,jum);
System.out.printf("\nNilai rata-ratanya adalah %5.2f",rata);
}
}
Ini contoh gambar outputnya:
Source Code C++.
#include <iostream>
using namespace std;
typedef int* IntArrayPtr;
int main()
{
int i,j=0,jum=0;
float rata=0;
int min,max,g;
int kali,k,l;
int m1,m2;
cout << "Nilai awal: ";
cin >> min;
cout << "Nilai akhir: ";
cin >> max;
while (max < min)
{
cout << "Nilai max harus lebih besar dari nilai min.\n\nMasukkan angka akhir: ";
cin >> max;
}
// Menggunakan Array Dinamis (Pointer)
IntArrayPtr larik;
larik = new int[max-min+1];
//Isi larik
k=min;
do{
larik[j] = k;
j++;
k++;
} while (k <= max);
cout << "Dibagi berapa kali: ";
cin >> kali;
k=1;
m1=0;
m2=j;
do{
cout << "Pembagi ke " << k << " : ";
cin >> g;
while (g > max)
{
cout << "Bilangan pembagi harus lebih kecil dari nilai max.\n\nPembagi ke " << k << " : ";
cin >> g;
}
j=0;
for (i=m1;i<m2;i++)
{
if (larik[i] % g == 0)
{
larik[j] = larik[i];
j=j+1;
}
}
k=k+1;
m1=0;
m2=j;
} while (k <= kali);
cout << endl;
jum=0;
for (i=0;i<j;i++)
{
cout << larik[i] << "\t";
jum=jum+larik[i];
}
cout << endl;
rata = (float)jum/j;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "\nAda " << j << " bilangan dengan total jumlah " << jum;
cout << "\nNilai rata-ratanya adalah " << rata;
//Hapus array dari memory
delete [] larik;
return 0;
}
Selesai.
Silakan Anda kembangkan sendiri selanjutnya.
Mudah-mudahan Allah ta’ala beri manfaat baik dari tutorial ini. Amiin.
Popularity: 35% [?]
Assalammualaikum..
mau tanya…
klo source code C buat sandi RSA gmn??…
Wa’alaikumussalam,
http://cppgm.blogspot.com/2008/01/rsa-algorithm.html
http://www.di-mgt.com.au/rsa_alg.html
http://www.programmersheaven.com/download/48580/download.aspx
http://www.sourcecodesworld.com/source/show.asp?ScriptID=874