SlideShare a Scribd company logo
1 of 19
Download to read offline
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
1
MMeemmbbuuaatt AApplliikkaassii CCoonnvveerrtteerr SSuuhhuu
MMeenngggguunnaakkaann KKoommppoonneenn CCOORRBBAA
Mudafiq Riyan Pratama
Mudafiq.riyan@yahoo.com
http://dhafiq-san.blogspot.com/
Pendahuluan
CORBA (Common Object Request Broker Architecture) adalah sebuah
arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object
Oriented (OO) dengan paradigma client-server. CORBA dapat digunakan untuk
pengembangan software dengan berbasis pada rekayasa berkomponen.
CORBA lahir berdasarkan „kesepakatan‟ antara sejumlah vendor dan
pengembang perangkat lunak terkenal seperti IBM, Hewlett-Packard, dan DEC, yang
tergabung dalam sebuah konsorsium bernama OMG (Object Management Group).
Konsep Object-Oriented (OO) melahirkan paradigma client-server yang mana
pada sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan
(message passing). Konteks komunikasi ini kemudian dipetakan ke dalam model client-
server: satu obyek berperan sebagai client (si pengirim pesan) dan yang lain bertindak
sebagai server (yang menerima pesan dan memproses pesan yang bersangkutan).
Dengan menerapkan konsep Object-Oriented ataupun Client-Server, kita akan
mencoba untuk membuat sebuah aplikasi sederhana yaitu Membuat Aplikasi
Converter Suhu Menggunakan Komponen CORBA, yang mana komponen CORBA
telah disediakan oleh Java.
Kebutuhan Software:
1. JDK (penulis menggunakan jdk1.6.0_16)
2. Notepad
3. Disini penulis mempraktekkan menggunakan sistem operasi Windows XP
Lisensi Dokumen:
Copyright © 2003-2007 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
2
PEMBAHASAN
1. Langkah Awal
Buatlah sebuah folder untuk project ConverterCORBA yang akan dibuat, pada
tahap ini penulis membuat folder Corba
2. Membuat File IDL
Berikut isi dari file IDL, dan simpan dengan nama Convert.idl dan letakkan pada
folder project yang telah dibuat yaitu Corba
module TempConvertApp
{
interface Convert
{
double cToF(in double c);
};
};
3. Membuat Package TempConvertApp
Pada folder project yang dibuat tadi, buatlah folder baru lagi dengan nama
TempConvertApp untuk tempat package pengolahan komponen CORBA
4. Buat File “Convert.java” Dan Letakkan Dalam Folder “TempConvertApp”
package TempConvertApp;
public interface Convert extends org.omg.CORBA.Object {
double cToF(double c);
}
Dan simpan file Convert.java tersebut pada package atau folder
TempConvertApp
5. Buat File “ConvertOperations.java” Dan Letakkan Dalam Folder
“TempConvertApp”
File tersebut yang mendeklarasikan semua operasi
package TempConvertApp;
public interface ConvertOperations {
double cToF(double c);
} // interface ConvertOperations
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
3
6. Buat File “ConvertHelper.java” Dan Letakkan Dalam Folder
“TempConvertApp”
File inilah yang menyediakan fungsi pelengkap seperti method narrow() yang
diperlukan untuk memanggil object CORBA
package TempConvertApp;
abstract public class ConvertHelper {
private static String _id =
"IDL:TempConvertApp/Convert:1.0";
public static void insert(org.omg.CORBA.Any a,
TempConvertApp.Convert that) {
org.omg.CORBA.portable.OutputStream out =
a.create_output_stream();
a.type(type());
write(out, that);
a.read_value(out.create_input_stream(), type());
}
public static TempConvertApp.Convert
extract(org.omg.CORBA.Any a) {
return read(a.create_input_stream());
}
private static org.omg.CORBA.TypeCode __typeCode =
null;
synchronized public static org.omg.CORBA.TypeCode
type() {
if (__typeCode == null) {
__typeCode =
org.omg.CORBA.ORB.init().create_interface_tc(TempConvertApp.C
onvertHelper.id(), "Convert");
}
return __typeCode;
}
public static String id() {
return _id;
}
public static TempConvertApp.Convert
read(org.omg.CORBA.portable.InputStream istream) {
return
narrow(istream.read_Object(_ConvertStub.class));
}
public static void
write(org.omg.CORBA.portable.OutputStream ostream,
TempConvertApp.Convert value) {
ostream.write_Object((org.omg.CORBA.Object)
value);
}
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
4
public static TempConvertApp.Convert
narrow(org.omg.CORBA.Object obj) {
if (obj == null) {
return null;
} else if (obj instanceof TempConvertApp.Convert)
{
return (TempConvertApp.Convert) obj;
} else if (!obj._is_a(id())) {
throw new org.omg.CORBA.BAD_PARAM();
} else {
org.omg.CORBA.portable.Delegate delegate =
((org.omg.CORBA.portable.ObjectImpl)
obj)._get_delegate();
TempConvertApp._ConvertStub stub = new
TempConvertApp._ConvertStub();
stub._set_delegate(delegate);
return stub;
}
}
}
7. Buat File “ConvertHolder.java” Dan Letakkan Dalam Folder
“TempConvertApp”
Memiliki class Holder yang digunakan untuk memanggil object CORBA untuk
membaca dan menulis sebuah operasi input stream parameter.
package TempConvertApp;
public final class ConvertHolder implements
org.omg.CORBA.portable.Streamable
{
public TempConvertApp.Convert value = null;
public ConvertHolder ()
{
}
public ConvertHolder (TempConvertApp.Convert
initialValue)
{
value = initialValue;
}
public void _read (org.omg.CORBA.portable.InputStream i)
{
value = TempConvertApp.ConvertHelper.read (i);
}
public void _write (org.omg.CORBA.portable.OutputStream
o)
{
TempConvertApp.ConvertHelper.write (o, value);
}
public org.omg.CORBA.TypeCode _type ()
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
5
{
return TempConvertApp.ConvertHelper.type ();
}
}
8. Buat File “ConvertPOA.java” Dan Letakkan Dalam Folder
“TempConvertApp”
Adalah sebuah kerangka class untuk yang mengimplementasikan server
bahwasanya akan mengoperasikan interface dan penggunaan narrow() pada class
Helper sebelum ditampilkan.
package TempConvertApp;
public abstract class ConvertPOA extends
org.omg.PortableServer.Servant implements
TempConvertApp.ConvertOperations,
org.omg.CORBA.portable.InvokeHandler {
// Constructors
private static java.util.Hashtable _methods = new
java.util.Hashtable();
static {
_methods.put("cToF", new java.lang.Integer(0));
}
public org.omg.CORBA.portable.OutputStream
_invoke(String $method, org.omg.CORBA.portable.InputStream
in,
org.omg.CORBA.portable.ResponseHandler $rh) {
org.omg.CORBA.portable.OutputStream out = null;
java.lang.Integer __method = (java.lang.Integer)
_methods.get($method);
if (__method == null) {
throw new org.omg.CORBA.BAD_OPERATION(0,
org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
}
// Dispatch method request to its handler
switch (__method.intValue()) {
case 0: // TempConvertApp/Convert/cToF
{
double c = in.read_double();
double $result = (double) 0;
//invoke the method
$result = this.cToF(c);
//create an output stream for delivery of the result
out = $rh.createReply();
//Marshal the result via output stream which connects
//the input stream of client
out.write_double($result);
break;
}
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
6
default:
throw new org.omg.CORBA.BAD_OPERATION(0,
org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
}
return out;
} // _invoke
// Type-specific CORBA::Object operations
private static String[] __ids = {
"IDL:TempConvertApp/Convert:1.0"};
public String[]
_all_interfaces(org.omg.PortableServer.POA poa, byte[]
objectId) {
return (String[]) __ids.clone();
}
public Convert _this() {
return ConvertHelper.narrow(
super._this_object());
}
public Convert _this(org.omg.CORBA.ORB orb) {
return ConvertHelper.narrow(
super._this_object(orb));
}
} // class ConvertPOA
9. Buat File “_ConvertStub.java” Dan Letakkan Dalam Folder
“TempConvertApp”
package TempConvertApp;
public class _ConvertStub extends
org.omg.CORBA.portable.ObjectImpl implements
TempConvertApp.Convert {
public double cToF(double c) {
org.omg.CORBA.portable.InputStream $in = null;
try {
//create a request via an output stream
org.omg.CORBA.portable.OutputStream $out =
_request("cToF", true);
//marshal the arguments
$out.write_double(c);
//method invication via output stream and
//connect to a input stream
$in = _invoke($out);
//unmarshal the return result
double $result = $in.read_double();
return $result;
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
7
} catch
(org.omg.CORBA.portable.ApplicationException $ex) {
$in = $ex.getInputStream();
String _id = $ex.getId();
throw new org.omg.CORBA.MARSHAL(_id);
} catch
(org.omg.CORBA.portable.RemarshalException $rm) {
return cToF(c);
} finally {
_releaseReply($in);
}
} // cToF
// Type-specific CORBA::Object operations
private static String[] __ids =
{"IDL:TempConvertApp/Convert:1.0"};
public String[] _ids() {
return (String[]) __ids.clone();
}
private void readObject(java.io.ObjectInputStream s)
throws
java.io.IOException {
String str = s.readUTF();
String[] args = null;
java.util.Properties props = null;
org.omg.CORBA.Object obj =
org.omg.CORBA.ORB.init(args,
props).string_to_object(str);
org.omg.CORBA.portable.Delegate delegate =
((org.omg.CORBA.portable.ObjectImpl)
obj)._get_delegate();
_set_delegate(delegate);
}
private void writeObject(java.io.ObjectOutputStream
s)
throws java.io.IOException {
String[] args = null;
java.util.Properties props = null;
String str = org.omg.CORBA.ORB.init(args,
props).object_to_string(this);
s.writeUTF(str);
}
} // class _ConvertStub
10. Buat File “ConvertServer.java” Dan Letakkan Di Dalam Folder Project
“Corba” (Bukan package “TempConvertApp”)
Merupakan file server yang memiliki 2 class: class ConvertImpl yang mewarisi atau
meng-extends class ConvertPOA (kerangka CORBA) dan class satunya merupakan
class untuk main() method.
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
8
// ConvertServer.java
import TempConvertApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import java.util.Properties;
class ConvertImpl extends ConvertPOA {
private ORB orb;
public void setORB(ORB orb_val) {
orb = orb_val;
}
// implement cToF() method
public double cToF(double c) {
return (c * 9. / 5 + 32);
}
}
public class ConvertServer {
public static void main(String args[]) {
try {
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get reference to rootpoa & activate the POAManager
POA rootpoa =
POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
// create servant and register it with the ORB
ConvertImpl convertImpl = new ConvertImpl();
convertImpl.setORB(orb);
//get object reference from servant
org.omg.CORBA.Object ref =
rootpoa.servant_to_reference(convertImpl);
Convert href = ConvertHelper.narrow(ref);
//get naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
// cast the generic object reference to a proper type
NamingContextExt ncRef =
NamingContextExtHelper.narrow(objRef);
//bind the name “Convert” with naming service
NameComponent path[] =
ncRef.to_name("Convert");
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
9
ncRef.rebind(
path,
href);
// wait for invocations from client
orb.run();
} catch (Exception ex) {
System.err.println("ERROR: " + ex);
ex.printStackTrace(System.out);
}
}
}
11. Buat File “ConvertClient.java” Dan Letakkan Di Dalam Folder Project
“Corba” (Bukan package “TempConvertApp”)
Adalah sebuah class untuk CORBA GUI Client yang mengakses komponen
CORBA dari server.
import TempConvertApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class ConvertClient extends JFrame {
static Convert convertImpl;
static JTextField input;
static JTextField output;
static ConvertClient a;
static JButton submit, clear;
public ConvertClient() { //layout the GUI
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JLabel l1 = new JLabel("C input:");
JLabel l2 = new JLabel("F output");
input = new JTextField(10);
output = new JTextField(10);
submit = new JButton("SUBMIT");
clear = new JButton("Clear");
submit.addActionListener(new ActionHandler());
clear.addActionListener(new ActionHandler());
contentPane.add(l1);
contentPane.add(input);
contentPane.add(l2);
contentPane.add(output);
contentPane.add(submit);
contentPane.add(clear);
setTitle("Client Access");
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
10
setSize(540, 250);
show();
}
public static void main(String args[]) {
try {
a = new ConvertClient();
// create and initialize the ORB
ORB orb = ORB.init(args, null);
// get the root naming context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
// Use NamingContextExt instead of NamingContext.
// This is part of the Interoperable naming Service.
NamingContextExt ncRef =
NamingContextExtHelper.narrow(objRef); // resolve the Object
Reference in Naming
String name = "Convert";
convertImpl =
ConvertHelper.narrow(ncRef.resolve_str(name));
} catch (Exception e) {
System.out.println("ERROR : " + e);
e.printStackTrace(System.out);
}
}
class ActionHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
try {
if (e.getSource() == submit) {
System.out.println("Obtained a handle
on server object:");
String temp = input.getText();
double a = Double.parseDouble(temp);
double result = convertImpl.cToF(a);
output.setText("" + result);
} else if (e.getSource() == clear) {
input.setText("");
output.setText("");
}
} catch (Exception ex) {
System.out.println("ERROR : " + e);
ex.printStackTrace(System.out);
}
}
}
}
12. Setelah Membuat Code-nya, Jalankan CommandPrompt atau cmd
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
11
Proses compile dan running aplikasi menggunakan console MS-DOS karena
melalui Operating System Windows XP, jika melalui Linux, gunakanlah terminal.
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
12
13. Masuk Ke Alamat Direktori Project Corba
Pada percobaan yang saya lakukan, project Corba saya letakkan di alamat direktori
E:Corba
Gunakan perintah cd untuk masuk ke dalam folder
14. Compile File IDL
Jalankan perintah berikut untuk mengcompile file Convert.idl
idlj -fall Convert.idl
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
13
15. Compile Semua Java File
Ikuti perintah berikut untuk mengcompile semua file .java yang ada pada project
Corba ini
javac *.java TempConvertApp*.java
Terlihat seperti error, ini hanya warning, tapi tidak apa-apa, hiraukan saja.
Lanjutkan untuk step berikutnya.
16. Jalankan orbd
start orbd - ORBInitialPort 1050
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
14
Maka akan muncul DOS baru yang tidak menampilkan apa-apa, ini menyatakan
bahwa orbd sedang dalam keadaan running. Jangan tutup jendela ini.
17. Jalankan ConvertServer
start java ConvertServer - ORBInitialPort 1050 - ORBInitialHost
localhost
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
15
Akan muncul DOS baru, menyatakan bahwa java sedang running dengan
memproses ConvertServer.java
18. Jalankan Aplikasi Client
java ConvertClient - ORBInitialPort 1050 - ORBInitialHost localhost
19. Akan Muncul Frame Aplikasi Client
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
16
20. Silahkan Lakukan Eksekusi Convert Suhu Celcius ke Fahrenheit
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
17
DOWNLOAD PROJECT
Silahkan download source code project ConverterCORBA tersebut di link
berikut:
http://ilmukomputer.org/wp-content/uploads/2010/12/ConverterCORBA.zip
RESOURCE
[1] Andy Ju An Wang and Kai Qian, “Component-Oriented Programming,” Wiley-
Interscience. Southern Polytechnic State University, Marietta, Georgia, 2005.
=0=0=0=0=0=0=0=0= Selamat Mencoba =0=0=0=0=0=0=0=0=
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
18
Thank’s to:
Rasa syukur selalu pantas dipanjatkan kepada ALLAH SWT yang telah
memberikan saya kesempatan untuk tetap menuntut ilmu sebanyak-banyaknya.
Kepada orang tuaku yang terus mendoakan dan membimbingku. Semoga aku
bisa membalas kebaikan orang tuaku. AMIN...!!!
Dosen-dosen yang telah membimbingku
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
19
Biografi Penulis
Mudafiq Riyan Pratama. Lahir di Jember pada
tanggal 9 Mei 1989. Memulai pendidikan TK dan
SD di Jenggawah. Menempuh SMP di SMPN 6
Jember yang kemudian dilanjutkan ke SMAN 2
Jember. Dan saat ini sedang menempuh kuliah S1
jurusan Teknik Informatika di Universitas
Muhammadiyah Malang angkatan 2007.
Didunia maya, penulis lebih sering memakai nama Dhafiq Sagara.
YM : mudafiq.riyan
FB : ray_dafier@yahoo.co.id

More Related Content

Similar to Mudafiq converter suhucorba

Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysqlrikysp
 
05 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 705 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 7pinnsyl
 
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)riarel
 
