Program menghitung resistor dengan bahasa c



Listing Programnya :
//PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
//pendeklarasian fungsi
int salah();
int kerja();
int htgkembali();
int hitungcetak(double x, double y, double z);
void main()//bagian utama program
{
kerja();//memanggil fungsi kerja
}
int kerja()
{
int a, b, c, g, z, gel[3]; //pendeklarasian variabel dan array bertipe integer
double g1,g2,x,y; //pendeklarasian veriabel bertipe double
printf(“PROGRAM MENGHITUNG NILAI SUATU RESISTOR DENGAN MEMBACA GELANG WARNANYA\n”);
printf(“[0] Hitam\n[1] Coklat\n[2] Merah\n[3] jingga\n[4] Kuning\n[5] Hijau\n”);
printf(“[6] Biru\n[7] Ungu\n[8] Abu-Abu\n[9] Putih\n”);
printf(“[10] Emas\n[11] Perak\n[12] Tak Berwarna\n\n”);
printf(“nb: ketik angka/hurufnya saja!\n\n”);
for (g=0;g<=3;g++) //perulangan untuk menginput warna gelang
{
printf(“Ketikkan warna gelang ke-%d : “, g+1);
scanf(“%d”,&gel[g]); //dibaca dan dimasukkan ke dalam array gel[]
}
switch (gel[0]) //penyeleksian kondisi pada gelang pertama
{
case 0 : g1=0; break;
case 1 : g1=1; break;
case 2 : g1=2; break;
case 3 : g1=3; break;
case 4 : g1=4; break;
case 5 : g1=5; break;
case 6 : g1=6; break;
case 7 : g1=7; break;
case 8 : g1=8; break;
case 9 : g1=9; break;
default : {printf(“Masukan gelang pertama salah!\n”);}
}
switch (gel[1]) //penyeleksian kondisi pada gelang kedua
{
case 0 : g2=0; break;
case 1 : g2=1; break;
case 2 : g2=2; break;
case 3 : g2=3; break;
case 4 : g2=4; break;
case 5 : g2=5; break;
case 6 : g2=6; break;
case 7 : g2=7; break;
case 8 : g2=8; break;
case 9 : g2=9; break;
default : {printf(“Masukan gelang kedua salah!\n”);}
}
//pada bagian ini nilai resistor ditentukan berdasarkan warna gelang
switch (gel[2]) //penyeleksian kondisi pada gelang ketiga
{
case 0 : x=g1*(pow(10,1));y=g2*(pow(10,0));break;
case 1 : x=g1*(pow(10,2));y=g2*(pow(10,1));break;
case 2 : x=g1*(pow(10,3));y=g2*(pow(10,2));break;
case 3 : x=g1*(pow(10,4));y=g2*(pow(10,3));break;
case 4 : x=g1*(pow(10,5));y=g2*(pow(10,4));break;
case 5 : x=g1*(pow(10,6));y=g2*(pow(10,5));break;
case 6 : x=g1*(pow(10,7));y=g2*(pow(10,6));break;
case 7 : x=g1*(pow(10,8));y=g2*(pow(10,7));break;
case 8 : x=g1*(pow(10,9));y=g2*(pow(10,8));break;
case 9 : x=g1*(pow(10,10));y=g2*(pow(10,9));break;
case 10 : x=g1*(pow(10,0));y=g2*(pow(10,-1));break;
default : {printf(“Masukan gelang ketiga salah!\n”);}
}
//penentuan nilai toleransi
switch (gel[3]) //penyeleksian kondisi pada gelang keempat
{
case 10 : z=5;break;
case 11 : z=10;break;
case 12 : z=20;break;
default : {}
}
if ((x<=0) || (y<=0) || (z<=0)) {salah();}//jika terjadi kesalahan dalam menginput, maka akan tampil pesan ini
else
{
hitungcetak(x, y, z); //pemanggilan fungsi hitungcetak
}
}
int hitungcetak(double x,double y, double z) //fungsi untuk menghitung dan mencetak hasil
{
float res,tol, maks, min,w;//pendeklarasian veriabel bertipe float
res=x+y; //penghitungan nilai dengan menjumlahkan variabel x dan y
tol=z; //assigment pada variabel tol dengan nilai yang ada pada variabel z
maks=res+(tol/100*res); //penghitungan nilai maksimum
min=res-(tol/100*res); //penghitungan nilai minimum
puts(“\n\nBerikut hasil pengitungan:\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”);
printf(“Nilai Resistor tersebut adalah       = %.0f OHM “, res); //nilai hambatan
printf(“atau %.2f K.OHM\n”, res/1000); //konversi ke Kilo Ohm
printf(“Dengan toleransi                     = %.0f persen\n”, tol); //mencetak nilai toleransi
printf(“Maka nilai maksimumnya adalah        = %.0f Ohm\n”, maks); //mencetak nilai maksimum
printf(“dan nilai minimumnya adalah          = %.0f Ohm\n”, min); //mencetak nilai minimum
puts(“++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nPenghitungan selesai!\n\n”);
htgkembali();
}
int htgkembali()//fungsi konfirmasi apakah kita akan menghitung kembali
{
char k;
scanf(“%c”,&k);
{
switch(k)
{
case ‘y’: kerja();break;
case ‘Y’: kerja();break;
case ‘n’: printf(“\n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\n”);getche;exit(0);break;
case ‘N’: printf(“\n\n\nTerima kasih atas penggunaan program ini.\nSemoga bermanfaat.\n”);getche;exit(0);break;
default: {printf(“Apakah anda ingin menghitung kembali?[jawab y atau n]“);htgkembali();}
}
}
}
int salah()//fungsi yang dipanggil jika input salah
{
char s;
printf(“\nOopss!\nMasukan anda ternyata ada yang salah!\n”);
scanf(“%c”,&s);
{
switch(s)
{
case ‘y’: htgkembali();break;
case ‘Y’: htgkembali();break;
case ‘n’: exit(0);break;
case ‘N’: exit(0);break;
default:{printf(“Apakah anda ingin mengulanginya?”);htgkembali();}
}
}
}

