Showing posts with label program. Show all posts
Showing posts with label program. Show all posts

Mengatasi Apache XAMPP yang tidak bisa berjalan 'running' di Windows

Dalam sistem operasi Windows ada Web Service IIS (Internet Information Services) biasanya digunakan khusus untuk web dengan aplikasi ASP (Active Server Page) sedangkan Apache merupakan web service untuk PHP. Default port dari kedua web service tersebut adalah 80. Jadi tidak memungkinkan bagi developer untuk menjalankan kedua service tersebut secara bersamaan. Kita perlu merubah salah satu settingan port.

Berikut adalah cara merubah settingan port pada Apache dari XAMPP:

1. Lakukan perubahan pada file httpd.conf
2. Buka file httpd.conf di C:\xampp\apache\conf\
3. Lalu lakukan find untuk kata “Listen 80” lalu ubah dengan “Listen 8080”
4. Masih di file yang sama, lakukan find untuk kata “ServerName localhost:80” lalu ubah dengan “ServerName localhost:8080”
5. Lalu simpan perubahan tersebut
6. Buka file httpd-ssl.conf di C:\xampp\apache\conf\extra\
7. Lalu lakukan find untuk kata “Listen 443” lalu ubah dengan “Listen 4499”
8. Masih di file yang sama, lakukan find untuk kata
   "virtualhost_default_:443"
   Lalu ubah dengan
   "virtualhost_default_:4499"

9. Masih di file yang sama, lakukan find untuk kata “ServerName localhost:443” lalu ubah dengan “ServerName localhost:4499”

Lalu jalankan XAMPP Control Panel pada C:\xampp\xampp-control.exe
Klik Start pada Apache maka di kotak detail yang bawah muncul peringatan “Apache started [Port 80]”
Lalu buka browser dan ketika pada address http://localhost:8080/xampp
Jika berhasil maka Web Service Apache tersebut telah berjalan di port 8080.

Aplikasi Penghitung Waktu Shalat Antarzona


Kini problem yang dihadapi umat Islam yang kerap bepergian melintasi zona waktu terpecahkan setelah hadir sebuah alat yang dinamakan Penghitung Waktu Shalat Pelawat Udara. 


Alat ini dikembangkan perusahaan asal Singapura, Crescentrating, sebuah perusahaan yang biasa memberikan peringkat halal kepada hotel. 


Diluncurkan awal bulan ini, perangkat online ini menyediakan data seperti waktu shalat di negara asal, kota tujuan, dan negara yang sedang dilintasi penerbangan. 


Alat ini kemudian menggunakan algoritma untuk menghitung waktu yang tepat bagi seorang penumpang Muslim untuk menjalankan shalat selama penerbangan berlangsung. 


Program ini memungkinkan umat Islam memastikan waktu shalatnya berdasarkan posisi mereka di darat.


Cara operasionalnya gampang. Sebelum melakukan perjalanan, seorang Muslim bisa membuka situs Crescentrating, kemudian memasukkan data berupa bandara keberangkatan, waktu keberangkatan, dan negara tujuan. 


Perangkat hitung itu kemudian secara otomatis akan menghasilkan waktu shalat baik dalam waktu lokal di bandara keberangkatan, selama penerbangan, hingga tiba di tempat tujuan. 


Hadirnya perangkat ini mendapat sambutan positif dari umat Islam, terutama mereka yang kerap melakukan perjalanan antarnegara. 


Alat ini sangat bermanfaat untuk penerbangan panjang, jika pesawat yang anda tumpangi melintasi zona waktu yang berbeda, maka anda akan sulit menentukan waktu shalat. 


Menurut Crescentrating pada 2010 lalu, sebanyak US$10 juta dihabiskan umat Muslim untuk bepergian antarnegara. 


Jumlah ini sama dengan 10% dari jumlah biaya perjalanan global dalam satu tahun. Dan pada 2020 diprediksi angka ini meningkat hingga 15%. 