Dts x dicoding #1 memulai pemrograman kotlin
Dts x dicoding #1 memulai pemrograman kotlinDts x dicoding #1 memulai pemrograman kotlin
Dts x dicoding #1 memulai pemrograman kotlinAhmad Arif Faizin
 
Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrudmales Aja
 
Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Al-dhimas Purnama
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rplDenny Yahya
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLLusiana Diyan
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterGeorge Kartutu
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterMuhammad Rais
 
Php dgn framework code ignitier
Php dgn framework code ignitierPhp dgn framework code ignitier
Php dgn framework code ignitierAlbertz Ace-Red
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitierHaswi Haswi
 
Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3iimpunya3
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Debby Ummul
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1zisgoo
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorialyunus pramono
 
Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Welly Rosadi, Mochamad
 

Similar to Mudafiq converter suhucorba (20)

Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
 
05 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 705 pzt web programming jdbc hibernate. kelompok 7
05 pzt web programming jdbc hibernate. kelompok 7
 
Presentation dyan
Presentation dyanPresentation dyan
Presentation dyan
 
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
Belajar Framework CodeIgnitier Lengkap (bahasa Indonesia)
 
Dts x dicoding #1 memulai pemrograman kotlin
Dts x dicoding #1 memulai pemrograman kotlinDts x dicoding #1 memulai pemrograman kotlin
Dts x dicoding #1 memulai pemrograman kotlin
 
Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrud
 
Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1Belajar php-dengan-framework-code-igniter1
Belajar php-dengan-framework-code-igniter1
 
