Senin, 06 Juni 2016

Quantum Computation

Pengertian Quantum Computatioon

Merupakan alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data. Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan perhitungan jumlah data pada komputer kuantum dilakukan dengan qubit. Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.

Implementasi Quantum Computation

NASA dan Google berbagi sebuah komputer kuantum untuk digunakan di Quantum Artificial Intelligence Lab menggunakan 512 qubit D -Wave Two yang akan digunakan untuk penelitian pembelajaran mesin yang membantu dalam menggunakan jaringan syaraf tiruan untuk mencari set data astronomi planet ekstrasurya dan untuk meningkatkan efisiensi searchs internet dengan menggunakan AI metaheuristik di search engine heuristical . A.I. seperti metaheuristik dapat menyerupai masalah optimisasi global mirip dengan masalah klasik seperti pedagang keliling , koloni semut atau optimasi swarm , yang dapat menavigasi melalui database seperti labirin . Menggunakan partikel terjerat sebagai qubit , algoritma ini bisa dinavigasi jauh lebih cepat daripada komputer konvensional dan dengan lebih banyak variabel . Dengan menggunakan desentralisasi , segerombolan kuantum AI , dimungkinkan untuk mensimulasikan perilaku muncul juga, seperti Langton itu semut , yang bisa melihat munculnya kecerdasan simulasi berbasis kuantum yang bisa pergi sejauh untuk menciptakan robot selular realistis pada komputer. 

Penggunaan metaheuristik canggih pada fungsi heuristical lebih rendah dapat melihat simulasi komputer yang dapat memilih sub rutinitas tertentu pada komputer sendiri untuk memecahkan masalah dengan cara yang benar-benar cerdas . Dengan cara ini mesin akan jauh lebih mudah beradaptasi terhadap perubahan data indrawi dan akan mampu berfungsi dengan jauh lebih otomatisasi daripada yang mungkin dengan komputer normal. Selain itu, dimungkinkan untuk menggunakan metaheuristik untuk melakukan koreksi kesalahan pada perangkat lunak menggunakan jaringan syaraf tiruan dengan membandingkan pemecahan sebuah komputer kuantum dengan perangkat lunak program reguler dari komputer biasa masalah dioptimalkan . Karena komputer biasa tidak kuantum mekanik , mereka harus diprogram klasik . 

Namun, dengan menggunakan metaheuristik kuantum dimungkinkan untuk melakukan optimasi masalah menggunakan kecerdasan buatan pada sebuah komputer kuantum dan kemudian dibandingkan dengan arsitektur baris perintah dalam software konvensional pada komputer klasik , yang mungkin terlalu rumit untuk memodifikasi atau untuk memeriksa untuk kesalahan menggunakan perangkat lunak insinyur manusia.

A. Entanglement

Setelah sedikit memahami apa itu quantum computation dan quantum  computer kita akan memasuki pembahasan dari Entanglement. Entanglement sendiri masih bagian dari Quantum Computation. Apa itu Entanglement? Entanglement adalah suatu teori mekanika quantum yang menggambarkan seberapa cepat dan betapa kuatnya keterhubungan partikel-partikel pada Quantum computer yang dimana jika suatu partikel diperlakukan "A" maka akan memberikan dampak "A" juga ke partikel lainnya.

B. Pengoperasian Data Qubit

Qubit merupakan kuantum bit , mitra dalam komputasi kuantum dengan digit biner atau bit dari komputasi klasik. Sama seperti sedikit adalah unit dasar informasi dalam komputer klasik, qubit adalah unit dasar informasi dalam komputer kuantum . Dalam komputer kuantum, sejumlah partikel elemental seperti elektron atau foton dapat digunakan (dalam praktek, keberhasilan juga telah dicapai dengan ion), baik dengan biaya mereka atau polarisasi bertindak sebagai representasi dari 0 dan / atau 1. Setiap partikel-partikel ini dikenal sebagai qubit, sifat dan perilaku partikel-partikel ini (seperti yang diungkapkan dalam teori kuantum ) membentuk dasar dari komputasi kuantum. Dua aspek yang paling relevan fisika kuantum adalah prinsip superposisi dan Entanglement.

Superposisi, pikirkan qubit sebagai elektron dalam medan magnet. Spin elektron mungkin baik sejalan dengan bidang, yang dikenal sebagai spin-up, atau sebaliknya ke lapangan, yang dikenal sebagai keadaan spin-down. Mengubah spin elektron dari satu keadaan ke keadaan lain dicapai dengan menggunakan pulsa energi, seperti dari Laser - katakanlah kita menggunakan 1 unit energi laser. Tapi bagaimana kalau kita hanya menggunakan setengah unit energi laser dan benar-benar mengisolasi partikel dari segala pengaruh eksternal? Menurut hukum kuantum, partikel kemudian memasuki superposisi negara, di mana ia berperilaku seolah-olah itu di kedua negara secara bersamaan. Setiap qubit dimanfaatkan bisa mengambil superposisi dari kedua 0 dan 1. 

Dengan demikian, jumlah perhitungan bahwa komputer kuantum dapat melakukan adalah 2 ^ n, dimana n adalah jumlah qubit yang digunakan. Sebuah komputer kuantum terdiri dari 500 qubit akan memiliki potensi untuk melakukan 2 ^ 500 perhitungan dalam satu langkah. Ini adalah jumlah yang mengagumkan - 2 ^ 500 adalah atom jauh lebih dari yang ada di alam semesta (ini pemrosesan paralel benar - komputer klasik saat ini, bahkan disebut prosesor paralel, masih hanya benar-benar melakukan satu hal pada suatu waktu: hanya ada dua atau lebih dari mereka melakukannya). Tapi bagaimana partikel-partikel ini akan berinteraksi satu sama lain? Mereka akan melakukannya melalui belitan kuantum.

C. Quantum Gates

Gate sendiri dalam bahasa Indonesia adalah Gerbang.jadi Quantum Gates adalah sebuah gerbang kuantum yang dimana berfungsi mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits. dengan demikian Quantum gates mempercepat banyaknya perhitungan bit pada waktu bersamaan.
Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dalam jumlah ancillae yang digunakan.

  • Pertama mensimulasikan gerbang di babak pertama tingkat.
  • Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
  • Bersihkan bit ancillae.
  • Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
  • Setelah menghitung output, membersihkan bit ancillae.
  • Bersihkan hasil tingkat d / 2.


