Minggu, 04 Desember 2011

Kritik, Pesan dan Kesan

Kesan dan Pesan untuk Mata Kuliah Pemograman Visual
Kesan  : Menarik
Pesan   : Buat kedepan mata kuliah ini setidaknya memiliki materi yang jelas yang mana dipelajari....

Kesan, Pesan dan Kritikan untuk Perkuliahan di Poltek.
    Selama di perkuliahan dipoltek saya merasa nyaman sampai sekarang ini,,,saya merasa senang dengan kurikulum sekarang karna lebih jelas sesuai jurusan dari pada dahulu dimana mata kuliah yang tak seharusnya ada malah dipelajari yang tak sesuai dengan jurusan...
    Dengan kurikulum sekarang saya masih bertanya mengapa cousware ditiadakan??. Menurut saya kalau ditiadakan saya sebagai mahasiswa tidak memiliki standar kompetensi yang harus saya kuasai maksud minimal mahasiswa harus menguasai satu bagian contohnya.
    Selanjutnya saya bertanya mengapa absensi cuma ada hadir sama alpa, kalau saya mengikuti seminar absensi saya masuk bagian mana., hadir kah atau alpa.??. lalu dengan berlaku RF ID setidaknya perawatan untuk alat tersebut di tingkatkan karena saya pernah mengalami dimana saya di satu mata kuliah yang saya hadir terus malah jadi 60 %.
    Masalah fasilitas kampus menurut saya masih kurang contohnya saja labor untuk pelajaran SQL disana terdapat kabel LAN tapi tidak berfungsi, jadi kabel LAN disana apakah untuk pajangan saja,,,??? atau untuk menunjang pelajaran..???., lalu masalah WIFI kenapa dari dulu saya masuk kesini tidak ada peningkatan maksudnya alias lelet, setidaknya dari tahun ketahun ditingkatkan jangan ditunggu dikritik dulu baru diubah,.jika begini terus politeknik mungkin untuk mengejar visi cuma mimpi.

Sabtu, 03 Desember 2011

Kajian 5 : Netbeans ke database










Kajian 1 : Pengenalan java basic, Java swing dan awt serta editor eclipse dan netbeans

1. Pengenalan Java.

Sejarah Java :
   Java bermula dari penelitian perusahaan sun Microsystems dengan sandi Green tahun 1991. Terdapat predisi bahwa microprosesor akan digunakan luas pada peralatan elektronik. Karna hal tersebut maka dibutuhkan sebuah bahasa pemograman yang dapat berjalan disemua microprosesor
   Tercipta sebuah pemograman baru , oleh James Gosling, yaitu salah satu orang yang berperan besar dalam proyek tersebut program ini diberi nama Oak, karna sudah ada bahasa pemograman yang nama Oak maka diganti denga Java 

Pemograman Java.
  Dilakukan dengan tiga tahap :
  - Menulis programan java.
  - Melakukan kompilasi programan java.
  - Menjalankan programan java.

Keunggulan Java.
  - Relatif mudah dipelajari.
  - Mudah dikembangkan 
  - Plaftrom Independent

2. Java Swing dan Awt.
    Merupakan package yang berguna untuk membangun aplikasi dengan Grapical User Interface ( GUI ). Package.javax.swing.* berisi class - class yang dapat dipakai untuk membangun tampilan aplikasi serta interaksi antara pengguna dengan program.
      Secara asitektur , Swing dibangun di atas arsitektur Abstract Windows Toolkit ( AWT ). Merupakan package GUI yang sudah lebih kembangkan, AWT memiliki banya kekurangan sehingga diperbaiki dengan adanya Swing. 






Kajian 4 : Event Listener ( action listener, mouse listener, mouse motion listener )


Action Listener : Terjadi ketika komponen seperti tombol diklik atau ditekan dengan tombol enter .
Mouse Listener : Terjadi ketika user mengirim perintah dengan mouse.
Mouse Motion Listener : Terjadi ketika user mengirim perintah dengan mouse saat mendrag atau move

Kajian 3 : Layout Manager ( border layout, flow layout, card layout, box layout, grid layout, )

