Oleh: jagan21 | Juli 8, 2011

Belajar form login sederhana dengan java

Buka program IDE Netbeans
Buat sebuah project baru → File – New Project

 

Pilih Java Application lalu klik Next seperti pada gambar diatas, sehingga akan muncul jendela baru

Ganti nama project dengan Login lalu klik Finish
Tunggu sebentar sampai Netbeans membuat sebuah project baru dengan nama Login seperrti gambar dibawah ini

Membuat LoginFrame.java, klik kanan pada package login, pilih New – jFrameForm

Ubah nama frame menjadi LoginFrame, lalu kik Finish

Dengan cara yang sama buat pula UtamaFrame
Buat merancang tampilan LoginFrame seperti ini

Untuk membuatnya saya menggunakan 3 jLabel, 1 jTextField, 1 jPasswordField dan 1 jButton
Kemudian ubah tulisannya dengan cara klik kanan pada komponen lalu klik edit text atau untuk jLabel cukup dengan dobel klik lalu ketikkan kata baru sehingga menjadi seperti ini

Mengubah nama variabel dari jTextField1 menjadi Nama dan jPasswordField1 menjadi Password serta jButton1 menjadi Login dengan cara klik kanan pada komponen lalu pilih Change Variable Name. Hal ini dilakukan untuk mempermudah pada saat menentukan aksi yang dijalankan oleh komponen tersebut

Menentukan aksi pada field Nama dan Password agar ketika tombol Enter ditekan secara otomatis cursor akan berpindah ke field selanjutnya yaitu dengan memanfaatkan event keypress, perhatikan gambar berikut
sehingga muncul tampilan kode program, lalu tambahkan kode yang tercetak tebal

private void NamaKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == evt.VK_ENTER)
Password.requestFocus();
}

Lakukan hal yang sama pada field Password, namun tambahkan kode yang tercetak tebal berikut ini :

private void PasswordKeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == evt.VK_ENTER)
Login.doClick();
}

Lalu klik 2 kali pada komponen jButton Login dan tambahkan kode yang tercetak tebal berikut ini

private void LoginActionPerformed(java.awt.event.ActionEvent evt) {
String user = "cakpandi";
String pass = "123456";
if(user.equalsIgnoreCase(Nama.getText()) && pass.equalsIgnoreCase(Password.getText())){
this.setVisible(false);
new UtamaFrame().setVisible(true);
}
else {
javax.swing.JOptionPane.showMessageDialog(null,"kombinasi nama dan password salah");
Nama.setText("");
Nama.requestFocus();
Password.setText("");
}
}

Buatlah tampilan untuk UtamaFrame dengan menggunakan jLabel seperti gambar ini

Kemudian tambahkan kode yang tercetak tebal ini pada file Main.java

public static void main(String[] args) {
new LoginFrame().setVisible(true);
}
}

Sekarang kita coba menjalankannya tekan F6 atau tanda segi tiga berwarna hijau, bila tidak ada kesalahan akan tampil seperti dibawah ini :

Ketikkan nama = cakpandi dan passwordnya = 123456, maka akan muncul jendela UtamaFrame

Bila nama atau password yang dimasukkan salah maka akan muncul peringatan

Demikian sedikit ilmu yang bisa saya share, semoga bermanfaat !

 

Oleh: jagan21 | Juli 8, 2011

Belajar grafik garis