perkalian matriks 3×3 dengan bahasa c

Naah ini PR praktek bahasa c ,tentang perkalian matriks 3×3.silahkan di copi paste ,
/*********************************************/
/* Program perkalian matriks 3×3 dua dimensi */
/*PR praktek Bahasa c                                         */
/*Silahkan dipelajari,jangan di copi paste doang */
/******************************************/
#include <stdio.h>
#include <conio.h>
void main()
{ int A[3][3], B[3][3], X[3][3], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{  printf(“input data matrik A[%i][%i] : “,i+1,j+1);
scanf(“%i”,&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
{  printf(“input data matrik B[%i][%i] : “,i+1,j+1);
scanf(“%i”,&B[i][j]);
}
}
/******** Proses perkalian matriks A dan B ********/
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
{  X[i][j]=A[i][j]*B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf(“\n matrik A\n”);
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf(“%6i”,A[i][j]);
printf(“\n”);
}
printf(“\n”);
/******** Cetak isi matriks B *******/
printf(“\n matrik B\n”);
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf(“%6i”,B[i][j]);
printf(“\n”);
}
printf(“\n”);
/******** Cetak hasil perkalian matriks A dan B *******/
printf(“\n matrik Perkalian AxB\n”);
for(i=0;i<3;i++)
{  for(j=0;j<3;j++)
printf(“%6i”,X[i][j]);
printf(“\n”);
}
printf(“\n\n”);
getch();
}

Penjumlahan matriks 3×4

/* Program penjumlahan matriks dua dimensi */
#include <stdio.h>
#include <conio.h>
void main()
{ int A[3][4], B[3][4], X[3][4], Y[3][4], C[3][4], i, j;
clrscr();
/******* Masukkan matriks A *******/
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{  printf(“input data matrik A[%i][%i] : “,i+1,j+1);
fflush(stdin);scanf(“%i”,&A[i][j]);
}
}
/******** Masukkan matriks B ********/
for(i=0;i<3;i++)
{  for(j=0;j<4;j++)
{  printf(“input data matrik B[%i][%i] : “,i+1,j+1);
fflush(stdin);scanf(“%i”,&B[i][j]);
}
}
/******** Proses penjumlahan matriks A dan B ********/
for(i=0;i<3;i++)
{  for(j=0;j<4;j++)
{  X[i][j]=A[i][j]+B[i][j];
}
}
/******** Cetak isi matriks A ********/
printf(“\n matrik A\n”);
for(i=0;i<3;i++)
{  for(j=0;j<4;j++)
printf(“%6i”,A[i][j]);
printf(“\n”);
}
printf(“\n”);
/******** Cetak isi matriks B *******/
printf(“\n matrik B\n”);
for(i=0;i<3;i++)
{  for(j=0;j<4;j++)
printf(“%6i”,B[i][j]);printf(“\n”);
}
printf(“\n”);
/******** Cetak hasil penjumlahan matriks A dan B *******/
printf(“\n matrik penjumlahan A+B\n”);
for(i=0;i<3;i++)
{  for(j=0;j<4;j++)
printf(“%6i”,X[i][j]);printf(“\n”);
}
printf(“\n\n”);
getch();
}