1.     Border Layout     :  Membagi area menjadi lima bagian utara, selatan, barat, timur, tengah
2.    FlowLayout         :  Tata letak diatur dari kiri kanan secara default panel diset dengan layout ini
3.    GridLayout          :  Membagi letak menjadi grid berdasarkan kolom dan baris
4.    CardLayout         :  Komponen diletakkan seperti susunan kartu yang ditumpuk. Dalam satu waktu hanya ada satu kartu yang ditampikan.
5.     BoxLayout          Komponen dapat diletakkan secara horizontal dan vertikal

Kajian 2 : komponen swing ( Container, Panel, Dialog )

Container : Merupakan komponen khusus yang berguna untuk menampung komponen GUI lainya.
      Jenis - jenis container  :
      - Panel
      - Split Pane
      - Toll Bar
      - Internal Frame
      - Tabbed Pane
      - Scroll Pane
      - Dekstop Pane
      - Layered Pane

Panel  : Merupakan jenis dari swing container
Dialog : Merupakan jenis dari swing windows

Aplikasi Google Sederhana Menggunakan Java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

/**
 *
 * @author Mohhax
 */
public class My_Google extends JFrame{
    public static void main(String[]args){
        final JFrame call = new JFrame("Google");
        call.setLocationRelativeTo(null);
        call.setLayout(new FlowLayout());
        call.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        call.setSize(620,350);
        call.setResizable(false);

        JLabel google = new JLabel(new ImageIcon("src/images/Google.png"));
        final JTextField text = new JTextField(40);
        JButton search = new JButton("Search",new ImageIcon("src/images/search_.png"));
        JButton web = new JButton("Web");
        JButton images = new JButton("Images");
        JButton iklan = new JButton("Iklan");
        final JLabel message = new JLabel("Tidak ada text yang tertulis!");
       
        search.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                if (text.getText().equals("")) {
                    JOptionPane.showMessageDialog(call, message, "Message", 1);
                    call.add(message);
                }else{
                    JFrame show_search = new JFrame("Search");
                    show_search.setSize(600,450);
                    show_search.setLocationRelativeTo(null);
                    final JTextPane textPane = new JTextPane();
                    final JScrollPane scrollPane = new JScrollPane();

                    show_search.add(scrollPane);
                    show_search.setVisible(true);
                }
            }

            private void connection_call(final JTextField text, final JTextPane textPane) throws MalformedURLException, IOException {
                try {
                    URL url = new URL(text.getText());
                    URLConnection con = url.openConnection();
                    InputStream is = con.getInputStream();
                    ByteArrayOutputStream os = new ByteArrayOutputStream();

                    byte[] b = new byte[10];
                    int len;
                    while ((len = is.read(b, 0, b.length)) != -1){
                        os.write(b, 0, len);
                    }

                    textPane.setText(new String(os.toByteArray()));
                } catch(MalformedURLException e){
                    JLabel message2 = new JLabel("Salah Tulis!");
                    JOptionPane.showMessageDialog(call, message2, "Message", 1);
                    call.add(message2);
                } catch(IOException e){
                    JLabel message3 = new JLabel("Salah Tulis!");
                    JOptionPane.showMessageDialog(call, message3, "Message", 0);
                    call.add(message3);
                }
            }
        });

        call.add(google);
        call.add(text);
        call.add(search);
        call.add(web);
        call.add(images);
        call.add(iklan);

        call.setVisible(true);
    }
}

Source Code Menu di Frame

import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class tes2 {

    public static void main (String [] agrs)    {
       
        JFrame f = new JFrame("frame");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setSize(300, 300);
        f.setLayout(new FlowLayout ());
        f.setVisible(true);
       
        JMenuBar mb = new JMenuBar();
        f.setJMenuBar(mb);
       
        JMenu file = new JMenu ("File");
        mb.add(file);
       
        JMenuItem newfile = new JMenuItem ("New file");
        file.add(newfile);
        JMenuItem find = new JMenuItem ("Find");
        file.add(find);
        JMenuItem exit = new JMenuItem ("exit");
        file.add(exit);
       
        JMenu help = new JMenu ("help");
        mb.add(help);
        JMenuItem about = new JMenu ("about");
        help.add(about);
        JMenuItem readme = new JMenuItem ("readme");
        about.add(readme);
       
        JMenu search = new JMenu ("search");
        mb.add(search);
        f.setVisible(true);
    }
}

