12 January 2016

Membuat Graphic pada VB .NET 2010 menggunakan Component VB 6

Langkah 1 :
Download terlebih dahulu component MSCHART.OCX (Microsoft Chart Control, versi 6.0). Dapat di download pada : http://www.ocxme.com/ocx/files/mschart_ocx.html


Langkah 2 :
Klik kanan pada salah satu bagian pada Toolbox, misalnya Common Controls dan pilih Choose Items.


Langkah 3 :
Kemudian pilih tab COM dan klik tombol Browse, carilah component MSCHART.OCX yang telah di download.


Langkah 4 :
Setelah itu contreng checkbox pada Microsoft Chart Control, versi 6.0. Kemudian klik tombol Ok, maka terlihat pada toolbox di bagian Common Controls. 


Langkah 5 :
Kemudian buatlah dengan menggunakan toolbox Microsoft Chart Control dan Combo Box, tampilan seperti berikut ini :


Toolbox
Propertie
Ketrangan
Form1
Text
GRAPHIC
AxMSChart1
Name
AxMSChart1
ComboBox1
Name
CmbPilih

Code :
Public Class FormGraphics

Private Sub CmbPilih_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles CmbPilih.SelectedIndexChanged
        With AxMSChart1
            If CmbPilih.SelectedItem = "Pie" Then
                .chartType = MSChartLib.VtChChartType.VtChChartType2dPie
            Else
                .chartType = MSChartLib.VtChChartType.VtChChartType3dBar
            End If
            .ColumnCount = 5
            .RowCount = 4
            .ShowLegend = True
            .TitleText = "LAPORAN NEM SMU 5 BESAR (2002 – 2005)"
            .Row = 1
            .RowLabel = "2002"
            .Column = 1
            .ColumnLabel = "IBUNDA"
            .Data = 85
            .Column = 2
            .ColumnLabel = "77"
            .Data = 87.5
            .Column = 3
            .ColumnLabel = "83"
            .Data = 82.75
            .Column = 4
            .ColumnLabel = "MULIA"
            .Data = 90
            .Column = 5
            .ColumnLabel = "67"
            .Data = 82
            .Row = 2
            .RowLabel = "2003"
            .Column = 1
            .Data = 88.5
            .Column = 2
            .Data = 88
            .Column = 3
            .Data = 92
            .Column = 4
            .Data = 85.5
            .Column = 5
            .Data = 81.75
            .Row = 3
            .RowLabel = 2004
            .Column = 1
            .Data = 79.5
            .Column = 2
            .Data = 80.75
            .Column = 3
            .Data = 89
            .Column = 4
            .Data = 86.75
            .Column = 5
            .Data = 85.75
            .Row = 4
            .RowLabel = 2005
            .Column = 1
            .Data = 78
            .Column = 2
            .Data = 87
            .Column = 3
            .Data = 90
            .Column = 4
            .Data = 88
            .Column = 5
            .Data = 93
        End With
    End Sub

Private Sub FormGraphics_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CmbPilih.Items.Add("Bar 3D")
        CmbPilih.Items.Add("Pie")
    End Sub
End Class

Program saat di running :

Bar 3D


Pie


07 January 2016

Membuat Link pada JTable dengan Java GUI

Maksud link pada JTable yaitu membuat suatu link dari JTable ke JTextFiled atau Palette lainya, tujuannya agar JTable lebih terlihat atraktif sehingga saat user mengklik salah satu record yang berada pada JTable secara otomatis record-record tersebut akan tampil pada JTextField masing-masing kolom.

Perhatikan gambar berikut ini :


Namun saat salah satu record, misalnya record pertama di klik maka akan tampil data-datanya pada JTextField yang berada disebelah kanan.


Setelah kita mengetahu alur kerja nya maka kita persiapkan untuk membuat programnya :

Nama
Propertie
Keterangan
jTable1
Name
jTableData
jTextField1
Name
TxtNama
jTextField2
Name
TxtAlamat
jTextField3
Name
TxtKota

Code :

