Rhara blog's
Tampilkan postingan dengan label program. Tampilkan semua postingan
Tampilkan postingan dengan label program. Tampilkan semua postingan

Kamis, 02 Agustus 2012

MATERI PJJ


MENGGUNAKAN SWING  DENGAN NETBEANS 6.7.1

Komponen Swing
Ò  Swing   toolkit   menyediakan komponen   untuk  membangun aplikasi GUI desktop. Swing toolkit juga menyediakan class-class   untuk  menangani   interaksi   antara   aplikasi  dan   user  menggunakan   standard   input   seperti   keyboard   dan   mouse.
Ò  Komponen-komponen yang disediakan swing mencakup semua GUI toolkit yang biasa digunakan dalam apilasi desktop, seperti : JTabel, JList,   JTree,   JButton,   JLabel   dan   masih   banyak   komponen - komponen lainnya yang sudah siap pakai.
Bekerja dengan JLabel, JTextField dan Jbutton
Ò  Label, textfield dan tombol adalah komponen-komponen dasar yang selalu ada dalam setiap aplikasi berbasis desktop. Ketiga komponen ini mempunyai fungsi yang sangat sederhana, textfield menyimpan data   berbentuk   text   (string)   yang   relatif   pendek,   label   banyak digunakan   untuk   memberikan   keterangan   penjelas   terhadap komponen lain dan tombol digunakan user untuk menjalankan satu instruksi tertentu
Ò  Berikut   ini   adalah   contoh   aplikasi   sederhana   yang   melakukan penjumlahan dua buah bilangan

PEMBUATAN KALKULATOR SEDERHANA
MENGGUNAKAN NETBEANS 6.7.1
By RAVITA EKA DEWI

Berikut adalah langkah2 untuk membuat program Kalkulator dengan menggunakan editor Netbeans 6.7.1. Apabila dalam penjelasan ada yang tidak jelas, silakan email ke rharaecha@gmail.com

Bagian-1 : User Interface.
1.       Buka NetBeans, buat Project baru(New Project) atau buka Project yang sudah ada.
2.       Buat file JFrame Form baru, beri nama Kalkulator.
3.       Set Layout JFrame : Border Layout
4.       Pasang 2 buah Panel ke JFrame, Panel ke-1(jPanel1) pada posisi North & yg ke-2(jPanel2) pada posisi Center. 
5.       Set Layout jPanel1 & jPanel2 : Grid Layout
6.       Pada Inspector, klik jPanel1. Pada properties-nya, ubah nilai PreferedSize menjadi [xxx,75].
7.       Pada Inspector, klik GridLayout yang berada di bawah jPanel2. Pada properties-nya ubah nilai:
a.       Horizontal Gap : 10
b.      Rows : 4
c.       Vertical Gap : 10
8.       Pasang Text Field ke jPanel1. (jTextField1)
9.       Ubah nama variabel jTextField1 menjadi tfLayar.
10.   Pada properties tfLayar ubah nilai :
a.       Editable : false
b.      Font : sesuai selera (contoh : Courier New 24 Bold)
c.       Horizontal Alignment : Right
d.      Text : 0 (Nol)
e.      Background : [255,255,255]
11.   Pasang Button ke jPanel2. (jButton1) Kemudian sesuaikan jenis & ukuran Font sesuai selera.
12.   Ubah nama variabel jButton1 menjadi btn1.
13.   Pada properties btn1 ubah nilai :
a.       Font : sesuai selera (contoh : Tahoma 24 Bold)
b.      Text : 1
14.   Isi btn1 dengan “1” (Satu).
15.   Klik btn1, kemudian copy (Ctrl + C), Kemudian tanpa meng-klik apapun langsung paste (Ctrl + V), sampai button yang ada di jPanel2 ada sebanyak 20 button. Sehingga menjadi seperti gambar 1.
       Pada properties masing2 Button, Ubah niai Text sehingga menjadi seperti gambar 2.
GAMBAR 1
GAMBAR 2
 Bagian-2 : Modifikasi Source code.