Contoh Soure Code Login di Java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
   
public class login extends JFrame implements ActionListener {
    private JLabel label1, label2;
        private JTextField txtUser;
        private JPasswordField pwdPass;
        private JButton btnLogin, btnExit, btnreset;
   
      
       
        public login() {
            super ("Login...");
   
            Container container = getContentPane();
            container.setLayout(new FlowLayout());
   
            label1 = new JLabel ("Username : ");
            label2 = new JLabel ("Password : ");
   
            txtUser = new JTextField (20);
            txtUser.setToolTipText("Input Username");
            pwdPass = new JPasswordField(20);
   
            btnLogin = new JButton ("Login");
            btnLogin.addActionListener(this);
           
            btnreset = new JButton ("reset");
            btnreset.addActionListener(this);
           
            btnExit = new JButton ("Exit");

            btnExit.addActionListener(this);
   
            container.add(label1);
            container.add(txtUser);
            container.add(label2);
            container.add(pwdPass);
            container.add(btnLogin);
            container.add(btnreset);
            container.add(btnExit);
   
            setSize (300,200);
            setVisible (true);
        }
   
        public static void main (String args[]) {
            login test = new login();
            test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
   
        private String user = "", pass = "";
        public void actionPerformed (ActionEvent e) {
            if (e.getSource() == btnLogin) {
                user = txtUser.getText();
                pass = pwdPass.getText();
                if (user.equals("test") && pass.equals("test")) ;                   
                 JOptionPane.showMessageDialog(null, "Login sukses");
                    class exitaction implements ActionListener{
                        public void actionPerformed (ActionEvent e) {
                            System.exit(0);
                        }
                           
                        }
                       
                        exit.addActionListener(new exitaction());
                       
                        }
             else {
                    JOptionPane.showMessageDialog(null, "Username and password salah");
                    txtUser.setText("");
                    pwdPass.setText("");
                    txtUser.requestFocus(true);
                    }
            } else if (e.getSource() == btnExit){
                JOptionPane.showMessageDialog(null,"Terimakasih telah menggunakan program ini");
                System.exit(0);
            }
        }
}



Contoh event di java

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;


public class event extends JFrame implements ActionListener  {

    private JLabel label1;
    private JButton button1;
    private JFrame frame1;
   
public event(){
    frame1 = new JFrame();
    frame1.setLayout(new FlowLayout());
    frame1.setSize(250, 250);
   
    button1 = new JButton("click");
    frame1.add(button1);
    button1.addActionListener(this);
    frame1.setVisible(true);
}

public static void main(String [] agrs){
    event e = new event();
    e.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
}
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "sukses");   
}
}
 jika diklik tombol click akan ada aksi yang akan muncul seperti gambar dibawah ini.

Source code frame di java

public class frame {

    public static void main (String [] agrs)    {
       
        JFrame f = new JFrame("frame");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setSize(300, 300);
        f.setLayout(new FlowLayout ());
        f.setVisible(true);
                    
          }
}

Senin, 03 Januari 2011

ALGORITMA PENCARIAN

Dalam ilmu komputer, sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan komputer adalah algoritma pencarian. Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed menggunakan metode yang sederhana dan sangat intuitif pada ruang pencarian, sedangkan algoritma pencarian informed menggunakan heuristik untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian.
1.      Pencarian uninformed
Sebuah algoritma pencarian uninformed adalah algoritma yang tidak mempertimbangkan sifat alami dari permasalahan. Oleh karena itu algoritma tersebut dapat diimplementasikan secara umum, sehingga dengan implementasi yang sama dapat digunakan pada lingkup permasalahan yang luas, hal ini berkat abstraksi. Kekurangannya adalah sebagian besar ruang pencarian adalah sangat besar, dan sebuah pencarian uninformed (khususnya untuk pohon) membutuhkan banyak waktu walaupun hanya untuk contoh yang kecil. Sehingga untuk mempercepat proses, kadang-kadang hanya pencarian informed yang dapat melakukannya.

2.      Pencarian List