array multi dimensi

berikut ini adalah program array multi dimensi ,dari praktek bahasa c
/*Praktek bahasa c      */
/*STT DUTA BANGSA @2010 */
#include <stdio.h>
#include <conio.h>
void main()
{ int i, j, k;
static int data_huruf[3][8][8] =
{ { { 1, 1, 1, 1, 1, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }
},
{ { 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 }
},
{ { 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 },
{ 0, 0, 0, 1, 1, 0, 0, 0 }
}
};
/* menampilkan Huruf */
for(i=0; i<3; i++)
{ for(j=0; j<8; j++)
{ for(k=0;k<8; k++)
if(data_huruf[i][j][k])
putchar(‘\xDB’);
else
printf(” “);
puts(” “);
}
puts(” “);
}
getch();
}
Screenshoot program

praktek algoritma dengan c++

Menghadapi praktek algoritma dan pemograman dengan bahasa C++ ,kami hanya bisa menyediakan sedikit bahan bacaan beserta software turbo c++ 4.5
Silahkan didownload :
————————————————
Bahan yang lain akan segera menyusul :)
selamat belajar

Tingkat Akses Dalam Kelas di Pemrograman C++

Tingkat Akses Dalam Kelas di Pemrograman C++
Saat membuat kelas dengan C++ kita akan selalu menemukan kata kunci yang umum digunakan seperti public, private dan protected. Kata kunci ini merupakan tingkatan akses yang digunakan dalam mengakses data-data yang ada dalam program yang kita buat dengan C++. Dengan meggunakan kata kunci ini kita dapat memberikan pembatasan akses terhadap data-data yang ada dalam kelas hingga kita dapat menentukan data mana saja yang dapat diakses oleh kelas lain dan data mana saja tidak dapat (tidak boleh) diakses.
Public
Tingkat akses ini memberikan hak akses secara umum kepada kelas-kelas turunannya maupun kepada lingkungan diluar program.
Private
Tingkat akses ini hanya akan memberikan hak akses data kepada kelas yang bersangkutan saja. Data yang menggunakan tingkat akses ini tidak dapat diakses oleh kelas turunannya apalagi lingkungan diluar program. Setiap variabel atau fungsi yang tidak didefinisikan tingkat aksesnya secara otomatis akan ditetapkan sebagai data dengan tingakat akses private.
Protected
Tingkat akses ini memberikan hak akses kepada kelas turunannya tetapi tetap tidak mengizinkan lingkungan luar program untuk mengakses data ini.
Dalam program, tingkat akses dapat diterapkan pada variabel, fungsi dan kelas, contohnya adalah sebagai berikut :
//penerapan hak akses public pada variabel
public:
int y = 0;
//penerapan hak akses private pada variabel
private:
int x;
//penerapan hak akses public pada fungsi
public:
getX(){
….
statement
….
}
Untuk penerapan tingkat akses pada kelas biasanya digunakan dalam menentukan hak akses pada saat proses pewarisan, seperti berikut :
class induk {
int x;
public:
void setX(int xx) {
x=xx;
}
int getX() {
return x;
}
}
class turunan: public induk {
int y;
public:
void setY(int yy) {
y=yy;
}
int getY() {
return y;
}
}
Coba lihat pada baris kode class turunan: public induk, penerapan tingkat akses public pada proses pewarisan ini akan menjadikan setiap data public pada kelas induk tetap akan menjadi data public pada kelas turunannya.
Selain tingkat akses Public, Private dan Protected, C++ juga dapat menggunakan kata kunci Friend untuk memberikan hak akses terhadap data yang terdapat dalam suatu kelas. Kata kunci ini biasanya biasanya digunakan untuk mengakses data private yang terdapat dalam kelas yang lain. Dalam pengaplikasiannya biasanya disebut Friend Function dan Friend Class dan kebetulan disini kita tidak akan membahas hak akses ini, silahkan Anda cari disumber yang lain.

Pewarisan Kelas Dalam C++


