menembus batas impian


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* pasaran.java
*
* Created on Jul 20, 2013, 5:39:16 PM
*/
package sikeysa.form;

import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author nk
*/
public class pasaran extends javax.swing.JInternalFrame {
// private Object df;

/** Creates new form pasaran */
public pasaran() {
initComponents();tgl1.setText(“2013-01-01”);
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
//
private void initComponents() {

tgl2 = new javax.swing.JFormattedTextField();
jButton1 = new javax.swing.JButton();
tgl1 = new javax.swing.JFormattedTextField();
tgl3 = new javax.swing.JFormattedTextField();
fmodal = new formattedfields.FormattedDoubleField();
jLabel1 = new javax.swing.JLabel();

setName(“Form”); // NOI18N

tgl2.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat(“yyyy-MM-dd”))));
tgl2.setName(“tgl2”); // NOI18N
tgl2.setValue(new java.util.Date());

jButton1.setName(“jButton1”); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

tgl1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat(“yyyy-MM-dd”))));
tgl1.setEnabled(false);
tgl1.setName(“tgl1”); // NOI18N
tgl1.setValue(new java.util.Date());
tgl1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
tgl1KeyPressed(evt);
}
});

tgl3.setEnabled(false);
tgl3.setName(“tgl3”); // NOI18N
tgl3.setValue(new java.util.Date());

fmodal.setEnabled(false);
fmodal.setName(“fmodal”); // NOI18N
fmodal.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
fmodalKeyPressed(evt);
}
});

jLabel1.setName(“jLabel1”); // NOI18N

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(142, 142, 142)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(tgl1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tgl2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(tgl3, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(122, 122, 122)
.addComponent(fmodal, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(40, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(45, Short.MAX_VALUE)
.addComponent(tgl3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tgl1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(tgl2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fmodal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(9, 9, 9)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(65, 65, 65))
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(46, 46, 46))))
);

pack();
}//

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// double hasil = 0;
try{
DateFormat df7 = new SimpleDateFormat(“dd-MM-yyyy”);
//tgl1.setText(“2013-01-01″);
String x1=tgl1.getText().substring(8,10);
String x2=tgl1.getText().substring(5,7);
String x3=tgl1.getText().substring(0,4);
String v1=tgl2.getText().substring(8,10);
String v2=tgl2.getText().substring(5,7);
String v3=tgl2.getText().substring(0,4);

System.out.println(x3+”/”+x2+”/”+x1);
Date TanggalPinjam =df7.parse(x1+”-“+x2+”-“+x3);
Date TanggalKembali = df7.parse(v1+”-“+v2+”-“+v3);
double l=(24 * 60 * 60 * 1000);
//Tgl di konversi ke milidetik
double Hari1 = TanggalPinjam.getTime();
double Hari2 = TanggalKembali.getTime();
double Lama=3;
double ll= (Hari2-Hari1);
double lll= (ll/l);
double lx=lll/5;

int b= (int) lx;
double hasil=lx-b;

fmodal.setValue(hasil);
DecimalFormat df = new DecimalFormat(“###.#”);
String hasils =df.format(hasil);

System.out.println((hasils+”–“+b));
if(hasils.equals(“0”)){jLabel1.setText(“KLIWON”);}
else if(hasils.equals(“0.2”)){jLabel1.setText(“LEGI”);}
else if(hasils.equals(“0.4”)){jLabel1.setText(“PAING”);}
else if(hasils.equals(“0.6”)){jLabel1.setText(“PON”);}
else if(hasils.equals(“0.8”)){jLabel1.setText(“WAGE”);}
else if(hasils.equals(“-0.2”)){jLabel1.setText(“WAGE”);}
else if(hasils.equals(“-0.4”)){jLabel1.setText(“PON”);}
else if(hasils.equals(“-0.6”)){jLabel1.setText(“PAING”);}
else if(hasils.equals(“-0.8”)){jLabel1.setText(“LEGI”);}

} catch (ParseException e)
{
e.printStackTrace();
}
}

private void tgl1KeyPressed(java.awt.event.KeyEvent evt) {
// if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
// fmodal.requestFocusInWindow(); } // TODO add your handling code here:
}

