(JavaEE)Arsitektur Java Web Vaadin Framework

architecture-detailed-lo

Vaadin menyediakan dua model pengembangan untuk aplikasi web: untuk sisi klien (browser) dan server-side. Server-driven model pembangunan adalah yang lebih kuat, yang memungkinkan pengembangan aplikasi hanya pada sisi server, dengan memanfaatkan Vaadin berbasis AJAX Client-Side Engine yang membuat user interface dalam browser. Model client-side memungkinkan mengembangkan widget dan aplikasi di Jawa, yang dikompilasi untuk JavaScript dan dieksekusi di browser. Kedua model dapat berbagi widget mereka UI, tema, dan kode back-end dan layanan, dan dapat dicampur bersama-sama dengan mudah.

memberikan ilustrasi dasar dari sisi klien dan server-side komunikasi, dalam situasi berjalan di mana halaman dengan kode sisi klien (mesin atau aplikasi) telah awalnya dibuka di browser.

Vaadin Kerangka terdiri dari API server-side, API sisi klien, segerombolan komponen / widget user interface pada kedua belah pihak, untuk mengendalikan penampilan tema, dan model data yang memungkinkan mengikat komponen server-side langsung ke data . Untuk pengembangan client-side, itu termasuk Compiler Vaadin, yang memungkinkan kompilasi Jawa untuk JavaScript.

Sebuah aplikasi Vaadin sisi server berjalan sebagai servlet dalam server web Java, melayani permintaan HTTP. VaadinServlet ini biasanya digunakan sebagai kelas servlet. Servlet menerima permintaan klien dan inteprets mereka sebagai acara untuk sesi pengguna tertentu. Acara yang terkait dengan komponen antarmuka pengguna dan dikirimkan ke pendengar acara didefinisikan dalam aplikasi. Jika logika UI membuat perubahan pada komponen antarmuka pengguna server-side, servlet membuat mereka di web browser dengan menghasilkan tanggapan. Mesin client-side berjalan di browser menerima tanggapan dan menggunakan mereka untuk membuat perubahan yang diperlukan ke halaman dalam browser.

Bagian utama dari arsitektur server pengembangan-driven dan fungsi mereka adalah sebagai berikut:

User Interface
Aplikasi Vaadin menyediakan antarmuka pengguna bagi pengguna untuk antarmuka dengan logika bisnis dan data aplikasi. Pada tingkat teknis, UI tersebut direalisasikan sebagai kelas UI yang memanjang com.vaadin.ui.UI. Tugas utamanya adalah untuk menciptakan user interface awal dari komponen UI dan mengatur pendengar acara untuk menangani input pengguna. UI kemudian dapat dimuat di browser menggunakan URL, atau dapat ditanamkan ke halaman HTML. Untuk informasi rinci tentang pelaksanaan UI, lihat Bab 4, Menulis Server-Side Aplikasi Web.

Harap dicatat bahwa istilah “UI” digunakan di seluruh buku ini untuk merujuk baik kepada konsep UI umum serta konsep kelas UI teknis.

Komponen / Widget User Interface
User interface dari aplikasi Vaadin terdiri dari komponen yang dibuat dan ditata oleh aplikasi. Setiap komponen server-side memiliki rekan sisi klien, sebuah “widget”, dengan yang diberikan di browser dan dengan mana pengguna berinteraksi. Widget sisi klien juga dapat digunakan oleh aplikasi client-side. Komponen sisi server menyampaikan peristiwa ini ke logika aplikasi. Komponen medan yang memiliki nilai, dimana pengguna dapat melihat atau mengedit, dapat terikat ke sumber data (lihat di bawah). Untuk penjelasan lebih rinci dari arsitektur komponen UI, lihat Bab 5, User Interface Komponen.

Client-Side Mesin
The Client-Side Engine Vaadin mengelola rendering ther UI di web browser dengan menggunakan berbagai widget sisi klien, rekan-rekan dari komponen server-side. Ini mengkomunikasikan interaksi pengguna ke server-side, dan kemudian kembali membuat perubahan di UI. Komunikasi yang dibuat menggunakan asynchronous HTTP atau HTTPS permintaan. Lihat Bagian 3.3, “Client-Side Mesin”.