import java.awt.Color;
import java.text.SimpleDateFormat;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
public class LineDemo extends ApplicationFrame {
public LineDemo(String title) {
super(title);
ChartPanel chartPanel = (ChartPanel) createDemoPanel();
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
chartPanel.setMouseZoomable(true, false);
setContentPane(chartPanel);
}
private static JFreeChart createChart(XYDataset dataset) {
JFreeChart chart = ChartFactory.createTimeSeriesChart(

“Grafik Akurasi Terhadap Jumlah Noise”, // Judul
“Noise”, // x
“Akurasi”, // y
dataset, // data
true, // legend
true, // gtooltips
false // URLs
);
chart.setBackgroundPaint(Color.white);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);
XYItemRenderer r = plot.getRenderer();
if (r instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
renderer.setBaseShapesVisible(true);
renderer.setBaseShapesFilled(true);
}
NumberAxis axis = new NumberAxis(“Jumlah Noise (persen)”);
axis.setAutoRangeIncludesZero(true);
plot.setDomainAxis(axis);
return chart;
}
private static XYDataset createDataset() {
XYSeries s1 = new XYSeries(“NNGE”);
s1.add(0,100);
s1.add(5,98.83);
s1.add(10,97.11);
s1.add(15,96.02);
s1.add(20,89.33);
s1.add(25,88.52);
XYSeries s2 = new XYSeries(“IB3”);
s2.add(0,87.25);
s2.add(5,94.39);
s2.add(10,97.92);
s2.add(15,97.11);
s2.add(20,93.13);
s2.add(25,91.68);
XYSeries s3 = new XYSeries(“NNGEs”);
s3.add(0,100);
s3.add(5,100);
s3.add(10,100);
s3.add(15,100);
s3.add(20,100);
s3.add(25,94.58);
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(s1);
dataset.addSeries(s2);
dataset.addSeries(s3);
return dataset;

}
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
return new ChartPanel(chart);
}
public static void main(String[] args) {
LineDemo demo = new LineDemo(
“Demo Grafik Garis”);
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}

 

 

 

Oleh: jagan21 | Juli 8, 2011

Belajar java grafik balok

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class BarDemo extends ApplicationFrame {public BarDemo(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart, false);
setContentPane(chartPanel);
}
private static CategoryDataset createDataset() {
String series1 = “NaiveBayes”;
String series2 = “NearestNeighbor”;
String series3 = “C45”;
String category1 = “Soybean”;
String category2 = “Segment”;
String category3 = “SPAM”;
String category4 = “RDG”;
String category5 = “WaveForm”;
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(92.972, series1, category1);
dataset.addValue(77.037, series1, category2);
dataset.addValue(78.67, series1, category3);
dataset.addValue(81.52, series1, category4);
dataset.addValue(78.48, series1, category5);
dataset.addValue(89.89, series2, category1);
dataset.addValue(95.8, series2, category2);
dataset.addValue(89.91, series2, category3);
dataset.addValue(77.96, series2, category4);
dataset.addValue(72.48, series2, category5);
dataset.addValue(91.581, series3, category1);
dataset.addValue(96.17, series3, category2);
dataset.addValue(92, series3, category3);
dataset.addValue(88.36, series3, category4);
dataset.addValue(74.32, series3, category5);
return dataset;
}
private JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createBarChart(
“Grafik Akurasi”, //Judul
“Data”, // Sumbu Y
“Akurasi”, // Sumbu X
dataset, // data
PlotOrientation.VERTICAL, // Orientasi
true, // legendtrue, // tooltips
true // URLs
);
chart.setBackgroundPaint(Color.white);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.WHITE);//warna Background
plot.setDomainGridlinePaint(Color.BLACK);//warna Grid
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.BLACK);
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.CYAN,
0.0f, 0.0f, new Color(0, 0, 64));//warna untuk series1
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.DARK_GRAY,
0.0f, 0.0f, new Color(0, 64, 0));//warna untuk series2
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.PINK,
0.0f, 0.0f, new Color(64, 0, 0));//warna untuk series3
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);
return chart;
}
public static void main(String[] args) {
BarDemo demo = new BarDemo(“Demo Grafik”);
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}

 

 

Oleh: jagan21 | Juli 7, 2011

DI MANA-MANA JAVA

Ternyata nama Java tidak hanya milik orang Jawa atau Indonesia. Saatnya Anda ikut merasakan kehebatan bahasa pemrograman Java, yang dapat berjalan di berbagai sistem operasi dan peranti keras komputer.

 

Java kini merajai komputasi di sistem enterprise dan Internet. Padahal saat dirintis sekitar tahun 90-an, Java justru dirancang buat sistem kecil-kecil seperti TV kabel atau home theater. Setelah berjalan
lebih dari empat tahun, ternyata pasar tersebut tidak berkembang. Pemimpin proyek Java, James Gosling, bahkan sampai
khawatir masa depannya bakal suram. Lalu terbersit ide, mengapa tidak

 

mencoba ke Internet? Keputusan setengah putus asa di tahun 1994 ini ternyata menjadi nasib baik mereka dan juga seluruh dunia. Artikel ini secara singkat memperkenalkan keunikan dan kelebihan Java yang membuatnya sukses. Setelah itu akan dibahas bagaimana menyiapkan sarana untuk membangun dan menjalankan program Java di mesin Linux Anda.

