Selasa, 17 April 2012

Sejarah Javascript

JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript.

Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para programmer yang non-Java. Maka dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript, walaupun tidak ada hubungan bahasa antara Java dengan JavaScript.

JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.

JavaScript pertama kali diperkenalkan oleh Netscape pada tahun 1995. Pada awalnya bahasa yang sekarang disebut JavaScript ini dulunya dinamai “LiveScript”” yang berfungsi sebagai bahasa sederhana untuk browser Netscape Navigator 2 yang sangat populer pada saat itu. Kemudian sejalan dengan sedang giatnya kerjasama antara Netscape dan Sun (pengembang bahasa pemrograman “Java”) pada masa itu, maka Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4 desember 1995.

Pada saat yang bersamaan Microsoft sendiri mencoba untuk mengadaptasikan teknologi ini yang mereka sebut sebagai “Jscript” di browser milik mereka yaitu Internet Explorer 3. JavaScript sendiri merupakan modifikasi dari bahasa pemrograman C++ dengan pola penulisan yang lebih sederhana dari bahasa pemrograman C++.


Lalu mengapa sekarang berubah nama menjadi Javascript?

Pada masa itu bahasa ini banyak di kritik karena kurang aman, pengembangannya yang terkesan buru buru dan tidak ada pesan kesalahan yang di tampilkan setiap kali kita membuatkesalahan pada saat menyusun suatu program. Kemudian Netscape melakukan kerjasama dengan Sun (pengembang bahasa pemrograman “Java” ) pada masa itu, maka Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4 desember 1995.

Pada saat itu pula Microsoft melakukan adaptasi dengan teknologi ini yang diberi nama "Jscript"pada browser Internet Explorer 3.

Javascript adalah bahasa yang berbentuk kumpulan skrip yang pada fungsinya berjalan pada suatu dokumen HTML dan bergantung kepada browser,sepanjang sejarah internet bahasa ini adalah bahasa skrip pertama untuk web. Bahasa ini adalah bahasa pemrograman untuk memberikan kemampuan tambahan terhadap bahasa HTML dengan mengijinkan pengeksekusian perintah perintah di sisi user, yang artinya di sisi browser bukan di sisi server web.

Sumber :

Kamis, 12 April 2012

Enkapsulasi dalam Java

Pada tulisan kali ini saya akan menjelaskan tentang enkapsulasi(pengkapsulan) dalam bahasa pemograman berbasis objek. bahasa pemograman yang saya gunakan adalah bahasa java yang sangat mengimplementasikan OOP(Object Oriented Programming). langsung saja kita mulai.
Enkapsulasi merupakan proses pemaketan data bersama metode-metodenya. Manfaat utama dari enkapsulasi ini adalah meyembunyikan rincian-rincian implementasi dari pemakai. Bagian internal objek mempunyai ketampakan terbatas dibanding bagian eksternal objek. Penyusunan seperti ini menjaga bagian internal dari pengaksesan eksternal yang tidak diinginkan.
Bagian eksternal objek sering disebut antarmuka objek karena berlaku sebagai antarmuka objek terhadap objek lain. Karena objek lain harus berkomunikasi dengan objek itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak dapat mengakses implementasi internal objek, implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
Enkapsulasi menyediakan duan manfaat utama bagi pemograman, yaitu:
  • Penyembunyian Informasi: Penyembunyian implementasi (implementation hiding) mengacu perlindungan implementasi internal objek. Objek disusun dari antarmuka public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utama adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
  • Modularitas (modularity) : Objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antar muka, maka kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistribusikan objek-objek di sistem.
Enkapsulasi pada Java dilakukan dengan pembentukan kelas-kelas, yaitu keyword class. Sedangkan penyembunyian informasi dilakukan dengan pengendalian terhadap pengaksesan pembentuk kelas dengan keyword-keyword untuk kendali pengaksesan default, private, protected, dan public. Penyembunyian informasi dilakukan dengan menerapkan kendali pengaksesan private atau protected pada elemen data.
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :



UML Vehicle class with no hiding
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.

Listing  Vehicle.java


