@AstikaAyuningtyas. Diberdayakan oleh Blogger.
RSS

CORBA

CORBA

       I.            Overview CORBA
Interoperabilitas adalah kemampuan saling bekerjasama antar sistem komputer. Sebenarnya  interoperabilitas bukanlah barang baru, karena protokol komunikasi datapun (TCP/IP misalnya) pada dasarnya diciptakan untuk mewujudkan interoperabilitas. Yang belum banyak dikenal adalah interoperabilitas pada level perangkat lunak aplikasi. 
Dalam konteks sistem komputasi  terdistribusi, meskipun komponen-komponen aplikasi dibuat dengan bahasa pemrograman yang berbeda, menggunakan development tools yang berbeda, dan beroperasi di lingkungan yang beragam, mereka tetap harus dapat saling bekerjasama. Interoperabilitas perangkat lunak  menuntut homogenitas pada suatu level tertentu. Untuk itu diperlukan semacam 'standarisasi'. 

Berawal dari keperluan ini lahirlah CORBA (Common Object Request Broker Architecture).
CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma  client server. Dalam terminologi OO, 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 memroses pesan yang bersangkutan).  

       I.            Perbedaan CORBA dan RMI
CORBA berbeda dengan RMI, berikut perbedaan CORBA dengan RMI:
1.      CORBA adalah dapat diimplementasikan dengan sembarang bahasa  pemrograman.
2.      CORBA terdiri dari beberapa mekanisme dimana RMI dapat termasuk di  dalamnya.
3.      Pada RMI tidak menggunakan ORB (Object Request Broker).
 

CORBA  pada  dasarnya  berbasis  pada protokol  yang  dinamakan  IIOP  (Internet  InterORB  Protocol)  untuk  berkomunikasi  dengan objek-objek  yang  ada  di  komputer  server  yang lain  (remoting  object). 
Segala  sesuatu yang  ada  di  dalam  arsitektur  CORBA  pada prinsip-nya  bergantung  pada  ORB  (Object Request  Broker),di  mana  ORB  ini  bertindak sebagai  sesuatu  yang  menghubungkan  (bertindak sebagai  bus)  masing-masing  objek  CORBA sehingga  mereka  dapat  saling  berinteraksi  baik secara lokal pada komputer yang sama (localhost) maupun  berinteraksi  secara  jarak  jauh  (remote). Masing-masing  objek  CORBA  yang bertindak  sebagai  server  memiliki  antarmuka (interface)  dan  memiliki  sejumlah  method  yang dapat  dimanfaatkan  oleh  objek-objek  CORBA yang  lainnya.  Untuk  meminta  layanan  tertentu, klien  CORBA  bisa  meminta  rujukan  objek tertentu  ke  komputer  server.  Selanjutnya  klien dapat melakukan pemanggilan  method  pada objek CORBA  yang  bertindak  sebagai  server  melalui rujukan objek seperti  jika objek  tersebut berada di ruang  memori  klien.  Komponen-komponen  ORB bertanggung jawab  untuk  menentukan implementasi  objek  yang  mana  yang  diinginkan klien, bertanggungjawab untuk  menyiapkan objek untuk  menerima  permintaan,  berkomunikasi dengannya,  dan  bertanggungjawab  untuk mengirimkan  hasil  eksekusi  implementasi  objek kembali  ke  arah  klien.  Sebuah  objek  CORBA berinteraksi dengan ORB melalui antarmuka ORB atau  melalui  Object  AdapterBOA  (Basic  Object Adapter)  atau  POA  (Portable  Object  Adapter). Dikarenakan  CORBA  merupakan spesifikasi,  maka  pada dasarnya bisa digunakan di berbagai  platform  sistem  operasi  yang  berbeda, mulai dari komputer-komputer besar (mainframe), komputer-komputer yang memiliki sistem operasi UNIX/Linux,  hingga  komputer-komputer  dengan sistem operasi Windows.

       I.            Keunikan CORBA 

