Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
P7 Bab 7 – HTTP Connection
7.1 Tujuan Mahasiswa memahami konsep J2ME, HTTP Connection.
7.2 Materi 1. 2.
HTTP Connection Client-Server
7.3 Pendahuluan • •
HTTP Connection merupakan fitur J2ME yang memungkinkan perangkat mobile (GPRS + Java) melakukan hubungan dengan web server. Hubungan yang dilakukan : ◦ Request → client ◦ Respon → server (berdasarkan permintaan client)
7.4 Generic Connection Framework • •
•
•
GCF merupakan sebuah Application Programming Interface (API) yang terdiri atas sekumpulan class dan interface yang digunakan untuk membangun koneksi client-server. GFC merupakan API yang disediakan oleh : ◦ MIDP (Mobile Information Device Profile) ◦ CLDC (Connected Limited Device Configuration) Perkembangan : ◦ MIDP 1.0 ▪ Connection → HTTP ◦ MIDP 2.0 ▪ Coonection → HTTP ▪ Update → HTTPS Library GFC, merupakan perpaduan antara paket : ◦ javax.microedition.io (MIDP) ◦ java.io (CLDC) SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 1
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Connection
InputConnection
OutputConnection
StreamConnection
+CommConnection
DatagramConnection
+UDPDatagramConnection
ContentConnection
+SocketConnection
StreamConnectionNotifier
HttpConnection
+SecureConnection
+ServerSocketConnection
+HttpsConnection
Struktur Antarmuka GCF •
Class utama yang digunakan untuk membangun koneksi adalah class Connector (dalam class javax.microedition.io), fungsinya : ◦ Interpreter (penerjemah) URL ◦ Instantiator (membuat object) ◦ Memilih interface
7.5 HTTP Connection • • •
HTTP (Hypertext Transfer Protocol), merupakan sebuah procedure yang digunakan untuk pertukaran data pada aplikasi berbasis web. Inti dari koneksi HTTP → client-server Proses : 1. Membangun object HttpConnection menggunakan method open pada class Connector secara statis, 2. Mengatur method request (GET / POST), 3. Mengatur header request yang dibutuhkan 4. Membuat object Stream Output dengan method openOutputStream/openDataOutputStream untuk menampung data pada body request, 5. Menuliskan data pada body request untuk dikirim ke server, 6. Membuat object Stream Input dengan method openInputStream/openDataInputStream untuk membaca data yang dikirim server, 7. Membaca status respon server dengan method getResponseCode(), jika berhasil SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 2
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
dilanjutkan dengan pembacaan data respons dengan object Stream Input, 8. Menutup koneksi, input, dan output stream. Step 1 : Membuat object HTTP Connection • •
•
Class yang disediakan oleh GCF untuk membangun koneksi adalah Class Connector. Class Connector mempunyai method open yang dipanggil secara static untuk mendapatkan object Connection yang kemudian dapat di-casting kepada connection class yang sesuai (Ex : HttpConnection). Deklarasi method open pada class Connector 1 : 1
Connection Connector.open(String name)
Keterangan : • name → nama request yang akan dikirim ke server dalam bentuk url. Contoh : HttpConnection contoh1 = (HttpConnection) Connector.open(“http://localhost/project_9/”);
•
Deklarasi method open pada class Connector 2 : 2
Connection Connector.open(String name, int mode)
Keterangan : • mode → mode akses yang dikirim/diterima Contoh : HttpConnection contoh2 = (HttpConnection) Connector.open(“http://localhost/project_9/proses.php”,Connector.READ_WRITE);
•
Deklarasi method open pada class Connector 3 : 3
Connection Connector.open(String name, int mode, boolean timeouts)
Keterangan : • timeouts → batas waktu saat membangun koneksi Contoh : 1 2
HttpConnection contoh3 = (HttpConnection) Connector.open(“http://localhost/project_9/proses.php? nim=10111071&nama=Annisa+Retno+Sari”,Connector.READ_WRITE,true);
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 3
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Step 2 : Mengatur Method Request •
•
Client memiliki tiga buah cara (method) untuk melakukan request ke server : ◦ HEAD ◦ POST ◦ GET (method GET secara default akan menjadi method request jika method tidak ditentukan) Deklarasi method : setRequestMethod(String request)
Keterangan → parameter String request : • GET ◦ Mengirimkan data dengan parameter URL. ◦ Method ini tidak mengizinkan pengiriman data bersamaan pada saat request, tetapi method ini mengizinkan penggunaan header. ◦ Konstanta : HttpConnection.GET
•
POST ◦ Data dikirim pada body request, sehingga lebih leluasa dalam mengirim data. ◦ Data disembunyikan dari user, sehingga keamanan lebih terjaga. ◦ Konstanta : HttpConnection.POST
•
HEAD ◦ Method ini hanya mengirim/menerima header. ◦ Hanya dapat digunakan untuk menerima informasi dari server. ◦ Konstanta : HttpConnection.HEAD
•
Contoh : HttpC.setRequestMethod(HttpConnection.GET);
Step 3 : Mengatur Header Request •
Deklarasi method : SetRequestProperty (String name, String value);
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 4
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
• • •
Setiap header mempunyai parameter name dan value sebagai informasi yang akan disampaikan ke server. Header request mengikuti perintah request yang lebih banyak digunakan pada method POST. name dan value yang dapat digunakan dalam header request : Name
•
Keterangan
Connection
Nilai yang digunakan adalah "Close". • Jika nilai ini diberikan, maka koneksi akan ditutup setelah server melayani permintaan client. • Jika header ini tidak digunakan, maka koneksi yang sama dapat digunakan untuk mengirimkan data berulang kali.
Content-Length
Menunjukan jumlah byte data yang dikirim ke server, nilai yang digunakan merupakan seluruh bilangan yang ditulis dalam string, ex : 255 menunjukan 255 byte data
Content-Type
Menunjukan pengkodean yang digunakan pada isi data, nilai yang dapat diberikan : • text/html • text/html;charset=ISO-8859-1 • application/x-www-form-urlencoded
Date
Menunjukan tanggal dan jam pengiriman data.
Last-Modified
Menunjukan perubahan terakhir pada data.
Location
Digunakan web server untuk membuka halaman lain (redirect ke halaman lain), nilai dalam bentuk URL.
User-Agent
Digunakan untuk mengirimkan informasi spesifikasi client yang melakukan request. Ex : Profile/MIDP-2.0 Configuration CLDC-1.0.
Contoh : 1 2
httpC.SetRequestProperty (“Content-Type”, “text/plain”); httpC.SetRequestProperty (“Connection”, “close”);
Step 4 : Membuat Object Stream Output Request •
•
Data request dapat dilakukan dengan dua cara : ◦ Melalui parameter URL pada method GET ◦ Melalui body request pada method POST Langkah awal dalam menggunakan method POST, yaitu membuat object Stream Output dengan menggunakan object HttpConnection dengan method berikut : 1
OutputStream openOutputStream()
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 5
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Atau : 2
•
DataOutputStream openDataOutputStream()
Keterangan : • Yang membedakan method 1 dan 2 adalah data yang dapat ditampung oleh masingmasing Stream. • Method 1 (OutputStream) → data : array bit dan integer • Method 2 (DataOutputStream) → data : string, char, bytes, integer, long, dan sebagainya. Contoh : 1 2
OutputStream data1 = httpC.openOutputStream(); DataOutputStream data2 = httpC.openDataOutputStream();
Step 5 : Menulis Data Pada Body Request • •
Setelah object stream output dibuat, langkah selanjutnya yaitu menuliskan data yang akan dikirim ke dalam body request dengan menggunakan object stream output. Method : 1 2 3 4 5 6 7 8 9 10 11
•
void write (byte[]data) void write (int data) void write (byte[]data, int offset, int length) void writeBoolean (boolean value) void writeByte (int value) void writeChar (int value) void writeChars (String data) writeInt (int value) writeLong (long value) writeShort (int value) void writeUTF (String data);
1 2
Keterangan : • Stream OutputStream (1) → hanya memiliki 3 method (baris 1 – 3) • Stream DataOutputStream (2) → memiliki 11 method (baris 1 - 11) Pendeklarasian dari data yang akan ditulis : nama_variable = nilai_variable
Keterangan : • Jika data yang ditulis lebih dari satu, dapat digunakan operator “&” untuk menambahkan. • Jika data yang ditulis lebih dari satu kata, dapat digunakan operator “+” untuk menghubungkan data tersebut.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 6
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
•
Contoh : 1 2 3 4
String data1=“nim=10111071&nama=Annisa+Retno+Sari&prodi=teknik+informatika”; DataOutputStream data2=httpC.openDataOutputStream(); data3.write(data.getBytes)); data3.writeUTF(data2);
Step 6 : Mengetahui Respon Dari Server •
•
Setelah melakukan pengiriman request, server akan menanggapi dengan mengirimkan status pengiriman dan data yang diminta. Jika request berhasil maka server akan mengirimkan status HTTP_OK. Method yang digunakan untuk mengetahui status respon dari server : int getResponseCode()
Keterangan : • method tersebut akan mengembalikan nilai integer yang terkandung pada konstantakonstanta seperti yang tertera pada tabel berikut. Constanta
Keterangan
HTTP_OK:200
Request berhasil
HTTP_MOVED_PERM:301
URL yang diminta diarahkan secara permanen ke alamat URL yang ditulis di header Location
HTTP_MOVED_TEMP:302
URL yang diminta sementara diarahkan ke alamat URL baru yang ditulis di header Location
HTTP_SEE_OTHER:303
URL yang diminta dapat diminta dengan method GET
HTTP_BAD_REQUEST:400
Request gagal, karena tidak sesuai dengan penulisan request
HTTP_FORBIDDEN:403
Request benar, tetapi client tidak diizinkan mengaksses URL tersebut
HTTP_NOT_FOUND:404
URL yang diminta tidak ditemukan
Step 7 : Membuat Object Input Stream •
Selanjutnya membuat object stream input, dengan method : 1
InputStream openInputStream()
Atau : 2
DataInputStream openDataInputStream()
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 7
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
•
Keterangan : • Yang membedakan method 1 dan 2 adalah data yang dapat ditampung oleh masingmasing Stream. • Method 1 (InputStream) → data : array bit dan integer • Method 2 (DataInputStream) → data : string, char, bytes, integer, long, dan sebagainya. Contoh : 1 2 3 4 5 6 7 8 9 10 11 12 13
HttpConnection hc = null; DataInputStream dis = null; hc = (HttpConnection) Connection.open(“http://localhost/project_dnd/”); switch (hc.getResponCode()) { case HttpConnection.HTTP_OK : dis = hc.openDataInputStream(); // baca data break; case HttpConnection.HTTP_NOT_FOUND : default : // penanganan saat terjadi kegagalan reqquest }
Step 9 : Membaca Data Respons Server •
Source code untuk mendapatkan data respons yang dikirim oleh server : 1 2 3 4 5 6 7 8
dis = hc.openDataInputStream(); int pjg = (int) hc.getLength(); if (pjg != -1) { byte[] inputDt = new byte[pjg]; dis.read(inputDt); objectTextBox.setString(new String(inputDt)); }
Keterangan : • 2 = membaca panjang data respons pada object HttpConnection • 3 = memastikan data yang dapat dibaca, jika panjang data bernilai -1, berarti tidak ada data yang dapat dibaca. • 5 = Membuat varable array byte untuk menyimpan hasil pembacaan data. • 6 = object stream input memanggil method read(), dengan parameter array byte • 7 = hasil akhir Step 10 : Menutup Koneksi • •
Selanjutnya yang perlu dilakukan adalah menutup koneksi (Input Stream dan Output Stream) yang digunakan untuk membebaskan resource yang telah dipakai. Source code untuk menutup koneksi dan stream yang digunakan. SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 8
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
1 2 3 4 5 6 7 8
try { if (hc != null) { hc.clode(); } if (dis != null) { dis.close(); } } catch (IOException e) { ex.printStrackTrace(); }
7.6 AirTime Configuration •
Pada saat melakukan eksekusi terhadap source code yang telah dibuat, maka akan terlihat AirTime sebagai berikut :
•
Konfigurasi : ◦ klik menu Tools → Java Platform
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 9
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦ Selanjutnya dibagian menu Platforms, klik J2ME → Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC. ◦ Selanjutnya pilih Tab Tools & Extension, kemudian klik button Open Preferences.
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 10
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
◦ Selanjutnya pada menu Category, pilih Security kemudian pilih konfigurasi berikut : ▪ Security Policy → MSA ▪ Security domain → manufacturer
◦ Terakhir klik button OK.
7.7 Text File Access From Server Ilustrasi :
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 11
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Step 1 : Persiapan
•
Pastikan web server sudah terinstall. Jika belum silahkan lihat tutorial installasi di : ◦ http://sidiq.mercubuana-yogya.ac.id/how-to-install-apache-php-mysql-andphpmyadmin-on-linux-ubuntu/ ◦ http://sidiq.mercubuana-yogya.ac.id/how-to-install-apache-php-mysql-andphpmyadmin-on-windows-7/ Pastikan web server sudah berjalan :
•
Buat directory Project_P9 di directory "/var/www/".
•
Step 2 : Pesan.txt •
Buat file (*.txt) dan simpan dengan nama "Pesan.txt" di dalam directory "Project_P9".
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 12
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Step 3 : Network1.java Buat project baru di Netbeans dengan nama "Project_P9", Buat file Midlet dan simpan dengan nama Network1.java.
• •
Network1.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
/* ====================================== * Akses Text File (*.txt) dari server * author @ SQ ======================================== */ import import import import
javax.microedition.midlet.*; javax.microedition.lcdui.*; java.io.*; javax.microedition.io.*;
public class Network1 extends MIDlet implements CommandListener { Command exitCommand = new Command("Exit", Command.EXIT, 2); Command nextCommand = new Command("Next", Command.OK, 2); Display display; Form f1, f2; String pesan; public void startApp() { f1 = new Form("Koneksi Server"); f1.append("Latihan membuat koneksi ke server"); f1.addCommand(exitCommand); f1.addCommand(nextCommand); f1.setCommandListener(this); //set current display to the location screen Display.getDisplay(this).setCurrent(f1); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) {
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 13
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 }
String lbl = c.getLabel(); if ("Exit".equals(lbl)) { notifyDestroyed(); } else if ("Next".equals(lbl)) { doDownload(); } } private void doDownload() { f2 = new Form ("Info Dari Server"); pesan = ""; String URLsite = "http://localhost/project_9/pesan1.txt"; // url HttpConnection con = null; InputStream in = null; StringBuffer data = new StringBuffer(); //untuk sekumpulan data string try { con = (HttpConnection)Connector.open(URLsite); in = con.openInputStream(); int ch; //selama tidak -1 (akhir file), baca semua data while((ch = in.read()) != -1) { data.append((char)ch); } pesan = data.toString(); //menampilkan semua data di StringBuffer f2.append (pesan); Display.getDisplay(this).setCurrent(f2); } catch(IOException e) {} }
Step 4 : Hasil Eksekusi
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 14
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
7.8 PHP File Access From Server Ilustrasi
Step 1 : Pesan1.php
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 15
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Step 2 : Network2.java
Step 3 : Hasil Eksekusi
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 16
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
7.9 PHP File With Parameter Access From Server Step 1 : Pesan2.php
Step 2 : Network3.php
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 17
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
Step 3 : Hasil Eksekusi
7.7 Evaluasi Petunjuk : •
•
Tugas individu : • Pada pembahasan RMS yang sub bab 7.1 – 7.9, pelajarilah dan pahamilah dengan seksama. • Coba dan pahamilah sample yang telah diberikan. Dengan syarat tidak boleh menggunakan identifier (object, class, method) seperti yang tercantum dalam contoh program pada pembahasan di atas. • Tugas individu akan dipertanggung jawabkan. Tugas kelompok : • Mengajukan tema dan nama-nama Anggota Kelompok Maksimal 3 Orang (Kelas 21) / 2 Orang (Kelas 22) • Sebagai syarat UTS
Ketentuan Tugas kelompok : • • •
Tema bebas (Tidak boleh sama --> berlaku sistem gugur / siapa cepat dia dapat) Buatlah tabel (minimal 3 tabel yang terdiri dari 2 tabel sumber dan 1 tabel transaksi) Buatlah relasi database – nya
Output Laporan : 1. Cover --> Menyertakan nama kelompok (pilih 1 sebagai ketua kelompok (ditunjukkan dengan penulisan nomor urut ke 1)) 2. Bab I : Pendahuluan --> berisi uraian singkat mengenai alasan memilih tema tersebut 3. Bab II : Skema database (a) Tabel – tabel dalam database (b) Relasi database SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 18
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
4. Surat pernyataan kesediaan untuk belajar secara bersungguh-sungguh dengan penanggung jawab ketua kelompok, dan anggota menyetujui (Syarat : scanning tanda tangan masing-masing ketua dan anggota) • Secara otomatis, ketua bertanggung jawab terhadap anggota dan sebaliknya. • Secara otomatis, jika salah satu anggota kelompok yang tidak bisa/tidak paham juga merupakan tanggung jawab ketua kelompok dengan dukungan dari anggota kelompok. Nb : •
Wajib menyertakan bookmark (jika tidak ada, poin laporan dikurangi 50)
Pengumpulan : • •
•
•
Tugas yang dikirimkan hanyalah tugas kelompok, sedang tugas individu tanggung jawab masing-masing individu. Rentang pengiriman tema : • Start date : 30 October 2013 • End date : 04 October 2013 Tugas dikumpulkan melalui FB dengan ketentuan sebagai berikut : • Tiap kelompok diwakili satu orang (yang mengirim) • File Name & Mail Subject : • Kelas 21 : P7_MC_21-NIM ◦ Ex – File Name : P7_MC_21-11111034.pdf ◦ Ex – Mail Subject : P7_MC_21-11111034 • Kelas 22 : P7_MC_22-NIM ◦ Ex – File Name : P7_MC_22-11111034.pdf ◦ Ex – Mail Subject : P7_MC_22-11111034 Email : • Kelas 21 dan 22 → FB : http://facebook.com/Sandy.Raharja
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 19
Program Studi Teknik Informatika Fakultas Teknologi Informasi
Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 584922, Fax (0274) 550703
class ofSuccess{ private GoodIdea(){ if ((HardWork==Good)&&(Intention==Good)&&(WillPower==Good)){ System.out.print("Success ...!"); } else{ System.out.print(" Failure ...! "); } } }
i a v Ja
n
ion T ac
Tak ada yang namanya gagal, Yang ada melainkan hanya sukses atau belajar, Jika tidak sukses, berarti kita masih harus belajar sampai sukses. By : DnD
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 20