Algoritma pencarian list mungkin adalah algoritma pencarian paling dasar. Tujuannya adalah mencari sebuah elemen dari sebuah himpunan dengan suatu kunci (kemungkinan memuat informasi yang terkait dengan kunci). Oleh karena hal ini adalah masalah yang lazim dalam ilmu komputer, kompleksitas komputasi algoritma-algoritma tersebuh telah dipelajri dengan baik. Algoritma paling sederhana adalah pencarian linear, yang secara sederhana melihat setiap elemen dari list secara berurutan. Waktu pengerjaan algoritma ini adalah O(n), dimana n adalah banyaknya elemen dalam list, dan dapat digunakan langsung pada list yang belum diproses. Algoritma pencarian list yang lebih canggih adalah pencarian biner; waktu pengerjaannya adalah O(log n). Waktu pengerjaannya jauh lebih baik daripada pencarian linear untuk list yang memiliki data banyak, tetapi sebelum dilakukan pencarian list terlebih dahulu harus terurut (lihat algoritma pengurutan) dan juga harus dapat diakses secara acak (pengaksesan acak). Pencarian interpolasi adalah lebih baik dari pencarian biner untuk list terurut yang sangat besar dan terdistribusi merata. Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut.Tabel hash juga digunakan untuk pencarian list, hanya memerlukan waktu yang konstan untuk mencari pada kasus rata-rata, tetapi memiliki overhead ruang yang lebih dan pada kasus terburuk waktu pengerjaannya adalah O(n). Pencarian lain yang berdasarkan struktur data khusus, menggunakan pohon pencarian biner yang self-balancing (self-balancing binary search tree) dan membutuhkan waktu pencarian O(log n); hal ini dapat dipandang sebagai pengembangan dari ide utama pencarian biner untuk memungkinkan penyisipan dan penghapusan yang cepat. Lihat array asosiatif untuk diskusi lanjut dari struktur data pencarian list.
Sebagian besar algoritma pencarian, seperti pencarian linear, pencarian biner dan pohon pencarian biner yang self-balancing, dapat dikembangkan dengan sedikit tambahan costuntuk menemukan semua nilai yang kurang dari atau lebih dari sebuah kunci, operasi ini disebut pencarian jangkauan (range search). Pengecualin ada pada tabel hash, yang tidak dapat melakukan pencarian tersebut secara efisien.

3.      Pencarian Graf

Banyak permasalahan dalam teori graf dapat dipecahkan dengan memanfaatkan algoritma pencarian, seperti algoritma Dijkstra, algoritma Kruskal's, algoritma tetangga terdekat, dan algoritma Prim.-first|pencarian iterative-deepening]], pencarian berbatas kedalaman, pencarian dwiarah dan pencarian uniform-cost.

4.      Pencarian Pohon

Algoritma pencarian pohon adalah jantung dari teknik-teknik pencarian. Algoritma tersebut mencari node dari pohon, terlepas apakah pohon tersebut eksplisit atau implisit (dibangkitkan saat pengerjaan). Prinsip dasarnya adalah sebuah node diambil dari sebuah struktur data, suksesornya diperiksa dan ditambahkan pada struktur data. Dengan memanipulasi struktur data, pohon dieksplorasi dalam urutan yang berbeda-beda, dieksplore dari satu tingkat ke tingkat berikutnya (pencarian Breadth-first) atau mengunjungi node pucuk terlebih dahulu kemudian lacak balik/backtracking (pencarian Depth-first). Contoh lain dari pencarian pohon antara lain pencarian iterative-deepening, pencarian berbatas kedalaman, pencarian dwiarah dan pencarian uniform-cost.

5.      Pencarian Informed

Pada pencarian informed, sebuah heuristik yang khusus untuk permasalahan tertentu digunakan sebagai pedoman. Sebuah heuristik yang baik dapat membuat sebuah pencarian informeduninformed. bekerja secara dramatis melebihi pencarian
Terdapat beberapa algoritma pencarian list informed yang dikenali. Salah satu anggota dari algoritma tersebut adalah sebuah hash tabel dengan sebuah fungsi hashing, yaitu algoritma dengan heuristik yang berdasarkan pada permasalahan yang dihadapi. Sebagian besar algoritma informed pencarian Breadth-first, dan A*. Sebagaimana algoritma uninformed, algoritma informed dapat dikembangkan untuk bekerja pada graf. adalah mengeksplore pohon. Termasuk di dalamnya adalah