package CAMPUR;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class Link_Table extends javax.swing.JFrame {
    DefaultTableModel DftTabMode;

public void LihatData(){
        setTitle("BELAJAR MENU & TABLE");
        String[] baris = {"Nama", "Alamat", "Kota"};
        //Recordnya di tarik dari array.
        DftTabMode = new DefaultTableModel(null, baris);
        jTableData.setModel(DftTabMode);
        String[][] data = {{"Kiki", "Jl. S. Parman", "Jakarta"},
            {"Diki", "Jl. Sam Ratulangi", "Bekasi"},
            {"Luli", "Jl. Casablanca 3", "Jakarta Barat"},
            {"Lili", "Jl. Casablanca 4", "Jakarta Timur"},
            {"Juli", "Jl. Casablanca 5", "Jakarta Utara"},
            {"Kili", "Jl. Casablanca 6", "Jakarta Selatan"},
            {"Bili", "Jl. Casablanca 7", "Jakarta Pusat"},
            {"Dili", "Jl. Casablanca 8", "Bandung"},
        };
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < 1; j++) {
                String[] neodata = {data[i][0], data[i][1], data[i][2]};
                DftTabMode.addRow(neodata);
            }
        }
    }
   
    int row=0;
    public void Show(){
        row = jTableData.getSelectedRow();
        TxtNama.setText(DftTabMode.getValueAt(row,0).toString());
        TxtAlamat.setText (DftTabMode.getValueAt(row,1).toString());
        TxtKota.setText (DftTabMode.getValueAt(row,2).toString());
    }

private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 
    LihatData();
}                                