public class Vehicle{

public double load, maxLoad;




public Vehicle (double maxLoad){

maxLoad = maxLoad + load;




public double getLoad(){

return load;


}

public double getMaxLoad(){


return maxLoad;

}


}


 
Listing Test – TestVehicle.java

public class TestVehicle{

public static void main(String[] args){

System.out.println("Creating a vehicle with a 10,000kg maximum load.");

Vehicle vehicle = new Vehicle(10000.0);


System.out.println("Add box #1 (500kg)");

vehicle.load = vehicle.load + 500.0;

System.out.println("Add box #2 (250kg)");

vehicle.load = vehicle.load + 250.0;


System.out.println("Add box #3 (5000kg)");

vehicle.load = vehicle.load + 5000.0;


System.out.println("Add box #4 (4000kg)");

vehicle.load = vehicle.load + 4000.0;


System.out.println("Add box #4 (300kg)");

vehicle.load = vehicle.load + 300.0;


System.out.println("Vehicle load is = " +vehicle.getLoad() + "kg");

}


}

Compile Vehicle.java dan TestVehicle.java lalu jalankan TestVehicle.java. Seharusnya akan keluar tampilan sebagai berikut :


Analisa program

Kita lihat bahwa pada output program tersebut kita menginisialisasi batas maximum load 10,000 kg,
Vehicle vehicle = new Vehicle(10000.0);
akan tetapi dengan memberikan akses kontrol / modifier public pada atribut class Vehicle
public double load, maxLoad, kita dapat mengakses langsung atribut class yang seharusnya perlu diberi pengecekan agar tidak sampai melebihi maxload
vehicle.load = vehicle.load + 500.0;
maka dapat mengakibatkan masalah(trouble) yakni batas maximum load yang kita buat tidak berpengaruh apapun sehingga terdapat penambahan boxes yang melebihi kapasitas(10050.0kg) dikaernakan tidak ada pengecekan kapasitas maksismum.


UML Vehicle class with hiding
Vehicle class berisi atribut yang mempunyai modi_er public, sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.

Listing program – Vehicle.java


public class Vehicle1{

private double load, maxLoad;


public Vehicle1 (double max){

this.maxLoad = max;


}

public double getLoad(){


return this.load;

}


public double getMaxLoad(){

return this.maxLoad;


}

public boolean addBox(double weight){


double temp = 0.0D;

temp = this.load + weight;


if(temp <= maxLoad){

this.load = this.load + weight;


return true;

}


else{

return false;


}

}

Listing program – TestVehicle.java


public class TestVehicle1{

public static void main(String[] args){

Senin, 09 April 2012

Macam-Macam Topologi


TOPOLOGI BINTANG
Topologi bintang merupakan bentuk topologi jaringan yang berupa konvergensi dari node tengah ke setiap node atau pengguna. Topologi jaringan bintang termasuk topologi jaringan dengan biaya menengah.
KELEBIHAN
  • Kerusakan pada satu saluran hanya akan memengaruhi jaringan pada saluran tersebut dan station yang terpaut.
  • Tingkat keamanan termasuk tinggi.
  • Tahan terhadap lalu lintas jaringan yang sibuk.
  • Penambahan dan pengurangan station dapat dilakukan dengan mudah.
  • akses Kontrol terpusat.
  • Kemudahan deteksi dan isolasi kesalahan/kerusakan pengelolaan jaringan.
  • Paling fleksibel.
KEKURANGAN
  • Jika node tengah mengalami kerusakan, maka seluruh rangkaian akan berhenti.
  • Boros dalam pemakaian kabel.
  • HUB jadi elemen kritis karena kontrol terpusat.
  • terlalu penting hub sehinga ketika terdapat masalah dengan hub maka jaringan tersebut akan down
  • jaringan tergantung pada terminal pusat
  • jika menggunakan switch dan lalu lintas data padat dapat menyebabkan jaringan lambat.
  • biaya jaringan lebih mahal dari pada bus atau ring
  • lebih gampang digunakan

TOPOLOGI CINCIN
Topologi cincin adalah topologi jaringan berbentuk rangkaian titik yang masing-masing terhubung ke dua titik lainnya, sedemikian sehingga membentuk jalur melingkar membentuk cincin. Pada topologi cincin, komunikasi data dapat terganggu jika satu titik mengalami gangguan. Jaringan FDDI mengantisipasi kelemahan ini dengan mengirim data searah jarum jam dan berlawanan dengan arah jarum jam secara bersamaan. Topologi ring digunakan dalam jaringan yang memiliki performance tinggi, jaringan yang membutuhkan bandwidth untuk fitur yang time-sensitive seperti video dan audio, atau ketika performance dibutuhkan saat komputer yang terhubung ke jaringan dalam jumlah yang banyak.
KELEBIHAN
  • Hemat kabel
  • Tidak akan terjadi tabrakan pengiriman data (collision), karena pada satu waktu hanya satu node yang dapat mengirimkan data
KEKURANGAN
  • Peka kesalahan, sehingga jika terdapat gangguan di suatu node mengakibatkan terganggunya seluruh jaringan.
  • Pengembangan jaringan lebih kaku
  • Sulit mendeteksi kerusakan
  • Dapat terjadi collision[dua paket data tercampur]
  • Diperlukan penanganan dan pengelolaan khusus bandels

TOPOLOGI BUS
Topologi bus merupakan topologi yang banyak dipergunakan pada masa penggunaan kabel sepaksi menjamur. Dengan menggunakan T-Connector (dengan terminator 50ohm pada ujung network), maka komputer atau perangkat jaringan lainnya bisa dengan mudah dihubungkan satu sama lain.
Kesulitan utama dari penggunaan kabel sepaksi adalah sulit untuk mengukur apakah kabel sepaksi yang dipergunakan benar-benar matching atau tidak. Karena kalau tidak sungguh-sungguh diukur secara benar akan merusak NIC (network interface card) yang dipergunakan dan kinerja jaringan menjadi terhambat, tidak mencapai kemampuan maksimalnya. Topologi ini juga sering digunakan pada jaringan dengan basis fiber optic (yang kemudian digabungkan dengan topologi star untuk menghubungkan dengan client atau node.).
Pada topologi bus dua ujung jaringan harus diakhiri dengan sebuah terminator. Barel connector dapat digunakan untuk memperluasnya. Jaringan hanya terdiri dari satu saluran kabel yang menggunakan kabel BNC. Komputer yang ingin terhubung ke jaringan dapat mengkaitkan dirinya dengan men tap Ethernetnya sepanjang kabel.
Instalasi jaringan Bus sangat sederhana, murah dan maksimal terdiri atas 5-7 komputer. Kesulitan yang sering dihadapi adalah kemungkinan terjadinya tabrakan data karena mekanisme jaringan relatif sederhana dan jika salah satu node putus maka akan mengganggu kinerja dan trafik seluruh jaringan.
KELEBIHAN
Keunggulan topologi Bus adalah pengembangan jaringan atau penambahan workstation baru dapat dilakukan dengan mudah tanpa mengganggu workstation lain.
KEKURANGAN
Kelemahan dari topologi ini adalah bila terdapat gangguan di sepanjang kabel pusat maka keseluruhan jaringan akan mengalami gangguan.


CIRI-CIRI
  1. Teknologi lama, dihubungkan dengan satu kabel dalam satu baris
  2. Tidak membutuhkan peralatan aktif untuk menghubungkan terminal/komputer
  3. Sangat berpengaruh pada unjuk kerja komunikasi antar komputer, karena hanya bisa digunakan oleh satu komputer
  4. Kabel “cut” dan digunakan konektor BNC tipe T
  5. Diujung kabel dipasang 50 ohm konektor
  6. Jika kabel putus maka komputer lain tidak dapat berkomunikasi dengan lain
  7. Susah melakukan pelacakan masalah
  8. Discontinue Support.

TOPOLOGI JALA
Topologi jala atau Topologi mesh adalah suatu bentuk hubungan antar perangkat dimana setiap perangkat terhubung secara langsung ke perangkat lainnya yang ada di dalam jaringan. Akibatnya, dalam topologi mesh setiap perangkat dapat berkomunikasi langsung dengan perangkat yang dituju (dedicated links).
Dengan demikian maksimal banyaknya koneksi antar perangkat pada jaringan bertopologi mesh ini dapat dihitung yaitu sebanyak n(n-1)/2. Selain itu karena setiap perangkat dapat terhubung dengan perangkat lainnya yang ada di dalam jaringan maka setiap perangkat harus memiliki sebanyak n-1 Port Input/Output (I/O ports).
Berdasarkan pemahaman di atas, dapat dicontohkan bahwa apabila sebanyak 5 (lima) komputer akan dihubungkan dalam bentuk topologi mesh maka agar seluruh koneksi antar komputer dapat berfungsi optimal, diperlukan kabel koneksi sebanyak 5(5-1)/2 = 10 kabel koneksi, dan masing-masing komputer harus memiliki port I/O sebanyak 5-1 = 4 port (lihat gambar).
KELEBIHAN
  • Hubungan dedicated links menjamin data langsung dikirimkan ke komputer tujuan tanpa harus melalui komputer lainnya sehingga dapat lebih cepat karena satu link digunakan khusus untuk berkomunikasi dengan komputer yang dituju saja (tidak digunakan secara beramai-ramai/sharing).
  • Memiliki sifat Robust, yaitu Apabila terjadi gangguan pada koneksi komputer A dengan komputer B karena rusaknya kabel koneksi (links) antara A dan B, maka gangguan tersebut tidak akan memengaruhi koneksi komputer A dengan komputer lainnya.
  • Privacy dan security pada topologi mesh lebih terjamin, karena komunikasi yang terjadi antara dua komputer tidak akan dapat diakses oleh komputer lainnya.
  • Memudahkan proses identifikasi permasalahan pada saat terjadi kerusakan koneksi antar komputer.

KEKURANGAN
  • Membutuhkan banyak kabel dan Port I/O. semakin banyak komputer di dalam topologi mesh maka diperlukan semakin banyak kabel links dan port I/O (lihat rumus penghitungan kebutuhan kabel dan Port).
  • Hal tersebut sekaligus juga mengindikasikan bahwa topologi jenis ini * Karena setiap komputer harus terkoneksi secara langsung dengan komputer lainnya maka instalasi dan konfigurasi menjadi lebih sulit.
  • Banyaknya kabel yang digunakan juga mengisyaratkan perlunya space yang memungkinkan di dalam ruangan tempat komputer-komputer tersebut berada.

TOPOLOGI POHON
Topologi Pohon adalah kombinasi karakteristik antara topologi bintang dan topologi bus. Topologi ini terdiri atas kumpulan topologi bintang yang dihubungkan dalam satu topologi bus sebagai jalur tulang punggung atau backbone. Komputer-komputer dihubungkan ke hub, sedangkan hub lain di hubungkan sebagai jalur tulang punggung.
Topologi jaringan ini disebut juga sebagai topologi jaringan bertingkat. Topologi ini biasanya digunakan untuk interkoneksi antar sentral dengan hirarki yang berbeda. Untuk hirarki yang lebih rendah digambarkan pada lokasi yang rendah dan semakin keatas mempunyai hirarki semakin tinggi. Topologi jaringan jenis ini cocok digunakan pada sistem jaringan komputer.
Pada jaringan pohon, terdapat beberapa tingkatan simpul atau node. Pusat atau simpul yang lebih tinggi tingkatannya, dapat mengatur simpul lain yang lebih rendah tingkatannya. Data yang dikirim perlu melalui simpul pusat terlebih dahulu. Misalnya untuk bergerak dari komputer dengan node-3 kekomputer node-7 seperti halnya pada gambar, data yang ada harus melewati node-3, 5 dan node-6 sebelum berakhir pada node-7.
KELEBIHAN
Keungguluan jaringan pohon seperti ini adalah, dapat terbentuknya suatu kelompok yang dibutuhkan pada setiap saat. Sebagai contoh, perusahaan dapat membentuk kelompok yang terdiri atas terminal pembukuan, serta pada kelompok lain dibentuk untuk terminal penjualan.
KEKURANGAN
Adapun kelemahannya adalah, apabila simpul yang lebih tinggi kemudian tidak berfungsi, maka kelompok lainnya yang berada dibawahnya akhirnya juga menjadi tidak efektif. Cara kerja jaringan pohon ini relatif menjadi lambat.

TOPOLOGI RUNTUT
Jaringan komputer dengan topologi runtut (linear topology) biasa disebut dengan topologi bus beruntut, tata letak ini termasuk tata letak umum. Satu kabel utama menghubungkan tiap titik sambungan (komputer) yang dihubungkan dengan penyambung yang disebut dengan Penyambung-T dan pada ujungnya harus diakhiri dengan sebuah penamat (terminator). Penyambung yang digunakan berjenis BNC (British Naval Connector: Penyambung Bahari Britania), sebenarnya BNC adalah nama penyambung bukan nama kabelnya, kabel yang digunakan adalah RG 58 (Kabel Sepaksi Thinnet). Pemasangan dari topologi bus beruntut ini sangat sederhana dan murah tetapi sebanyaknya hanya dapat terdiri dari 5-7 komputer.
KELEBIHAN
Keuntungan, hemat kabel, tata letak kabel sederhana, mudah dikembangkan, tidak butuh kendali pusat, dan penambahan maupun pengurangan penamat dapat dilakukan tanpa mengganggu operasi yang berjalan.
KEKURANGAN
Kerugian, deteksi dan isolasi kesalahan sangat kecil, kepadatan lalu lintas tinggi, keamanan data kurang terjamin, kecepatan akan menurun bila jumlah pemakai bertambah, dan diperlukan pengulang (repeater) untuk jarak jauh.

Jumat, 06 April 2012

Perbedaan Pemrograman Terstruktur dan Berorientasi Objek

Pemrograman Terstruktur


Pemrograman Terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Selain itu Pemrograman Terstruktur adalah suatu aktifitas pemrograman dengan memperhatikan urutan langkah-langkah perintah secara sistematis, logis , dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip dari pemrograman terstruktur adalah Jika suatu proses telah sampai pada suatu titik atau langkah tertentu , maka proses selanjutnya tidak boleh mengeksekusi langkah sebelumnya atau kembali ke baris sebelumnya, kecuali pada langkah – langkah untuk proses berulang (Loop).
dilihat dari pengertian di atas, pemrograman terstruktur memilki beberapa sifat – sifat seperti :
a. Memuat teknik pemecahan masalah yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami

berdasarkan penjelasan diatas, sangat jelas sekali bahwa pemrograman tersktruktur unggul dalam melakukan pemrograman sederhana karena lebih efisien.
Berikut bahasa pemrograman yang mendukung pemrograman terstruktur :
Cobol Turbo Prolog
C
Pascal
Delphi
Borland Delphi


Pemrograman Berbasis Objek

Konsep utama pemrograman berorientasi objek yaitu melakukan permodelan objek dari kehidupan nyata ke dalam tipe data abstrak. Pemrograman berorientasi objek merupakan konsep pemrograman untuk memodelkan objek yang kita gunakan dalam kehidupan sehari-hari, dan konsep ini membawa perubahan yang mendasar dalam konsep pemrograman terstruktur.  Perubahan dramatis dalam konsep dasar disebut    paradigma, banyak orang yang menyebut “paradigma OOP” karena memang OOP membawa konsep yang sama sekali berbeda  dengan bahasa pemrograman generasi sebelumnya (bahasa pemrograman terstruktur).
Setiap objek dalam kehidupan nyata dapat kita pandang sebagai kelas, misalnya kelas Hewan, kelas Manusia,kelas Mobil.

a.  Objek dari kelas tersebut misalnya buaya dan keledai untuk kelas Hewan
b.  rina dan rizqi untuk kelas Manusia

Sementara itu pemrograman berorientasi objek memliki beberapa keuntungan seperti :

a.  Maintenance; program lebih mudah dibaca dan dipahami, dan pemrograman berorientasi obyekmengontrol kerumitan program hanya dengan mengijinkan rincian yang dibutuhkan untuk programmer.
b.  Pengubahan program (berupa penambahan atau penghapusan fitur tertentu); perubahan yang dilakukan antara lain menyangkut penambahan dan penghapusan dalam suatu database program misalnya.
c.  Dapat digunakannya obyek-obyek sesering yang diinginkan, Jadi, sangat jelas sekali bahwa pemrograman berorientasi objek sangat cocok sekali digunakan dalam kasus pembuatan software yang rumit dan kompleks karena memberikan berbagai kemudahan kepada pemrogram seperti yang telah disebutkan diatas.


Kesimpulan :

Tidak ada yang dapat dikatakan lebih baik karena keduanya memiliki spesifikasi tersendiri dalam pemrogramannya. Hal ini juga tergantung pada bagaimana pribadi si pemrogram ingin menyusun program yang akan dibuatnya. Apakah lebih suka menggunakan yang berorientasikan pada objek maupun pemrograman yang terstruktur. Tapi dengan OOP, kita dapat mengimplementasikan objek data yang tidak hanya memiliki ciri khas (attribut), melainkan juga memiliki metode untuk memanipulasi attribut tersebut.

Selasa, 03 April 2012

PENGEMBANGAN XML


XML Paper Specification (XPS), adalah spesifikasi untuk page description language dan format fixed document yang awalnya dikembangkan oleh Microsoft yang kemudian distandardisasi oleh Ecma International sebagai standar internasional ECMA - 388. Spesifikasi XPS ini berbasis XML (lebih tepatnya XAML), yang berdasarkan pada jalur (sistem) pencetak baru dan format warna vektor dokumen yang mendukung kebebasan perangkat dan resolusi. XPS telah distandardisasi sebagai format dokumen standar terbuka pada 16 Juni 2009.


PENGEMBANGAN DARI XML PAPER SPESIFICATION

Pada tahun 2003 Global Graphics telah dipilih oleh Microsoft untuk memberikan konsultasi dan bukti dari konsep pengembangan pada XPS, kemudian mereka bekerja dengan team pengembang dari Windows untuk membuat spesifikasi dan memberikan referensi arsitektur untuk format baru tersebut.

Format XPS dokumen terdiri dari markup XML terstruktur yang mendefinisikan tata letak dokumen dan tampilan visual setiap halaman, serta aturan rendering untuk distribusi, pengarsipan, rendering, pengolahan dan pencetakan dokumen. Bahasa markup XPS adalah sub bagian dari XAML, yang memungkinkan untuk memasukkan grafis vektor-elemen dalam dokumen.

File XPS pada kenyataannya merupakan file ZIP menggunakan Open Packaging Conventions, yang berisi file-file yang menyusun dokumen. Ini termasuk markup XML file untuk setiap halaman, teks, font, raster gambar, vektor grafik 2D, serta informasi digital rights management. Isi dari suatu file XPS dapat diperiksa hanya dengan membuka dalam sebuah aplikasi yang mendukung file ZIP.


FITUR

XPS dokumen memiliki fitur seperti warna gradien, transparansi, warna CMYK, printer kalibrasi, multi-sistem tinta dan skema printer. XPS mendukung teknologi Windows Color Sistem manajemen warna untuk konversi warna yang lebih presisi di seluruh perangkat dan jangkauan dinamis yang lebih tinggi. XPS dokumen juga mendukung perangkat lunak pengolah gambar raster (RIP) yang dapat didownload secara terpisah. Subsistem dari printer juga memiliki dukungan untuk nama warna, menyederhanakan definisi warna untuk gambar yang ditransmisikan ke printer yang mendukung warna-warna tersebut.

XPS juga mendukung gambar HD Photo yang aslinya untuk gambar raster. XPS format yang digunakan dalam file spul mewakili efek grafis canggih seperti gambar 3D, efek cahaya, dan gradien, yang diproses oleh driver printer tanpa rasterization, mencegah artefak rendering dan mengurangi beban komputasi.