1.       Buat variabel2 baru, letakkan sebelum fungsi public Kalkulator(). Seperti berikut :
private boolean titik = true, angkaBaru = true;
private double tampung = 0;
private int operator = 0;
2.       Buat Fungsi addNumber dan hitung, letakkan setelah fungsi public Kalkulator(). Seperti berikut :
private void addNumber (String Number) {
        String layar = tf_layar.getText();
        double nilai = Double.parseDouble(layar);
        if(angkaBaru) {tf_layar.setText(Number); angkaBaru = false; }
        else tf_layar.setText(layar + Number);
    }
    private void hitung(char oper){
        String layar = tf_layar.getText();
        double nilai = Double.parseDouble(layar);
         if(operator < 1) {
            tampung = nilai;
   }     else if (!angkaBaru) {
            switch(operator){
            case 1: tampung *= nilai; break;
            case 2: tampung /= nilai; break;
            case 3: tampung += nilai; break;
            case 4: tampung -= nilai; break;
            case 5: tampung %= nilai; break;
                            }
                              }
   angkaBaru = true; titik = true;
   String tmp = String.valueOf(tampung);
   if(tmp.endsWith(".0"))
      tmp = tmp.substring(0,tmp.length()-2);
   tf_layar.setText(tmp);
        System.out.println(tampung);
   if(oper=='='){ operator = 0; tampung = 0; return; }
   operator = (oper=='x'?1:oper=='/'?2:oper=='+'?3:oper=='-'?4:5);
3.       Beri Event pada Button yang mempunyai Text “1”, pada contoh nama variabelnya : btn11. Klik kanan, plih Event → Action → actionPerformed.  Atau  dengan  cara  double  klik  pada  tampilan  Buttonnya. Kemudian  ketikkan  perintah berikut :
addNumber(btn11.getText());
4.       Lakukan langkah nomor 3 untuk Button yang mempunyai Text “2” – “9”. Ganti btn11 dengan nama variabel masing2
Button. Misal : “5” (btn7) → addNumber(btn7.getText());
5.       Beri Event pada Button yg mempunyai Text “0” & “00”. Pada contoh nama variabelnya : btn16 & btn18. Kemudian kettikkan perintah berikut :
a.    “0” (btn16)
if(!angkaBaru) addNumber(btn16.getText());
else if(operator < 1) tfLayar.setText("0");
b.    “00” (btn18)
if(!angkaBaru) addNumber(btn18.getText());
else if(operator < 1) tfLayar.setText("0");
6.       Beri Event pada Button yg mempunyai Text “.” (titik). Pada contoh nama variabelnya :  btn17. Kemudian kettikkan perintah berikut :
if(titik){
            titik = false;
        if(Double.parseDouble(tf_layar.getText()) == 0 || !angkaBaru)
            tf_layar.setText(tf_layar.getText()+".");
        else if(angkaBaru) tf_layar.setText("0.");
            angkaBaru = false;
7.       Beri  Event  pada  Button  yg  mempunyai  Text  “<”.  Pada  contoh  nama  variabelnya  :  btn20.  Kemudian  kettikkan perintah berikut :
String layar = tf_layar.getText();
            double nilai = Double.parseDouble(layar);
            if(nilai != 0){
                if(layar.length() == 1) {layar = "0"; angkaBaru = true;}
                else {
                    if(layar.charAt(layar.length() - 1) == '.') titik = true;
                    layar = layar.substring(0, layar.length()-1);
                     }
           } else if(!titik) {
       if(layar.charAt(layar.length() - 1) == '.') {
       titik = true; angkaBaru = true;
       }
   layar = layar.substring(0, layar.length()-1);
}
tf_layar.setText(layar);
8.       Beri Event pada Button yg mempunyai Text “C” dan “AC”. Pada contoh nama vaiabelnya :  btn4 &  btn5. Kemudian
ketikkan perintah berikut :
a.       “C” (btn4) → tfLayar.setText("0"); angkaBaru = true; titik = true;
b.      “AC” (btn5) → btn4ActionPerformed(evt); tampung = 0; operator = 0;
9.       Beri Event pada Button yg mempunyai Text “x”, “/”, “+”, “-” dan “=”. Pada contoh nama vaiabelnya :  btn9, btn10, btn14, btn15 & btn19. Kemudian ketikkan perintah berikut :
hitung('x');

10.   Selesai. Running... 





Konfigurasi CodeIgniter

Setelah browsing - browsing... dan mengerjakan tugas terlambat... akhirnya bisa meng-upload... maaf pak terlambat... berikut adalah cara Konfigurasi CodeIgniter tapi yang salah lakukan masih belum berhasil dan tidak saya tidak tahu apa yang salah..

  1. Masuk ke folder  C:\xampp\htdocs\d4b6\aplication\controller kemudian copy file welcome.php dan rename menjadi news.php
  2. Buka file news.php yang dibuat tadi, kemudian pada bagian ‘public function index’ dimasukkan kode     $this->load->view('view_header');                                         $this->load->view('view_news_show',$data)                                                     ; $this->load->view('view_footer');
  3. Masuk ke folder C:\xampp\htdocs\d4b6\aplication\views, buat file                                “View_footer.php”  => isi dengan  FOOTER                                                                                  “View_header.php” => isi dengan  HEADER                                                                         “View_news_show.php” => isi dengan  NEWS
  4. Buka browser dan masuk ke alamat http://localhost/d4b6  dan hasilnya sebagai berikut. Hasilnya masih eror padahal untuk sintax sudah sesuai prosedur 
  5. Buka  file news.php kemudian ketikkan kode     $data = array ('title'=>'Test Title', 'heading'=>'Test Heading','message'=>'Test Message'); Yang diletakkan diatas kode $this->load->view('view_header');
  6.  Buka file view_news_show.php kenudian ganti isinya dengan kode berikut ini  
  7. Buat tabel news pada database db_d4b6 dengan perintah berikut ini  
  8. Buat file ModelNews.php di folder Models. Kemudian isikan kode berikut ini  
  9. Buka file C:\xampp\htdocs\d4b6\config\autoload.php, kode $autoload['model'] = array(); dengan $autoload['model'] = array('ModelNews');
  10. Buka file  C:\xampp\htdocs\d4b6\aplication\controller\news.php kemudian tulis kode berikut didalam function show                                                                                                         
  11. Kemudian masuk ke folder  views, dan buat file view_show_page.php dan ketik kode berikut ini

Senin, 30 Juli 2012

PHP, CodeIgniter, dan .htaccess

Setelah browsing-browsing akhirnya aku sedikit mengerti tentang perkuliahan tadi siang.. kurang lebih seperti berikut penjelasam dari yang aku paham i...

PHP
adalah sebuah bahasa pemograman yang berjalan dalam sebuah web-server (server side). PHP ini biasa digunakan sebagai bahasa pemrograman WEB yang berbasis WEB Dinamis bukan WEB Statis.

CodeIgniter
adalah salah satu framework handal berbasis PHP. Selain itu, kesederhanaan dan kerampingannya membuat Codeigniter menjadi framework yang paling mudah dipelajari dan tercepat aksesnya dibandingkan framework lainnya.

.htaccess
adalah file yang dapat berisi perintah-perintah untuk webserver Apache. Ditaruh di sebuah direktori di bawah document root website dan akan perintah-perintah yang di dalamnya akan berefek pada file-file maupun subdirektori di bawah direktori tersebut.


Semoga para pembaca senang membacanya........
Salam
-Ravita-

Sabtu, 19 Juni 2010

Pengenalan Trigger, Function, Procedure dan View pada MYSQL

Berikut adalah dasar-dasar trigger, function, procedure serta view yang bisa diimplementasikan pada MYSQL 5 keatas. Dengan menggunakan trigger, function, procedure serta view, pemanfaatan MYSQL akan lebih bermanfaat. Contohnya : kita bisa membuat urutan langkah-langkah tertentu setelah suatu even dilakukan (ex: insert, update, delete). Tutorial ini ditujukan bagi yang belum mengenal trigger, function, procedure serta view sama sekali. Bagi yang sudah bisa, artikel ini boleh dan harus diabaikan

Procedure dan Function

Syntax Umum

procedure

Syntak untuk membuat procedure dalam MySQL adalah sebagai berikut.

CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body

Function

CREATE
    [DEFINER = { user | CURRENT_USER }]
    FUNCTION sp_name ([func_parameter[,...]])
    RETURNS type
    [characteristic ...] routine_body

Keterangan

1. proc_parameter (hanya pada procedure):

    [ IN | OUT | INOUT ] param_name type
  • IN parameter dilewatkan ke dalam procedure tetapi modifikasi nilai dari parameter ini tidak kelihatan setelah procedure tersebut dipanggil.
  • Out parameter merupakan parameter yang dilewatkan dari dalam procedure ke pemanggil procedure tersebut. Nilai inisialisasi saat memanggil adalah null dan hasil parameter akan kelihatan setelah procedure dipanggil.
  • INOUT parameter diinisilaisai oleh pemanggil procedure, kemudian hasil modifikasinya tersebut akan kelihatan setelah procedure tersebut dipanggil.

2. characteristic

    LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }
  | COMMENT 'string'

3. routine_body:

Valid SQL procedure statement

Routine body berisi syntax-syntax sql yang valid, seperti insert atau select. Bisa juga berisi compound. Compount diapit oleh begin… end. Syntax dari compound system adalah sebagai berikut.

[begin_label:] BEGIN
    [statement_list]
END [end_label]

Compound ini bisa diisi dengan label. Begin label dan end label harus sama. Di dalam compound juga bisa berisi deklarai variabel, looping atau kontrol program lainnya. Setiap Function harus punya return value untuk mengembalikan nilai yang dihasilkan

Contoh Procedure dan Function MySQL

Berikut adalah contoh penggunaan procedure. Pertama kita buat terlebih dahulu database dengan nama adakara. Kemudian silakan buat table berikut dengan isinya. Berikut ini adalah hasil dumping dari database adakara.

CREATE TABLE `siswa` (
  `NIS` varchar(20) collate latin1_general_ci NOT NULL,
  `Nama` varchar(30) collate latin1_general_ci NOT NULL,
  `Angkatan` varchar(9) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`NIS`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
LOCK TABLES `siswa` WRITE;
/*!40000 ALTER TABLE `siswa` DISABLE KEYS */;
INSERT INTO `siswa` VALUES ('1024','resika arthana','2005/2006'),('1','cxfbsdjg','2005/2006'),('2','dshfk','2005/2006'),('3','dsfku','2005/2006'),('11','Ari damayanti','2005/2006'),('12','wedana','2005/2006'),('122','andika','2005/2006'),('123','mas ayu','2005/2006');
/*!40000 ALTER TABLE `siswa` ENABLE KEYS */;
UNLOCK TABLES;
-- Dump completed on 2007-03-21  7:47:58

Procedure

Berikut ini adalah proses pembuatan procedure, dibuat dalam command from.

mysql> delimiter //
mysql> CREATE PROCEDURE jumlahSiswa (OUT param1 INT)
    -> BEGIN
    ->   SELECT COUNT(*) INTO param1 FROM siswa;
    -> END;
    -> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;

Function

mysql> create function tmbhSaudara(nama char(20)) returns char(5)

-> return concat('Saudara ',nama);

Query OK, 0 rows affected (0.36 sec)

Pemanggilan Procedure dan Function

Pemanggilan procedure menggunakan syntax

CALL procedure_atau_function_name([parameter[,...]])

procedure_atau_function_name adalah nama procedure ata fungsi yang dipanggil dan parameter adalah nama-nama parameter procedure atau fungsi tersebut

Procedure

mysql> call jumlahSiswa(@a);
Query OK, 0 rows affected (0.00 sec)
mysql> select @a;
+------+
| @a   |
+------+
| 8    |
+------+
1 row in set (0.00 sec)

Function

mysql> select tmbhSaudara(' resika arthana');

+--------------------------------+

| tmbhSaudara(' resika arthana') |

+--------------------------------+

| Saudara resika arthana |

+--------------------------------+

1 row in set (0.00 sec)

Menghapus Procedure dan Function

Untuk menghapus procedure atau function digunakan perintah sebagai berikut

DROP {PROCEDURE | FUNCTION} [IF EXISTS] procedure_or_function_name

Trigers

Syntax Umum Triger

CREATE
    [DEFINER = { user | CURRENT_USER }]
    TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_stmt

Keterangan

  1. DEFINER menunjukkan nama user yang mempunyai hak akses untuk mengakses triger.
  2. Triger_time menunjukkan saat triger tersebut dijalankan. Terdiri dari Before atau After
  3. Triger_time menandakan saat keadaan bagaimana triger tersebut aktif. Terdiri dari
    1. Insert : Triger aktif saat baris baru dimasukkan ke dalam tabel
    2. Update : Triger aktif saat ada baris diperbaharui dimasukkan di dalam tabel
    3. Delete :Triger aktif saat baris dihapus dalam tabel

Contoh Trigers

CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
  a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  b4 INT DEFAULT 0
);
DELIMITER |
CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW BEGIN
    INSERT INTO test2 SET a2 = NEW.a1;
    DELETE FROM test3 WHERE a3 = NEW.a1;
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
  END;
|
DELIMITER ;
INSERT INTO test3 (a3) VALUES
  (NULL), (NULL), (NULL), (NULL), (NULL),
  (NULL), (NULL), (NULL), (NULL), (NULL);
INSERT INTO test4 (a4) VALUES
  (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);

Silakan masukkan nilai ke test1

mysql> INSERT INTO test1 VALUES 
    -> (1), (3), (1), (7), (1), (8), (4), (4);
Query OK, 8 rows affected (0.01 sec)
Records: 8  Duplicates: 0  Warnings: 0

As a result, the data in the four tables will be as follows:

mysql> SELECT * FROM test1;
+------+
| a1   |
+------+
|    1 |
|    3 |
|    1 |
|    7 |
|    1 |
|    8 |
|    4 |
|    4 |
+------+
8 rows in set (0.00 sec)
mysql> SELECT * FROM test2;
+------+
| a2   |
+------+
|    1 |
|    3 |
|    1 |
|    7 |
|    1 |
|    8 |
|    4 |
|    4 |
+------+
8 rows in set (0.00 sec)
mysql> SELECT * FROM test3;
+----+
| a3 |
+----+
|  2 |
|  5 |
|  6 |
|  9 |
| 10 |
+----+
5 rows in set (0.00 sec)
mysql> SELECT * FROM test4;
+----+------+
| a4 | b4   |
+----+------+
|  1 |    3 |
|  2 |    0 |
|  3 |    1 |
|  4 |    2 |
|  5 |    0 |
|  6 |    0 |
|  7 |    1 |
|  8 |    1 |
|  9 |    0 |
| 10 |    0 |
+----+------+
10 rows in set (0.00 sec)

Koneksi VB ke MySQL


  1. Install vbnya
  2. Download mysql odbc-nya, install
  3. create database di mysql, misalnya infoonline
  4. use infoonline ==> create table mahasiswa
  5. masuk ke control panel, switch ke classic view aja.
  6. masuk ke Administrative Tools –> Data Source (ODBC)
  7. Di tag user DSN, klik Add
  8. pilih mysql odbc driver, –> klik finish
  9. akan tampil panel odbc connector
  10. isi datasource name, misal dbmhs, description (kosongin juga boleh),server(defaultnya localhost),User nya root, password (default kosong), pilih databasenya
  11. Klik Test… (success, connection was made) berarti telah sukses buat koneksi, klik ok
  12. Sekarang, masuk ke vbnya, klik menu project — > references — > pilih Microsoft ActiveX Data Objects 2.0 Library dan Microsoft ActiveX Data Object RecordSet 2.8 Library
  13. Di project Explorer, tambahkan module, add module
  14. Isikan coding koneksi dan seleksi mahasiswa

    Public con As New ADODB.Connection
    Public rsmhs As New ADODB.Recordset

    Public Sub konekdb()
    Set con = New ADODB.Connection
    ” connection provider kalau ragu, ambil dari adodc,
    ”build, isi bagian pada tag connection, isi datasource namenya,
    ”pilih dbmhs, ok, copy connection stringnya
    con.Open “Provider=MSDASQL.1;Persist Security Info=False;Data Source=dbmhs”
    con.CursorLocation = adUseClient
    End Sub

    Public Sub seleksimhs()
    Set rsmhs = New ADODB.Recordset
    rsmhs.Open “select * from mahasiswa”, con, adOpenDynamic, adLockOptimistic
    End Sub
    --------------------------------
    Kalau udah, di form, tambahkan komponen datagrid, double klik formnya
    ‘tambahkan coding berikut pada form_Load

    Private Sub Form_Load()
    konekdb
    seleksimhs
    Set DataGrid1.DataSource = rsmhs
    End Sub
    ---------------------------------------------
    scrip diatas cuma contoh untuk perintah sqlnya bisa dirubah dan di sesuaikan dengan kebutuhan!




Tugas Java

ni kemari aku bikin program java,ya... walaupun kurang sempurna...tapi alhamdulilah dah bisa menuhin tugas Q...ni sourcode nya....
--------------------------------------------------------------
/**
* @(#)Jats.java (java aplikasi toko sederhana)
*
*
* @author Ravita Eka Dewi
* @version 1.00 2010/4/29
*/


import java.io.*;
public class Jats{

private int n=1;
private String[] arrKode = new String[100],arrNama = new String[100];
private double[] arrJumlah = new double[100];

void input()
{
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
try
{
String jawab="y";
int i=0;
while(jawab.equalsIgnoreCase("y"))
{
System.out.print("Masukkan jenis barang : ");arrKode[i]=input.readLine();
System.out.print("Masukkan nama barang : ");arrNama[i]=input.readLine();
System.out.print("Masukkan jumlah barang : ");arrJumlah[i]=Double.valueOf(input.readLine());
this.n=i+1; i++;
System.out.println("\n");
System.out.print("Mau input data barang lagi ?'Y/N': ");jawab=input.readLine();
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::\n");
}

}
catch (Exception e)
{
System.out.println("ERROR : "+e);
}

}
void output()
{
System.out.println("Daftar Barang Masuk ");
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::");
System.out.println("Jenis"+"\t"+"Nama"+"\t"+"Jumlah");
for(int i=0;i System.out.println(arrKode[i]+"\t\t"+arrNama[i]+"\t\t"+arrJumlah[i]);
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::\n");
}


public static void main (String[] args) {

BufferedReader entry=new BufferedReader(new InputStreamReader(System.in));
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::");
System.out.println("\t APLIKASI TOKO SEDERHANA ");
System.out.println("\t by : Ravita Eka Dewi ");
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::");
try
{
int pilih ;
do{

System.out.println("\t\t\tMENU");
System.out.println("\t\t1-->Input & Data Barang Masuk");
System.out.println("\t\t2-->Lihat Barang");
System.out.println("\t\t3-->Laporan");
System.out.println("\t\t0-->Selesai");
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::\n");

System.out.print("Pilih Menu : ");
pilih =Integer.valueOf(entry.readLine());
System.out.println(":::::::::::::::::::::::::::::::::::::::::::::\n");

switch(pilih)
{
case 0 : break;
case 1 :{
Jats js =new Jats();
js.input();
js.output();
break;
}
case 2 :{
Jats js =new Jats();
js.output();
System.out.println("Proses Belum Berhasil masih terjadi gangguan\n");
break;
}
case 3 :{
System.out.println("Proses Belum tersedia\n");
break;
}
default : System.out.println("Menu tidak tersedia!\n");

}
}while (pilih!=0);{System.out.println("Terima Kasih telah menggunakan jasa kami");} }

catch (Exception e)
{
System.out.println("ERROR : "+e);
}
}


}

download di sini

Template by : auraipank.blogspot.com