Thursday, December 24, 2009

SummaRY oF OOP(obJect oriented PROGRaminG)

Ringkasan Pemrograman Berorientasi Object(PBO) :
----------------------------------------------------------------------------
class yang telah dibuat dapat digunakan kembali sebagai object - object.
class dalam program mewakili obyek yang ada di dunia nyata.

misalkan Siswa, setiap siswa pasti memiliki nama, kelas dan nilai.
dan siswa dapat melakukan suatu hal, misalkan memperkenalkan diri.
hal - hal yang dimiliki siswa dalam program disebut attribut/ field,
sedang hal - hal yang dapat dilakukan siswa disebut method/fungsi.


class Siswa {

//attribut class:
String nama;
int kelas;
int nilai;

//method class
void perkenalan(){

System.out.println("Hi, my name is:"+this.nama);
System.out.println("from class: "+this.kelas);

}

}



--------------------------------------------------------------------------
istilah - istilah yang sering ditemui:

attribut
merupakan variabel-variabel dalam class

method
merupakan fungsi-fungsi dalam class. selalu disertai
sepasang tanda kurung() di akhir namanya

constructor
fungsi/method yang digunakan untuk membentuk object dari class yang telah ada.
constructor memiliki nama yang sama persis dengan nama class

getter dan setter
getter adalah fungsi untuk mengetahui nilai/data dalam attribut class.
kata get biasa dipakai untuk menandai getter, sedangkan untuk setter
memakai kata set

---------------------------------------------------------------------------
contoh :
class siswa dibuat dengan attribut nama, kelas, dan nilai
dan method getNama, getKelas, getNilai, setNilai, setNama dan setKelas
Class tersebut dapat dibuat dengan Kode berikut:
----------------------------------------------------------------------------

class Siswa {

//attribut class:
String nama;
int kelas;
int nilai;


//constructor Default
public Siswa(){

this.nama = "Jamie";
this.kelas = 1;
this.nilai = 0;
}

//Constructor kedua
//Untuk mengisi attribut class dengan nilai baru
public Siswa(String nm, int kls, int nil){

this.nama = nm;
this.kelas = kls;
this.nilai = nil;
}

void perkenalan(){

System.out.println("Hi, my name is:"+this.nama);
System.out.println("from class: "+this.kelas);

}


//getter untuk mengetahui nilai pada attribut class
String getNama(){

return this.nama;
}

int getKelas(){

return this.kelas;
}

int getNilai(){

return this.nilai;
}

//setter untuk merubah nilai pada attribut class
void setNaMa(String nm){

this.nama=nm;
}

void setKeLas(int kls){

this.kelas=kls;
}

void setNilai(int nil){

this.nilai=nil;
}


}

-------------------------------------------------------------------------

Penggunaan class siswa :
dari class siswa dibuat tiga siswa
dengan data sebagai berikut:

nama kelas nilai
Dante 2 90
Mario 9 50
Rosie 12 70

kode programnya ada di class cobaSiswa
------------------------------------------------------------------------

class cobaSiswa{

public static void main(String[] args){

//data pada attribut class diisi dengan constructor kedua
Siswa dante = new Siswa("Dante", 2, 90);
Siswa mario = new Siswa("Mario", 9, 50);

//dengan constructor default
Siswa rosie = new Siswa();

//Menampilkan data di setiap object
System.out.println("Data Siswa :");

System.out.println("Siswa pertama:");
System.out.println("Nama: "+dante.getNama()+" ,kelas: "+dante.getKelas());

System.out.println("Siswa kedua:");
System.out.println("Nama: "+mario.getNama()+" ,kelas: "+mario.getKelas());

System.out.println("Siswa ketiga:");
System.out.println("Nama: "+rosie.getNama()+" ,kelas: "+rosie.getKelas());

}
}

----------------------------------------------------------------------------

compile dan eksekusi dengan JCreator versi terbaru dan Hasilnya akan tampak seperti berikut:


Tapi, kenapa object rosie malah bernama Jamie???

Tuesday, November 24, 2009

How to make an input to program

Bagian ketiga dalam Bahasa Pemrograman.
sesudah menampilkan kalimat ke monitor
serta menggunakan variabel untuk menyimpan data.
sekarang waktunya level up, sedikit berjalan menanjak dengan
proses input.