Belajar framework code igniter xii rpl
Belajar framework code igniter xii rplBelajar framework code igniter xii rpl
Belajar framework code igniter xii rpl
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQL
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniter
 
Belajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniterBelajar php-dengan-framework-code-igniter
Belajar php-dengan-framework-code-igniter
 
Php dgn framework code ignitier
Php dgn framework code ignitierPhp dgn framework code ignitier
Php dgn framework code ignitier
 
Php dgn frame work code ignitier
Php dgn frame work code ignitierPhp dgn frame work code ignitier
Php dgn frame work code ignitier
 
Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3Belajar php dengan framework code igniter3
Belajar php dengan framework code igniter3
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5Belajar membuat modul crud di laravel 5
Belajar membuat modul crud di laravel 5
 

Recently uploaded

AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..ikayogakinasih12
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...Kanaidi ken
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...MetalinaSimanjuntak1
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxRizkyPratiwi19
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidupfamela161
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatanssuser963292
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfCandraMegawati
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfHendroGunawan8
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikThomasAntonWibowo
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdf
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdfaksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdf
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdfwalidumar
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxNurindahSetyawati1
 

Recently uploaded (20)

AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
AKSI NYATA NARKOBA ATAU OBAT TERLARANG..
 
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
RENCANA + Link2 Materi Pelatihan/BimTek "PTK 007 Rev-5 Thn 2023 (PENGADAAN) &...
 
Integrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ikaIntegrasi nasional dalam bingkai bhinneka tunggal ika
Integrasi nasional dalam bingkai bhinneka tunggal ika
 
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
1.3.a.3. Mulai dari Diri - Modul 1.3 Refleksi 1 Imajinasiku tentang Murid di ...
 
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptxPERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
PERAN PERAWAT DALAM PEMERIKSAAN PENUNJANG.pptx
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdfContoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
Contoh Laporan Observasi Pembelajaran Rekan Sejawat.pdf
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdfDiskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
Diskusi PPT Sistem Pakar Sesi Ke-4 Simple Naïve Bayesian Classifier .pdf
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Dasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolikDasar-Dasar Sakramen dalam gereja katolik
Dasar-Dasar Sakramen dalam gereja katolik
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdf
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdfaksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdf
aksi nyata - aksi nyata refleksi diri dalam menyikapi murid.pdf
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
 

Mudafiq converter suhucorba

  • 1. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 1 MMeemmbbuuaatt AApplliikkaassii CCoonnvveerrtteerr SSuuhhuu MMeenngggguunnaakkaann KKoommppoonneenn CCOORRBBAA Mudafiq Riyan Pratama Mudafiq.riyan@yahoo.com http://dhafiq-san.blogspot.com/ Pendahuluan CORBA (Common Object Request Broker Architecture) adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server. CORBA dapat digunakan untuk pengembangan software dengan berbasis pada rekayasa berkomponen. CORBA lahir berdasarkan „kesepakatan‟ antara sejumlah vendor dan pengembang perangkat lunak terkenal seperti IBM, Hewlett-Packard, dan DEC, yang tergabung dalam sebuah konsorsium bernama OMG (Object Management Group). Konsep Object-Oriented (OO) melahirkan paradigma client-server yang mana pada sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message passing). Konteks komunikasi ini kemudian dipetakan ke dalam model client- server: satu obyek berperan sebagai client (si pengirim pesan) dan yang lain bertindak sebagai server (yang menerima pesan dan memproses pesan yang bersangkutan). Dengan menerapkan konsep Object-Oriented ataupun Client-Server, kita akan mencoba untuk membuat sebuah aplikasi sederhana yaitu Membuat Aplikasi Converter Suhu Menggunakan Komponen CORBA, yang mana komponen CORBA telah disediakan oleh Java. Kebutuhan Software: 1. JDK (penulis menggunakan jdk1.6.0_16) 2. Notepad 3. Disini penulis mempraktekkan menggunakan sistem operasi Windows XP Lisensi Dokumen: Copyright © 2003-2007 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
  • 2. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 2 PEMBAHASAN 1. Langkah Awal Buatlah sebuah folder untuk project ConverterCORBA yang akan dibuat, pada tahap ini penulis membuat folder Corba 2. Membuat File IDL Berikut isi dari file IDL, dan simpan dengan nama Convert.idl dan letakkan pada folder project yang telah dibuat yaitu Corba module TempConvertApp { interface Convert { double cToF(in double c); }; }; 3. Membuat Package TempConvertApp Pada folder project yang dibuat tadi, buatlah folder baru lagi dengan nama TempConvertApp untuk tempat package pengolahan komponen CORBA 4. Buat File “Convert.java” Dan Letakkan Dalam Folder “TempConvertApp” package TempConvertApp; public interface Convert extends org.omg.CORBA.Object { double cToF(double c); } Dan simpan file Convert.java tersebut pada package atau folder TempConvertApp 5. Buat File “ConvertOperations.java” Dan Letakkan Dalam Folder “TempConvertApp” File tersebut yang mendeklarasikan semua operasi package TempConvertApp; public interface ConvertOperations { double cToF(double c); } // interface ConvertOperations
  • 3. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 3 6. Buat File “ConvertHelper.java” Dan Letakkan Dalam Folder “TempConvertApp” File inilah yang menyediakan fungsi pelengkap seperti method narrow() yang diperlukan untuk memanggil object CORBA package TempConvertApp; abstract public class ConvertHelper { private static String _id = "IDL:TempConvertApp/Convert:1.0"; public static void insert(org.omg.CORBA.Any a, TempConvertApp.Convert that) { org.omg.CORBA.portable.OutputStream out = a.create_output_stream(); a.type(type()); write(out, that); a.read_value(out.create_input_stream(), type()); } public static TempConvertApp.Convert extract(org.omg.CORBA.Any a) { return read(a.create_input_stream()); } private static org.omg.CORBA.TypeCode __typeCode = null; synchronized public static org.omg.CORBA.TypeCode type() { if (__typeCode == null) { __typeCode = org.omg.CORBA.ORB.init().create_interface_tc(TempConvertApp.C onvertHelper.id(), "Convert"); } return __typeCode; } public static String id() { return _id; } public static TempConvertApp.Convert read(org.omg.CORBA.portable.InputStream istream) { return narrow(istream.read_Object(_ConvertStub.class)); } public static void write(org.omg.CORBA.portable.OutputStream ostream, TempConvertApp.Convert value) { ostream.write_Object((org.omg.CORBA.Object) value); }
  • 4. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 4 public static TempConvertApp.Convert narrow(org.omg.CORBA.Object obj) { if (obj == null) { return null; } else if (obj instanceof TempConvertApp.Convert) { return (TempConvertApp.Convert) obj; } else if (!obj._is_a(id())) { throw new org.omg.CORBA.BAD_PARAM(); } else { org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate(); TempConvertApp._ConvertStub stub = new TempConvertApp._ConvertStub(); stub._set_delegate(delegate); return stub; } } } 7. Buat File “ConvertHolder.java” Dan Letakkan Dalam Folder “TempConvertApp” Memiliki class Holder yang digunakan untuk memanggil object CORBA untuk membaca dan menulis sebuah operasi input stream parameter. package TempConvertApp; public final class ConvertHolder implements org.omg.CORBA.portable.Streamable { public TempConvertApp.Convert value = null; public ConvertHolder () { } public ConvertHolder (TempConvertApp.Convert initialValue) { value = initialValue; } public void _read (org.omg.CORBA.portable.InputStream i) { value = TempConvertApp.ConvertHelper.read (i); } public void _write (org.omg.CORBA.portable.OutputStream o) { TempConvertApp.ConvertHelper.write (o, value); } public org.omg.CORBA.TypeCode _type ()
  • 5. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 5 { return TempConvertApp.ConvertHelper.type (); } } 8. Buat File “ConvertPOA.java” Dan Letakkan Dalam Folder “TempConvertApp” Adalah sebuah kerangka class untuk yang mengimplementasikan server bahwasanya akan mengoperasikan interface dan penggunaan narrow() pada class Helper sebelum ditampilkan. package TempConvertApp; public abstract class ConvertPOA extends org.omg.PortableServer.Servant implements TempConvertApp.ConvertOperations, org.omg.CORBA.portable.InvokeHandler { // Constructors private static java.util.Hashtable _methods = new java.util.Hashtable(); static { _methods.put("cToF", new java.lang.Integer(0)); } public org.omg.CORBA.portable.OutputStream _invoke(String $method, org.omg.CORBA.portable.InputStream in, org.omg.CORBA.portable.ResponseHandler $rh) { org.omg.CORBA.portable.OutputStream out = null; java.lang.Integer __method = (java.lang.Integer) _methods.get($method); if (__method == null) { throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); } // Dispatch method request to its handler switch (__method.intValue()) { case 0: // TempConvertApp/Convert/cToF { double c = in.read_double(); double $result = (double) 0; //invoke the method $result = this.cToF(c); //create an output stream for delivery of the result out = $rh.createReply(); //Marshal the result via output stream which connects //the input stream of client out.write_double($result); break; }
  • 6. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 6 default: throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); } return out; } // _invoke // Type-specific CORBA::Object operations private static String[] __ids = { "IDL:TempConvertApp/Convert:1.0"}; public String[] _all_interfaces(org.omg.PortableServer.POA poa, byte[] objectId) { return (String[]) __ids.clone(); } public Convert _this() { return ConvertHelper.narrow( super._this_object()); } public Convert _this(org.omg.CORBA.ORB orb) { return ConvertHelper.narrow( super._this_object(orb)); } } // class ConvertPOA 9. Buat File “_ConvertStub.java” Dan Letakkan Dalam Folder “TempConvertApp” package TempConvertApp; public class _ConvertStub extends org.omg.CORBA.portable.ObjectImpl implements TempConvertApp.Convert { public double cToF(double c) { org.omg.CORBA.portable.InputStream $in = null; try { //create a request via an output stream org.omg.CORBA.portable.OutputStream $out = _request("cToF", true); //marshal the arguments $out.write_double(c); //method invication via output stream and //connect to a input stream $in = _invoke($out); //unmarshal the return result double $result = $in.read_double(); return $result;
  • 7. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 7 } catch (org.omg.CORBA.portable.ApplicationException $ex) { $in = $ex.getInputStream(); String _id = $ex.getId(); throw new org.omg.CORBA.MARSHAL(_id); } catch (org.omg.CORBA.portable.RemarshalException $rm) { return cToF(c); } finally { _releaseReply($in); } } // cToF // Type-specific CORBA::Object operations private static String[] __ids = {"IDL:TempConvertApp/Convert:1.0"}; public String[] _ids() { return (String[]) __ids.clone(); } private void readObject(java.io.ObjectInputStream s) throws java.io.IOException { String str = s.readUTF(); String[] args = null; java.util.Properties props = null; org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init(args, props).string_to_object(str); org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate(); _set_delegate(delegate); } private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { String[] args = null; java.util.Properties props = null; String str = org.omg.CORBA.ORB.init(args, props).object_to_string(this); s.writeUTF(str); } } // class _ConvertStub 10. Buat File “ConvertServer.java” Dan Letakkan Di Dalam Folder Project “Corba” (Bukan package “TempConvertApp”) Merupakan file server yang memiliki 2 class: class ConvertImpl yang mewarisi atau meng-extends class ConvertPOA (kerangka CORBA) dan class satunya merupakan class untuk main() method.
  • 8. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 8 // ConvertServer.java import TempConvertApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import java.util.Properties; class ConvertImpl extends ConvertPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } // implement cToF() method public double cToF(double c) { return (c * 9. / 5 + 32); } } public class ConvertServer { public static void main(String args[]) { try { // create and initialize the ORB ORB orb = ORB.init(args, null); // get reference to rootpoa & activate the POAManager POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); // create servant and register it with the ORB ConvertImpl convertImpl = new ConvertImpl(); convertImpl.setORB(orb); //get object reference from servant org.omg.CORBA.Object ref = rootpoa.servant_to_reference(convertImpl); Convert href = ConvertHelper.narrow(ref); //get naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // cast the generic object reference to a proper type NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); //bind the name “Convert” with naming service NameComponent path[] = ncRef.to_name("Convert");
  • 9. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 9 ncRef.rebind( path, href); // wait for invocations from client orb.run(); } catch (Exception ex) { System.err.println("ERROR: " + ex); ex.printStackTrace(System.out); } } } 11. Buat File “ConvertClient.java” Dan Letakkan Di Dalam Folder Project “Corba” (Bukan package “TempConvertApp”) Adalah sebuah class untuk CORBA GUI Client yang mengakses komponen CORBA dari server. import TempConvertApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class ConvertClient extends JFrame { static Convert convertImpl; static JTextField input; static JTextField output; static ConvertClient a; static JButton submit, clear; public ConvertClient() { //layout the GUI Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); JLabel l1 = new JLabel("C input:"); JLabel l2 = new JLabel("F output"); input = new JTextField(10); output = new JTextField(10); submit = new JButton("SUBMIT"); clear = new JButton("Clear"); submit.addActionListener(new ActionHandler()); clear.addActionListener(new ActionHandler()); contentPane.add(l1); contentPane.add(input); contentPane.add(l2); contentPane.add(output); contentPane.add(submit); contentPane.add(clear); setTitle("Client Access");
  • 10. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 10 setSize(540, 250); show(); } public static void main(String args[]) { try { a = new ConvertClient(); // create and initialize the ORB ORB orb = ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. // This is part of the Interoperable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // resolve the Object Reference in Naming String name = "Convert"; convertImpl = ConvertHelper.narrow(ncRef.resolve_str(name)); } catch (Exception e) { System.out.println("ERROR : " + e); e.printStackTrace(System.out); } } class ActionHandler implements ActionListener { public void actionPerformed(ActionEvent e) { try { if (e.getSource() == submit) { System.out.println("Obtained a handle on server object:"); String temp = input.getText(); double a = Double.parseDouble(temp); double result = convertImpl.cToF(a); output.setText("" + result); } else if (e.getSource() == clear) { input.setText(""); output.setText(""); } } catch (Exception ex) { System.out.println("ERROR : " + e); ex.printStackTrace(System.out); } } } } 12. Setelah Membuat Code-nya, Jalankan CommandPrompt atau cmd
  • 11. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 11 Proses compile dan running aplikasi menggunakan console MS-DOS karena melalui Operating System Windows XP, jika melalui Linux, gunakanlah terminal.
  • 12. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 12 13. Masuk Ke Alamat Direktori Project Corba Pada percobaan yang saya lakukan, project Corba saya letakkan di alamat direktori E:Corba Gunakan perintah cd untuk masuk ke dalam folder 14. Compile File IDL Jalankan perintah berikut untuk mengcompile file Convert.idl idlj -fall Convert.idl
  • 13. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 13 15. Compile Semua Java File Ikuti perintah berikut untuk mengcompile semua file .java yang ada pada project Corba ini javac *.java TempConvertApp*.java Terlihat seperti error, ini hanya warning, tapi tidak apa-apa, hiraukan saja. Lanjutkan untuk step berikutnya. 16. Jalankan orbd start orbd - ORBInitialPort 1050
  • 14. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 14 Maka akan muncul DOS baru yang tidak menampilkan apa-apa, ini menyatakan bahwa orbd sedang dalam keadaan running. Jangan tutup jendela ini. 17. Jalankan ConvertServer start java ConvertServer - ORBInitialPort 1050 - ORBInitialHost localhost
  • 15. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 15 Akan muncul DOS baru, menyatakan bahwa java sedang running dengan memproses ConvertServer.java 18. Jalankan Aplikasi Client java ConvertClient - ORBInitialPort 1050 - ORBInitialHost localhost 19. Akan Muncul Frame Aplikasi Client
  • 16. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 16 20. Silahkan Lakukan Eksekusi Convert Suhu Celcius ke Fahrenheit
  • 17. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 17 DOWNLOAD PROJECT Silahkan download source code project ConverterCORBA tersebut di link berikut: http://ilmukomputer.org/wp-content/uploads/2010/12/ConverterCORBA.zip RESOURCE [1] Andy Ju An Wang and Kai Qian, “Component-Oriented Programming,” Wiley- Interscience. Southern Polytechnic State University, Marietta, Georgia, 2005. =0=0=0=0=0=0=0=0= Selamat Mencoba =0=0=0=0=0=0=0=0=
  • 18. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 18 Thank’s to: Rasa syukur selalu pantas dipanjatkan kepada ALLAH SWT yang telah memberikan saya kesempatan untuk tetap menuntut ilmu sebanyak-banyaknya. Kepada orang tuaku yang terus mendoakan dan membimbingku. Semoga aku bisa membalas kebaikan orang tuaku. AMIN...!!! Dosen-dosen yang telah membimbingku
  • 19. Komunitas eLearning IlmuKomputer.Com Copyright © 2003-2007 IlmuKomputer.Com 19 Biografi Penulis Mudafiq Riyan Pratama. Lahir di Jember pada tanggal 9 Mei 1989. Memulai pendidikan TK dan SD di Jenggawah. Menempuh SMP di SMPN 6 Jember yang kemudian dilanjutkan ke SMAN 2 Jember. Dan saat ini sedang menempuh kuliah S1 jurusan Teknik Informatika di Universitas Muhammadiyah Malang angkatan 2007. Didunia maya, penulis lebih sering memakai nama Dhafiq Sagara. YM : mudafiq.riyan FB : ray_dafier@yahoo.co.id