Sekarang kita telah melihat gerbang reversibel ireversibel klasik dan klasik, memiliki konteks yang lebih baik untuk menghargai fungsi dari gerbang kuantum. Sama seperti setiap perhitungan klasik dapat dipecah menjadi urutan klasik gerbang logika yang bertindak hanya pada bit klasik pada satu waktu, sehingga juga bisa setiap kuantum perhitungan dapat dipecah menjadi urutan gerbang logika kuantum yang bekerja pada hanya beberapa qubit pada suatu waktu. Perbedaan utama adalah bahwa gerbang logika klasik memanipulasi nilai bit klasik, 0 atau 1, gerbang kuantum dapat sewenang-wenang memanipulasi nilai kuantum multi-partite termasuk superposisi dari komputasi dasar yang juga dilibatkan. Jadi gerbang logika kuantum perhitungannya jauh lebih bervariasi daripada gerbang logika perhitungan klasik.

D. Algoritma Shor

Algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.

Algoritma Shor bergantung pada hasil dari teori bilangan. Hasil ini adalah: fungsi periodik. Dalam konteks algoritma Shor, n akan menjadi bilangan yang akan difaktorkan. Jika dua bilangan tersebut adalah coprime itu berarti bahwa pembagi umumnya adalah 1. Perhitungan fungsi ini untuk jumlah eksponensial, dari itu akan mengambil waktu eksponensial pada komputer klasik. Algoritma Shor memanfaatkan paralelisme kuantum untuk melakukan jumlah eksponensial operasi dalam satu langkah.

Sumber :
  • https://amoekinspirasi.wordpress.com/2014/05/15/pengertian-quantum-computing-dan-implementasinya/
  • http://cute-periidola.blogspot.co.id/2014/05/pengertian-quantum-computing.html
  • http://rifqo-muhammad.blogspot.co.id/2016/04/quantum-computation.html
  • http://mojomakearocket.blogspot.co.id/2015/04/tugas-softskill-pertemuan-2-quantum.html

Parallel Computation

Pengertian Parallel Computation 
Parallel computation adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat programberjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek,seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya, Maksudnya program dijalankan dengan banyak CPU secara bersamaan dengan tujuan untuk membuat program yang lebih baik dan dapat diproses dengan cepat. Dapat diambil kesimpulan bahwa pada parallel processing berbeda dengan istilah multitasking, yaitu satu CPU mengangani atau mengeksekusi beberapa program sekaligus, parallel processing dapat disebut juga dengan istilah parallel computing.

A. Parallelism Concept

Konsep program parallel :
  • Memerintahkan set instruksi (pandangan programmer)
  • File executable (pandangan sistem operasi)

Komputasi paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor / CPU dalam waktu yang bersamaan/simultan / concurrent dan prinsip ini disebut paralelisme.

Sebenarnya prinsip paralelisme juga sudah diterapkan dalam komputer serial misal dengan pipelining dan superscalar-nya namun demikian tidak memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena memory bottleneck.  Tingkat paralelisme dalam komputasi khususnya pada prosesor di antaranya :
  • Paralelisme bit-level. Contoh : prosesor 32 bit dan prosesor 64 bit.
  • Paralelisme instruction set-level. Contoh : CISC dan RISC.
  • Paralelisme thread-level. Contoh : Intel hyperthreading.

Paralelisme lain yang juga berkembang dalam komputasi paralel adalah paralelisme data dan paralelisme fungsi. Perkembangan teknologi prosesor : prosesor singlecore superscalar, chip multiprocessor, prosesor multicore, hingga prosesor cell memberikan kontribusi terhadap peningkatan performansi komputer parallel.

B. Distributed Processing

Pemrosesan paralel adalah pendekatan komputasi untuk meningkatkan tingkat di mana satu set data diolah dengan pengolahan bagian yang berbeda dari data pada waktu yang sama secara simultan atau bersamaan pada sebuah komputer dan berfungsi memecah beban besar menjadi beberapa beban kecil untuk mempercepat proses penyelesaian masalah.

Didistribusikan pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat.

Tipe lain dari komputasi paralel yang kadang-kadang disebut "didistribusikan" adalah gagasan dari sebuah komputer paralel cluster. Sebuah cluster akan banyak CPU terhubung melalui kecepatan tinggi koneksi ethernet ke hub sentral (Server) yang memberi masing-masing beberapa pekerjaan yang harus dilakukan. Metode cluster mirip dengan metode yang dijelaskan dalam paragraf di atas, kecuali bahwa semua CPU secara langsung terhubung ke server, dan satu-satunya tujuan mereka adalah untuk melakukan perhitungan yang diberikan kepada mereka.

Parallel distributed computing dapat dibentuk dari :
  • Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.
  • PVM (Parallel Virtual Machine) untuk mendukung workstation clusters
  • MPI (Message-Passing Interface) programming GUI untuk parallel computers.

C. Architectural Parallel Computer