Dalam pemrograman berorientasi objek, pewarisan (inheritance) merupakan salah satu sifat utama yang menjadi ciri dari konsep pemrograman OOP. Suatu kelas dasar dalam program memiliki kemampuan untuk mewariskan sifat-sifat yang terdapat didalamnya ke kelas turunannya. Kelas dasar yang dimaksud disini adalah kelas yang akan dijadikan sebagai induk (base class) yang akan menurunkan sifat-sifatnya kedalam kelas-kelas turunannya (derived class).
Untuk mempermudah pemahaman, bentuk listing disini akan saya pecah menjadi beberapa bagian, sedangkan dalam bentuk aslinya ini merupakan satu kesatuan program dan jangan dipecah-pecah menjadi beberapa file :)
Berikut ini contoh kelas dasar yang akan digunakan untuk membuat kelas turunan :
#include <iostream>
using namespace std;
class induk {
int x;
public:
void setX(int xx) {
x=xx;
}
int getX() {
return x;
}
}
Sekarang kita akan membuat kelas yang diturunkan dari kelas induk diatas :
class turunan: public induk {
int y;
public:
void setY(int yy) {
y=yy;
}
int getY() {
return y;
}
}
Untuk mengaplikasikan proses pewarisannya sekarang kita buat fungsi utamanya :
int main() {
induk a; // membuat instan kelas induk : a
a.setX(12);
cout<<”Nilai x yang akan dipanggil dari kelas induk : ”;
cout<<a.getX()<<endl;
cout<<”\n”<<endl;
turunan b; //membuat instan kelas turunan : b
b.setY(40);
cout<<”Nilai y yang terdapat pada kelas turunan : “;
cout<<a.getX()<<endl;
cout<<”\n”<<endl;
b.setX(35);
cout<<”Nilai x yang dipanggil dari kelas turunan : “;
cout<<b.getX()<<endl;
cout<<”\n”<<endl;
return 0;
}
Dari fungsi utama diatas kita dapat melihat bagaimana kelas dasar menurunkan sifat-sifatnya kedalam kelas turunannya bisa dilihat baris kode berikut :
b.setX(35);
cout<<”Nilai x yang dipanggil dari kelas turunan : “;
cout<<b.getX()<<endl;
cout<<”\n”<<endl;
Kelas turunan dapat memanggil fungsi yang terdapat dalam kelas utama setX() dengan memasukan nilai baru 35 dan memanggil fungsi getX(), hal ini terjadi karena kelas turunan mewariskan sifat objek yang ada pada kelas induk.

Penurunan Class


Inheritance
  •       Inheritance merupakan pewarisan atribut(variable) dan method pada sebuah class yang diperoleh dari sebuah class yang telah terdefinisi.
  •       Sebagai contoh class sepeda mempunyai sub class sepeda motor, sepeda balap, sepeda gunung.
  •       Setiap turunan dari class sepeda itu mempunyai behaviour(method) dan atribut yang diwariskan dari class sepeda. Jadi setiap subclass akan mewarisi state(variable-variabel) dan             behaviour(method-method) dari superclass nya.
  •     Subclass kemudian dapat menambahkan state (variable) dan behaviour (method) baru yang spesifik dan dapat pula memodifikasi state atau behaviour yang diturunkan oleh superclassnya
                   Keuntungan pewarisan
  •       Subclass kemudian dapat menambahkan state (variable) dan behaviour (method) baru yang spesifik dan dapat pula memodifikasi state atau behaviour yang diturunkan oleh superclassnya
  •      Programer java dapat mendefinisikan kelas khusus yang bersifat generic, atau yang sering disebut sebagai abstrak class untuk mendefinisikan class dengan  tingkah laku dan state umum.