Sekali tulis, laris di mana saja

Ada tiga ide cemerlang yang menjadi ciri kesuksesan Java, yaitu bahasa, kode byte, dan virtual machine. Seperti terlihat pada Gambar 1, siklus hidup Java dimulai dari kode sumber yang ditulis manusia (pemrogram) memakai bahasa Java. Bahasa ini merupakan bahasa berorientasi objek yang diturunkan dari C++ dengan banyak penyempurnaan. Pada umumnya, para pakar berpendapat bahwa bahasa Java memiliki konsep yang konsisten dengan teori pemrograman objek dan aman untuk diimplementasikan. Kini universitasuniversitas di berbagai negara berpaling dari Pascal atau C++ dan memilih Java sebagai bahasa untuk belajar memprogram.

Setelah selesai ditulis, kode sumber Java harus diubah menjadi kode siap eksekusi dengan menggunakan Java Development Kit (JDK). Di sini letak keunikan Java. Java menggunakan kode byte yang portabel dan modular. Portabel karena dia bukan kode mesin prosesor (peranti keras) tertentu, justru sebaliknya dia bisa dimuat ke berbagai landasan komputer maupun sistem operasi. Dia juga modular karena tiap objek dikompilasi menjadi satu file kelas (class) yang mandiri. Aplikasi lengkap Java merupakan kumpulan beberapa file kelas. File-file kelas ini dapat disatukan dan dipadatkan menjadi file jar (Java archive).

Pada akhirnya, kode byte tersebut akan dijalankan sebagai program oleh Java Runtime Environment (JRE). Untuk masing-masing landasan komputer dan sistem operasi, tersedia JRE yang berbeda. JRE inilah yang menyembunyikan si landasan dan menyediakan lingkungan yang serupa bagi program Java agar dapat bekerja sebagai mana mestinya. Dengan strategi ini, Java mampu menjadi peranti lunak yang “write once run everywhere”.

Satu alat buat segala keperluan

Kunci lain kesuksesan Java adalah beragamnya arsitektur program yang didukungnya (Gambar  2). Dengan Java Anda bisa membangun program aplikasi yang berjalan di satu komputer, program terdistribusi yang bekerja antara beberapa komputer, bahkan program mobileagent yang bisa melompat-lompat dari satu  komputer ke komputer lainnya di Internet. Arsitektur-arsitektur tesebut sangat menunjang komputasi tersebar dan paralel, sehingga Java sangat populer di kalangan peneliti dan akademik. Sementara itu di dunia bisnis, arsitektur Java yang menarik adalah applet, servlet, Java
Server Page (JSP), dan Javascript. Sejauh ini, arsitektur-arsitektur tersebut merupakan pilihan terlengkap yang bisa disediakan oleh satu alat pengembangan. Aplikasi adalah arsitektur Java paling klasik, di mana kode sumber dikompilasi
menjadi kode byte lalu dijalankan menjadi program di sebuah komputer. Aplikasi Java mampu bekerja dengan antarmuka
teks maupun grafik untuk mengerjakan

 

 

 

 

 

 

Oleh: jagan21 | Juli 6, 2011

MENAMPILKAN GAMBAR DALAM JAVA UNTUK PEMULA

Rafles Hajrul M

R_abelssss@yahoo.com

 

Coding:            