Sementara itu, Organisasi Parawisata Dunia memperkirakan jumlah warga Arab yang bepergian ke luar negeri akan bertambah dua juta orang pada 2020. Saat ini jumlah wisatawan dari seluruh negara-negara Arab berjumlah 37 juta orang.

Sekilas Tentang Programming Language

Programming language atau bahasa program adalah suatu bahasa ataupun suatu tatacara yang dapat digunakan oleh manusia (programmer) untuk berkomunikasi secara langsung dengan komputer. Jenis programming language sangatlah banyak. Tetapi secara umum, pengertian programming language dapat dibagi menjadi dua, yaitu Low Level Language dan High Level Language.


Low level language adalah suatu bahasa program atau suatu tatacara yang dapat digunakan untuk berkomunikasi dengan komputer. Dalam hal ini tatacara yang digunakan masih ber-orientasi dengan mesin, dikarenakan itu low level langugae juga disebut sebagai bahasa mesin.


Untuk menggunakan bahasa ini, programmer harus menuliskan instruksi untuk setiap instruksi secara jelas dan teliti. Setiap program dan data yang ditulis, harus ditentukan pula address dimana data dan program akan disimpan. Programmer juga harus mengetahui lokasi setiap indikator ataupun register dan program untuk seluruh fungsinya.


Satu-satunya simbol yang tersedia untuk mengkomunikasikan tindakan yang dilakukan dan meng-identifikasikan data adalah 0 dan 1. Instruksi yang ada harus ditulis dalam urutan dan aturan dimana mereka harus ditmapilkan. Oleh karena itu, apabila salah satu instruksi hilang karena terjadi kesalahan/kekuarang telitian, seluruh instruksi harus dire-alokasi-kan untuk membuat ruang guna menambahkan instruksi tersebut, dan ini berarti pengubahan lokasi data.


Untuk mengatasi kesulitan tersebut, bahasa mesin kemudian dikembangkan menjadi assembly language. Dengan adanya pengembangan ini, dimungkinkan untuk menuliskan program dengan menggunakan kode instruksi dan label yang mewakili lokasi penyimpanan dengan syarat komputer memiliki sarana untuk menterjemahkan kedalam bahasa mesin.



Bahasa ini disebut sebagai assembly language dan program untuk menterjemahkannya kedalam kode mesin disebut sebagai asembler. Pada umumnya terdapat hubungan satu untuk satu antara masing-masing instruksi bahasa assembly dengan instruksi kode mesin. Gambar disamping menunjukkan versi asembly dari kode mesin.

Program yang ditulis oleh programmer dalam bahasa assembly disebut sebagai source program Jika program ini kemudian diubah kedalam bahasa mesin, disebut sebagai object program. Dengan adanya bahasa assembly ini, programmer tidak perlu meng-alokasikan address secara khusus, dan ia cukup memberikan nama atau label serta menginduksikan ukuran dan format yang diperlukan. Assembler kemudian bertanggung jawab atas pengalokasian dan penyimpanan.

Dengan menggunakan nama-nama simbolik untuk data dan kode-kode pengoperasian, tugas programmer dibuat lebih mudah dari pada menggunakan kode numeric bahasa mesin. Alokasi penyimpanan oleh assembler juga memungkinkan progremmer membuat perubahan-perubahan, penambahan dan penghilangan instruksi cenderung lebih mudah dan cenderung membuat kesalahan yang lebih kecil. Karena masih berhubungan dengan bahasa mesin, assembly sangat efisien dalam penggunaan fasilitas mesin.

Bahasa assembly adalah low level language, yakni lebih dekat dengan kode mesin dari pada bahasa yang digunakan oleh manusia dalam kehidupan sehari-hari. Karena masih berorientasi mesin, membutuhkan programmmer yang memiliki pengetahuan mesin secara baik. Transfer program bahasa mesin kemesin untuk type berbeda sering sulit dan dalam beberapa kasus tidak mungkin. Programmer masih harus mempelajari bahasa assembly untuk mesin yang berbeda.

High level language merupakan suatu bahasa program atau suatu tata cara yang dapat digunakan untuk memberi perintah/instruksi kepada komputer. Tata cara yang ada sangat mirip dengan tata cara yang digunakan oleh manusia dalam berkomunikasi. Dengan demikian, high level language lebih mudah untuk dipelajari. Semua kalimat, kata ataupun aturan yang ada didalam high level language, juga merupakan kalimat ataupun kata ataupun aturan yang digunakan dalam kehidupan sehari-hari.



Karena jangkauan pemakai komputer adalah international, maka aturan ataupun kalimat ataupun kata-kata dasar yang digunakan pada high level language, kemudian disesuaikan dengan aturan-aturan dan kalimat yang ada dalam bahasa Inggris.



Jenis high level language cukup banyak, seperti misalnya BASIC, COBOL, FORTRAN dan lain sebagainya. Sama halnya dengan tatacara yang terdapat dalam bahasa assembly, penulisan program dalam high level language juga harus diterjemahkan kedalam bahasa mesin sebelum proses dilakukan. Program penterjemah disebuh compiler atau interpreter.

Setiap bahasa didalam high level language mempunyai aturan dan tata cara sendiri-sendiri, demikian pula halnya dengan compiler ataupun interpreter yang ada. Hal ini juga bisa disamakan dengan bahasa yang digunakan oleh manusia, dimana antara satu bahasa dan bahasa lainnya tidaklah sama, dan semuanya memiliki aturan dan tatacara sendiri-sendiri.

Untuk bahasa BASIC misalnya, susunan programnya selalu terdiri atas tiga hal, yaitu line number, keyword dan body program. Dalam hal ini BASIC merupakan singkatan dari Beginners All-purpose Symbolic Instruction Code. Basic menjadi sangat populer karena dapat dibuat dengan cara yang ber-struktur ataupun tidak, disamping itu, BASIC memiliki versi interpreter dan versi compiler.

BASIC menjadi populer seiring dengan hadirnya microcomputer, yaitu pada akhir 70-an. Demikian populernya BASIC, sehingga banyak pabrik komputer PC pada saat itu yang membuat BASIC dalam versi ROM (Read Only Memory) disamping versi interpreter ataupun compiler. Sehingga pada saat komputer dinyalakan, komputer tersebut langsung siap menjalankan BASIC. Belum ada satu bahasa selain BASIC yang dibuat dalam pelbagai versi.

Selain keunggulan-keunggulan tersebut, BASIC juga sangat cocok digunakan untuk pemula ataupun bagi programmer senior. BASIC juga cocok untuk menyelesaikan masalah-masalah yang berkaitan dengan bisnis ataupun persoalan scientific. Dengan adanya line number yang dimilinya, BASIC akan memproses program dari urutan yang kecil menuju keline number yang besar. Tetapi dengan adanya instruksi GOTO, proses ini bisa dibelokkan keurutan lainnya.

Bahasa berikutnya adalah COBOL yang merupakan singkatan dari Common Business Oriented Language. Bahasa ini terbagi menjadi empat divisi, yaitu Identification Division, Environtment Devision, Data Devision dan Prosedure Devision. Susunan bahasa ini sangat rapi dan teliti sehingga menyerupai tulisan seorang manajer pada saat membuat laporan ataupun seorang pengarang sedang membuat buku

Pada tahun 1959, CODASYL (Conference on Data System Language) didirikan dengan anggota yang terdiri dari wakil-wakil pemakai komputer dan pabrik. Dua tahun kemudian, spesifikasi pertama dihasilkan dengan nama COBOL. Akhirnya COBOL menjadi bahasa pemrograman yang digunakan paling luas dalam aplikasi komersial ataupun bisnis. Lebih dari 40% instalasi komputer didunia masih menggunakan COBOL.

COBOL juga bisa dianggap sebagai suatu bahasa yang menggunakan sistem dokumentasi yang rapi dan teliti seperti halnya bahasa Inggris. Dengan adanya hal ini, pemakai menjadi mudah untuk membaca dan mengerti, dan programmer juga menjadi mudah untuk melakukan debug atau pemeriksaan program. Persoalan bisnis selalu memerlukan adanya data dalam jumlah yang besar, serta kecepatan untuk memprosesnya. COBOL menjawab dengan instruksi-instruksi yang sederhana dan mudah dimengerti.

PASCAL Programming Language juga merupakan suatu bahasa, dimana nama yang ada diambil dari nama seorang ilmuawan Perancis yang sangat terkenal, yaitu Blaise Pascal. Bahasa ini tersusun dengan pola struktur yang mengalir dari atas kebawah. Disamping itu, sebuah program yang besar dapat dipecah-pecah dalam beberapa modul program yang lebih kecil. Dengan demikian, bahasa ini dapat mendorong seorang programmer untuk melihat sebuah persoalan secara logic.

Konsep pemrograman secara modular (suatu program yang dibagi dalam beberapa bentuk modul) yang sangat menarik diperkenalkan oleh Turbo Pascal mulai versi 4.0. Modul ini dikenal dengan unit (Turbo Pascal UNIT/TPU). Dengan menggunakan unit, suatu modul bagian dari program dapat dikompilasi secara terpisah terhadap program utama, sehingga hasil compilasi program utama tidak terlalu besar. Dengan demikian apabila program dijalankan, tidak memerlukan memory yang terlalu besar.

Dengan adanya pola program yang terstruktur (structured programming) yang juga merupakan salah satu rancangan teknik, maka bentuk program PASCAL menjadi standart sehingga mudah untuk melakukan pelacakan arah program ataupun saat diperlukan perbaikan. PASCAL menggunakan instruksi IF-THEN-ELSE dan DO-WHILE untuk mengontrol struktur dari program yang dimilikinya.

dBASE Programming merupakan salah satu high level languge yang telah dikembangkan sedemikian rupa secara specifik untuk microcomputer, sehingga memungkinkan adanya penggunaan software secara minimum, tetapi pemakai dapat dengan mudah dan cepat dapat menentukan, membangun dan kemudian meng-access (memanggil kembali) file-file yang mereka miliki.

Dengan adanya hal ini, pemakai dapat dengan mudah mengolah dan membuat laporan dari file mereka sendiri secara interaktif melalui keyboard dan layar monitor ataupun printer. dBase juga menawarkan suatu penulisan dan penyimpanan urutan-urutan tindakan, dan mengulanginya jika diperlukan. Dengan kata lain, dBase adalah bahasa yang diinterpetasikan dan menghasilkan kode intermediate.

Para pengguna komputer berbasis Windows, kini menggunakan bahasa pemrograman berbasis objek Bahasa pemrograman yang ditawarkan dengan banyak kemudahan ini, menggunakan kosa kata yang cantik, yakni Visual, sehingga kita mengenal adanya Delphi milik Borland, Visual C++, Visual Basic, atau Oracle, PowerBuilder, Visual dBase, Visual Foxpro, untuk aplikasi database.

Visual Basic dari Microsoft Corporation, merupakan bahasa pemrograman yang secara cepat dan mudah dapat digunakan untuk membuat aplikasi pada Microsoft Windows.

Kata "Visual" yang ada, menunjukkan cara yang digunakan untuk membuat graphical user interface (GUI). Dengan cara ini kita tidak lagi memerlukan penulisan instruksi pemrograman dalam kode-kode baris, tetapi dengan secara mudah kita dapat melakukan drag dan drop objek-objek yang akan kita gunakan.

Kata "Basic" merupakan bagian bahasa BASIC (Beginners All-purpose Symbolic Instruction Code), yaitu sebuah bahasa pemrograman yang dalam sejarahnya sudah banyak digunakan oleh para programmer untuk menyusun aplikasi. Visual Basic dikembangkan dari bahasa pemrograman BASIC dan sekarang banyak berisi statemen, fungsi, dan keyword, yang beberapa diantaranya terhubung ke Windows GUI. Versi terbaru program ini menggunakan nomor versi 6.0

Guna menyusun sebuah aplikasi, kita hanya membutuhkan beberapa menit saja. Dengan membuat user interface melalui kontrol "drawing", seperti halnya text box dan command button, dalam sebuah form. Selanjutnya kita dapat mengatur properti untuk form dan kontrol yang ada di dalamnya. Misalnya memberi nilai caption, color, dan size. Untuk proses terakhir, kita dapat menuliskan kode untuk memasukkannya ke dalam sebuah aplikasi.

Jika kita sudah mengetahui urutan proses pembuatan aplikasi diatas, hal ini akan membantu untuk mengetahui konsep di mana Visual Basic membangun sebuah aplikasi. Karena Visual Basic merupakan bahasa pemrograman Windows, yang telah lama "bersahabat" dengan para pemakainya dan banyak menyediakan fasilitas yang dibutuhkan penggemarnya, hal ini akan memudahkan programmer versi BASIC. Jika kita seorang programmer Windows baru, masih memerlukan pemahaman yang mendasar dari sebuah program.

Visual C++ adalah bahasa pemrograman C++ versi Microsoft. Didasarkan pada bahasa C, C++ adalah versi pembaharuan dari C yang mengambil bahasa C ke evolusi bahasa pemrograman aras berikutnya - yang menyediakan pemrograman berorientasi objek.

Visual C++ adalah bahasa yang dikompilasi. Sebuah compiler C++ (bahasa pemrograman C++ yang merupakan bagian dari Visual C++ kita) mengambil instruksi-instruksi bahasa C++ dan menterjemahkannya ke dalam format yang dapat dibaca komputer. Kompiler C++ adalah perangkat yang digunakan komputer untuk memahami instruksi-instruksi bahasa C++ di dalam program Anda. Microsoft Visual C++ datang bersama editor miliknya dan lingkungan pemrograman terpadu yang membuat pemrograman menjadi mudah dikelola.

Setelah Anda menulis kode Visual C++, Anda menjalankannya melalui Visual C++, menghasilkan instruksi yang terkompilasi dengan benar dan menjalankan program tersebut.

Sebuah praprosesor membaca pengarah praprosesor program untuk mengontrol pengkompilasian. Perhatikan bahwa program Visual C++ Anda harus dilewatkan melalui praprosesor sebelum program dikompilasi. Praprosesor membaca simbol-simbol khusus di dalam kode yang disebut pengarah praprosesor yang Anda masukkan di dalam program, untuk mengontrol pengkompilasian program. Visual C++ dengan sendirinya membentuk langkah praprosesor, sehingga tidak perlu pemahaman tambahan bagi Anda selain meletakkan pengarah praprosesor ke dalam program-program Anda.

Program Anda harus melalui tahapan terakhir setelah pengkompilasian dan sebelum pengeksekusian. Tahapan ini disebut tahapan linking atau link editing. Pada saat program Anda di-link, program yang disebut linker memasok informasi yang diperlukan saat pengeksekusian ke program yang dikompilasi. Anda juga dapat menggabungkan beberapa program yang dikompilasi ke dalam sebuah program yang dapat dieksekusi dengan melakukan link.

Ide munculnya Delphi sebenarnya berasal dari bahasa pemrograman yang cukup terkenal, yaitu Pascal. Pada tahun 1992 Borland International menggabungkan Turbo Pascal for DOS dan Turbo Pascal For Windows menjadi satu paket bahasa pemrograman yang dikenal dengan nama Borland Pascal versi 7. Karena pemrograman Windows dengan Borland Pascal masih dirasa cukup sulit, maka sejak tahun 1993 Borland International mengembangkan bahasa Pascal yang bersifat Visual. Hasil dari pengembangan ini adalah dirilisnya Borland Delphi tahun 1995.

Sekitar satu tahun sesudahnya, yaitu tahun 1996, Borland International merilis Borland Delphi 2 yang dikhususkan untuk sistem operasi Windows 95 dan Windows NT. Sampai saat ini Borland telah merilis versi terbarunya yaitu Borland Delphi 6.

Borland Delphi 6 adalah lingkungan pengembang aplikasi cepat yang pertama untuk Windows yang mendukung penuh layanan Web. Dengan Delphi 6, pengembang kelompok atau individu dapat membentuk generasi berikutnya dari aplikasi e-business di Internet dengan cepat dan mudah.

Topik Lainnya: programpendidikankomputerteknologisains




Web Attack Toolkits Kian Ancam Keamanan Web

Jangan kira hanya ahli bahasa pemprograman yang bisa menciptakan malware dan melakukan aksi kriminal cyber. Kini, pemprogram pemula pun dengan mudah bertindak jahat di dunia maya.

Keadaan ini disoroti oleh Symantec dalam laporan berjudul Report on Attack Toolkits and Malicious Websites.

Di dalamnya, terungkap bahwa para pelaku kriminal cyber saat ini makin umum memanfaatkan kit serangan (attack kit) dalam aksi-aksinya.

Toolkit serangan adalah program yang dapat digunakan baik oleh pemula dan ahli yang ingin memfasilitasi peluncuran serangan secara luas pada jaringan komputer.

Kit ini memungkinkan penyerang dengan mudah mengirimkan sejumlah ancaman yang sudah diprogram ke berbagai sistem komputer. Toolkit serangan juga memberikan kemampuan untuk mengustomisasi ancaman guna menghindari deteksi serta mengotomatisasi proses serangan.

Salah satu kit serangan terbesar dan telah memakan banyak korban ialah Zeus. Tujuan utama kit ini adalah mencuri kredensial rekening bank. Sasaran utamanya yaitu usaha skala kecil yang kebanyakan kurang memiliki perlindungan untuk menjaga transaksi finansial mereka.

Melalui botnet Zeus, para penjahat cyber telah berhasil meraup keuntungan sebesar lebih dari US$70 juta (sekitar Rp630 miliar) dari rekening perbankan dan perdagangan online selama lebih dari 18 bulan, sebelum jaringannya tertangkap September 2010 silam.

Popularitas dan juga tingginya permintaan telah meningkatkan harga kit serangan. Pada tahun 2006,toolkit WebAttacker dijual secara gelap seharga US$15. Sementara pada tahun 2010, Zeus 2.0 diiklankan dengan harga hingga US$8.000.

Saat ini, sedikitnya 61% laporan ancaman keamanan web yang diterima Symantec disebabkan oleh kit serangan. Beberapa nama paling umum antara lain MPack, Neosploit, ZeuS, Nukesploit P4ck, dan Phoenix.

Konsep Dasar Arsitektur TCP/IP

Konsep Dasar Arsitektur  TCP/IP
TCP/IP biasanya ada di sistem operasi Unix atau turunannya. Walaupun sebetulnya pengembangannya terpisah tapi sejarah keduanya saling terikat erat, terutama sejak 4.2BSD Unix mulai memasukan protokol TCP/IP ke dalamnya. Pada hari ini, protokol TCP/IP tersedia di banyak sistem operasi dan termasuk bagian integral dari sistem operasi OS/2, OS/400, dan Windows 9x/NT/2000/XP, maupun berbagai varian Unix.

Komunikasi data merupakan proses mengirimkan data dari satu komputer ke komputer yang lain. Melalui peralatan Network Interface Card (NIC) atau LAN card, komunikasi data antar komputer biasanya dilakukan. NIC / LAN card yang digunakan sangat bervarisasi tergantung jenis saluran fisik yang digunakan.
Ada beberapa masalah yang harus dipecahkan dalam mengiriman data. Pertama, data harus dapat dikirimkan ke komputer yang tepat, sesuai tujuannya. Hal ini akan menjadi rumit jika komputer tujuan transfer data ini tidak berada pada jaringan lokal, melainkan di tempat yang jauh. Jika lokasi komputer yang saling berkomunikasi "jauh" (secara jaringan) maka terdapat kemungkinan data rusak atau hilang. Karenanya, perlu ada mekanisme yang mencegah rusaknya data ini.
Hal lain yang perlu diperhatikan ialah, pada komputer tujuan transfer data mungkin terdapat lebih dari satu aplikasi yang menunggu datangnya data. Data yang dikirim harus sampai ke aplikasi yang tepat, pada komputer yang tepat, tanpa kesalahan.
Cara alamiah untuk menghadapi setiap masalah yang rumit ialah memecah masalah tersebut menjadi bagian yang lebih kecil. Dalam memecahkan masalah transfer data diatas, para ahli jaringankomputer pun melakukan hal yang sama. Untuk setiap problem komunikasi data, diciptakan solusi khusus berupa aturan-aturan untuk menangani problem tersebut. Untuk menangani semua masalah komunikasi data, keseluruhan aturan ini harus bekerja sama satu dengan lainnya. Sekumpulan aturan untuk mengatur proses pengiriman data ini disebut sebagai protokol komunikasi data. Protokol ini diimplementasikan dalam bentuk program komputer (software) yang terdapat pada komputer dan peralatan komunikasi data lainnya.
TCP/IP adalah sekumpulan protokol yang didesain untuk melakukan fungsi-fungi komunikasi data pada Wide Area Network (WAN). TCP/IP terdiri dari sekumpulan protokol yang masing-masing bertanggung jawab atas bagian-bagian tertentu dari komunikasi data. Dalam bahasa yang lebih formal-nya, disain protokol TCP/IP sifatnya modular. Berkat prinsip ini, tugas masing-masing protokol menjadi jelas dan sederhana. Protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data.
Berkat penggunaan prinsip modular ini, TCP/IP menjadi protokol komunikasi data yang fleksibel. Protokol TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan interface jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaringan tertentu. Agar TCP/IP dapat berjalan diatas interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang berhubungan dengan interface jaringan saja.
Empat (4) Lapisan Protokol TCP/IP
Empat (4) Lapisan Protokol TCP/IP
Sekumpulan protokol TCP/IP ini dimodelkan dengan empat (4) lapisan TCP/IP
Arsitektur jaringan menggunakan protokol TCP/IP pada dasarnya terdiri dari 4 lapis kumpulan protokol yang bertingkat. Peralatan fisik, radio, kabel, modem, card LAN seringkali disebut sebagai lapisan terakhir, lapisan ke lima (5). Jadi ke lima (5) lapis/layer tersebut adalah:
  1. Application Layer
  2. Transport Layer
  3. Network Layer
  4. Link Layer
  5. Physical Layer
Di bawah dari ke empat lapisan protokol yang ke semuanya di implementasikan dalam bentuk software adalah lapisan fisik (physical layer) yang dapat berupa modem, kabel LAN, radio, antenna yang sifatnya fisik untuk menyambungkan jaringan. Karena tugasnya ini, protokol pada layer fisik harus mampu menerjemahkan sinyal listrik menjadi data digital yang dimengerti komputer, yang berasal dari peralatan lain yang sejenis.
Kadang kala, kita menyebut arsitektur jaringan TCP/IP sebagai arsitektur dengan lima (5) lapisan, jika physical layer dimasukan. Pada kenyataan di lapangan, jumlah lapisan protokol dapat bervarisasi / berbeda-beda tergantung kepentingan transaksi yang dilakukan. Hal ini akan lebih jelas pada saat kita melakukan sniffing paket data menggunakan Wireshark/ Ethereal di komputer.
Proses enkapsulasi data antar lapisan protokol
Proses enkapsulasi data antar lapisan protokol
Proses enkapsulasi data antar lapisan protokol di perlihatkan pada gambar.
Data yang akan dikirim akan di enkapsulasi oleh setiap lapisan, mulai dari lapisan aplikasi hingga yang terakhir lapisan fisik. Pada saat data di terima oleh setiap lapisan, lapisan akan membuang header data tersebut. Jika data dianggap valid, protokol akan melepas informasi tambahan tersebut, untuk kemudian meneruskan data itu ke protokol lain di lapisan selanjutnya.
Lapisan Network akan mengatur supaya alamat mesin sumber dan yang dituju benar. Lapisan network ini yang akan mengidentifikasi supaya datagram mencapai komputer yang benar. Tapi lapisan network sama sekali tidak menjamin bahwa datagram yang dikirim akan diterima sampai di tujuan dengan selamat.
Lapisan transport mengontrol port sumber dan port tujuan paket, termasuk nomor urut paket yang dikirim. Oleh karenanya, menggunakan mekanisme lapisan protokol transport file yang besar dapat dikirim dalam potongan paket kecil, yang kemudian digabungkan kembali di bagian penerima. Lapisan transport juga berusaha menjamin supaya paket yang diterima sampai ditujuan dengan selamat, jika ada kesalahan / kerusakan paket di jalan, maka lapisan transport ini yang akan berusaha memperbaikinya.
Lapisan Link biasanya di implementasikan di dalam firmware di LAN card, akan menentukan bagaimana frame data dikirim. Termasuk bagaimana pemotongan / fragmentasi paket di kabel dengan Maximum Transmission Unit (MTU) yang lebih kecil, atau menggabungkan beberapa potongan (fragmen) frame menjadi sebuah frame dengan MTU yang lebih besar. Lapisan link juga menentukan komputer mana yang harus menerima frame di jaringan LAN untuk meneruskan frame ke tujuan yang benar.
Lapisan link akan memberikan enkapsulasi datagram dari lapisan network ke dalam frame yang akan di kirim melalui jaringan. Dalam frame akan dimasuk alamat Ethernet, atau MAC address, dari komputer sumber dan komputer selanjutnya (next hop) untuk mencapai tujuan. Alamat-alamat ini akan ditulis ulang untuk setiap hop yang dilewati.
Ada banyak protokol yang saling berinteraksi dalam jaringan komputer berbasis TCP/IP. Sebagian besar protokol yang saling berinteraksi ini diperlihatkan pada tabel. Masing-masing protokol mempunyai kemampuan yang unik dan spesial, oleh karena itu biasanya masing-masing protokol akan menggunakan keluarga protokol yang spesifik.
Untuk mencek apakah sambungan antar komputer terhubung dengan baik, biasanya kita menggunakan aplikasi ping, yang berjalan di atas protokol transport ICMP yang di tumpangkan di atas protokol network IP.
Aplikasi Web dengan protokol HTTP akan membutuhkan sambungan yang reliable menggunakan TCP yang ditumpangkan di atas IP untuk mencapai tujuan.
Jadi, TCP/IP bukan hanya sepasang protokol komunikasi, tapi merupakan sekumpulan protokol, aplikasi dan utiliti. Semakin hari, protokol ini lebih di kenal sebagai keluarga protokol Internet, tapi nama yang lama keluarga protokol TCP/IP tidak akan hilang dalam waktu dekat.
Hubungan End-To-End Pada jaringan TCP/IP

Hubungan End-To-End Pada jaringan TCP/IP
Pada gambar di perlihatkan hubungan berbagai lapisan protokol TCP/IP. Program aplikasi dan utiliti berada di mesin host. TCP memberikan sambungan virtual circuit yang reliable / andal antara dua host.
Terkadang ada aplikasi yang tidak membutuhkan keandalan & keamanan data seketat TCP, tetapi harus cepat / real-time, seperti pengiriman video atau suara di Telepon melalui Internet. Untuk aplikasi jenis ini dapat digunakan UDP sebagai pengganti TCP karena lebih effisien. UDP memberikan sambungan connectionless / datagram end-to-end pada lapisan transport.
IP memberikan dukungan transportasi datagram pada jaringan / subnetwork di bawah termasuk jaringan lokal atau jaringan wide area network. Jaringan paling bawah menggunakan berbagai teknologi jaringan lokal maupun jaringan wide area network. Perhatikan bahwa IP memungkinkan translasi datagram dari subnetwork satu (1) ke subnetwork lainnya (2). Yang berubah terutama hanya header Ethernet-nya saja.
Perlu dicatat bahwa istilah gateway atau router digunakan untuk alat yang menyambungkan dua subnetwork. Di jaringan LAN biasanya digunakan istilah router dalam OSI di kenal sebagai intermediate system. Dalam terminologi OSI, gateway digunakan untuk melakukan konversi protokol antara dua jaringan / aplikasi.