Ya benar, Input alias menerima masukan.
sehingga ada data dari luar yang bisa masuk dan diolah ke program.
proses input sangatlah mudah dengan bahasa pemrograman java,
cukup gunakan fitur yang disediakan java, yaitu JOptionPane.
JOptionPane akan menyiapkan tampilan untuk input datanya. Kode programnya ringkas,
selain itu JOptionPane juga menyediakan tampilan yang cerah berwarna.

well, mari bereksperimen
dengan JOptionPane untuk mencatat nama user.

selanjutnya nama tersebut akan digunakan untuk menyapa usernya.

dengan kemampuan JOptionPane untuk menampilkan dialog input,
meminta user mengisikan namanya. berikut perintahnya:

JOptionPane.showInputDialog(null,"Your name?");

dalam perintah tersebut JOptionPane dipanggil
dan .showInputDialog berarti kemampuan (fungsi) JOptionPane
digunakan untuk menampilkan dialog input.
sedangkan Pertanyaan yang ditampilakan adalah kalimat "Your name?".

Perlu dicatat bahwa setiap data yang diinput bertipe String.
sehingga data dari dialog input perlu disimpan ke variabel bertipe String,
sebut saja nama.

String nama;

well, lalu isi variabel nama dari input melalui dialog input,
berikut perintahnya:

String nama = JOptionPane.showInputDialog("Your name?");

Hmm, variabel sudah dibuat dan proses input sudah dilakukan.
yang belum dilakukan adalah membuat class dengan fungsi utama
dan perintah menampilkan kalimat untuk menyapa.

Buat class ExperimenInput, dan fungsi utama:

Isi fungsi utama dengan perintah untuk melakukan proses input

dan yang terakhir kita panggil lagi JOptionPane untuk
menampilkan kalimat sapaan ke user.

JOptionPane.showMessageDialog(null,"Hi "+nama+",Nice to meet You");

kemampuan(fungsi) .showMessageDialog berguan untuk menampilkan
kotak pesan yang berisi kalimat "Hi ... ,Nice to meet You :)".
data pada variabel nama akan melengkapi nama usernya.

Satu lagi bagian yang terpenting,
JOptionPane perlu di-import dahulu sebelum digunakan.
jadi tambahakan perintah importnya di bagian awal kode program.

So Simpan classnya, compile dan eksekusi untuk meLihat hasilnya.
Mudah saja kan, melakukan proses input dengan JOptionPane???

how to Use Variable in java program

Bahasa pemrograman berlanjut, sesudah membuat
program
sekedar say Hello dengan tiga perintah dalam bahasa java,
selanjutnya kita akan berkenalan dengan variabel.

variabel dalam program biasanya digunakan untuk menyimpan data.
data yang ada dikelompokkan dalam beberapa tipe
tergantung dari bentuknya.
untuk angka yang dapat melakukan operasi matematika terdapat:
integer untuk bilngan bulat tanpa koma.
untuk bilangan pecahan ada float dan double.

sedangakan tipe character untuk data karakter satu digit saja,
sedangkan tipe String untuk data yang berupa kalimat atau kata.

well, sesudah program "sekedar say Hello" sekarang
program perkenalan akan menjadi contohnya.
program perkenalan akan menampilkan nama, umur, dan gender.

langkahnya mudah, masih menggunakan 3 perintah di class SayHello.
hanya ada sedikit tambahan dari penerapan variabel.

yang perlu dilakukan adalah :

1) menetukan nama variabel.
Dalam program ini akan dibuat 3 variabel yang akan menampilkan
nama, umur dan gender.
well, di sini sudah kita dapatkan nama untuk 3 variabel tersebut.
nama variabelnya nama, umur dan gender.
sebagai contohnya nama yang akan kita tampilkan Joko Billy
umurnya 19 tahun dan gendernya laki- laki(disingkat L saja).

2) setelah memperoleh nama variabel makan tentukan tipe data untuk setiap variabel.
variabel nama yang berisi dua kata bertipe string.
variabel umur yang berisi bilangan bulat bertipe integer.
variabel gender yang terdiri dari satu karakter bertipe karakter.

setelah menentukan nama dan tipe variabel ,
terjemahkan perintah membuat variabelnya.
perintah untuk membuat variabel harus menyebutkan tipe data
dan nama variabel, sedangkan data pada variabel bisa langsung diisikan
atau diisikan kemudian.