Keunikan dari CORBA adalah kemampuannya dalam menangani heterogenitas antara clientdan server (dalam terminologi CORBA, obyek server dinamakan implementasi obyek (object implementation). Keduanya dapat saja diimplementasikan dalam hardware, sistem operasi, bahasa pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling berkomunikasi. Kuncinya ada pada sebuah lapisan software yang disebut dengan ORB (Object Request Broker).


Keterangan gambar 
ORB adalah middleware yang memungkinkan suatu object yang berada di client mengirim messsage ke suatu method yang terencapsulated oleh suatu object yang ada di server. Artinya, ORB meneruskan message dan menangani semua komunikasi dan koordinasi yang dibutuhkan untuk menemukan object yang dimaksud oleh message tadi, memanggil methodnya, melewatkan data yang sesuai ke object dan kirim data hasil kembali ke object yang membuat message tadi. Standar yang umum digunakan untuk mengimplementasikan ORB adalah : CORBA, COM, dan JavaBeans. Struktur sederhana CORBA adalah seperti pada Gambar di atas. Saat CORBA diimplementasikan di sistem C/S, object dan object dan class object pada client dan server didefinisikan menggunakan interface description language (IDL).


Skeletons adalah bagian kode yang dibangin pada kode implementasi server pada antarmuka (interface). Stub adalah bagian kode yang membuat antarmuka (interface) dapat diakse (available) oleh client Java menyediakan ORB (Object Request Broker) yang mendukung teknologi CORBA. ORB adalah komponen runtime yang dapat digunakan untuk distributed computing menggunakan komunikasi IIOP. OMG (Object Management Group) adalah industri yang membuat spesifikasi dan mempublikasikan CORBA. Java IDL (Interface Definition Langauge) merupakan sebuah teknologi untuk distribusi objek yang berinteraksi antar platform. CORBA menggunakan IDL untuk membuat antarmuka (interface). Java IDL adalah implementasi dari teknologi antarmuka pada CORBA. Model pemrograman IDL atau biasa disebut Java IDL terdiri dari ORB CORBA dan kompiler idlj yang memetakan OMG IDL ke Java dengan menggunakan Java CORBA ORB. Aplikasi CORBA  dibuat dengan menggunakan IDL untuk mendefinisikan antarmuka objek agar dapat diakses oleh klien maupun server.

KESIMPULAN

Komputasi terdistribusi merupakan sesuatu yang amat kompleks, apalagi jika ruang lingkupnya sangat luas (pada level enterprise misalnya).CORBA membantu menyederhanakan persoalan dengan menyembunyikan berbagai detail pekerjaan pada level rendah dan heterogenitas sistem dan platform.




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Perangkat Lunak Grafis

Perangkat Lunak Grafis
Struktur dasar perangkat lunak grafis dapat digambarkan sebagi berikut :

                     Gambar Dispaly Processor

Perbandingan GK dan Image
Elemen-elemen Dasar Grafika Komputer
Ada beberapa elemen dasar dari grafika komputer, antara lain:
-  Polyline
-  Text
-  Filled Region
-  Raster Image
o  Polyline
Polyline adalah deretan garis-garis lurus yang berhubungan. Polyline merupakan dasar dari setiap pembuatan grafik.
o  Text
Teks  menunjukkan  pola-pola  huruf  pada  komputer.  Hal  inimenyebabkan  layout  dari  hasil  editing  teks  dengan  menggunakan komputer menghasilkan banyak sekali variasi tulisan.
o  Filled Region
Filled Region  adalah bagaimana memberi (memblok) warna atau pattern pada sebuah area tertentu.
o  Raster Image
Raster   image   merupakan   cara   penyajian   gambar   menggunakan matriks dari  setiap sel gambar. Sebuah gambar didefinisikan sebagai array dari besaran-besaran numerik. Model data ini banyak digunakan untuk keperluan pengolahan citra.
Sistem Penampil Grafis/Grafika Komputer
o  Sistem Koordinat
Terdapat  2  sistem  koordinat  yang  digunakan  dalam  GK  yaitu  koordinat
cartesian dan koordinat layar/monitor.
Koordinat Cartesian
Sistem koordinat ini digunakan di berbagai konsep matematika, stastistik,
maupun grafika komputer
Koordinat Layar/Monitor
Koordinat   yang   ada   pada   layar   komputer.   Ini   digunakan   padaimplementasi/penerapan dengan program komputer.
Ilustrasi sistem penampil grafis

Sebuat pixel (titik gambar) pada monitor memiliki kode khusus yang tersimpan di memori,  sesuai  posisi  pixel  tersebut.  Sebagai  misal  kode  0  untuk  pixel  wana  dasar  dan  1 untuk warna dari pixel maka dalam memori terdapat dulplikat cita pixel dalam bentuk biner. Bila kombinasi warna pixel semakin banyak maka ruang memori yang  dibutuhkan semakin  besar,  karena  setiap  pixel  harus  dapat  diidentifikasi  posisi,  dan  kombinasi warnanya.

Pembangkit garis ( dari pixel )
(pixel : picture element – titik elemen gambar)
1.  Matrix pixel penampil gambar
2.  Algoritma Bresenham
1. Tentukan koordinat awal garis (x0,y0)
2. tentukan koordinat akhir garis (x1,y1)
3. Hitung jarak mendatar ke 2 titik (dx) --- Dx=x1-x0
4. Hitung jarak horisonal ke 2 titik (dy) ---- Dy=y1-y0
5. Tentukan faktor pembagi (mencari yg lebih panjang)
    Apakah dx>dy,bila ya
    Step=dx
    Bila tidak
    Step=dy
6. Hitung faktor penambah ke koordinat mendatar dan vertikal titik berikut
    (x_tambah,y_tambah)
   X_tambah=dx/step
   Y_tambah=dy/step
7. Buat loop mulai titik ke 1 sampai titik ke step
For k=1 to step
8. Hitung koodinat titik berikutnya
    X=x+x_tambah
    Y=y+y_tambah
9. gambar pikxel pada koordinat (x,y)
   Catatan :  koordinat x,y harus bulat (integer), sehingga  hasil dari perhitungan  diatas harus diinteger-kan
10. Ulangi langkah ke 7, dan setetrrsnya sampai titik ke step

Program untuk menciptakan garis dari titik dengan algoritma Bresenham
 


  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

PENGANTAR GRAFIKA KOMPUTER





PENGANTAR GRAFIKA KOMPUTER DAN SISTEM SERTA PENERAPANNYA


Apa fungsi komputer?
•  Mempercepat perhitungan
•  Jumlah data yang besar
•  Penyajian daya yang efisien dan efektif
So, salah satunya penyajian secara grafis --> munculnya grafika komputer
Why? Meningkatkan komunikasi manusia dengan mesin

A.  SISTEM GRAFIKA KOMPUTER
Data : grafik,  operator  tidak  dapat  berinteraksi  dengan  komputer  (statis).
Diinginkan  interaktif  melalui grafika komputer  :  operator  bisa mengendalikan  :
isi, format, bentuk, ukuran, warna.
- Sistem interaktif : mensimulasikan real world pada layar komputer.
- Berdasarkan cara pandang pada layar :
o  Motion dynamic : objek bergerak, kita sbg pengamat (diam) atau sebaliknya.
    ex : flight simulator
o  Update dynamic : perubahan sifat pada objek (bentuk,warna).
    ex : simulasi tabrakan mobil

B.  PENERAPAN GRAFIKA KOMPUTER
1. Computer Aided Design (CAD)
2. Presentasi Art
3. Hiburan
4. Pendidikan dan Pelatihan
5. Visualisasi

C.  KLASIFIKASI PENERAPAN GRAFIKA KOMPUTER
1. Berdasarkan tipe dari objek dan gambar yang dihasilkan
2. Berdasarkan interaksi dan derajat pengendalian objek/gambar dalam layar
3. Berdasarkan role of the picture
4. Berdasarkan hubungan antara objek dan gambar yang tertampil.

Image Processing vs Computer Graphics


Image Processing vs Computer Graphics

MONITOR
Komponen Utama Monitor :
1.  Display
2.  Frame Buffer :  berbentuk matrix
3.  Display Controller/Display processor
Dari cara menampilkan gambar :
1.  Vector Display/Calligraphic Display/Stroke Display (60-an)
     Gafik  vektor  (vector  graphics)  terbentuk  dari  garis  dan kurva  yang  didefinisikan  secara  matematis  yang  disebut vektor.
2.  Raster Display. (70-an)

PRINTER vs PLOTTER
1.  Printer : Raster Technology
2.  Plotter : Vector Technology

D.  KLASIFIKASI PENERAPAN GRAFIKA KOMPUTER
Software pengolah tata letak (layout)
- Software pengolah tata letak  : yang banyak  digunakan untuk pembuatan publikasi seperti buku  atau majalah dengan jumlah halaman yang banyak ini memiliki kemampuan mengatur penempatan teks dan gambar yang biasanya dilengkapi dengan fasilitas pengaturan format teks dan template yang  lengkap.  Software  yang  termasuk  dalam  kelompok  ini  diantaranya adalah   Adobe  Pagemaker,  Adobe  FrameMaker,  Adobe  InDesign,  Quark Xpress, Corel Ventura, Microsoft Word dan Microsoft Publisher.
- Software pengolah vektor/ garis
Software dalam kelompok ini banyak digunakan  untuk mengolah gambar dalam bentuk  garis  dan  kurva,  sehingga  sering disebut  sebagai  software ilustrasi. Software yang termasuk dalam kelompok  ini diantaranya adalah CorelDraw,  Macromedia  FreeHand,  Adobe  Illustrator,  Metacreation Expression dan Micrografx designer.
- Software pengolah pixel/ image
Software dalam kelompok ini banyak digunakan  untuk memanipulasi dan memperbaiki foto atau  membuat lukisan digital.Software yang termasuk dalam  kelompok  ini  diantaranya  adalah  Adobe  PhotoShop,  Corel PhotoPaint,  Microsoft  Photo  Editor,  Micrografx  Picture  Publiser,  dan Metacreation Painter.
- Software pengolah animasi 2 dimensi/ video
Software  dalam  kelompok  ini  banyak  digunakan  untuk  mengolah, memproduksi  atau  mengedit  animasi  dua  dimensi/  video.  Dan  software dalam kelompok ini masih dapat dibagi menjadi tiga kelompok lagi,  yaitu: software  editing  video,  software  efek  khusus,  dan  software  pengolah animasi.
o  Software editing video
Yang  termasuk  software  editing  video  yang  diantaranya  adalah Adobe  Premiere,  Ulead  MediaStudio,  Ulead  Video  Studio,  Vegas Video,  Asymetrix  Digital  Video  Producer,  Film  Edit,  dan  Discreet Edit.
o  Software efek khusus
Sementara  yang  termasuk  software  efek  khusus  adalah  Adobe AfterEffects, Discreet Logic Effects,Avid Media dan Digital Fussion.
o  Software pengolah animasi dua dimensi
Dan  yang  termasuk  software  pengolah  animasi  dua  dimensi adalah Macromedia Flash, SoftImage Toonz, dan Animo.Software pengolah animasi tiga dimensi Software  dalam  kelompok  ini  banyak  digunakan  untuk  mengolah  model dan  animasi  tiga  dimensi  seperti  yang  telah  banyak  digunakan  dalam pembuatan film animasi tiga dimensi seperti Star  Trex, babylon V, Bug’s Life,  Toy  Story  dan  Jurassic  Park.  Dan  software  yang  termasuk  dalam kelompok  ini  adalah  3D  Studio,  3D  Studio  Max,  Lightwave,  Maya,  Ray Dream, Poser, dan SoftImage.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Contoh Binary Tree

Binary Tree

#include <stdio.h>
#include <conio.h>

typedef struct Node{
                int data;
                Node *kiri;
                Node *kanan;
                 };

//Menambah data pada tree
void tambah(Node **root,int databaru){
    if((*root) == NULL){
    //Data baru di declare sebagai node -->akar(root)
        Node *baru;
        baru = new Node;
        baru->data = databaru;
        //left and right masih empty set
        baru->kiri = NULL;
        baru->kanan = NULL;
        (*root) = baru;
        (*root)->kiri = NULL;
        (*root)->kanan = NULL;
        printf("Data bertambah!");
    }
        //Menambah susunan data
        //jika data yang ditambah(databaru<akarnya-root-->kiri)
        else if(databaru < (*root)->data)
        tambah(&(*root)->kiri,databaru);
        //Jika data yang ditambah(databaru>akarnya-root-->kanan)
        else if(databaru > (*root)->data)
        tambah(&(*root)->kanan,databaru);
        //Jika data yang ditambah(databaru)==akarnya->data sudah ada)
        else if(databaru == (*root)->data)
        printf("Data sudah ada!");
}
//Fungsi untuk pre order (Node(data)-->Left-->Right)
void preOrder(Node *root){
    //kondisi jika root terisi/tidak boleh kosong
    if(root != NULL){
        printf("%d ",root->data);
        preOrder(root->kiri);
        preOrder(root->kanan);
    }
}

//Fungsi untuk in order (Left-->Node(data)-->Right)
void inOrder(Node *root){
    //kondisi jika root terisi/tidak boleh kosong
    if(root != NULL){
        inOrder(root->kiri);
        printf("%d ",root->data);
        inOrder(root->kanan);
    }
}

//Fungsi untuk post order (Left-->Right-->Node(data))
void postOrder(Node *root){
    //kondisi jika root terisi/tidak boleh kosong
    if(root != NULL){
        postOrder(root->kiri);
        postOrder(root->kanan);
        printf("%d ",root->data);
    }
}

void main(){
    int pil,c;
    //deklarasi pohon/tree
    Node *pohon,*t;
    //set kondisi awal pohon=0
    pohon = NULL;
    do{
        clrscr();
        //Menu tampilan awal saja-untuk menjalankan fungsi pilihan
        int data;
        printf("MENU\n");
        printf("1. Tambah\n");
        printf("2. Lihat pre-order\n");
        printf("3. Lihat in-order\n");
        printf("4. Lihat post-order\n");
        printf("5. Exit\n");
        printf("Pilihan : "); scanf("%d",&pil);
        switch(pil){
            //Kondisi jika menjalankan fungsi menambah data
            case 1:  printf("Data baru : ");scanf("%d",
                        &data);
                        tambah(&pohon,data);
                        break;
            //Kondisi jika menjalankan fungsi tampilkan data secara preOrder
            case 2:  if(pohon!=NULL) preOrder(pohon);
                        else printf("Masih kosong!");
                        break;
            //Kondisi jika menjalankan fungsi tampilkan data secara inOrder
            case 3:  if(pohon!=NULL) inOrder(pohon);
                        else printf("Masih kosong!");
                        break;
            //Kondisi jika menjalankan fungsi tampilkan data secara postOrder
            case 4:  if(pohon!=NULL) postOrder(pohon);
                        else printf("Masih kosong!");
                        break;
                    }
            getch();
            //Sampai kondisi false berhenti
            }while(pil!=5);
}

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS