Wednesday, November 21, 2012

Mac atau Windows PC Mana Yang Terbaik?



Bicara tentang komputer selalu ada pilihan dan ada satu kebenaran dalam dunia komputer yaitu ada dua macam komputer. Ada komputer Mac (Macintos) dan ada komputer Windows (PC). Tentunya kita tidak masukkan dunia komputer jaringan dimana disana ada Unix, Linux, dan OS jaringan lainnya.


Apakah kedua jenis komputer itu saling kompatibel?

Dalam beberapa aspek kedua jenis komputer tersebut sudah bisa dibilang kompatibel. Misal saja pada jaringan komputer dengan wireless router sebagai pusat jaringannya, kedua jenis PC dan Mac bisa sekaligus terhubung kedalam jaringan. karena keduanya menggunakan protocol jaringan yang sama yaitu protocol TCP/IP yang sudah menjadi standard protocol dalam dunia internet. Begitu juga perangkat yang ada juga bisa saling dipertukarkan, sebut saja Camera dan Printer. Karena semua pabrikan selalu memikirkan compatibility dalam design produk mereka agar bisa dipakai oleh Mac dan PC. Sebut saja Microsoft Office juga ada tersedia buat Apple Mac disamping umum dipakai oleh PC. Begitu juga program-program penting lainnya.

JADI …apakah kedua PC dan Mac berbeda

Ada perbedaan utama yang bersifat inti antar kedua system yang mungkin saja tidak pernah bisa berubah. Jumlah PC jauh membludak didunia ini dibanding dengan Apple Mac. Wajar saja karena PC dibuat oleh ribuan perusahaan yang berbeda di dunia ini dan di assembling dalam jutaan cara yang berbeda. Bahkan anda pun terkadang memilih untuk merakit PC sendiri dirumah untuk menekan biaya sesuai dengan kantong tentunya. Misal saja kita bisa mengurangi NIC adapter karena hanya dipakai untuk stand-alone tidak untuk terhubung kepada jaringan komputer. Yach lumayan hemat setidaknya 100 ribuan.

Disisi lain Apple Mac, setiap proses pembuatanya betul-betul di kendalikan hanya oleh satu company saja walaupun mungkin pabriknya banyak. Dan lagi jangan ditanya kualitasnya jauh sangat bagus dan dengan performa yang sangat tinggi disamping itu tampilannya sangat cantik. Makanya jangan ditanya harganya, jauh lebih mahal dari kelas PC – kenapa? Karena Apple telah membuat reputasinya menjual komputer kelas mahal kepada para professional dan kelas bisnis. Dan ini menjadikan Apple Mac menjadi kelas exclusive dalam jajaran komputer didunia ini.

Universal dan Exclusive Computing

Program-program Windows telah menikmati tingkatan yang bersifat universal. Hamper setiap system bisa jalan di Windows PC, dan hampir para pembuat program pertama kali berkiblat kepada PC Windows mengingat pangsa pasar yang melimpah. Akan tetapi quality control sangat berbeda. Disisi lain Apple Mac menerapkan standard yang sangat ketat dan hanya membuat applikasi khusus untuk Mac saja dan dibuat dengan standard terbaik untuk memastikan qualitas terbaik untuk platform Mac sendiri.

Salah satu sisi lain dimana Mac dan PC berbeda dilihat dari baiknya adalah bahwa proteksi virus dan keamanan tidak kompatibel. Secara virtual hampir semua virus yang ada di internet sekarang ini adalah mentarget PC bukan Mac. Hal ini dikarenakan Apple mengendalikan produk-produk nya dengan sangat ketat dengan tingkat keamanan yang sangat tinggi. Dan lagi Apple mempunyai kendali departemen keamanan komputer pusat dimana setiap Mac yang terhubung kepada jaringan internet akan selalu mendapatkan perlindungan dari pusat Apple. Dan lagi OS Mac tidak ada dipasaran, karena produk Mac khusus dibuat untuk Mac. Tidak halnya dengan Windows yang bisa dibajak karena untuk komputer apa saja bisa jalan. Akan tetapi tentunya kedua jenis OS ini sama-sama rentan terhadap virus-virus jaringan social.

Apakah keduanya akan bisa saling kompatibel?