private void jTableDataMouseClicked(java.awt.event.MouseEvent evt) {                                       
        try {
            if (evt.getClickCount()==1){
                Show();
                TxtNama.requestFocus();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }  
}

Selamat mencoba. Insya Allah di kesempatan lain saya akan bahas dimana recordnya di tarik dari database.

06 January 2016

Melumpuhkan SQL Injection pada Adress bar dengan .htaccess

File .htaccess adalah file konfigurasi yang disediakan oleh web server Apache, yang biasanya digunakan untuk mengubah pengaturan default dari Apache. Kita ketahui bahwa sebagian besar web hosting di internet menggunakan Apache sebagai servernya sehingga bagi para pengelola web / webmaster sedikit banyak harus belajar tentang .htaccess agar kita bisa mengubah pengaturan default dari server. File.htaccess merupakan file teks ASCII sederhana yang biasanya diletakkan dalam root direktori. File ini diharuskan dalam format ASCII dan bukan binary dan untuk file permission (atribut file) pada server hostingharus di set 644 (rw-r-r).

Hal tersebut dimaksudkan agar server dapat mengakses file .htaccess, tapi mencegah user untuk mengakses file .htaccess daribrowser mereka. File .htaccess yang diletakkan dalamroot direktori dapat digunakan untuk mengubah konfigurasi dari subdirektori-subdirektori yang ada didalamnya, sehingga dalam satu website biasanya kita cukup untuk mempunyai 1 file .htaccess saja yang diletakkan dalam root direktori.

Kode perintah dalam file .htaccess harus ditempatkan dalam satu baris, jadi apabila kita membuat file .htaccess dengan menggunakan text editor seperti notepad maka kita harus mendisable fungsi word wrap (memotong baris) terlebih dahulu.

Perhatikan konfigurasi file .htaccess

RewriteEngine on
RewriteRule ^beranda\.html$ home.php [L]
RewriteRule ^view_data-cat-(.*)-product-(.*)\.html$ dataku.php?cat=$1&product=$2 [L]
Options All –Indexes


Kemudian perhatikan juga file-file yang terdapat pada direktori bloger :


Berikutnya perhatikan tampilan web di browser :



Setelah itu, kita hubungkan ketiga hal di atas tersebut. Kita akan mulai dari konfigurasi file .htaccess :

RewriteRule ^beranda\.html$ home.php [L]
Maksudnya ditulis atau dicetak pada virtual file yaitu beranda.html, sedangkan file realnya yaitu home.php tanpa melibatkan parameter.

RewriteRule ^view_data-cat-(.*)-product-(.*)\.html$ dataku.php?cat=$1&product=$2 [L]
Maksudnya ditulis atau dicetak pada virtual file yaitu view_data-cat-kategori-product-produk.html, sedangkan file realnya yaitu dataku.php tanpa melibatkan parameter.

Rumus membuat konfigurasi url pada .htaccess :
Tanpa parameter
RewriteRule ^virtual file\.html$ real file [L]

Dengan parameter
RewriteRule ^virtual file-parameter-(.*)\.html$ real file?parameter=$1 [L]
Keterangan :
Jumlah parameter di sesuaikan dengan parameter yang di tetapkan, misalnya parameter=$1 berarti itu merupakan parameter.

Isi dari file-file realnya seperti berikut ini :

Index.php
<?php
header("location:beranda.html");
?>

home.php
<h1 align=center>SELAMAT DATANG DI BERANDA KAMI</h1><hr>
<a href="view_data-cat-komputer-product-laptop.html">Lihat Produk Kami</a>

dataku.html
<a href="beranda.html">Kembali ke Beranda</a><hr>
Kategori : <?php echo strtoupper($_GET['cat'])." dan Product : ".strtoupper($_GET['product']); ?>

Kesimpulan :

Saat link ditetapkan maka url nya di tujukan ke file virtual . Contoh : 
beranda.html  ditujukan ke  home.php

view_data-cat-komputer-product-laptop.html ditujukan ke  dataku.php

Semoga bermanfaat.

Membuat program mengenal hewan dan suaranya dengan Android

Program ini menggunakan spinner untuk navigasinya, jadi saat user memilih salah satu hewan secara pull down maka otomatis akan keluar hewan berikut nama dan suarnya. Program ini sangat tepat untuk membantu anak dalam menganal binatang dan suaranya.

Cara kerja :

1. Buatlah project baru dan beri nama “AplikasiDuniaSatwa”. Klik File > New Project.


2. Klik tombol Next dan tetapkan device yang akan digunakan.


3. Klik Next dan pilih Blank Activity.


4. Kemudian Klik Next dan pada Activity Name : MainListingImage, sedangkan Layout Name : activity_main_listing_image. Akhiri dengan mengklik tombol Finish.


5. Berikutnya yaitu menetapkan image-image binatang yang akan kita gunakan pada res > drawable. Dan masih pada res, buat juga direktori raw dan tetapkan suara-suara dari image-image binatang yan bersangkutan. Strukturnya seperti berikut ini :


6. Sisipkan coding pada activity_main_listing_image.xml yang berada pada res > layout :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"  tools:context=".MainActivity"
>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Choose Animal"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="15dp" android:layout_marginRight="10dp"
/>
    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinnerAnnimal"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView"
        android:layout_toEndOf="@+id/textView"
/>
   <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageViewAnimal"
        android:layout_below="@+id/spinnerAnnimal"
        android:layout_centerHorizontal="true"
        android:src="@mipmap/ic_launcher"
/>
</RelativeLayout>

7. Kemudian sisipkan coding pada MainListingImage.java :

package com.example.mosuka.aplikasiduniasatawa;

import android.app.Activity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;

public class MainListingImage extends Activity implements AdapterView.OnItemSelectedListener {
private static final String isPlaying = "Media is Playing";
private MediaPlayer player;
ImageView imageViewAnimal;
String[] array_animals = {"bird", "chicken", "tiger"};
String[] array__sound_animals = {"bird", "chicken", "tiger"};
int[] array_drawable_animals={R.drawable.bird, R.drawable.chicken, R.drawable.tiger};
int[] array_raw_animals={R.raw.bird, R.raw.chicken, R.raw.tiger};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_listing_image);
imageViewAnimal = (ImageView) findViewById(R.id.imageViewAnimal);
Spinner spinnerAnimal = (Spinner)findViewById(R.id.spinnerAnnimal);
ArrayAdapter<String> spinnerCountAnimaldapter = new ArrayAdapter<String>(this, andoid.R.layout.simple_spinner_dropdown_item, array_animals);
spinnerAnimal.setAdapter(spinnerCountAnimaldapter);
spinnerAnimal.setOnItemSelectedListener(this);
}

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
   Toast.makeText(this, "You Choose: "+array_animals[position], Toast.LENGTH_LONG).show();
   imageViewAnimal.setImageResource(array_drawable_animals[position]);
        try{
            if (player.isPlaying()) {
                player.stop();
                player.release();
            }

        }catch(Exception e){
            Toast.makeText(this, " Masuk Exception", Toast.LENGTH_LONG).show();
        }

        player = MediaPlayer.create(this, array_raw_animals[position]);
        player.setLooping(false); // Set looping
        player.start();
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
}