mari kita terjemahkan perintah membuat variabel nama
dan langsung isikan datanya.

String nama = "joko Billy";

tipe data string diawali dengan huruf S kapital,
dan data yang diisikan harus diapit tanda kutip.
tanda titik koma (;) menunjukkan akhir perintah membuat variabel.
tanda ini selalu digukan untuk berpindah dari satu perintah ke perintah lain.

lalu buat variabel umur dengan kode berikut
int umur = 19;

tipe data integer dalam kodenya disingkat menjadi int.
dan lanjutkan dengan pembuatan variabel gender dengan kode berikut:

char gender = 'L';

tipe character dalam kodenya disingkat menjadi char.
data bertipe char diisikan dengan diapit tanda petik.
Dengan demikian diperoleh 3 baris kode program
untuk membuat variabel seperti terlihat di bawah ini:


3) Selesai membuat variabel,
sekarang waktunya menampilkan data dalam variabel tersebut.
untuk itu diperlukan class dan fungsi utama.
mari membuat class dengan nama CobaDataVariabel.
jangan lupa lengkapi dengan fungsi utama.

kemudian pindahkan kode untuk membuat
variabel ke dalam fungsi utama.

dan gunakan perintah untuk menampilkan kalimat
ke monitor serta data pada variabel:

System.out.println("my name is: "+ nama);

tampak pada kode di atas kalimat yang
akan ditampilkan adalah my name is Joko Billy.
dengan menyebutkan nama variabel data di dalamnya akan ditampilkan.
lengkapi kode program dengan perintah menampilkan umur dan gender


Save classnya dalam file java, compile dan lihat hasilnya.
demikian sekilas tentang pembuatan variabel dan cara menapilkan data di dalamnya.

Setelah membuat Class dan File java

SetelaH membuat file java

membuat file java dapat dilakukan dengan mengetik kode program
untuk membuat class di text editor.

notepad adalah salah satu contoh text editor.
Setelah file java selesai dibuat, file tersebut perlu
di-compile.

Dengan compile kesalahan pada kode program dapat diketahui.
proses compile dapat dilakukan dengan tool yang ada di JDK.
Pastikan JDK terinstall di komputer anda atau Download JDK di sini.

bila proses compile berhasil akan terbentuk file class.
file class inilah bentuk program yang sudah jadi dan dapat dijalankan.
menjalankan program dikenal juga dengan execute(eksekusi) atau run.
bila JDK sudah terinstall proses eksekusi dapat dilakukan via command prompt.

Well, itulah urutan membuat program: buat file java, compile dan eksekusi.
ketiga langkah tersebut akan lebih mudah dilakukan dengan aplikasi JCReator.
Ketiga langkah membuat program dapat dilakukan Di JCreator.
Download JCReator di sini

How to make program using java

Bahasa PemRoGRaman...
nama sebuah mata kuliah wajib di kampus,
bahasa pemrograman singkatnya adalah bahasa yang dibuat untuk
membuat program.

belajar bahasa pemrograman ga beda
dengan belajar bahasa - bahasa lain.
dengan cermat dan tekun bahasa pemrograman dapat dikuasai.
"as easy as one two three",
semudah menyebutkan angka tu wa ga pake bahasa inggris.
Karena setiap bahasa dapat dimengerti maksudnya
dan bukan mustahil untuk diterjemahkan.

Apalagi bahasa pemrograman java...
bahasa pemrograman java tergolong
bahasa pemrograman tingkat tinggi sehingga ga jauh berbeda
dengan bahasa pada umumnya.

well, dengan bahasa pemrograman sebuah program bisa dibuat.
cukup terjemahkan saja programnya ke java.
cukup bermodal text editor semacam notepad saja untuk membuat program.
dengan notepad kita terjemahkan perintah membuat program ke bahasa java.

bosojovo akan memandu langkah membuat programnya.
contoh pertama membuat program untuk menampilkan
kalimat ke layar monitor, sekedar program untuk "say Hello" saja.

berikut langkah - langkahnya:
1) Buat class dulu. class merupakan tempat untuk kode program kita.
saat membuat class nama class perlu ditentukan nama class.
di notepad ketikkan:

class SayHello{

}

perintah tersebut artinya buat class dengan nama SayHello.

well, perintah membuat class selesai diketikkan,
kita simpan class kita dengan memilih menu file pada notepad, lalu save as,