/*Author : RafLes Hajrul M

   file : program3.java*/  

 

 

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

 

            public class program3 extends JFrame

            {          

                          String gambar[] ={ “rafles.jpg”,”a.jpg”, “b.jpg”, “c.jpg”,  “bunga.gif”};

                          Icon icons[] = { new ImageIcon( gambar[0] ),new ImageIcon( gambar[1] ), new ImageIcon( gambar[2] ),new ImageIcon( gambar[3] ),new ImageIcon( gambar[4] ), };

                          JLabel label;

                          JComboBox rafles;

                          JTextArea Area = new JTextArea(“Menampilkan Gambar dalam java dengan image icon”, 15,70);

 

 

            public static void main(String[] args)

            {

                          program3 program = new program3();

                           }

            public program3(){

                          super(“Menampilkan Gambar”);

                          Area.setFont(new Font(“Comic Sans MS”,Font.BOLD,14));

                          Area.setForeground(Color.BLUE);

                          Area.setBackground(Color.WHITE);

 

                          //MEnAmpilkan Gambar

                          Container container = getContentPane();

                          container.setLayout(new  FlowLayout(FlowLayout.CENTER, 0, 0));

                          rafles = new JComboBox( gambar );

                          rafles.setForeground(Color.BLUE);

                          rafles.setMaximumRowCount(2);  

                          rafles.addItemListener(

                          new ItemListener() {

public void itemStateChanged(ItemEvent event ){

 

   if( event.getStateChange() ==ItemEvent.SELECTED)

   label.setIcon( icons[ rafles.getSelectedIndex() ] );

                          }

                                                                        }

                                                                                    );

                          container.add(“North”,rafles);

                          label = new JLabel( icons[0] );

                          container.add( label );          

 

getContentPane().setBackground( Color.WHITE);

getContentPane().add(Area,BorderLayout.CENTER);        

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     

 

                          setSize(800,650);

                          setLocation(100,50);

                          setVisible(true);

                          show();

                          }

                          }

Setelah coding diatas diketik lalu di-save dengan nama program3.java.

 Lalu langkah kedua buka command prompt lalu ketik compile dengan “ javac program3.java ” jika tidak ada kesalahan maka lanjutkan dengan mengetik “  java

 

 

Oleh: jagan21 | Juli 6, 2011

Belajar merubah rotasi dalam java

Untuk merubah rotasi perintah dasarnya adalah:

public void act()

{

int rot = getRotation() + 1;

if(rot == 360) {

rot = 0;

}

setRotation(rot);

}

Metode ini berarti mengambil object (gambar) pada rotasi sekarang dan akan selalu bertambah 1. Efeknya objek akan bergerak perlahan kearah panah.

Angka yang benar pada rotasi adalah angka 0-359. Untuk mensiasati ini dibuat pernyataan if(rot == 360) { yang dapat diartikan jika sudah mencapai rotasi 3600 maka rot=0.

Buka jendela coding (double klik pada actor snake) lalu buat pergerakan snake dengan aturan snake akan selalu bergerak sambil berotasi (berputar-putar).

import greenfoot.*; // (World, Actor, GreenfootImage, and Greenfoot)
/**
* Write a description of class snake here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class snake extends Actor
{
/**
* Act – do whatever the snake wants to do. This method is called whenever
* the ‘Act’ or ‘Run’ button gets pressed in the environment.
*/
public void act()
{
// Add your action code here.
//pergerakan snake
int rot = getRotation() + 10;
if (rot < 90) {
setLocation(getX() + 2, getY());
}
else if (rot < 180) {
setLocation(getX(), getY() + 2 );
}
else if (rot < 270) {
setLocation(getX() – 2, getY());
}
else if (rot < 360) {
setLocation(getX(), getY() – 2);
}
if (rot > 360) {
rot = 0;
}
setRotation(rot);
}
}

Tampilan Jendela coding

Kemudian kita masukan coding pada tempat coding seperti di bawah ini,

/*

* Midletcalender.java

* Author : Jagan Jantan

* Muzeekoe@yahoo.co.id

* Created on July 06, 2011, 9:30 AM

*/

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class calendar extends MIDlet implements

ItemStateListener, CommandListener

{

private Display display; // Refrensi ke objek display

private Form fmMain; // Form utama

private Command cmExit; // Command keluar dari MIDlet

private DateField dfDate;// Tampilan tanggal

public calendar()

{

display = Display.getDisplay(this);

// Buat tanggal hari ini

dfDate = new DateField(“Date is:”, DateField.DATE);

dfDate.setDate(new java.util.Date());

cmExit = new Command (“Exit”, Command.EXIT, 1);

// Buat Form, tambahkan Command dan DateField

// dengar event dari Command dan DateField

fmMain = new Form(“Core J2ME”);

fmMain.addCommand(cmExit);

fmMain.append(dfDate);

fmMain.setCommandListener(this); //Tangkap event (cmExit)

fmMain.setItemStateListener(this); //Tangkap event (dfDate)

}

//Dipanggil oleh application manager untuk memulai MIDlet

public void startApp()

{

display.setCurrent(fmMain);

}

public void pauseApp()

{ }

public void destroyApp(boolean unconditional)

{ }

public void commandAction(Command c, Displayable s)

{

if (c == cmExit)

{

destroyApp(false);

notifyDestroyed();

}

}

public void itemStateChanged(Item Item)

{

System.out.printldfDate.setLabel(“New Date: “);

n(“Inside itemStateChanged()”);

}

}

Oleh: jagan21 | Juli 6, 2011

Belajar Java

       Java adalah salah satu bahasa pemrograman yg dikembangkan oleh sun microsystem. Bahasa yg berorientasi objek ini dibuat untuk dapat dijalankan pada berbagai macam platform tanpa meng-compile ulang disetiap platform.

Java memiliki virtual machine dan virtual library yg diperlukan untuk menulis dan menjalankan program.

Java merupakan bahasa pemrograman yg dapat diimplementasikan pada berbagai lingkungan, seperti internet, handphone maupun komputer.

Secara garis besar terdapat 3 macam edisi Java yaitu :

Ø  Java 2 standar edition (J2SE)

Ø  Java 2 enterprise edition (J2EE)

Ø  Java 2 micro edition (J2ME).

Untuk menjalankan java bytecode perlu diinstall sebuah java runtime environment (JRE), JRE menyediakan pustaka kode. Kita perlu juga menambahkan Java Development Kit (JDK) untuk menambahkan tool pemrogramannya, seperti compiler bytecode dan debugger. Java compiler mengkompilasi kode java ke sebuah intermedit yg disebut java bytecode yg berjalan diatas sebuah Java Runtime Environment (JRE) tadi dan tidak langsung berjalan diatas sistem operasi.

Java lebih dikenal dengan portabilitasnya juga dengan Fitur fitur lain seperti pengumpulan sampah.
Kelebihan Java.

v  OOP (object oriented programing)

Yg artinya semua aspek yg terdapat di java adalah objek.

v  Multiplatform.

Mampu dijalankan dimana saja dibeberapa platform/sistem operasi.

v  Library yg lengkap.

v  Mirip C++.

Sintaks yg seperti bahasa pemrograman C++, banyak membuat para pembuat program C++ beralih ke Java.

v  Pengumpulan sampah.

  • Kekurangan Java.

v  Algoritma yg digunakan program lebih sulit disembunyikan sehingga mudah dibajak.

v  Penggunaan memori yg banyak.

v  Masih banyak yg tidak kompatibel.

seperti swt-awt bridge pada J2SE yg sampai saat ini tidak berfungsi pada mac os x.

Label: Belajar

Diposkan oleh valez_uproxx

Oleh: jagan21 | Juli 16, 2009

Kemenangan “rakyat”

LANJUTKAN

LANJUTKAN

Rakyat atau bangsa indonesia sudah melaksanakn pesta demokrasi,dan rakyat telah menentukan pilihanya,dan kemenangan hasil Quick caunt, menunjukan kemenangan SBY-Boediono. dan sudah di pastikan pemilihan presiden periode 2009-2014,terjadi hanya stu putaran,ini merupakan kemenangan rakyat indonesia,dan bagi pasangan yang kaah harus menunjukan sikap kenegarawananya,karena rakyat sudah menentukan pilihanya dan mau bersatu untuk menjadi Indonesia yang lebih maju,lebih baik,dan lebih sejahtera.Rakyat Indonesia tinggal menunggu janji politik yang pernah di kampanyekan oleh presiden yang terpilih,Semoga rakyat Indonesia makin Sejahtera.images

Oleh: jagan21 | Juli 16, 2009

Ha..ha..ha..

mbah-surip Ha-ha-ha itulah kata yang terlontar dari mbah Surip setiap ada pertanyaan yang terlontar kepadanya.Penyanyi sekaligus pencipta lagu tak gendong ini langsung melejit namanya,sepintas lagunya apa yang di maksud juga ga jelas,tapi sangat diterima oleh masyarakat,dan konon katanya dari hasil downlod dia langsung mendadak kaya Rp.4,5 milyar dia sudah kantongi,itulah hebatnya dunia tekhnologi Informatika.

Bagaimana saudara Jika kita bersaing menggunakan kata Hi..hi…hii….?

Older Posts »

Kategori

Rancang situs seperti ini dengan WordPress.com
Mulai