Contoh
Class Sepeda{
double roda;
double stang;
double rantai;
/*konstruktor*/
Kotak(){
roda=2;
stang=1;
rantai=1;
}
Sepeda(double r, double s, double t){
roda=r;
stang=s;
rantai=t;
}
}
Class turunannya
Class SepedaMotpr extend Sepeda{
Double Mesin;
/*konstruktor*/
SepedaMotor(double r, double s, double t, double m){
roda=r;
stang=s;
rantai=t;
Mesin=m;
}
}
Contoh class turunannya
Class Kotak{
double panjang;
double Lebar;
double Tinggi;
/*konstruktor*/
Kotak(){
panjang=0;
lebar=0;
tinggi=0;
}
Kotak(double p, double l, double t){
panjang=p;
lebar=l;
tinggi=t;
}
Public double volume(){
return(panjang*lebar*tinggi);
}
}
Dari class kotak tersebut diturunkan ke kelas kotak yang memiliki berat
Class KotakBerat extend Kotak{
Double Berat;
/*konstruktor*/
Kotak(double p, double l, double t, double m){
panjang=p;
lebar=l;
tinggi=t;
Berat=w;
}
}
KONSEP POLYMORPHISM
  •      Polymorphism adalah konsep OOP tentang banyak bentuk (poly = banyak, morphism = bentuk).
  •     Disini banyak bentuk maksudnya bahwa objek yang dasarnya sama tapi bertindak/bertingkah laku berbeda-beda
  •       Dalam dunia nyata misalnya, ada class abstract mahkluk hidup, disebut abstract karena belum tau wujudnya, nah mahkluk hidup punya method untuk bergerak yang masih abstract belum tau gimana geraknya.
  •      Kemudian ada class manusia turunan mahkluk hidup, dan ada juga class burung turunan mahkluk hidup, manusia disuruh bergerak sudah barang tentu jalan, sedangkan burung disuruh bergerak terbang.
  •       Jadi walaupun dasarnya sama berasal dari class abstract mahkluk hidup tapi manusia disuruh bergerak akan berjalan dan burung disuruh bergerak akan terbang, kecuali manusianya superman    bisa terbang juga.
                Class abstrak
  •       Kelas abstrak digunakan untuk mendefinisikan sebuah class yang hanya mendefinisikan format generic tanpa mengimplementasikan secara detail fungsi-fungsi dari kelas abstrak yang ada.
  •      kita tau bahwa bangun 2 dimensi itu bisa mencetak luas dan Setiap bangun 2 dimensi memiliki cetak luas dan keliling, kemudian kita bentuk class-class bangun 2 dimensi implementasinya, seperti persegi panjang dan bujur sangkar
Bagaimana membuat Class Abstrak
public abstract class Bangun2D {
public abstract void cetakLuas();
public abstract void cetakKeliling();
}
Class turunannya
public class BujurSangkar extends Bangun2D {
private int sisi;
public BujurSangkar(int sisi) {
this.sisi = sisi;
}
public void cetakLuas() {
int luas = sisi * sisi;
System.out.println(luas);
}
public void cetakKeliling() {
int keliling = 4 * sisi;
System.out.println(keliling);
}
}

Penggunaan Class pada Bahasa C++

//BOF
#include
#include
#include
#include
#include
#include
class kelas{
public: //
char *value;
kelas(){
value=new char(3);
strcpy(value,”???”);
cetak(“Pertama kali dijalankan value = “);}
virtual ~kelas();
void input(){baca(80);}
int length();
int memsize();
private:
void cetak(char *kata){
printf(“%s %s\n”,kata,value);
};
protected:
int len;
int mem;
void baca(int length){
delete value;
value=new char(length);
cout <len;}
int kelas::memsize(){return this->mem;}
kelas::~kelas(){
this->cetak(“Keluar dari kelas value = “);
delete value;
}
void main(){
kelas *kata=new kelas;
kata->input();
cout <<”\n\nPanjang string = “<length()<<”\n”;
cout <<”Isinya = “<value <<”\n\n”;
cout <<”Memori kelas kata = “<<sizeof(kata)<len dan kelas->mem dan
//fungsi kelas->baca()
//tidak dikenal pada objek kata.
//hanya ada pada objek kelas
//juga void kelas->cetak() tidak dapat dipakai pada objek kata
delete kata;
return;}
//EOF
Biar lebih jelas perhatikan ayat-ayat di bawah:
Class hampir sama dengan tipe struct, bedanya class dapat bersifat public, private, dan protected.
Anggota private hanya digunakan dalam class/friend, semua anggota class adalah private.
Anggota protected, sama saja dengan private. Dikit perbedaan. Susah jelasinnya.
Anggota public dapat digunakan oleh semua fungsi. Juga dapat digelar di luar dari struktur class. Anggota virtual yang terdapat di public digunakan untuk memanggil secara otomatis ketika class menjadi objek dengan operator new (perhatikan void main()). Dan juga dipanggil otomatis ketika objek dihapus dengan operator delete objek.
Dalam contoh di atas fungsi kelas() dipanggil secara otomatis ketika new, dan secara otomatis ~kelas() dipanggil juga secara otomatis ketika delete.
Fungsi-2 atau variabel private/protected tidak dapat dipakai dalam objek.

Dasar dasar C++

Bagian Pertama
Tutorial ini untuk siapa saja, walaupun anda belum pernah melakukan pemrograman, atau jika andapun berpengalaman dalam pemrograman dengan bahasa pemrograman lain tapi ingin mempelajari bahasa C++, ada baiknya anda mengikuti penjelasan disini.
C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek, seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP. Anda dapat mendownload DJGPP atau mungkin saja anda telah memiliki kompiler lain.
(more…)

Comments

Popular posts from this blog

"DAFTAR ALAMAT EMAIL PERUSAHAAN"

Menghitung luas kubus,persegi panjang dan lingkaran