8. Untuk menjalankan hasil dapat dilakukan dengan klik mouse kanan tepat pada MainListingImage.java

9. Tentukan emulator atau device yang akan di gunakan :


Hasil akhir :

05 January 2016

Membuat Pivot Table pada MySQL

Pivot table di buat untuk memudahkan dalam menganalisa suatu laporan sehingga akan mempercepat dalam pengambilan keputusan. Contoh kasus :

Table kredit dengan tampilan record seperti di bawah ini :


Jika table diatas dijadikan laporan maka sulit bagi manajer atau pengambil keputusan dalam menganalisa, sudah berapa pinjaman yang dilakukan oleh setiap karyawan karena bercampur menjadi satu. Dengan demikian di butuhkan pivot table untuk mengelompokan berdasarkan nik dan pinjaman ke-n nya. Harusnya tampilan yang tepat yang di gunakan untuk mempercepat proses analisa data adalah sebagai berikut :


Pasti akan banyak pertanyaan ? mengapa sejak awal tidak di susun seperti gambar yang ke dua saat melakukan pembentukan table. Jawabanya, jika sejak awal sudah di set seperti gambar kedua :

  1. Jika suatu saat perusahaan mengeluarkan kebijakan untuk memberikan pinjaman sampai ke 6, maka kita harus menambahkan 3 field atau atribut lagi. Ini akan tidak efektif jika perusahaan terus berubah-ubah dalam mengelurakan kebijakan.
  2. Akan terdapat ke kurang efisianan pada field-field tertentu, misalnya : karyawan umumnya hanya melakukan peminjaman hanya sampai 2, maka filed ke 3 akan banyak bernilai 0.
Setelah mengetahui alasannya, maka kita akan melakukan pivot table dari table pertama menjadi seperti table ke 2.

Cara kerjanya :

1. Buatlah struktur table kredit seperti berikut ini dan kemudian sisipkan recordnya sesuai dengan yang tertera pada gambar pertama.


2. Kemudian sisipkan pada tab SQL terapkan perintah SQL seperti berikut ini :

select nik,sum(jumlah*(1-abs(sign(pinjam_ke-1)))) as pinjam1,sum(jumlah*(1-abs(sign(pinjam_ke-2)))) as pinjam2, sum(jumlah*(1-abs(sign(pinjam_ke-3)))) as pinjam3 from kredit group by nik

Keterangan :

sign(pinjam_ke-n) => menetapkan nilai hanya untuk yang pinjaman_ke n saja sesuai dengan yang terdpata pada table pinjaman_ke. Misalnya, jika ingin menetapkan pinjaman yang ke 4 maka sign(pinjam_ke-4). Tanda “-“ setelah pinjam_ke bukan bentuk pengurangan melainkan penetapan.

abs(nilai) => berfungsi untuk menetapkan nilai absolut dari nilai yang bersangkutan.

sum() => fungsi agregat yang berfungsi untuk menghitung total nilai keseluruhan.

group by atribut => mengelompokan record berdasarkan atributnya. Misalnya : group by nik maksudnya di kelompokan berdasarkan nik sehingga tidak keluar nik dengan nilai yanga sama.

Semoga bermanfaat. Sukses selalu !