private void fmodalKeyPressed(java.awt.event.KeyEvent evt) {
// if (evt.getKeyChar() == KeyEvent.VK_ENTER) {if(fjangka.getText().equals(“0”)){
// JOptionPane.showMessageDialog(this, “Jangka Waktu Belum di isi”); fjangka.requestFocusInWindow();}
// else{
// if(((String)cjnsjangka.getSelectedItem()).substring(0,1).equals(“4”)){
// Double c1 =Double.parseDouble(fjangka.getText())*5;
// Double c2 =Double.parseDouble(fmodal.getText());
// c= c2/c1;}else{
// Double c1 =Double.parseDouble(fjangka.getText());
// Double c2 =Double.parseDouble(fmodal.getText());
// c= c2/c1;}
// fangspok.setValue(c); fbmf.requestFocusInWindow();}
// }
}

// Variables declaration – do not modify
private formattedfields.FormattedDoubleField fmodal;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JFormattedTextField tgl1;
private javax.swing.JFormattedTextField tgl2;
private javax.swing.JFormattedTextField tgl3;
// End of variables declaration
}


Login to Centos server as root user

Using command prompt check whether you are logged in as root user or not. If you are not logged in as root user, you will not be able to run any installation commands.
su –

The above command will ask you for root password if you are not logged in as root user, else if you are logged in as root user than it will not display any message.
Install Apache

First step is to install the Apache server.
yum install httpd httpd-devel

To start the apache server you can use:
service httpd start

or
/etc/init.d/httpd start

(Not required at this point) If you want to restart the Apache server you can use:
service httpd restart

Install MySQL

To install the MySQL server type in
yum install mysql mysql-server mysql-devel

The above command will install MySQL server with username as root and password is empty.

To change the MySQL server password, start the MySQL server by:
/etc/init.d/mysqld start

mysql

The above two commands will take you to the MySQL command prompt where you can use MySQL commands. To change the root password to a new one from security point of view. Use the MySQL commands to change the root user password.
mysql USE mysql;

mysql UPDATE user SET Password= (‘newpassword’) WHERE user=’root’;

mysql FLUSH PRIVILEGES;

mysql exit;

Once done, check by logging in:
mysql -u root -p

Enter Password:

After changing the password you might not be able to log in, if you have previously installed MySQL or it prompts an error that you can’t logging using password empty for root@localhost than change the password again by using:
service mysqld stop

rm -fr /var/lib/mysql/*

service mysqld start

mysqladmin -u root password ‘rawr’

rawr is the new password.

To login to MySQL command prompt as root user use
mysql –u root –p

The above command will ask for root password for MySQL admin, entering your root password will log you in as root user for MySQL.
Install PHP

For installing php you need to update the EPCL package for the centos, as in centos some php modules are missing like php-mycrypt etc. which is required by phpMyAdmin for login as root user to phpMyAdmin.

To get the package for CentOS 6
cd /tmp

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm

rpm -ivh epel-release-6-7.noarch.rpm

After installing the package you can install the php with other php extensions by:
yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

To test whether php is working or not

You can create an index.php file in your root folder, usually at /var/www/html

On your browser type in http://localhost/index.php will display the php info and other extensions installed.
Installing phpMyAdmin

PHPMyAdmin will is a free MySQL database Administration Tool. You can install phpMyAdmin by using the yum install phpMyAdmin command. Make sure you have installed the php-mcrypt modules as it is required by phpMyAdmin to login as root user for phpMyAdmin.
yum install phpmyadmin

Restart the apache, MySQL and memcache services.
service httpd start

service mysqld start


Introduction

Hibernate is designed to be used with a large set of databases. The details of those databases are configured in an XML file called hibernate.cfg.xml. This configuration files could be given any name and is usually placed in the root of your application class path. There are many configuration parameters available that makes the mapping of domain model to relational model easier. The same configurations can be done from your Java class uning org.hibernate.cfg.Configuration class. If you are beginner in Hibernate, please read our article on Introduction to Hibernate ORM Framework by Raja.

Sample Application

The sample we discuss here shows how an Employee object can be configured to store in both Oracle Data base and Derby Database. Here we create a POJO class called Employee and store and retrieve its objects from both Oracle and Derby database.

Software Requirements

For this example I have used the following tools.

  • NetBeans IDE ( may use Eclipse also)
  • Hibernate 3.0
  • Oracle 9i , Derby

Sample Project Structure

Employee.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package hibernatepack.samples;

public class Employee {
    private int empid;
    private String empname;
    private double salary;
    public int getEmpid() {
        return empid;
    }
    public void setEmpid(int empid) {
        this.empid = empid;
    }

    public String getEmpname() {
        return empname;
    }

    public void setEmpname(String empname) {
        this.empname = empname;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
}

The mapping details of the Employee class are available in the Employee.hbm.xml file:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  <hibernate-mapping>
    <class name="hibernatepack.samples.Employee" table="HBEmployeeDetails" >
    <id name= "empid" column="EmpNo" />
     <property name= "empname" column = "EmpName" />
    <property name="salary" column="Salary" />
   </class>
 </hibernate-mapping>

Since we need to persist the Employee object both in Oracle and in Derby, we need to create 2 configuration files – one for Oracle, another one for Derby.

oracleconfig.cfg.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@10.154.117.76:1521:oracle</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="Employee.hbm.xml" />
</session-factory>
</hibernate-configuration>

derbiconfig.cfg.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/HibernateDB</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">pwd</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping resource="Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>

The IEmployeeDAO.java lists the operations on the Employee object.

1
2
3
4
5
6
package hibernatepack.samples;
import java.util.List;
public interface IEmployeeDAO {
    	public void findAllEmployees();
   	public void insertEmployee(Employee e);
       }

Let us Implement the above interface using a class :

EmloyeeDaoImpl.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class EmployeeDaoImpl implements IEmployeeDAO {
    SessionFactory sessionFactory1 = new  Configuration().configure("oracleconfig.cfg.xml").buildSessionFactory();
    SessionFactory sessionFactory2 = new Configuration().configure("derbyconfig.cfg.xml").buildSessionFactory();
    Session session = null;
    Transaction transaction = null;
    public void findAllEmployees() {
        ArrayList empList = new ArrayList();
               try {
            session = sessionFactory1.openSession();
            transaction = session.beginTransaction();
            transaction.begin();
            Criteria crit = session.createCriteria(Employee.class);
            empList = (ArrayList) crit.list();
             System.out.println("Records from Oracle Database");
            for (Employee emp : empList) {
                System.out.println(emp.getEmpid() + " " + emp.getEmpname() + " " + emp.getSalary());

            }
            session.close();
            session = sessionFactory2.openSession();
            Criteria crit1 = session.createCriteria(Employee.class);
            empList = (ArrayList) crit1.list();
            System.out.println("Records from Derby Database");
            for (Employee emp : empList) {
                System.out.println(emp.getEmpid() + " " + emp.getEmpname() + " " + emp.getSalary());
            }
            session.close();
        } catch (Exception he) {
            he.printStackTrace();
        }
    }
	public void insertEmployee(Employee e) {
        try {
            session = sessionFactory1.openSession();
            transaction = session.beginTransaction();
            transaction.begin();
            session.save(e);
            transaction.commit();
            session.close();
            session = sessionFactory2.openSession();
            transaction = session.beginTransaction();
            transaction.begin();
            session.save(e);
            transaction.commit();
            session.close();
        } catch (HibernateException he) {
            he.printStackTrace();
        }
    }
}
–~~~~~~~~~~~~–

Creating Session Factory object in Hibernate

Each database has its own SessionFactory object.

1
2
SessionFactory sessionFactory1 = new  Configuration().configure("oracleconfig.cfg.xml").buildSessionFactory();
SessionFactory sessionFactory2 = new Configuration().configure("derbyconfig.cfg.xml").buildSessionFactory();

Specify the name of the configuration file as an argument to the configure() method when building the session factory object.
Let us create the test application.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package hibernatepack.samples;

import java.awt.Choice;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class EmployeeTest {
    private static int choice;
    public static void main(String[] args) {
        EmployeeDaoImpl empOperations = new EmployeeDaoImpl();
        Employee e1 = new Employee();
        do {
            System.out.println("1. Insert ");
            System.out.println("2. List ");
            System.out.println("3. Exit ");
            System.out.println("Enter your choice ");
            Scanner sc = new Scanner(System.in);
            choice = sc.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("Enter the employee Number ");
                    Scanner sc1 = new Scanner(System.in);
                    int empid = sc1.nextInt();
                    System.out.println("Enter the employee Name ");
                    Scanner sc2 = new Scanner(System.in);
                    String empname = sc2.nextLine();
                    System.out.println("Enter the Salary ");
                    Scanner sc3 = new Scanner(System.in);
                    double empsal = sc3.nextDouble();
                    e1.setEmpid(empid);
                    e1.setEmpname(empname);
                    e1.setSalary(empsal);
                    empOperations.insertEmployee(e1);
                    break;
                case 2:
                     empOperations.findAllEmployees();
                    break;
            }
        } while (choice != 3);
    }
}

When you execute the insert method, table named “HBEMPLOYEEDETAILS” is created both in Oracle and in Derby. Find below the sample output screen.

Conclusion

This is very simple example on how to configure the multiple databases using Hibernate configuration files. In the next weeks I will be writing few more examples on configuring the databases and fetching the data. In the following section you can find the interesting articles related to Hibernate framework.

hanya sebuah catatan  http://www.javabeat.net/2010/12/configuring-multiple-databases-in-hibernate/

 


Download the latest atrpms-repo rpm from

http://dl.atrpms.net/el6-x86_64/atrpms/stable/

Install atrpms-repo rpm:

# rpm -Uvh atrpms-repo*rpm

Install broadcom-wl rpm package:

# yum install broadcom-wl


buka terminal

masuk sebagai root

[root@localhost bmc]#su

[root@localhost bmc]#>>>>masukkan password root

[root@localhost bmc]#mysql -u root -p’password’

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.69 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>  GRANT ALL PRIVILEGES ON *.* to root@’%’ IDENTIFIED BY ‘password’; enter

keluar > Query OK, 0 rows affected (0.00 sec)

ketik lagi

mysql> FLUSH PRIVILEGES; enter

keluar > Query OK, 0 rows affected (0.00 sec)
selesai sudah dan kita bisa akses mysql dr luar server dengan akses ip server

 


Installing Apache2 With PHP5 And MySQL Support On IGOS

Version 1.0
Author: Falko Timme
Follow me on Twitter
Last edited 07/24/2009

LAMP is short for Linux, Apache, MySQL, PHP. This tutorial shows how you can install an Apache2 webserver on a CentOS 5.3 server with PHP5 support (mod_php) and MySQL support.

I do not issue any guarantee that this will work for you!

1 Preliminary Note

In this tutorial I use the hostname server1.example.com with the IP address 192.168.0.100. These settings might differ for you, so you have to replace them where appropriate.

2 Installing MySQL 5.0

To install MySQL, we do this:

yum install mysql mysql-server

Then we create the system startup links for MySQL (so that MySQL starts automatically whenever the system boots) and start the MySQL server:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

Run

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

to set a password for the user root (otherwise anybody can access your MySQL database!).

3 Installing Apache2

Apache2 is available as a CentOS package, therefore we can install it like this:

yum install httpd

Now configure your system to start Apache at boot time…

chkconfig –levels 235 httpd on

… and start Apache:

/etc/init.d/httpd start

Now direct your browser to http://192.168.0.100, and you should see the Apache2 placeholder page:

Click to enlarge

Apache’s default document root is /var/www/html on CentOS, and the configuration file is /etc/httpd/conf/httpd.conf. Additional configurations are stored in the /etc/httpd/conf.d/ directory.

4 Installing PHP5

We can install PHP5 and the Apache PHP5 module as follows:

yum install php

We must restart Apache afterwards:

/etc/init.d/httpd restart

Installing Apache2 With PHP5 And MySQL Support On CentOS 5.3 (LAMP) – Page 2

SyskopD Update


Download file ini kemudian extract kemudian hasil extract kopikan ke folder c; dan kosongkan database dengan memilih file sql yang ada di folder syskopd yang baru ini

link file nya adalah http://www.mediafire.com/download.php?220a98a7ic79sxz