pada filename isikan "SayHello.java". menyimpan class harus ke file bertipe java,
nama filenya pun harus sama dengan nama classnya.


oleh karena itu kita simpan classnya
dengan nama "SayHello.java", dengan menyertakan tanda kutip di awal
dan akhir filename akan menjamin classnya tersimpan sebagai file java.

2) class sudah tersimpan sebagai file java, selanjutnya membuat fungsi utama.
fungsi utama akan membuat class SayHello berfungsi dan akan terlihat hasilnya.
perintah untuk membuat fungsi utama :

public static void main(String[] args){

}

tempatkan perintah tersebut ke dalam kelas dengan meletakkan kodenya di antara tanda {
dan }, setelah perintah membuat class.


3) class sudah tercipta lengkap dengan fungsi utama, sekarang tambahkan
perintah untuk menampilkan kalimatnya. kalimat yang akan ditampilkan adalah "Hi, Hallo semua..."
perintahnya ada dalam kode berikut:

System.out.println("Hi, Hallo semua...");

tambahkan kode tersebut dalam fungsi utama. dan save filenya.

selesai sudah 3 Langkah mudah membuat program "just Say Hello"
dengan bahasa pemrograman java.
Mudah saja menerjemahkan tiga langkah membuat programnya ke bahasa java.
Semoga dipahami dan bermanfaat.
DAn ikuti Langkah selanjutnya setelah membuat file java
Tutorial below shows steps to create java file. Hope U could enjoy it:)







Saturday, March 14, 2009

ReseP bikin PanGkaT di ALGoRiTma



import javax.swing.JOptionPane;
/** *
* @author ARbYvanVCLenn on bosoJovo.blogspot.com

* Kasus pamangkatan memang menarik
* karena terlihat simpel namun
* melibatkan stuktur percabangan yang dikombinasikan dengan struktur perulangan

* hasilnya cukup membuat algoritma makin disegani...

* dan makin SERem kaLo dah dibumbui FunGsi n konseP OOP denGan VCM...
* (8-0)
OOOPOOO kuWiii???

* ni kode PRoGRam TakSuSuPi komenTaR

* cuZ I TERinGAT kaTa di 'buku TebeL - ALGoRiTma' YanG TakbaCa
* PRoGRamER keLas PRo GAk PERnah LuPa

* nYanTumin komenTAR YanG RELevan in EVeRY sinGLe kode PRoGRam YanG diTuLisnYa

*
*
*/
public class Main {

/** *dalam pemangkatan * bilangan a kalo dipangkat nol sama dengan satu * bila a dipangkat satu hasilnya bilangan itu sendiri *bila dipangkat lebih dari satu hasilnya sebanyak a*a*... * oleh karena itu fungsi dibuat dengan tiga parameter a, bin, dan c * nanti diproses bin pangkat a * c sebagai variabel pembantu yang nilainya tetap * meski bin terus menerus berubah */
public static int kali(int a,int bin,int c){
//kalo bilangan n dipangkat nol hasilnya satu
if (a==0){bin = 1;}
// bilangan dipangkat satu hasilnya bilangan itu sendiri
else if(a==1){bin = bin*1;}
//lebih dari satu hasilnya tergantung dipangkat berapa
else
{for (int i = 2; i <= a; i++) { bin=bin*c; }// perulangan habis
}// buntutnya else
return bin;
}


public static void main(String[] args) {

String bin = JOptionPane.showInputDialog("bilangan 1");
String a=JOptionPane.showInputDialog("dipangkat???");
int c= Integer.valueOf(bin);
int hasil=kali(Integer.valueOf(a),Integer.valueOf(bin),c);
System.out.println("hasil "+bin+" pangkat "+a+" is "+hasil);
}

}
--------------------


CERiTa kode PRoGRam di aTas dimulai dari main(fungsi utama)
3 variabel dibuat, 2 diantaranya(variabel a dan bin) dengan tipe string untuk menampung masukan
yang didapat dari input dialognya JOptionPane,
selain itu ada juga variabel c yang bertipe integer.

dalam pemangkatan misalkan 2 pangkat 4 hasilnya didapat dari
proses perulangan 2x2 sebanyak 4 kali,
dan kalo dilihat lebih dekat JadinYa sePeRTi beRikuT:
2 pangkat 2 = 2 x 2,
2 pangkat 3 = 2 x 2 x 2,
2 pangkat 4 = 2 X 2 x 2 x 2,

dengan kata lain(bila dipangkat dengan bilangan > 2)
2 pangkat 2 hasilnya = 2 x 2
2 pangkat 3 hasilnya = (hasil dari 2 ^ 2) x 2
2 pangkat 4 hasilnya = (hasil dari 2 ^ 3) x 2
2 pangkat 5 hasilnya = (hasil dari 2 ^ 4) x 2

nah kalo dikodekan jadinya 3 variabel dipakai
variabel pertama untuk bilangan yang mau dipangkat
variabel kedua untuk bilangan yang jadi pangkatnya
variabel ketiga untuk aPa Yhaa???

Tebak saJALah sendiRi buaT aPa.... (^o^)
weS sekian, moGa beRmanFaaT n KALo Gak mudenG JUsT conTacT me...

Saturday, January 3, 2009

masih bERhubuNGAn DGn FuNGsi

sETeLah fuNGSi dibuAT, fuNGsi diJaLAnkan ATau diPaNGGiL dGn kode nama fungsi TeRsebuT beseRTa PaRAmETeRnYa, KOde 4 memaNGGiL FunGsi akaN LEnGKaP biLA diakhiRi DGn TITik koma(;).
caTaTan : dIJAmin ERROR saaT meMaNGGiL FuNGsi TaPi PaRamETeR YaNG disebuTkan Tidak sesuai DGn PaRamETeR FUnGsi Tsb.
misALkan hanYA meNYERTAKan 2 PARamETER 4 fuNGsi DGN 3 PaRAmETeR.

contoh kode PRoGRam :

class ContohFungsi(){//awal fungsi

//fungsi penjumlahan
public static float rata2(int a, int b, int c)
{

float d = a+b+c/3;
//RetuRn value berTiPe FLoaT sama denGan TiPe FunGsi
return c;

}// akhir fungsi

public static void main(String args[]){
int bil1 = 2;
int bil2 = 10;
int bil3 = 30;
//memanggil fungsi
float h= rata2(bil1, bil2);//3
System.out.println(h);

}
}

diPeRLukan JUGa VaRiaBLe uNTuk meNYimPan niLai daRi ReTURn vaLue sebuah FuNGsi, seperti no3 dalam kode program di atas. SaaT memanGGil fungsi rata2 dalm kode di atas hanYa diserTakan 2 PaRameTer, PadahaL funGsi rata2 memiliki 3 parameter bertipe int (dalam baris kode public static float rata2(int a, int b, int c)).
so Awasi PaRameteR JuGa kaLo memAnGGiL FunGsi

Friday, January 2, 2009

FuNGSi daLAm codiNG

wELL, sETeLAh meNGuPas bAGian2 dALAm FUnGSi,

class FungsiSample { public static int penjumlahan(int a, int b){ int c =a+b; return c;} public static void main(String args[]){int a = 3; int b= 2; int c =penjumlahan(a,b); System.out.println(a+" + "+b+" = "+c);} }
wELL iTulah kode RiNGkas PLUs FUnGsi,
saAT membUAT FunGsi TuLis STATus FunGsi spasi TiPe dATa FUnGsi spasi nama FunGsi dan PaRamETeR(public static int penjumlahan (int a,int b) ).

MeNGUPas FuNGsi 2

dALam PRoses PeNJumLahan 2 biLaNGan,
sETeLah NGebahas PaRamETER, bERikuTnYA TenTukan ReTURn vALuenYa,
PeNJumLahan 2 biLaNGan diRumuskan DGn a = b + c,
a sebAGai VARiabEL PenaMPuNG hasiL PeNJumLAhan meRuPakan RETURn vALue(niLai hasiL akhiR PRoses). TiPE daTA ReTURn
vALUE meneNTukan TiPe dATA FUnGSi.
ReTURn VALue dARi PRoses PeNJumLAhan 2 biLAnGan bERTiPe dATA int, sehiNGGA TiPe daTA FunGSi TeRsebuT int JUGA

KenALan mA FunGsi

dALam PemRoGRaman bisa JUGa dibuAT FunGsi Tambahan seLain FunGsi uTama. FuNGsi Tambahan diGunakan uNTuk menaNGani PRoses TeRTenTu dALam PRoGRam. meNGenAL FuNGsi BLum LEnGKAP kALO bLum kenAL PaRamETER n ReTuRn value. PaRamETER diPake sBG bahan uNTuk diPRoses DLm FuNGSi. ReTURn vALue mePakan hAsiL daRi PRoses DLm FUnGsi.
coNToh: menJumlahkan 2 biLAnGan is a PRoSeS. diPeRLukan 2 biLanGan sbG bahan dLM PRoses TeRsebuT ( 2 biLAnGan iTULah PaRameTER)

Thursday, January 1, 2009

be deTecTive be sensiTivE 2

sambuNGan dARi JudUL PeRTama...
-
d bAG 1, TeRbuKTi sTandAR nama(bhs kERenNYA IdeNTiFieR) kELas n konSTRukToR diawALi hURuF kAPiTAL(cAPiTALized), SebaLiknYA dGn nama oBJecT.
benTuk PenULisaNPun mnuNJUkkan maksud PRoGRam.
MemaNGGiL vaRiabeL cukUP sebuT namanYA,
memanGGiL aRRaY sebuT nama n indexnYA,
bukti:
String a = "Tom";
int [] b = {1,2,3};
PeRinTah 4 mnaMPiLkan nilai 2 n TOm:
System.out.print(a+b[1]);
a is nama variabel,
n b index 1 bernilai 2

be deTecTive be senSiTiVE

kenALi kode PRoGRam dARi beNTuk n namanYA,
YaPZ iTULah maksud TiTLe di ATAs.
dGn meNGikuTi ATURan n TRadisi PenULisan kodE PRoGRam akan memudahkan maksud dARi kode PRoGRam. beRikuT BebeRAPa JuRus PRakTisnYa:
1: JanGan sePELEkan Penulisan nama (identifier)
nama CLass, nama konsTRukToR diawALi hURUF kAPiTAL,
sedaNGkan nama fungsi, variabel, n nama objeCT diawALi hURuF keciL.
buKTinYA insTRuksi uNTuk membuAT oBJeCT TombOL :
JButton tmb1 = new JButton();
JButton(nama CLass : KaPiTaL) tmb1(nama oBJECT: KeciL) JButton()(nama konsTRukToR : KaPiTaL)
---

2: biaR Gak LuPA ma STRukTuR, AmaTi baik2 Pas kenaLan:

ini kHusus buaT STRukTuR PeRuLanGan, KaLo diamaTi denGan seksama STRukTuR PunYa 2 baGian bLok, dan Rumus. BLok itu baris PRoGRam YanG diawali denGan Tanda ini({) n diakHiRI denGan Tanda(}).
sedanGkan Rumus ada macem2, YanG membedakan LeTak inisiaLisasi(nilai awal sebaGai awal PeRuLanGan), iTerasi (STeP TiaP PeRuLanGAn),dan TeRminasi(AkHiR PeRuLanGan)nYa.

ini bukTinYa :
untuk membuat PeRuLanGan daRi 1 samPai 10, karena berawal dari satu maka inisialisasinYa Pake int i = 1, KiTa inGin PeRuLanGan beRakhir di sePuluh so TeRminasinYa i<=10; TeRakhiR KARena inGin DiulanG 10 kaLi TiaP sTEP hanYa maJU 1. Jadi iTeRasinYa i++

denGan Rumus FoR:

for(int i=1; int<= 10; i++ ){}
baca: for rumusnYa inisialisasi LaLu TeRminasi LaLu iTeRasi TRus BLok.

Pake Rumus While:

int i=1;while(i<=10){i++;}
baca: inisialisasi LaLu while Terminasi TRus bLok di dalamnYa iTeRasi

Rumus do - while:
int i=1;do{i++;}(while i <=10 );
baca: inisialisasi, LALu do bLok di daLamnYa iTeRasi TRus while TeRminasi.

WELL,WELL beRsambunG hehe...

About Me

ORanG YAnG doYan ReadinG n BeTah PARkiR di GRamed Lama2, LiV TYLeR aLso NaTaLie PoRTman LoveR YanG GemaR maen PES. maSiH KUL n Do'ain Me biAR LEkaS KeLAR kUL n LEkas Jadi PenGusaha biaR biSA buka LaPanGan keRJa seLuas-LuasnYA di Indo,

Followers