Vaadin Servlet
Aplikasi Vaadin Server-side bekerja di atas Java Servlet API (lihat Bagian 3.2.5, “Java Servlets”). The Vaadin servlet, atau lebih tepatnya kelas VaadinServlet, menerima permintaan dari klien yang berbeda, menentukan pengguna sesi mereka milik dengan melacak sesi dengan cookie, dan mendelegasikan permintaan untuk sesi yang sesuai mereka. Anda dapat menyesuaikan servlet Vaadin dengan memperluas.

Tema
Vaadin membuat pemisahan antara penampilan dan komponen struktur antarmuka pengguna. Sementara logika UI ditangani sebagai kode Java, presentasi didefinisikan dalam tema sebagai CSS atau Sass. Vaadin menyediakan sejumlah tema default. Tema pengguna dapat, selain style sheet, termasuk template HTML yang mendefinisikan tata letak kustom dan sumber daya lainnya, seperti gambar. Tema yang dibahas secara rinci dalam Bab 8, Tema.

Acara
Interaksi dengan komponen antarmuka pengguna menciptakan peristiwa, yang pertama kali diproses pada sisi klien dengan widget, kemudian melewati semua jalan melalui server HTTP, Vaadin servlet, dan komponen antarmuka pengguna ke pendengar acara didefinisikan dalam aplikasi. Lihat Bagian 3.4, “Acara dan Pendengar”.

Server push
Selain model pemrograman event-driven, Vaadin mendukung push server, di mana perubahan UI didorong langsung dari server ke klien tanpa permintaan klien atau acara. Hal ini memungkinkan untuk memperbarui UIS segera dari benang lain dan UIS lainnya, tanpa harus menunggu permintaan. Lihat Bagian 11.15, “Server push”.

Data Binding
Selain model antarmuka pengguna, Vaadin menyediakan model data untuk data yang mengikat disajikan dalam komponen bidang, seperti bidang teks, kotak cek dan komponen seleksi, ke sumber data. Menggunakan model data, komponen antarmuka pengguna dapat memperbarui data aplikasi langsung, seringkali tanpa perlu untuk setiap kode kontrol. Semua komponen lapangan di Vaadin menggunakan model data internal, tetapi salah satu dari mereka dapat terikat ke sumber data terpisah juga. Misalnya, Anda dapat mengikat komponen meja untuk respon query SQL. Untuk gambaran lengkap dari Data Model Vaadin, lihat Bab 9, Komponen Binding Data.

Client-Side Aplikasi
Selain aplikasi web server-side, Vaadin mendukung modul aplikasi client-side, yang berjalan di browser. Modul client-side dapat menggunakan widget yang sama, tema, dan layanan back-end aplikasi Vaadin server-side. Mereka berguna ketika Anda memiliki kebutuhan untuk logika UI yang sangat responsif, seperti untuk permainan atau untuk melayani sejumlah besar klien dengan kemungkinan kewarganegaraan kode sisi server, dan untuk berbagai keperluan lainnya, seperti menawarkan mode off-line untuk server aplikasi-side. Silakan lihat Bab 14, Client-Side Aplikasi untuk rincian lebih lanjut.

Back-end
Vaadin dimaksudkan untuk membangun user interface, dan dianjurkan bahwa lapisan aplikasi lain harus disimpan terpisah dari UI. Logika bisnis dapat berjalan dalam servlet yang sama dengan kode UI, biasanya dipisahkan setidaknya oleh API Java, mungkin sebagai EJBs, atau didistribusikan ke layanan back-end jarak jauh. Penyimpanan data biasanya didistribusikan ke sistem manajemen database, dan biasanya diakses melalui solusi ketekunan, seperti JPA.

Advertisements

(JavaEE)Ebook Vaadin 7

Capture

Vaadin is an AJAX web application development framework that enables developers to build high-quality
user interfaces with Java, both on the server- and client-side. It provides a set of libraries of ready-to-use
user interface components and a clean framework for creating your own components. The focus is on easeof-
use, re-usability, extensibility, and meeting the requirements of large enterprise applications.
All rights reserved. This work is licensed under the Creative Commons CC-BY-ND License Version 2.0.

https://github.com/vaadin/addressbook

(JavaEE)Install Vaadin plugin For Eclipse