Terdapat 4 macam arsitektur dari komputer paralel, yaitu:
  1. SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor.
  2. SIMD(Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
  3. MISD(Multiple Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
  4. MIMD( Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Sumber :

  • http://syaefulhamzah.blogspot.co.id/2013/06/v-behaviorurldefaultvmlo.html
  • http://seto.citravision.com/berita-46-parallel-computation--parallelism-concept.html
  • http://seto.citravision.com/berita-47-parallel-computation--distributed-processing.html
  • http://winjor12.blogspot.co.id/2013/07/parallel-computation.html




Pemrograman Jaringan (Get IP, Get Name, IP to Name, NSLOOKUP dan Aplikasi Client-Server (JAVA))

Get IP 

Penjelasan dibawah ini merupakan penjelasan bagaimana cara untuk mendapatkan IP Address dengan program Java. Langkah awalnya buat file baru dalam notepad lalu masukkan source code dibawah ini. Setelah itu simpan file dengan nama getip.java. Kemudian jalankan program di Command Prompt. 

Source Code :
import java.net.*;
public class getip {
          public static void main(String args[]) throws Exception {
          InetAddress host = null;
          host = InetAddress.getLocalHost();
          byte ip[] = host.getAddress();
                 for (int i=0; i<ip.length; i++) {
                     if (i > 0) {
                     System.out.print(".");
                     }
                 System.out.print(ip[i] & 0xff);
                 }
          System.out.println();
          }

}

Logika Program : 

Pada listing diatas program pertama-tama akan mengimport package java.net. Lalu, program akan membuat class dengan nama getip. Pada class tersebut lalu program akan mendeklarasikan variabel InetAddress host yang bernilai null, variabel host yang bernilai host.getAddress() dengan tujuan byte ip akan mendapatkan nilai dari host address.

Selanjutnya, terdapat perulangan for. Jika kondisinya bernilai benar saat variabel i bernilai 0 dan nilai variabel i lebih kecil dari IP maka nilai i akan bertambah.

Output Program:

Get Name

Penjelasan dibawah ini merupakan penjelasan bagaimana cara untuk mendapatkan Name dengan program Java. Langkah awalnya buat file baru dalam notepad lalu masukkan source code dibawah ini. Setelah itu simpan file dengan nama getName.java. Kemudian jalankan program di Command Prompt. 

Source Code :
import java.net.*;
public class getName {
          public static void main(String args[]) throws Exception {
          InetAddress host = null;
          host = InetAddress.getLocalHost();
          System.out.println("Nama komputer Anda: " +
          host.getHostName());
         }
}

Logika Program :

Pada listing diatas program pertama-tama akan mengimport package java.net. Lalu, program akan membuat class dengan nama getName. Pada class tersebut lalu program akan mendeklarasikan variabel InetAddress host yang bernilai null, variabel host yang bernilai InetAddress.getLocalHost dengan tujuan host yang didapatkan dari niilai InetAddress pada localhost. Selanjutnya, program akan mencetak hasil dari programnya dengan cara memanggil variabel host.getHostName().

Output Program:

IP to Name
Penjelasan dibawah ini merupakan penjelasan bagaimana cara untuk mendapatkan Name dari IP dengan program Java. Langkah awalnya buat file baru dalam notepad lalu masukkan source code dibawah ini. Setelah itu simpan file dengan nama IPtoName.java. Kemudian jalankan program di Command Prompt. 

Source Code:
import java.net.*;
public class IPtoName {public static void main (String args[]) {
if (args.length == 0) {
System.out.println ("Pemakaian: java IPtoName <IP address>");
System.exit(0);
}
String host = args [0];
InetAddress address  = null;
try {
address = InetAddress.getByName(host);
} catch (UnknownHostException e) {
System.out.println ("invalid IP - malformed IP");
System.exit(0);
}
System.out.println(address.getHostName());
}
}

Logika Program:
Pada listing diatas program pertama-tama akan mengimport package java.net. Lalu, program akan membuat class dengan nama IPtoName. Selanjutnya terdapat percabangan if dimana jika kondisi panjang string host sama dengan 0 bernilai true maka program akan cetak nama pemakai dan IPtoName, tetapi jika kondisi bernilai false program akan mengulang. lalu pada program terdapat try catch dimana jika tidak sesuai kondisi maka program akan tercetak invalid IP, jika sesuai kondisinya program akan mencetak hostname.

Output Program:

NSLOOKUP

Penjelasan dibawah ini merupakan penjelasan bagaimana cara untuk mendapatkan IP dengan HostName dengan program Java. Langkah awalnya buat file baru dalam notepad lalu masukkan source code dibawah ini. Setelah itu simpan file dengan nama NSLookup.java. Kemudian jalankan program di Command Prompt. 

Source Code:
import java.net.*;
public class NsLookup {
public static void main(String args[]) {
if (args.length == 0) {
System.out.println("Pemakaian: bagus-PC 192.168.0.15");
System.exit(0);
}
String host = args[0];
InetAddress address = null;
try {
address = InetAddress.getByName(host);
} catch(UnknownHostException e) {
System.out.println("Unknown host");
System.exit(0);
}
byte[] ip = address.getAddress();
for (int i=0; i<ip.length; i++) {
if (i > 0) System.out.print(".");
System.out.print((ip[i]) & 0xff);
}
System.out.println();
}
}

Logika Program:
Pada listing diatas program pertama-tama akan mengimport package java.net. Lalu, program akan membuat class dengan nama NsLookup. pada program diatas terdapat percabangan if yang berisi jika panjang string sama dengan 0 maka program akan mencetak "Pemakaian: java NsLookup <hostname> " . lalu terdapat try catch yang berisi jika tidak sesuai dengan kondisi yang ada maka program akan mencetak Unknown host, tetapi jika kondisinya sesuai maka program akan mencetak hasil akhir dari program.

Output Program:


Aplikasi Client-Server
Penjelasan dibawah ini merupakan penjelasan bagaimana cara untuk membuat aplikasi Client-Server dengan program Java. Langkah awalnya buat file baru dalam notepad lalu masukkan source code dibawah ini. Setelah itu simpan file dengan nama simpleServer.java dan simpleClient.java. Kemudian jalankan program di Command Prompt. 

Source Code: simpleServer.java
import java.io.*;
import java.net.*;
public class simpleServer {
public final static int TESTPORT = 5000;
public static void main(String args[]) {
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try {
checkServer = new ServerSocket(TESTPORT);
System.out.println("Aplikasi Server hidup ...");
} catch (IOException e) {
System.out.println(e);
}
try {
clientSocket = checkServer.accept();
is = new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()));
os = new DataOutputStream(clientSocket.getOutputStream());
} catch (Exception ei) {
ei.printStackTrace();
}
try {
line = is.readLine();
System.out.println("Terima : " + line);
if (line.compareTo("salam") == 0) {
os.writeBytes("salam juga");
} else {
os.writeBytes("Maaf, saya tidak mengerti");
}
} catch (IOException e) {
System.out.println(e);
}

try {
os.close();
is.close();
clientSocket.close();
} catch (IOException ic) {
ic.printStackTrace();
}
}

}

Source Code : simpleClient.java
import java.io.*;
import java.net.*;
public class simpleClient {
public final static int REMOTE_PORT = 5000;
public static void main(String args[]) throws Exception {
Socket cl = null;
BufferedReader is = null;
DataOutputStream os = null;
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;
// Membuka koneksi ke server pada port REMOTE_PORT
try {
cl = new Socket(args[0], REMOTE_PORT);
is = new BufferedReader(new
InputStreamReader(cl.getInputStream()));
os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
System.out.println("Erorr io: " + e2);
}
// Menulis ke server
try {
System.out.print("Masukkan kata kunci: ");
userInput = stdin.readLine();
os.writeBytes(userInput + "\n");
} catch (IOException ex) {
System.out.println("Error writing to server..." + ex);
}
// Menerima tanggapan dari server
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
// close input stream, output stream dan koneksi
try {
is.close();
os.close();
cl.close();
} catch (IOException x) {
System.out.println("Error writing...." + x);
}
}
}

Logika Program:
Untuk menjalankan program diatas pertama kita jalankan terlebih dahulu program "simpleServer.java". Setelah itu tunggu beberapa waktu hingga keluar hasilnya yaitu "Aplikasi Server hidup...". Jika sudah jalankan program "simpleClient.java" lalu tulis "salam" sebagai string yang sudah dijadikan kata kunci pada server.

Output Program:




Pemrograman Jaringan (Proxy, Web, Mail, FTP, DNS) Server

Dalam artikel ini kita akan membahas tentang beberapa materi yang berkaitan dengan pemrograman jaringan yang bertujuan untuk memenuhi tugas dari mata kuliah pemrograman jaringan. materi yang akan dibahas adalah :

  • Proxy Server
  • Web Server
  • Mail Server
  • FTP Server
  • DNS Server
A. Proxy Server

Proxy Server merupakan server yang memiliki fungsi sebagai tempat menyimpan halaman - halaman website yang dikunjungi. Fungsinya sebagai cache,  jika kita ingin ke halaman website yang sama maka akan mengambil dari  proxy server, tetapi jika situs yang akan dikunjungi belum ada  maka akan diteruskan ke server sebenarnya. Selain itu proxy server juga berfungsi sebagai security seperti untuk memblokir situs yang berbahaya.

Cara Kerja Proxy Server

Cara kerja dari proxy dengan cara mendengarkan request dari client internal lalu mengirim request tersebut ke jaringan external sehingga seolah-olah proxy server itu sendiri yang menjadi client. Saat proxy server menerima sresponrespon dan server publik, proxy memberikan respon tersebut ke client yang asli seolah-olah publik server.

Manfaat Proxy Server

Pada Proxy server umumnya terdapat 2 macam manfaat yaitu :
A. Meningkatkan Kinerja Jaringan 
Proxy server memiliki kemampuan untuk menyimpan data permintaan dari client, permintaan yang sama dengan permintaan sebelumnya hanya akan di ambil dari server proxy. jika seseorang pernah membuka situs yang sama maka tidak perlu dihubungkan langsung ke situs sumbernya, tetapi cukup hanya diambil dari penyimpanan server proxy. 

B. Filter Permintaan
Proxy server bisa digunakan untuk melakukan filter permintaan data dari situs.Artinya proxy server dapat melakukan filter ke situs yang boleh atau tidak boleh untuk dkunjungi. Selain itu, proxy server  bisa digunakan sebagai filter untuk aplikasi client yang bisa menggunakan akses terhadap internet. Dalam hal ini proxy server berfungsi sebagai filter terhadap gangguan internet.

Fungsi Utama Proxy Server

1. Connection Sharing : berfungsi sebagai gateway yang dijadikan batas antara jaringan lokal dan jaringan luar. Sehingga koneksi dari jaringan lokal ke internet akan menggunakan sambungan yang dimiliki oleh gateway secara bersamaan.
2. Filtering : berfungsi untuk melindungi jaringan lokal dari gangguan atau serangan dari jaringan luar. selain itu, dapat juga untuk menolak situs web tertentu di waktu tertentu.
3. Caching : berfungsi untuk menyimpan objek-objek yang merupakan hasil permintaan dari pengguna yang di peroleh dari internet.

B. Web Server

Web server merupakan suatu server yang memberikan layanan ke klien yang meminta informasi  mengenai tentang web. Web server terdapat dua komponen yaitu komputer itu sendiri dan software web server yang digunakan. 

Fungsi Web Server

Fungsi utama dari web server adalah mentransfer data atas permintaan pengguna melalui protokol komunikasi yang sudah ditentukan. Karena halaman web dapat berupa berkas teks, gambar, video dan lain-lainnya penggunaan web server berfungsi juga sebagai mentransfer semua aspek pemberkasan dalam sebuah web yang berkaitan termasuk teks,video, gambar dan lainnya.

Cara Kerja Web Server
  • Web server, untuk berkomunikasi dengan client-nya (web browser) mempunyai protokol sendiri, yaitu HTTP (hypertext tarnsfer protocol).
  • Dengan protokol ini komunikasi antar web server dengan client-nya dapat saling dimengerti dan lebih mudah.
  • Format data pada world wide web adalah SGML(standar general markup language), Tapi para pengguna internet saat ini lebih banyak menggunakan format HTML (hypertext markup language) karena penggunaannya lebih sederhana dan mudah dipelajari.
C. Mail Server

Mail Server merupakan perangkat lunak program yang mendistribusikan file atau informasi sebagai respon dari permintaan yang dikirim via email. Selain itu, juga digunakan pada bitnet sebagai penyedia layanan serupa ftp. Dan juga mail server dapat dikatakan sebagai aplikasi yang digunakan untuk penginstallan email.

Server Pada Mail Server

Pada Mail server terdapat 2 server yaitu :

  • Outgoing Server (Sending email) : Protocol server yang menangani adalah SMTP (Simple Mail Transfer Protocol) pada port 25.
  • Incoming Server (Receiving email) : Protocol server yang menangani adalah POP3 (Post Office Protocol) pada port 110 atau IMAP (Internet Message Access Protocol) pada port 143.
Cara Kerja Mail Server

Cara kerja mail server dapat kita analogikan sebagai sebuah perusahaan pos yang bekerja mengantarkan surat yang dikirim oleh client dan juga menyimpan file dan mengorganisasikan pesan dari semua clientnya. Perusahaan ini terdiri dari tukang pos yang tugasnya mengantar pesan dan sebuah kantor yang mana kantor itulah pusat pengorganisasian mail yang keluar masuk server.

D. FTP Server

FTP server merupakan suatu protokol yang berfungsi sebagai pertukaran file di dalam suatu jaringan komputer yang mendukund protokol TCP/IP. Ada dua hal utama pada FTP yaitu FTP server dan FTP client. Selain itu FTP dapat juga disebut sebuah protokol internet yang berjalan di dalam lapisan aplikasi yang merupakan standar dari pertransferan file komputer antara mesin-mesin didalam sebuah framework.

Konsep FTP


Pada FTP terdapat sebuah model FTP, model FTP adalah standar yang mampu mendeskripsikan sebuah operasi sederhana. Model FTP memiliki tugas mendefinisikan perintah yang berpartisipasi dalam sebuah perpindahan file dari kedua kanal komunikasi yang terbentuk serta komponen-komponen FTP yang mengatur kedua kanal dan definisi terminologi yang digunakan untuk komponen-komponen tersebut.Sesuai namanya yaitu file transfer protocol (FTP) yang berarti segala prosesnya masuk dalam protokol client dan server. Client FTP disebut sebagai user, dimana para pengguna FTP melakukan perintah dan proses dari mesin yang disebut client.

Proses ini berupa serangkaian operasi pada perangkat lunak FTP. Sedangkan pengertian File transfer protocol server atau FTP server adalah tempat dimana FTP client terhubung dan melakukan proses yang berlangsung.

Fungsi FTP

Fungsi FTP adalah Melakukan transfer file antara komputer yang terhubung melalui jaringan, termasuk internet. Dalam bahasa teknis, FTP dikenal sebagai protokol jaringan yang memungkinkan transfer file antara komputer yang tersambung pada TCP/IP yang berbasis jaringan. FTP juga berfungsi untuk mempermudah dalam pembagian file-file., mempercepat secara tidak langsung atau implicyt menggunakan komputer remote, melindungi user dari berbagai file storage system antar host.

Cara Kerja FTP

Cara kerja utamanya digunakan dalam pengembangan situs web untuk menjalankan fungsi-fungsi FTP yaitu mentransfer halaman file dari komputer Client ke situs web komputer hosting, juga digunakan oleh situs yang menyediakan fasilitas download file. Ini juga digunakan untuk file intra-jaringan pada sistem jaringan komputer kecil.

E. DNS Server

DNS server adalah sebuah sistem yang dikembangkan untuk mengelola penamaan suatu komputer, layanan atau sumber daya dalam jarinagn yang disusun secara hirarki dan terdistribusi. Secara singkat DNS dapat digunakan untuk mengaitkan antara alamat IP suatu server dengan nama domain dalam format Fully Qualified Domain Name (FQDN).

Cara Kerja DNS Server

Berikut ini merupakan cara kerja dari dns server yaitu :
  1. Mencari alamat host pada file HOSTS, bila ada berikan alamatnya dan proses selesai.
  2. Mencari pada data cache yang dibuat oleh resolver untuk menyimpan hasil permintaan sebelumnya, bila ada simpan dalam data cache, berikan hasilnya dan selesai.
  3. Mencari pada alamat Server DNS pertama yang telah ditentukan oleh user.
  4. Apabila pada Server DNS pertama tidak ditemukan pencarian dilanjutkan pada Server DNS kedua dan seterusnya dengan proses yang sama seperti diatas.
Fungsi DNS Server
  • Menerjemahkan nama-nama host(hostnames) menjadi nomor IP(IPaddress) ataupun sebaliknya, sehingga nama tersebut mudah diingat oleh pengguna internet
  • Memberikan suatu informasi tentang suatu host keseluruh jaringan internet.
Keunggulan DNS Server

  • DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address sebuah computer cukup hostname (nama Komputer).
  • Konsisten, IP address sebuah computer boleh berubah tapi hostname tidak berubah.

Kamis, 14 April 2016

Arsitektur Komputer

Arsitektur komputer adalah dapat dikategorikan sebagai ilmu dan sekaligus sebagai suatu seni mengenai cara interkoneksi antara berbagai komponen perangkat keras atau hardware untuk dapat menciptakan sebuah komputer yang dapat memenuhi kebutuhan fungsional, kinerja, dan juga target biayanya.

Dalam bidang teknik komputer, definisi arsitektur komputer adalah suatu konsep perencanaan dan juga struktur pengoperasian dasar dari suatu sistem komputer atau ilmu yang bertujuan untuk perancangan sistem komputer.

Arsitektur Komputer ini paling tidak mengandung 3 sub-kategori :
  • Set instruksi (ISA) : Set Instruksi Instruction Set Architecture (ISA) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
  • Arsitektur mikro dari ISA
  • Sistem desain dari seluruh komponen dalam perangkat keras komputer

Tingkatan Dalam Arsitektur Komputer

Ada sejumlah tingkatan dalam konstruksi dan organisasi sistem komputer. Perbedaan paling sederhana diantara tingkatan tersebut adalah perbedaan antara hardware dan software.

1. Tingkatan Dasar Arsitektur KomputerPada tingkatan ini hardware sebagai tingkatan komputer yang paling bawah dan paling dasar, dimana pada hardware ini “layer” software ditambahkan. Sofware tersebut berada diatas harware, menggunakannya dan mengontrolnya. Hardware ini mendukung software dengan memberikan atau menyediakan operasi yang diperlukan software.

2. Multilayer Machine : Tingkatan dasar arsitektur komputer kemudian dikembangkan dengan memandang sistem komputer keseluruhan sebagai “Multilayer Machine” yang terdiri dari beberapa layer. 
     
A.
 CPU (Central Processing Unit)
Berfungsi mengendalikan semua unit pada komputer dan dapat mengubah input menjadi output.
  • Primary Storage (Penyimpanan primer)
  • Berisi data yang sedang diolah
  • Control Unit (Unit Pengendalian)
  • Semua unit bekerja sama sebagai suatu sistem
  • Aritmatika dan unit logika
  • Tempat berlangsungnya operasi perhitungan aritmatika dan logika
B. Unit Input
Memasukkan data kedalam primary storage

C. Secondary Storage (penyimpanan sekunder)
Sebagai tempat untuk menyimpan program dan data saat tidak digunakan

D. Unit Output
Mencatat hasil pengolahan

3. Peralatan Input : Peralatan input ini merupakan peralatan yang digunakan untuk menerima data masukan dan selanjutnya untuk diproses didalam komputer. Prinsip kerja yang dilakukan perangkat input adalah merubah perintah yang dapat dipahami oleh manusia kepada bentuk yang dapat dipahami oleh komputer dalam bentuk kode-kode binary.

4. Pemrosesan Pusat : Tempat pemrosesan pusat ini berada pada CPU. CPU terdiri dari Control Unit, Arithmethic Logic Unit dan Register. Semua pemrosesan data dari input akan diproses di CPU dan selanjutnya apabila data yang diterima di CPU benar maka akan dikeluarkan melalui peralatan output yang tersedia.

5. Penyimpanan Sekunder : Penyimpanan sekunder yang biasa disebut memori eksternal atau penyimpanan tambahan. Memori mempunyai kapasitas tergantung pada penggunanya dan dalam hal ini tidak langsung bisa diakses oleh CPU. Pada saat komputer dimatikan penyimpanan sekunder ini tidak akan kehilangan data dan penyimpanan sekunder ini bisa bertahan dalam waktu yang lama. Pada saat ini penyimpanan sekunder ini sangat diperlukan untuk menyimpan data-data yang amat penting daripada kita menyimpan di dalam komputer. Karena kalau kita menyimpan didalam komputer, pada saat komputer terkena virus dan lain sebagainya maka data kita akan hilang dan sebuah penyesalan itu pasti terjadi.

6. Peralatan Output : Peralatan output adalah perangkat keras komputer yang berfungsi untuk menampilkan keluaran sebagai hasil dari suatu pengolahan data. Output yang dihasilkan dapat digolongkan menjadi empat bentuk, yaitu tulisan (huruf, angka, simbol khusus), Image (dalam bentuk grafik atau gambar), suara, dan bentuk lain yang dapat dibaca oleh mesin. Tiga golongan pertama adalah output yang dapat digunakan langsung oleh manusia, sedangkan golongan terakhir biasanya digunakan sebagai input untuk proses selanjutnya didalam komputer. Peralatan ouput banyak kita jumpai dimana-mana baik dalam hard copy maupun soft copy.

Peralatan output bisa berupa : 
a. Hard - copy device : 
Alat yang dapat digunakan mencetak tulisan dan image pada media keras seperti kertas ataupun film.

b. Soft - copy device : 
Alat yang dapat digunakan untuk menampilkan tulisan dan image pada media lunak yang berupa sinyal elektronik.

c. Drive device atau driver : 
Alat yang digunakan untuk merekam simbol dalam bentuk yang hanya dapat dibaca oleh mesin pada media seperti magnetic tape.

sumber :
http://fatekunima.blogspot.co.id/2013/07/pengertian-lengkap-organisasi-dan.html
http://www.pengertianku.net/2014/12/pengertian-arsitektur-komputer-secara-lebih-jelas.html
http://fexel.blogspot.co.id/2014/11/arsitektur-struktur-dasar-dan.html


Mikrokontroller

Mikrokontroller adalah sebuah chip yang didalamnya terdapat mikroprosesor yang telah dikombinasikan dengan CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan rangkaian clock dalam satu chip. Jadi, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus. Cara kerja mikrokontroler sebenarnya membaca dan menulis data.

Mikrokontroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote control, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan desain menggunakan mikroprosesor memori dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis.

Jenis - Jenis Mikrokontroller
  • RISC merupakan kependekan dari Reduced Instruction Set Computer. Instruksi yang dimiliki terbatas, tetapi memiliki fasilitas yang lebih banyak.
  • CISC kependekan dari Complex Instruction Set Computer. Instruksi bisa dikatakan lebih lengkap tapi dengan fasilitas secukupnya.
Kelebihan Mikrokontroller
  • Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan.
  • Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem.
  • Sistem running microcontroller berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah untuk download komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah.
  • Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem.
  • Harga microcontroller lebih murah dan mudah didapat.
Karakteristik Mikrokontroller
  1. Komponen-komponen pembangunannya dipilih untuk meminimalkan ukuran dan semurah mungkin.Yang berbentuk kecil dan harganya terjangkau.
  2. Biasanya mikrikontroller sendiri membutuhkan asupan daya yang rendah (low power). Bila PC anda terhubung dengan listrik AC (Alternatif Current) memakan daya hingga 50 watt, maka sebuah mikrokontroller yang ditenagai oleh baterai biasanya hanya bisa membutuhkan daya 50 miliwatt.
  3. Mikrokontroller dirancang khusus untuk satu pekerjaan dan menjalankan satu program spesifik. Program tersebut disimpan di dalam ROM (read only memory), dan biasanya tidak berubah.
Prinsip Kinerja Mikrokontroller
  1. Berdasarkan data yang ada pada register Program Counter. Mikrokontroler mengambil data dari ROM dengan alamat sebagaimana ditunjukkan dalam Program Counter. Selanjutnya Program Counter ditambah nilainya dengan 1 (increment) secara otomatis. Data yang diambil tersebut merupakan urutan instruksi program pengendali mikrokontroler yang sebelumnya telah dituliskan oleh pembuatnya.
  2. Instruksi tersebut diolah dan dijalankan. Proses pengerjaan bergantung pada jenis instruksi; bisa membaca, mengubah nilai-nilai dalam register, RAM, isi port atau melakukan pembacaan dan dilanjutkan dengan pengubahan data.
  3. Program Counter telah berubah nilainya (baik karena penambahan secara otomatris sebagaimana dijelaskan pada langkah 1 di atas atau karena pengubahan data pada langkah 2). Selanjutnya yang dilakukan mikrokontroler adalah mengulang kembali siklus ini pada langkah 1. Demikian seterusnya hingga catu daya dimatikan.
Perangkat Pengembang Mikrokontroller

Suatu perangkat dari sistem mikrokontroler adalah sangat penting untuk melatih dan berekperimen dengan mikrokontroler yang dipilih, adapun yang disebut perangkat pengembangan atau dalam bahasa Inggris disebut development tools, bisa terdiri dari :
  1. Compiler atau penterjemah (Software). Mikrokontroler bekerja dalam bahasa mesin, sedangkan manusia sulit untuk mengerti bahasa mesin, untuk mudahnya dibuat program dengan bahasa yang lebih tinggi tingkatnya, yaitu C, BASIC, atau ASSEMBLER, selanjutnya dengan bantuan Compiler, program akan diterjemahkan dalam bahasa mesin, tentu saja butuh PC (Personal Computer).
  2. Simulator (Software), adalah program komputer yang mensimulasikan kerja dari mikrokon¬troler. Dengan memasukan program dan dijalankan, maka register, memori dan input-output (I/O) yang nampak dilayar PC akan menunjukan isi, sesuai dengan program yang dijalankan.
  3. Emulator (Software dan Hardware), suatu alat yang berhubungan dengan PC yang dapat mengemulasikan kerja mikrokontroler, artinya program-program dibuat dan di compile di PC setelah itu di download ke emulator.
  4. Programmer, adalah alat yang digunakan untuk mengisi program dalam suatu mikrokontroler, biasanya alat ini menggunakan PC sebagai terminal pintarnya, selanjutnya melalui serial port, paralel port, USB atau card khusus antarmuka ke programmer, kode-kode mesin dimasukkan dalam memory ROM, EPROM yang berada diluar MCU atau Flash memory yang jadi satu kemasan dengan MCU.
  5. In Circuit Emulator (ICE), adalah pengembangan dari emulator, hubungan dengan PC tetap ada, karena PC dianggap sebagai chip mikrokontroler bayangan.
Sumber :

http://www.immersa-lab.com/pengenalan-mikrokontroler.htm
http://kaydhaf.blogspot.co.id/2014/01/pengertian-mikrokontroler-dan.html
http://elektronika-dasar.web.id/pengertian-dan-kelebihan-microcontroller/
http://komputerterapann.blogspot.co.id/2015/01/mikrokontroler.html

Minggu, 03 April 2016

Perbandingan Berbagai Platform (Windows,Linux,MacOS)

1. Windows

Sistem Operasi Windows adalah sistem operasi berbasis grafik atau GUI (Graphical user interface), sehingga sistem operasi ini mudah dalam pengoperasiannya. Pada awalnya Sistem operasi Windows adalah sebuah sistem operasi yang berbasis modus teks dan command-line yang dikenal dengan nama MS-DOS.

Microsoft Windows atau lebih dikenal dengan Windows merupakan keluarga sistem operasi yang dikembangkan oleh perusahaan perangkat lunak terbesar di dunia Microsoft Corporation yang berpusat di Redmond, Washington, Amerika Serikat.

Kelebihan Microsoft Windows :
  • Pengguna (user) bisa membuka lebih dari 1 file dalam waktu bersamaan. Pengguna (user) dapat menjalankan lebih dari 1 aplikasi pada saat yg bersamaan.
  • Sistem operasi yang user-friendly.
  • Dukungan hardware yang lengkap, aplikasi bagi platform Windows lebih banyak.
  • Memiliki pengaturan control akses yang canggih dibandingkan dengan sistem operasi yang lain, dikarenakan tidak semua orang dapat mengakses data secara bebas terhadap semua objek tertentu.
  • Mendukung sistem berkas dengan fomat FAT, FAT16, FAT32, NTFS, juga ISO9660.
  • Mendukung Sistem Berkas Terenskripsi ( EFS ). Sistem ini digunakan untuk memproteksi data- data yang penting agar tidak dapat di buka oleh user lain apalagi komputer lain.
  • Digunakan oleh mayoritas pengguna computer di dunia.
  • Banyak terdapat aplikasi yang kompatibel dengan Windows.
  • Bisa sharing dari berbagai data aplikasi yang lainnya dengan mudah.
  • Banyak mendukung dari hardware & software.
Kekurangan Microsoft Windows :

  • Space hardisk yang dibutuhkan besar
  • Mudah sekali tertular virus.
  • Membutuhkan kecepatan prosesor yang begitu tinggi.
  • Sistem file kacau, Contoh: jika kita menginstall suatu aplikasi system DLL (Dynamic Link Libraries) biasanya langsung diletakkan di C:\\Windows\System\, Sementara aplikasi itu sendiri letaknya ada di tempat yang lain, sehingga dapat menyusahkan disaat menguninstall aplikasi tersebut.
  • Harga lisensi terlalu mahal dan tidak dapat dijangkau oleh user secara keseluruhan.
2. Linux


Linux adalah sistem operasi bebas yang sangat populer untuk computer, Istilah Linux atau GNU/Linux (GNU) juga digunakan sebagai rujukan kepada keseluruhan distro Linux (Linux distribution), yang di dalamnya disertakan program-program lain pendukung sistem operasi. Nama "Linux" berasal dari nama pembuatnya, yang diperkenalkan tahun 1991 oleh Linus Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternatif GNU/Linux.

Linux mendukung banyak perangkat keras komputer, dan telah digunakan di berbagai peralatan dari komputer pribadi, superkomputer dan sistem benam (embedded system), seperti telepon seluler (Ponsel) dan perekam video pribadi. Pada awalnya, Linux dibuat, dikembangkan, dan digunakan oleh peminatnya saja. Kini Linux telah mendapat dukungan dari perusahaan besar seperti IBM dan HewlettPackard. Para pengamat teknologi informatika beranggapan kesuksesan ini dikarenakan Linux tidak bergantung kepada vendor (vendor independence), biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX proprietari, serta faktor keamanan dan kestabilannya dibandingkan dengan Microsoft Windows. Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka(opensource software).

Linux telah lama dikenal untuk penggunaannya di server, dan didukung oleh perusahaan-perusahaan komputer ternama seperti Intel, Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, Red Hat, dan Sun Microsystems. Linux digunakan sebagai sistem operasi di berbagai macam jenis perangkat keras komputer, termasuk komputer desktop, superkomputer, dan sistem benam seperti pembaca buku elektronik, sistem permainan video (PlayStation 2, PlayStation 3 dan XBox), telepon genggam dan router. Para pengamat teknologi informatika beranggapan kesuksesan Linux dikarenakan Linux tidak bergantung kepada vendor (vendor independence), biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX tak bebas, serta faktor keamanan dan kestabilannya yang tinggi dibandingkan dengan sistem operasi lainnya seperti Microsoft Windows. Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka (opensource software).

Kelebihan Linux :
  • Jika pada Linux, bisa berinteraksi dgn operating system lain dgn cara : Kompabilitas file system, network, & emulasi operating system.
  • Sistem operasi yang tahan tertular virus.
  • Linux sangat stabil, sehingga menjadi platform mayoritas bagi server internet, hingga industri perfilman.
  • Linux sangat baik digunakan untuk jaringan.
  • Linux merupakan sistem operasi bebas dan terbuka. Sehingga dapat dikatakan, tidak terdapat biaya lisensi untuk membeli atau menggunakan Linux.
  • Linux adalah sistem operasi yang murni multiuser dan multitasking.
  • Lisensi gratis
  • Virtual memory linux mempunyai kemampuan menjalankan program – program yg lebih dari seharusnya.
  • Didukung ribuan programmer – programmer seluruh dunia.
Kekurangan Linux :

  • Aplikasi yang tersedia belum begitu lengkap, tidak seperti di windows.
  • Operating system yang lumayan sulit untuk dipelajari.
  • Masih belum banyak software yang cocok dijalankan di Linux.
  • Beberapa hardware yang sepertinya sulit untuk menyediakan driver untuk Linux.

3. MacOS

Mac OS atau Macintosh Operating System adalah sistem operasi komputer yang dibuat oleh Apple Komputer yang di gunakan untuk mengoperasikan komputer notebook apple yakni macbook. Macintosh diperkenalkan pertama kali pada bulan Januari 1984 lewat iklan Super Bowl. Pada waktu itu, langkah yang dilakukan Apple adalah sebuah perkembangan revolusioner dalam dunia komputer personal.

Awalnya Apple sengaja membuat Macintosh yang biasa agar Macintosh dapat lebih mudah di jalankan oleh orang yang baru belajar komputer sekali pun. Sistem Operasi Macintosh pada awalnya dikenali sebagai Sistem, seperti “Sistem 6.0.7? atau “Sistem 7?. Pada awalnya juga dikenali sebagai “Toolbox” yang terdapat beberapa kelebihan yang dapat digunakan untuk menggantikan keterpautan kepada toolbox komputer itu sendiri.

Kelebihan MacOS :
  • Mac OS tidak mudah terkena virus.
  • Tampilan yang lebih glossy sehingga bagus untuk desain grafik/multimedia.
  • Tidak mudah terserang virus, Karena dirancang oleh security oriented.
  • Mempunyai program “sherlock“ yang tidak hanya mencari file pada harddisk dan dalam jaringan lokal, tetapi juga di Internet.
  • High Performance khususnya untuk MAC OS X yang dapat untuk melakukan semua hal dalam menjalankan aplikasi dengan kecepatan baik.
  • High performance, bisa melakukan semua hal yang hanya dilakukan di MAC dengan kecepatan tinggi.
  • OS yang lumayan begitu banyak peminatnya, khususnya para graphic designer.
Kekurangan MacOS :

  • Software untuk OS ini belum begitu lengkap seperti pada windows.
  • Harganya masih terlalu mahal.
  • Kurang cocok untuk aplikasi server dan game.
  • Tidak bisa digunakan dalam waktu yang bersamaan.
  • Hanya berguna bagi Graphic Designer.
  • Mac tidak bisa dirakit sendiri.
  • Softwarenya tidak begitu lengkap, dan kurang cocok bagi para gammers atau untuk bermain game, karena tampilannya kurang begitu menarik.
Perbandingan Windows, Linux dan MacOS Secara Keseluruhan

1. Dilihat dari kepopuleran.

  • Windows memiliki tingkat populer pertama.
  • Mac OS adalah yang kedua.
  • Linux adalah yang ketiga.

 2. Dilihat dari harga.

Windows adalah salah satu sistem operasi yang berbayar. Sedangkan Linux dan Mac OS adalah sistem operasi bisa didapat dengan gratis.

3. Dilihat dari User Interface.
  • Windows tidak memiliki banyak user interface.
  • Linux memiliki banyak user interface.
  • Mac OS tidak memiliki banyak user interface. Akan tetapi, meskipun Mac OS tidak mempunyai banyak user interface tapi Mac OS sudah enak untuk dipakai dan dipandang.

 4. Dilihat dari kualitas gambar.

Kualitas gambar Mac OS adalah kualitas gambar yang paling bagus diantara Windows dan Linux.

5. Kelengkapan Program.
  • Pertama kali memakai Windows, maka harus mengisi program aplikasi yang lain.
  • Didalam Linux sudah terdapat banyak program yang siap untuk dipakai.
  • Didalam Mac OS sudah terdapat program yang siap dipakai, tapi tidak terlalu banyak.

6. Dilihat dari keamanan virus.

Linux memiliki tingkat keamanan dari virus yang paling kuat. Bahkan banyak orang yang menggunakan Linux sebagai sistem operasi pembuat virus. Dan Mac OS pun susah untuk terkena virus. Sedangkan Windows rentan sekali terkena virus.

7. Dilihat dari kenyamanan pemakai.

Windows adalah sistem operasi yang sangat disukai oleh para user/brainware karena lebih mudah untuk dipakai dibandingkan dengan sistem operasi yang lainnya.

Referensi
http://www.infolengkap.net/2014/08/kelebihan-kekurangan-windows-linux-dan-mac-os.html
https://id.wikipedia.org/wiki/Microsoft_Windows
http://www.bloggergubug.com/2013/02/mengenal-sistem-operasi-windows.html
http://infodanpengertian.blogspot.co.id/2015/04/pengertian-dan-sejarah-linux.html
http://www.bloggergubug.com/2013/04/mengenal-sistem-operasi-macintosh.html