Pada kesempatan ini ane ingin mendemonstrasikan bagaimana mudahnya membuat CRUD JPA dengan menggunakan netbean..
Target yang akan kita buat pada kesempatan kali ini yaitu dengan menggunakan contoh gambar pada gambar di bawah ini.
Hanya sekedar blog untuk sharing informasi tentang pengetahuan terutama programming, teknologi dan ilmu.



JTable table = new JTable(); table.setAutoCreateRowSorter(true);
X={1:10,2:20,3:23,4:23,5:143,6:3}
dengan Y={1:10,4:23,6:34}
public static int backupDatabase(String filename, String user, String password, String database) {
int berhasil = 0;
try {
String path = filename;
String dumpCommand;
String pathMysqlDump = System.getProperty("user.dir") + "/mysqldump.exe";
System.out.println(pathMysqlDump);
if (!password.equals("")) {
dumpCommand = pathMysqlDump + "-u " + user + " -p " + password + " " + database + " -r " + path;
} else {
dumpCommand = pathMysqlDump + "-u " + user + " " + database + " -r " + path;
}
Runtime rt = Runtime.getRuntime();
rt.exec(dumpCommand);
berhasil = 1;
} catch (IOException ex) {
Logger.getLogger(Koneksi.class.getName()).log(Level.SEVERE, null, ex);
}
return berhasil;
}Nah cara menggunakannya bisa diberi di action button seperti ini..JFileChooser chooser=new JFileChooser();
int k=chooser.showSaveDialog(null);
if(k==JFileChooser.APPROVE_OPTION){
String filename=chooser.getSelectedFile().getAbsolutePath();
if(!filename.contains(".sql"))
filename=filename+".sql";
int l=Koneksi.backupDatabase(filename, txtUser.getText(), txtPassword.getText(), txtDatabase.getText());
if(l==0)
JOptionPane.showMessageDialog(null, "data gagal dibackup");
else
JOptionPane.showMessageDialog(null, "data berhasil dibackup");
}Silahkan mencoba semoga berhasil dan bermanfaat
myTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (row % 2 == 1) {
label.setBackground(Color.red);
} else {
label.setBackground(Color.BLUE);
}
label.setOpaque(true);
label.setText((String) value);
return label;
}
});
try {
BufferedReader cfgFile = new BufferedReader(new FileReader(new File("src/tutor/Log.txt")));
String line = null;
while ((line = cfgFile.readLine().trim()) != null) {
if (!line.equals("")) {
String[] fields = line.split(";");
String key = fields[0];
String value = fields[1];
}
}
cfgFile.close();
} catch (IOException e) {
System.out.println("Unexpected File IO Error");
} catch (NullPointerException n) {
}
public static void captureActivities(Activity c) {
String mPath = Environment.getExternalStorageDirectory().toString()
+ "/gambar" ;
File folder=new File(mPath);
folder.mkdir();
String filename=mPath+"/gambar.jpg";
// create bitmap screen capture
Bitmap bitmap;
View v1=c.findViewById(android.R.id.content);
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
OutputStream fout = null;
File imageFile = new File(filename);
try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}Nah kode di atas berguna untuk membuat screenshot aplikasi kita yang di simpan ke external storage di android. Secara otomatis file hasil capturing kita disimpan dalam bentuk file /gambar/gambar.jpg. Untuk menggantinya silahkan ganti dengan sesuai keinginan anda. Hasil ini nantinya dapat kita tampilkan dengan intent apakah mau di share ataukah untuk dilihat saja. Untuk menggunakannya tinggal refere aja ke activity yang kita gunaka. Nah kita juga dapat mengambil view ini dari view lainnya yang merupakan child dari view tersebut. Nah misalnya code yang atas tadi di baris ini... View v1=c.findViewById(android.R.id.content) //dapat kita ganti dengan mengambil root view dari child viewnya //misalnya kita punya button Button b=(Button)findViewById(R.id.btn_upload); //nah kita dapat mengambil root viewnya dengan code sebagai berikut View v1=b.getRootView();
public static void writeToFile(String filename, String source, Activity a)
throws IOException {
FileOutputStream fOut = a.openFileOutput(filename,
Activity.MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(source);
osw.flush();
osw.close();
}
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()){
File gpxfile = new File(root, "gpxfile.gpx");
FileWriter gpxwriter = new FileWriter(gpxfile);
BufferedWriter out = new BufferedWriter(gpxwriter);
out.write("Hello world");
out.close();
}
#include <iostream>
#include <iomanip>
using namespace std;
struct mhs {
char NIM[11];
char NAMA[30];
float NILAI;
};
typedef mhs mhsArr[50];
int main() {
int jumlahsiswa, pilihan;
mhsArr x;
while (pilihan != 5) {
cout << "----------------------------------------------------\n";
cout << "MENU INPUT DATA SISWA\n";
cout << "1. Masukan data\n";
cout << "2. Lihat data\n";
cout << "3. Tampilkan rata rata\n";
cout << "4. Tampilkan siswa nilai tertinggi dan terendah\n";
cout << "5. Keluar\n";
cout << "----------------------------------------------------\n";
cin >>pilihan;
if (pilihan == 1) {
cout << "Masukan jumlah siswa =";
cin >> jumlahsiswa;
for (int i = 0; i < jumlahsiswa; i++) {
cout << "Siswa ke " << i + 1;
cout << "\nNIM : ";
cin >> x[i].NIM;
cout << "NAMA: ";
cin >> x[i].NAMA;
cout << "NILAI : ";
cin >> x[i].NILAI;
cout << endl;
}
} else if (pilihan == 2) {
cout << "\n |" << setw(13) << "NIM |";
cout << setw(32) << "NAMA |" << setw(7) << "IPK |" << endl;
cout <<"------------------------------------------------------------\n";
for (int i = 0; i < jumlahsiswa; i++) {
cout << " |" << setw(11) << x[i].NIM << " |";
cout << setw(30) << x[i].NAMA << " |";
cout << setw(5) << x[i].NILAI << " |" << endl;
}
} else if (pilihan == 3) {
cout << "Rata - rata dari nilai data tersebut adalah=";
int jumlah = 0;
float rata;
for (int i = 0; i < jumlahsiswa; i++) {
jumlah += x[i].NILAI;
}
rata = jumlah / jumlahsiswa;
cout << rata << "\n";
} else if (pilihan == 4) {
int max = x[0].NILAI, min =x[0].NILAI;
int indexMax=0,indexMin=0;
for (int i = 0; i < jumlahsiswa; i++) {
if (max > x[i].NILAI){
max = x[i].NILAI;
indexMax=i;
}
if (min < x[i].NILAI){
min = x[i].NILAI;
indexMin=i;
}
}
cout << "Siswa dengan nilai tertinggi adalah\n";
cout << " |" << setw(11) << x[indexMax].NIM << " |";
cout << setw(30) << x[indexMax].NAMA << " |";
cout << setw(5) << x[indexMax].NILAI << " |" << endl;
cout << "Siswa dengan nilai terendah adalah\n";
cout << " |" << setw(11) << x[indexMin].NIM << " |";
cout << setw(30) << x[indexMin].NAMA << " |";
cout << setw(5) << x[indexMin].NILAI << " |" << endl;
}
}
}
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int pilihan;
int A[3][3], B[3][3], X[3][3], i, j, k;
while (pilihan != 6) {
cout << endl;
cout << "-------------------------------\n";
cout << "Menu operasi matrik 3x3\n";
cout << "1. Input matrik\n";
cout << "2. Tampil matrik\n";
cout << "3. Penjumlahan matrik\n";
cout << "4. Pengurangan matrik\n";
cout << "5. Perkalian matrik\n";
cout << "6. Keluar\n";
cout << "Input pilihan ?\n";
cout << "-------------------------------";
cout << endl;
cin >> pilihan;
if (pilihan == 1) {
/******* Masukkan matriks A *******/
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
cout << "input data matrik A[" << i + 1 << "][" << j + 1 << "] : ";
cin >> A[i][j];
}
}
/******** Masukkan matriks B ********/
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
cout << "input data matrik B[" << i + 1 << "][" << j + 1 << "] : ";
cin >> B[i][j];
}
}
} else if (pilihan == 2) {
/******** Cetak isi matriks A ********/
cout << "\n matrik A\n";
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
// printf("%6i", A[i][j]);
cout << setw(4) << A[i][j];
cout << endl;
}
cout << endl;
/******** Cetak isi matriks B *******/
cout << "\n matrik B\n";
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
// printf("%6i", B[i][j]);
cout << setw(4) << B[i][j];
cout << endl;
}
} else if (pilihan == 3) {
/******** Proses penjumlahan 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 hasil perkalian matriks A dan B *******/
cout << "\n matrik Penjumlahan A+B\n";
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
cout << setw(4) << X[i][j];
cout << endl;
}
} else if (pilihan == 4) {
/******** Proses penjumlahan 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 hasil perkalian matriks A dan B *******/
cout << "\n matrik Pengurangan A-B\n";
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
cout << setw(4) << X[i][j];
cout << endl;
}
} else if (pilihan == 5) {
/******** Proses perkalian matriks A dan B ********/
/******** Cetak hasil perkalian matriks A dan B *******/
cout << "\n matrik Perkalian AxB\n";
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
X[i][j] = 0;
for (k = 0; k < 3; k++) {
X[i][j] += A[i][k] * B[k][j];
}
}
}
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
cout << setw(4) << X[i][j];
cout << endl;
}
}
}
cout << endl;
return 0;
}
package com.myapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class KirimData extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle bundle=new Bundle();
bundle.putInt("X_VALUE", 10);
bundle.putString("TITLE", "Belajar bundle");
Intent i=new Intent(this, TestActivity.class);
i.putExtras(bundle);
startActivity(i);
}
}
package com.myapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class TerimaData extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
Intent i=getIntent();
Bundle b=i.getExtras();
String title=(String) b.get("TITLE");
String xValue=b.getString("X_VALUE");
}
}
Cukup mudah kan untuk melakukan pertukaran data antar activity. Nah tetapi ini masih ada kelemahannya yaitu tidak bisa mengirimkan object yang kompleks hanya data - data primitive saja seperti boolean, String, int, double dan data primitive lainnya. Nah untuk mengatasi masalah ini ada beberapa cara. Diantaranya memakai Parcelable tetapi lumayan ribet memakai cara ini, ane tidak akan membahas mengenai Parcelable tetapi ane ingin membahas metode yang lainnya. Salah satunya adalah mengirimkannnya ke Class Application yang ada di android.package com.myapp;
import java.util.List;
import android.app.Application;
public class MainApp extends Application {
private List<String> data;
public List<String> getData() {
return data;
}
public void setData(List<String> data) {
this.data = data;
}
}
Nah untuk mengeset nilainya tinggal panggilMainApp ap=(MainApp) getApplication(); ap.setData(data);Nah sedangkan untuk mendapatkannya
MainApp ap=(MainApp) getApplication();
List data=ap.getData();
Nah simple kan passing data antar activity di android..import java.util.List;
/**
*
* @author Mr.Hands
*/
public interface Listener<E> {
public int update(E object );
public int insert(E object);
public int delete(E object);
public List<E> getData();
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@drawable/back" android:orientation="vertical">
<ImageView android:src="@drawable/header"
android:layout_width="wrap_content" android:layout_height="wrap_content">
</ImageView>
<!-- layout untuk header -->
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_marginTop="20dip" android:layout_marginLeft="20dip">
<!-- layout gambar home -->
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/home"></ImageView>
<TextView android:text="Main Menu / Generate Chart"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textColor="#000000" android:textStyle="bold"
android:textSize="17dip" android:id="@+id/title_caption"></TextView>
</LinearLayout>
<!-- layout untuk garis line -->
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="@drawable/line_gradient"
android:layout_marginTop="-15dip"></RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="@drawable/line"
android:layout_marginTop="20dip"></RelativeLayout>
<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical">
<TextView android:text="Nomor HP" android:textColor="#000000"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<EditText android:text="" android:id="@+id/TextNoHP"
android:layout_width="210dip" android:layout_height="wrap_content"></EditText>
<ImageButton android:layout_width="wrap_content"
android:id="@+id/button_add_contact" android:layout_height="wrap_content"
android:src="@drawable/add_contact"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:id="@+id/button_send" android:layout_height="wrap_content"
android:src="@drawable/sms"></ImageButton>
</LinearLayout>
<TextView android:text="Pesan" android:textColor="#000000"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="" android:id="@+id/TextPesan"
android:layout_width="fill_parent" android:minLines="4"
android:layout_height="wrap_content"></EditText>
</LinearLayout>
</ScrollView>
</LinearLayout>