The easiest way to get started with Vaadin development is to install the Vaadin Plug-in for Eclipse. You don’t need to download or install anything else but the plug-in to your Eclipse IDE for Java EE Developers (Ganymede or newer) to start development. Learn more about the features.

To install the plugin:

Select Install New Software… from the Help -menu
install new software:
a

Eclipse 3.5 and newer: http://vaadin.com/eclipse
Eclipse 3.4: http://vaadin.com/eclipse/3.4
Visual Designer not available in the Eclipse 3.4 version.
Select the features you want to install and click Next to proceed with the installation.
Alternatively you can install the Vaadin Plug-in for Eclipse from the Eclipse Marketplace or you can download an offline installation package for Vaadin 6 from the Directory.

If you are looking for the latest nightly build version of the plug-in, you can use http://vaadin.com/eclipse/experimental update site.

(JavaEE)Pengenalan Java Web Framework Vaadin

vaadin

Dalam dunia java banyak kita kenal dengan bagian-bagiannya, karena banyak sekali perkembangan di dunia web, sehingga dari team di dunia selalu mengeluarkan teknologi kemudahan yang ditujukan kepada pengembang, sebenarnya banyak Framework Web java yang ada, sebelumnya saya memperkenalkan Framework Zkoss dan teknologinya.

sebenarnya sama dengan postingan ZK yang sebelumnya ane posting, mereka sama sama menggunakan teknologi ajax dan plugin mereka sendiri, untuk keuntungan dan kerugiannya tidak jauh beda, dari animasi yang diberikan hingga sequrity yang digunakan, kenapa banyak orang membuat aplikasi berbasis web dari pada aplikasi berbasis desktop, jawabannya simple, karena mudah di gunakan dan ringan untuk penggunaaannya, tidak seperti aplikasi desktop dan mobile, dan di vaadin juga mensupport web mobile juga untuk pengenmbangannnya, jadi tidak rugi kalo teman teman bisa mencoba itu semua.