Seperti disebutkan dimuka bahwa dalam beberapa sisi keduanya kompatibel, sementara disisi lain mereka tidak saling kompatibel. Dan dalam beberapa sisi memang tidak perlu mereka kompatibel. Dalam cita rasa secara umum, Windows bisa dikatakan satu langkah lebih maju, akan tetapi disisi lain Apple Mac mempunyai pijakan yang sangat kokoh. Mereka selamanya tidak akan kompatibel dalam beberapa sisi, karena Windows selalu berevolusi dan Apple akan mengubah kebijakan nya, akan tetapi interaksi keduanya berlanjut memberikan pengalaman computing yang bermanfaat kepada kita.

-rewritten from other source-


life is to short

Saturday, November 10, 2012

Perbedaan C dan C++


Bahasa pemrograman C dan C++ memiliki relasi yang sangat dekat. Hal ini karena bahasa C++ memang dikembangkan dari bahasa C. karena hal inlah seringkali kode bahasa c ditulis dengan IDE (Integrated Development Environment / Lingkungan Pengembangan Terintegrasi). terkadang juga dicampur dengan kode C++ dan dikompilasi dengan compiler dari C++. Meskipun sebagian besar kode bahasa C dapat dikompilasi sebagai kode C++, terdapat beberapa perbedaan yang menyebabkan bahasa C++ bukanlah semata-mata peningkatan dari bahasa C. Bahasa C++ memberikan banyak fitur yang tidak terdapat pada bahasa C.

Bjarne Stroustrup, penemu dari bahasa C++ memeang menyarankan agar perbedaan dari C dan C++ dikurangi sebanyak mungkin agar dapat memaksimalkan antar-operasi dari kedua bahasa tersebut. Ahli lain berpendapat bahwa, karena C dan C++ adalah dua bahasa pemrogaman yang berbeda, persamaan diantara keduanya memang bermanfaat, tetapi tidak vital. Berdasarkan dari pendapat kedua, usaha untuk mengurangi perbedaan dari kedua bahasa tidak seharusnya mengurangi usaha untuk mengembangkan kedua bahasa secara terpisah. 

Bebrapa syntax dari bahasa c yang tidak valid atau memberikan hasil yang berbeda apabila dijalankan pada baahsa C++ antara lain:

  • Identifier dari bahasa C++ tidak boleh menggunakan tanda underscore ( "_" ) secara berurutan di posisi manapun. Identifier dari baahsa C tidak boleh dimulai dengan underscore, tetapi boleh menggunakannya secara berurutan di posisi lain.
  • Pada bahasa C dan C++, keduanya bisa mendefinisikan struct secara bersarang atau nested struct (struct dalam struct) tapi cakupan dari keduanya berbeda. Pada C++, nested struct di definisikan hanya di dalam cakupan dari struct diluarnya.
  • Penggunaan fungsi tanpa prototype tidak diperbolehkan pada bahasa C++, meskipun ditulis di atas fungsi main().

Kerangka Program

Kerangka program utama adalah kerangka utama atau template yang digunakan untuk membuat setiap program. Dalam C, kita menulis program seperti ini:

#include <stdio.h>

void main()

{

printf(“Halo dunia”);

}

Sedangkan dalam C++ kita menulis seperti ini:

#include <iostream>

using namespace std;

int main()

{

cout<<”Halo dunia”<<endl;

return 0;

}

Penjelasan:

Dalam C, untuk melakukan input output kita menggunakan library standard bernama stdio.h sedangkan di C++ kita menggunakan iostream. Dalam potongan kode di atas kita akan melihat ada baris using namespace std; maksudnya adalah kita menggunakan namespace bernama std. Apa itu namespace? Namespace diibaratkan seperti folder yang menyimpan berkas-berkas. Kita dapat membuat namespace untuk mengelompokkan fungsi-fungsi tertentu sehingga lebih sistematis. Keuntungannya adalah, kita dapat membuat banyak nama fungsi yang sama namun dibedakan menjadi kategori-kategori tertentu sesuai namespace yang kita buat.

Lanjut ke baris selanjutnya, pada fungsi utama main() di program C kita bisa menulis nilai kembalian fungsi adalah void yang berarti fungsi tidak akan mengembalikan nilai apapun ke pemanggil / ke OS. Sedangkan dalam C++ kita lihat nilai kembalian fungsi didefinisikan sebagai int yang artinya setelah program dieksekusi maka akan mengembalikan nilai tertentu (dalam hal ini 0) kepada pemanggil / OS. Sebenarnya fungsi main() dalam C juga dapat diberikan nilai int namun itu bukan suatu keharusan. Sedangkan dalam C++ kita diwajibkan menggunakan int sebagai nilai kembalian (jika menggunakan bahasa C++ yang telah standard). CMIIW

- rewrite from any trusted source


Apa itu Secure Socket Layer SSL

SSL adalah kependekan dari Secure Socket Layer yang merupakan suatu protocol layer transport yang digunakan dalam koneksi internet secara aman. Jika anda menginginkan suatu koneksi komunikasi lewat internet dengan cara yang secure, maka gunakan koneksi SSL.

SSL menawarkan tiga tingkat keamanan, yaitu:
  1. Authentication: Memastikan bahwa message yang diterima berasal dari seseorang yang tersurat
  2. Confidentiality: Melindungi pesan dari suatu usaha pembacaan oleh penerima yang tidak berhak disepanjang perjalanannya.
  3. Integrity: Memastikan bahwa pesan asli, tidak mengalami perubahan dalam perjalanannya.
SSL dikembangkan oleh Netscape Communications agar bisa mengirim data secara aman lewat internet. Jika anda pernah memperhatikan di browser internet dengan menggunakan HTTPS, maka koneksi internet ini adalah menggunakan SSL yang umum digunakan pada suatu transaksi online. Jadi HTTPS adalah suatu protocol untuk melakukan transfer data yang terinkripsi melalui web.

Apa bedanya HTTPS dan HTTP:

  • HTTPS melakukan koneksi melalui port 443, sementara HTTP menggunakan port 80
  • HTTPS mengirim / menerima data dengan inkripsi lewat protocol SSL, sementara HTTP mengirim data dengan plain text
  • Jadi dalam transaksi online, maka pastikan anda melihat online store anda menggunakan HTTPS dalam bertransaksi keuangan lewat internet.

Jika anda mempunyai website, apa yang diperlukan agar bisa di host disuatu host yang bisa SSL?

  • Web server harus support metode enkripsi SSL
  • IP address public yang unik agar penyedia certificate SSL bisa melakukan validasi website anda
  • Suatu certificate SSL dari penyedia layanan SSL
Dua yang pertama bisa anda dapatkan dari ISP anda, hubungi ISP anda untuk memastikannya.

SSL beroperasi pada antara layer Application dan Transport pada model OSI (ingat OSI 7 Layer??). SSL tidak bekerja secara transparent automatis, karena hanya bisa kalau memang protocol-protocol applikasi secara explicit memang diimplementasikan.

SSL menggunakan metode enkripsi public-key dengan tujuanauthentication dan inkripsi  symmetric key untuk inkripsi informasi yang dikirim. Untuk public key inkripsi SSL menggunakan algoritma inkripsi Rivest-Shamir-Adleman (RSA), makanya bergantung pada implementasi dari infrastructure public key (PKI) yang didukung. Integritas pesan dijamin dengan cara mekanisme checking integritas yang disebut sebagai  message authentication code (MAC).

Suatu sesi SSL bermula saat suatu client dengan SSL-enabled meminta suatu koneksi dengan server dengan SSL-enabled melalui TCP port 443, yaitu port SSL. Hal ini akan menginisiasi suatu koneksi SSL antara client dan server. Semua website yang menggunakan SSL mempunyai suatu URL dengan awalan HTTPS. Server kemudian mengirimkan certificate digital dan public key kepada client tersebut.

Client server kemudian melakukan negosiasi tingkat inkripsi mana yang bisa diterima yang biasanya 40-bit, 56-bit, ataupun 128 bit keatas. Client kemudian menghasilkan suatu secret session key yang kemudian di inkripsi menggunakan public key dari server untuk kemudian mengirimkan nya kepada server. Server kemudian melakukan dekripsi secret session key tersebut menggunakan private key-nya. Dari poin ini seterusnya, secret key cryptography dikenakan dan kemudian session key digunakan untuk meng-inkripsi semua pertukaran data antara client dan server, memberikan suatu komunikasi private yang aman.

SSL ini tentunya tidak bebas dari masalah begitu saja. Semua transaksi web dengan SSL akan menambah overhead pemrosesan pada server. Terkadang menjadi dua kali lipat tingkat overhead prosessingnya dibanding tanpa menggunakan koneksi secure SSL. Dengan hardware mesin yang sama, maka tingkat beban prosessing dengan menggunakan SSL akan menjadi sangat berat dibanding tanpa SSL.

Disamping itu, SSL jadi sulit diimplementasikan dalam e-commerse yang menggunakan web server farms dan server load balancers. Hal ini mengingat SSL didesign agar client menggunakan IP address yang sama selama sessi berlangsung.

Untuk mengatasi masalah ini, biasanya digunakan hardware khusus yang disebut SSL Accelerators untuk mengambil alih beban processing dan sesi cache kepada server-server lain untuk meningkatkan performa.