At Vaadin you’ll find a work environment where the best ideas develop in the brightest of minds. Exchange ideas and learn by being a part of the team, create open source technology that will be used by software developers all around the world and see how software development teams build web applications in the top companies.(https://vaadin.com/company#personnel)

https://vaadin.com/

(Java)Membuat dinding dan lantai model adegan _ Jmonkey

diding
Perjalanan jauh dan makin jauh hingga ke ujung dunia mari kita hampiri,Tutorial kali ini menunjukkan bagaimana agan memuat model adegan dan memberikan dinding solid dan lantai untuk karakter untuk berjalan-jalan. agan menggunakan RigidBodyControl untuk adegan collidable statis, dan CharacterControl untuk ponsel karakter user. agan juga belajar bagaimana mengatur default kamera user untuk bekerja dengan navigasi fisika dikendalikan. agan dapat menggunakan solusi yang ditampilkan di sini untuk penembak orang pertama, labirin, dan permainan serupa. dari beberapa code di bawah ini, banyak sekali implementasi fisiki dan matematika yang kita mainkan, karena pada saat peletakan dinding dan lantai harus sesuai.

FIle yang di butuhkan town.zip dapat di download Sini

Create Project dengan nama HelloCollision dan ketikkan program di bawah ini:

package mygame;

import com.jme3.app.SimpleApplication;
import com.jme3.asset.plugins.ZipLocator;
import com.jme3.bullet.BulletAppState;
import com.jme3.bullet.collision.shapes.CapsuleCollisionShape;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.CharacterControl;
import com.jme3.bullet.control.RigidBodyControl;
import com.jme3.bullet.util.CollisionShapeFactory;
import com.jme3.input.KeyInput;
import com.jme3.input.controls.ActionListener;
import com.jme3.input.controls.KeyTrigger;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;

/**
 * test
 * @author Victor Annabe
 */
public class Main extends SimpleApplication implements ActionListener{

    private Spatial sceneModel;
  private BulletAppState bulletAppState;
  private RigidBodyControl landscape;
  private CharacterControl player;
  private Vector3f walkDirection = new Vector3f();
  private boolean left = false, right = false, up = false, down = false;
 
  public static void main(String[] args) {
    Main app = new Main();
    app.start();
  }
 
  public void simpleInitApp() {
    bulletAppState = new BulletAppState();
    stateManager.attach(bulletAppState);
   
    viewPort.setBackgroundColor(new ColorRGBA(0.7f, 0.8f, 1f, 1f));
    flyCam.setMoveSpeed(100);
    setUpKeys();
    setUpLight();
 
    assetManager.registerLocator("G:/town.zip", ZipLocator.class);
    sceneModel = assetManager.loadModel("main.scene");
    sceneModel.setLocalScale(2f);
 
    CollisionShape sceneShape =
            CollisionShapeFactory.createMeshShape((Node) sceneModel);
    landscape = new RigidBodyControl(sceneShape, 0);
    sceneModel.addControl(landscape);
 
    CapsuleCollisionShape capsuleShape = new CapsuleCollisionShape(1.5f, 6f, 1);
    player = new CharacterControl(capsuleShape, 0.05f);
    player.setJumpSpeed(20);
    player.setFallSpeed(30);
    player.setGravity(30);
    player.setPhysicsLocation(new Vector3f(0, 10, 0));
 
    rootNode.attachChild(sceneModel);
    bulletAppState.getPhysicsSpace().add(landscape);
    bulletAppState.getPhysicsSpace().add(player);
  }
 
  private void setUpLight() {
    AmbientLight al = new AmbientLight();
    al.setColor(ColorRGBA.White.mult(1.3f));
    rootNode.addLight(al);
 
    DirectionalLight dl = new DirectionalLight();
    dl.setColor(ColorRGBA.White);
    dl.setDirection(new Vector3f(2.8f, -2.8f, -2.8f).normalizeLocal());
    rootNode.addLight(dl);
  }
 
  private void setUpKeys() {
    inputManager.addMapping("Left", new KeyTrigger(KeyInput.KEY_A));
    inputManager.addMapping("Right", new KeyTrigger(KeyInput.KEY_D));
    inputManager.addMapping("Up", new KeyTrigger(KeyInput.KEY_W));
    inputManager.addMapping("Down", new KeyTrigger(KeyInput.KEY_S));
    inputManager.addMapping("Jump", new KeyTrigger(KeyInput.KEY_SPACE));
    inputManager.addListener(this, "Left");
    inputManager.addListener(this, "Right");
    inputManager.addListener(this, "Up");
    inputManager.addListener(this, "Down");
    inputManager.addListener(this, "Jump");
  }
 
  public void onAction(String binding, boolean value, float tpf) {
    if (binding.equals("Left")) {
      left = value;
    } else if (binding.equals("Right")) {
      right = value;
    } else if (binding.equals("Up")) {
      up = value;
    } else if (binding.equals("Down")) {
      down = value;
    } else if (binding.equals("Jump")) {
      player.jump();
    }
  }
 
  @Override
  public void simpleUpdate(float tpf) {
    Vector3f camDir = cam.getDirection().clone().multLocal(0.6f);
    Vector3f camLeft = cam.getLeft().clone().multLocal(0.4f);
    walkDirection.set(0, 0, 0);
    if (left)  { walkDirection.addLocal(camLeft); }
    if (right) { walkDirection.addLocal(camLeft.negate()); }
    if (up)    { walkDirection.addLocal(camDir); }
    if (down)  { walkDirection.addLocal(camDir.negate()); }
    player.setWalkDirection(walkDirection);
    cam.setLocation(player.getPhysicsLocation());
  }
}
 

Penjelasan

 public class Main extends SimpleApplication implements ActionListener{

bahwa dalam class main kita menurunkan sifat SimpleApplication karena ini merupakan class dasar untuk semua jME3 dan kita menginterface kan ActionListener agar membuat inputan navigasi
  private Spatial sceneModel;
  private BulletAppState bulletAppState;
  private RigidBodyControl landscape;
  private CharacterControl player;
  private Vector3f walkDirection = new Vector3f();
  private boolean left = false, right = false, up = false, down = false;

Mendeklarasikan berbagai bidang :

- TBulletAppState memberikan ini akses ke fitur SimpleApplication fisika (seperti deteksi tabrakan) yang disediakan oleh integrasi jBullet jME3 ini
- Tata Ruang sceneModel adalah untuk memuat model OgreXML dari kota.
- RigidBodyControl untuk membuat model kota padat.
- The (invisible) orang pertama pemain diwakili oleh objek CharacterControl.
- Bidang walkDirection dan empat Booleans digunakan untuk navigasi fisika dikendalikan.
  viewPort.setBackgroundColor(new ColorRGBA(0.7f,0.8f,1f,1f));
    flyCam.setMoveSpeed(100);
    setUpKeys();
    setUpLight();

- mengatur warna latar belakang sampai biru, karena ini adalah sebuah adegan dengan langit.
- repurpose default kamera kontrol "flyCam" sebagai kamera pertama-orang dan mengatur kecepatan.
- Method setUpLights tambahan () menambahkan sumber cahaya Anda.
- Method setUpKeys tambahan () mengkonfigurasi masukan pemetaan.
    bulletAppState = new BulletAppState();
    stateManager.attach(bulletAppState);

    assetManager.registerLocator("town.zip", ZipLocator.class);
    sceneModel = assetManager.loadModel("main.scene");
    sceneModel.setLocalScale(2f);

assetManager.registerLocator merupakan tempat dimana kita akan meload data model yang akan di masukkan ke bidang kanvas.

   CollisionShape sceneShape = CollisionShapeFactory.createMeshShape((Node) sceneModel);
    landscape = new RigidBodyControl(sceneShape, 0);
    sceneModel.addControl(landscape);
    rootNode.attachChild(sceneModel);

Untuk menggunakan deteksi kesesuaian, agan menambahkan RigidBodyControl kepada sceneModel Ruang. The RigidBodyControl untuk model yang kompleks membutuhkan dua argumen: Sebuah Bentuk kesesuaian, dan massa benda.

JME3 menawarkan CollisionShapeFactory yang precalculates tabrakan bentuk mesh akurat untuk Ruang. agan memilih untuk menghasilkan CompoundCollisionShape (yang memiliki MeshCollisionShapes sebagai anak-anaknya) karena jenis ini berbentuk tabrakan yang optimal untuk objek bergerak, seperti medan, rumah, dan tingkat penembak utuh.
agan menetapkan massa ke nol karena adegan statis dan massanya adalah irrevelant.
Tambahkan kontrol ke Spasial untuk memberikan sifat fisik.
Seperti biasa, pasang sceneModel untuk rootNode untuk membuatnya terlihat.
Tip: Jangan lupa untuk menambahkan sumber cahaya sehingga agan dapat melihat adegan.
 private void setUpKeys() {
    inputManager.addMapping("Left", new KeyTrigger(KeyInput.KEY_A));
    inputManager.addMapping("Right", new KeyTrigger(KeyInput.KEY_D));
    inputManager.addMapping("Up", new KeyTrigger(KeyInput.KEY_W));
    inputManager.addMapping("Down", new KeyTrigger(KeyInput.KEY_S));
    inputManager.addMapping("Jump", new KeyTrigger(KeyInput.KEY_SPACE));
    inputManager.addListener(this, "Left");
    inputManager.addListener(this, "Right");
    inputManager.addListener(this, "Up");
    inputManager.addListener(this, "Down");
    inputManager.addListener(this, "Jump");
  }

model digunakan untuk menginputkan aktifitas gerak yang digunakan dalam sebuah game biasanya, aktifitas mouse dan keyboard sebagai default input system.

dan untuk code di bawahnya sudah saya jelaskan di postingan sebelumnya mengenai inputsystem dan sebagainya, sehingga jika agan belum membaca postingan sebelumnya silakan datang ke postingan sebelumnya. Terima kasih

(Networking) RIP v1 VS RIP v2 dan perbandingannya

RKrjB

RIPv1

RIP merupakan routing information protokol yang memberikan routing table berdasarkan router yang terhubung langsung, Kemudian router selanjutnya akan memberikan informasi router selanjutnya yang terhubung langsung dengan itu. Adapun informasi yang dipertukarkan oleh RIP yaitu : Host, network, subnet, rute default.
Ciri-ciri RIP versi 1 :
-hanya mendukung routing classfull
-tidak ada info subnet yang dimasukkan dalam perbaikan routing
-tidak mendukung VLSM (Variabel Length Subnet Mask)
-perbaikan routing broadcast

configurasi :

R2(config)#router rip
R2(config-router)#network 10.0.0.0
R2(config-router)#network 192.168.1.0

RIPv2

Secara umum RIPv2 tidak jauh berbeda dengan RIPv1. Perbedaan yang ada terlihat pada informasi yang ditukarkan antar router. Pada RIPv2 informasi yang dipertukarkan yaitu terdapat autenfikasi pada RIPv2 ini.
Ciri-ciri RIP versi 2 :
-mendukung routing classfull dan routing classless
-info subnet dimasukkan dalam perbaikan routing
-mendukung VLSM (Variabel Length Subnet Mask)
-perbaikan routing multicast

Configurasi :

R2(config)#router rip
R2(config-router)#network 10.0.0.0
R2(config-router)#network 192.168.1.0
R2(config-router)#version 2

Kesimpulan : Bahwa RIP v2 merupakan perkembangan dari RIP v1, dengan dilihat dari beberapa keuntungan yang di berikan, RIP v2 sangat baik di gunakan, traffic penggunaan di dunia bahwa RIP v2 banyak di gunakan dari pada RIP v1 dan sebagainya, karena harganya yang relatif dan mudah di lakukan configurasi Routingnya.

(Networking)Perbedaan IP Public dan IP Private

IP(Internet Protocol) address adalah deretan angka biner antar 32-bit sampai 128-bit yang dipakai sebagai alamat identifikasi untuk tiap komputer host dalam jaringan Internet. Panjang dari angka ini adalah 32-bit (untuk IPv4 atau IP versi 4), dan 128-bit (untuk IPv6 atau IP versi 6) yang menunjukkan alamat dari komputer tersebut pada jaringan Internet berbasis TCP/IP.

Sistem pengalamatan IP ini terbagi menjadi dua, yakni:
IP versi 4 (IPv4)
IP versi 6 (IPv6)

IP

IP(Internet Protocol) Public

Selain di bawah ini merupakan IP Public
10.0.0.1 s/d 10.255.255.254 (Private)
172.16.0.1 s/d 172.31.255.254(Private)
192.168.0.1 s/d 192.168.255.254(Private)

IP Public adalah IP yang bisa diakses langsung oleh internet. Analoginya IP Public itu seperti kamu punya nomer telepon rumah atau nomer HP yang bisa ditelepon langsung oleh semua orang. alamat-alamat ini telah ditetapkan oleh InterNIC dan berisi beberapa buah network identifier yang telah dijamin unik (artinya, tidak ada dua host yang menggunakan alamat yang sama) jika jaringan tersebut telah terhubung ke Internet.

Sebuah alamat IP publik yang ditugaskan untuk setiap komputer yang terhubung pada internet dimana setiap IP adalah unik. Maka akan tidak bisa ada dua komputer dengan alamat IP publik yang sama dalam seluruh Internet. Skema pengalamatan memungkinkan komputer untuk “menemukan satu sama lain” dan melakukan pertukaraninformasi. Pengguna tidak memiliki kontrol atas alamat IP (publik) yang diberikan ke komputer. Alamat IP publik ditugaskan untuk komputer oleh Internet Service Provider secara langsung setelah komputer terhubung ke gateway Internet.

Sebuah alamat IP publik dapat berupa statis atau dinamis. Sebuah alamat IP public static tidak dapat berubah dan digunakan terutama untuk hosting halaman Web atau layanan di Internet. Di sisi lain sebuah alamat IP publik yang dinamis dipilih dari sebuah pool yang tersedia pada alamat dan perubahan masing-masing terjadi satu kali untuk menghubungkan ke Internet. Sebagian besar pengguna internet hanya akan memiliki IP dinamis yang bertugas untuk setiap komputer. Ketika terjadi disconnetted atau jaringan terputus/padam apabila menghubungkannya kembali maka otomatis akan mendapat IP baru.

Sobat dapat mencek ip public yang anda gunakan di http://www.whatismyip.com

IP(Internet Protocol) Private

10.0.0.1 s/d 10.255.255.254
172.16.0.1 s/d 172.31.255.254
192.168.0.1 s/d 192.168.255.254

IP Private adalah IP yang biasanya digunakan dalam jaringan yang tidak terhubung ke internet atau bisa juga terhubung ke internet tapi melalui NAT.

Sebuah alamat IP dianggap pribadi jika nomor IP termasuk dalam salah satu rentang alamat IP untuk jaringan pribadi seperti Local Area Network (LAN). Internet Assigned Numbers Authority (IANA) telah mereservd tiga blok berikut ruang alamat IP untuk jaringan pribadi (jaringan lokal):

10.0.0.0 – 10.255.255.255 (Total Addresses: 16,777,216)
172.16.0.0 – 172.31.255.255 (Total Addresses: 1,048,576)
192.168.0.0 – 192.168.255.255 (Total Addresses: 65,536)

Alamat IP Private/Pribadi yang digunakan untuk penomoran komputer dalam jaringan pribadi termasuk rumah, sekolah dan LAN bisnis di bandara dan hotel yang memungkinkan komputer dalam jaringan untuk berkomunikasi satu sama lain. Katakanlah misalnya, jika jaringan X terdiri dari 10 komputer masing-masing dapat diberikan IP mulai dari 192.168.1.1 ke 192.168.1.10. Berbeda dengan IP publik, administrator jaringan pribadi bebas untuk menetapkan alamat IP dari pilihannya sendiri (disediakan nomor IP pada kisaran alamat IP pribadi seperti yang disebutkan di atas).

Perangkat dengan alamat IP private tidak dapat terhubung langsung ke Internet. Demikian juga, komputer di luar jaringan lokal tidak dapat terhubung langsung ke perangkat dengan IP pribadi. Hal ini dimungkinkan untuk menghubungkan dua jaringan pribadi dengan bantuan router atau perangkat serupa yang mendukung Network Address Translation.

Jika jaringan pribadi yang terhubung ke Internet (melalui koneksi Internet melalui ISP) maka setiap komputer akan memiliki IP swasta maupun IP publik. Private IP dipakai untuk komunikasi dalam jaringan dimana IP publik digunakan untuk komunikasi melalui Internet. Kebanyakan pengguna internet dengan koneksi DSL / ADSL akan memiliki Ip seperti IP publik.
Anda dapat mengetahui IP pribadi Anda dengan mengetikkan perintah ipconfig di command prompt. Jumlah yang Anda lihat terhadap “IPv4 Address:” adalah IP pribadi Anda yang dalam banyak kasus akan 192.168.1.1 atau 192.168.1.2. Berbeda dengan IP publik, swasta alamat IP yang selalu statis dan alami.

Tidak seperti apa yang kebanyakan orang anggap, IP pribadi bukan suatu yang mustahil untuk melacak (seperti nomor telepon swasta) atau yang dicadangkan untuk penggunaan stealth Internet. Pada kenyataannya tidak ada alamat IP publik yang tidak mungkin untuk dilacak karena protokol itu sendiri dirancang untuk area transparansi.

IP Address dibagi menjadi 5 kelas, yaitu kelas A – E, namun yang hanya digunakan adalah kelas A, B & C karena kelas D & E digunakan untuk keperluan khusus.
Cara mudah membedakan kelas A, B & C :

1. Kelas A –> kelompok pertama dimulai dari 0000 0000 (0) –> range IP 0 – 127 dan memiliki host maksimum sebanyak 16.777.214
2. Kelas B –> kelompok pertama dimulai dari 1000 0000 (128) –> range IP 128 – 191 dan memiliki host maksimum sebanyak 65.534
3. Kelas C –> kelompok pertama dimulai dari 1100 0000 (192) –> range IP 192 – 223 dan memiliki host maksimum sebanyak 254

note: IP Addressing juga dikelompokkan berdasarkan negara, Indonesia umumnya dimulai dengan kepala 202 & 203

Tiap kelas memiliki 1 slot yang berfungsi sebagai IP Private :
1. Kelas A –> IP 10.x.x.x
2. Kelas B –> IP 172.16.x.x sampai 172.30.x.x
3. Kelas C –> IP 192.168.x.x

IP 127.0.0.1 juga tidak boleh digunakan sebagai IP Public karena berfungsi untuk Local Loop atau Local Host
Lembaga yang mengatur / menyediakan IP Public adalah IANA,

Referensi :

http://gardayustisia.blog.com/2010/09/30/perbedaan-ip-public-dan-ip-private/

http://tisthanewbie26.wordpress.com/2013/04/11/perbedaan-ip-public-ip-private/