Rabu, 14 September 2016

OSI LAYER  
                                                
                                                               OSI Layer
Hai, kawan. Jumpa lagi dengan aku. Kali ini aku mau posting tentang.... Yap, sesuai judul OSI LAYER. Ok langsung aja. Happy reading...:)
  OSI Reference Model for open networking adalah sebuah model arsitektural jaringan yang dikembangkan oleh badan International Organization for Standardization (ISO) di Eropa pada tahun 1977. OSI sendiri merupakan singkatan dari Open System Interconnection. Model ini disebut juga dengan model "Model tujuh lapis OSI" (OSI seven layer model).
Sebelum munculnya model referensi OSI, sistem jaringan komputer sangat tergantung kepada pemasok (vendor). OSI berupaya membentuk standar umum jaringan komputer untuk menunjang interoperatibilitas antar pemasok yang berbeda. Dalam suatu jaringan yang besar biasanya terdapat banyak protokol jaringan yang berbeda. Tidak adanya suatu protokol yang sama, membuat banyak perangkat tidak bisa saling berkomunikasi.



Hasil gambar untuk pengertian osi layer
Ketujuh lapisan dalam model ini adalah:

7. Lapisan fisik (physical layer)
Physical Layer berfungsi dalam pengiriman raw bit ke channel komunikasi. Masalah desain yang harus diperhatikan disini adalah memastikan bahwa bila satu sisi mengirim data 1 bit, data tersebut harus diterima oleh sisi lainnya sebagai 1 bit pula, dan bukan 0 bit. Pertanyaan yang timbul dalam hal ini adalah : berapa volt yang perlu digunakan untuk menyatakan nilai 1? dan berapa volt pula yang diperlukan untuk angka 0?. Diperlukan berapa mikrosekon suatu bit akan habis? Apakah transmisi dapat diproses secara simultan pada kedua arahnya? Berapa jumlah pin yang dimiliki jaringan dan apa kegunaan masing-masing pin? Secara umum masalah-masalah desain yang ditemukan di sini berhubungan secara mekanik, elektrik dan interface prosedural, dan media fisik yang berada di bawah physical layer.
6. Lapisan koneksi data (data link layer)
Tugas utama data link layer adalah sebagai fasilitas transmisi raw data dan mentransformasi data tersebut ke saluran yang bebas dari kesalahan transmisi. Sebelum diteruskan kenetwork layer, data link layer melaksanakan tugas ini dengan memungkinkan pengirim memecag-mecah data input menjadi sejumlah data frame (biasanya berjumlah ratusan atau ribuan byte). Kemudian data link layer mentransmisikan frame tersebut secara berurutan, dan memproses acknowledgement frame yang dikirim kembali oleh penerima. Karena physical layer menerima dan mengirim aliran bit tanpa mengindahkan arti atau arsitektur frame, maka tergantung pada data link layer-lah untuk membuat dan mengenali batas-batas frame itu. Hal ini bisa dilakukan dengan cara membubuhkan bit khusus ke awal dan akhir frame. Bila secara insidental pola-pola bit ini bisa ditemui pada data, maka diperlukan perhatian khusus untuk menyakinkan bahwa pola tersebut tidak secara salah dianggap sebagai batas-batas frame.
5. Lapisan jaringan (network layer)
Network layer berfungsi untuk pengendalian operasi subnet. Masalah desain yang penting adalah bagaimana caranya menentukan route pengiriman paket dari sumber ke tujuannya. Route dapat didasarkan pada table statik yang “dihubungkan ke” network. Route juga dapat ditentukan pada saat awal percakapan misalnya session terminal. Terakhir, route dapat juga sangat dinamik, dapat berbeda bagi setiap paketnya. Oleh karena itu, route pengiriman sebuah paket tergantung beban jaringan saat itu.
4. Lapisan transpor (transport layer)
Fungsi dasar transport layer adalah menerima data dari session layer, memecah data menjadi bagian-bagian yang lebih kecil bila perlu, meneruskan data ke network layer, dan menjamin bahwa semua potongan data tersebut bisa tiba di sisi lainnya dengan benar. Selain itu, semua hal tersebut harus dilaksanakan secara efisien, dan bertujuan dapat melindungi layer-layer bagian atas dari perubahan teknologi hardware yang tidak dapat dihindari.
Dalam keadaan normal, transport layer membuat koneksi jaringan yang berbeda bagi setiap koneksi transport yang diperlukan oleh session layer. Bila koneksi transport memerlukan throughput yang tinggi, maka transport layer dapat membuat koneksi jaringan yang banyak. Transport layer membagi-bagi pengiriman data ke sejumlah jaringan untuk meningkatkan throughput. Di lain pihak, bila pembuatan atau pemeliharaan koneksi jaringan cukup mahal, transport layer dapat menggabungkan beberapa koneksi transport ke koneksi jaringan yang sama. Hal tersebut dilakukan untuk membuat penggabungan ini tidak terlihat oleh session layer.
Transport layer juga menentukan jenis layanan untuk session layer, dan pada gilirannya jenis layanan bagi para pengguna jaringan. Jenis transport layer yang paling populer adalah saluran error-free point to point yang meneruskan pesan atau byte sesuai dengan urutan pengirimannya. Akan tetapi, terdapat pula jenis layanan transport lainnya. Layanan tersebut adalah transport pesan terisolasi yang tidak menjamin urutan pengiriman, dan membroadcast pesan-pesan ke sejumlah tujuan. Jenis layanan ditentukan pada saat koneksi dimulai.
3. Lapisan sesi (session layer)
Session layer mengijinkan para pengguna untuk menetapkan session dengan pengguna lainnya. Sebuah session selain memungkinkan transport data biasa, seperti yang dilakukan oleh transport layer, juga menyediakan layanan yang istimewa untuk aplikasi-aplikasi tertentu. Sebuah session digunakan untuk memungkinkan seseorang pengguna log ke remote timesharing system atau untuk memindahkan file dari satu mesin kemesin lainnya.
Sebuah layanan session layer adalah untuk melaksanakan pengendalian dialog. Session dapat memungkinkan lalu lintas bergerak dalam bentuk dua arah pada suatu saat, atau hanya satu arah saja. Jika pada satu saat lalu lintas hanya satu arah saja (analog dengan rel kereta api tunggal), session layer membantu untuk menentukan giliran yang berhak menggunakan saluran pada suatu saat.
Layanan session di atas disebut manajemen token. Untuk sebagian protokol, adalah penting untuk memastikan bahwa kedua pihak yang bersangkutan tidak melakukan operasi pada saat yang sama. Untuk mengatur aktivitas ini, session layer menyediakan token-token yang dapat digilirkan. Hanya pihak yang memegang token yang diijinkan melakukan operasi kritis.
Layanan session lainnya adalah sinkronisasi. Ambil contoh yang dapat terjadi ketika mencoba transfer file yang berdurasi 2 jam dari mesin yang satu ke mesin lainnya dengan kemungkinan mempunyai selang waktu 1 jam antara dua crash yang dapat terjadi. Setelah masing-masing transfer dibatalkan, seluruh transfer mungkin perlu diulangi lagi dari awal, dan mungkin saja mengalami kegagalan lain. Untuk mengurangi kemungkinan terjadinya masalah ini, session layer dapat menyisipkan tanda tertentu ke aliran data. Karena itu bila terjadi crash, hanya data yang berada sesudah tanda tersebut yang akan ditransfer ulang.
2. Lapisan presentasi (presentation layer)
Pressentation layer melakukan fungsi-fungsi tertentu yang diminta untuk menjamin penemuan sebuah penyelesaian umum bagi masalah tertentu. Pressentation Layer tidak mengijinkan pengguna untuk menyelesaikan sendiri suatu masalah. Tidak seperti layer-layer di bawahnya yang hanya melakukan pemindahan bit dari satu tempat ke tempat lainnya, presentation layer memperhatikan syntax dan semantik informasi yang dikirimkan.
Satu contoh layanan pressentation adalah encoding data. Kebanyakan pengguna tidak memindahkan string bit biner yang random. Para pengguna saling bertukar data sperti nama orang, tanggal, jumlah uang, dan tagihan. Item-item tersebut dinyatakan dalam bentuk string karakter, bilangan interger, bilangan floating point, struktur data yang dibentuk dari beberapa item yang lebih sederhana. Terdapat perbedaan antara satu komputer dengan komputer lainnya dalam memberi kode untuk menyatakan string karakter (misalnya, ASCII dan Unicode), integer (misalnya komplemen satu dan komplemen dua), dan sebagainya. Untuk memungkinkan dua buah komputer yang memiliki presentation yang berbeda untuk dapat berkomunikasi, struktur data yang akan dipertukarkan dapat dinyatakan dengan cara abstrak, sesuai dengan encoding standard yang akan digunakan “pada saluran”. Presentation layer mengatur data-struktur abstrak ini dan mengkonversi dari representation yang digunakan pada sebuah komputer menjadi representation standard jaringan, dan sebaliknya.
1. Lapisan aplikasi (application layer)
Application layer terdiri dari bermacam-macam protokol. Misalnya terdapat ratusan jenis terminal yang tidak kompatibel di seluruh dunia. Ambil keadaan dimana editor layar penuh yang diharapkan bekerja pada jaringan dengan bermacam-macam terminal, yang masing-masing memiliki layout layar yang berlainan, mempunyai cara urutan penekanan tombol yang berbeda untuk penyisipan dan penghapusan teks, memindahkan sensor dan sebagainya.


Ok.. sekian dulu yaks.. :) See you next time guys...













Rabu, 07 September 2016

                Cara Menulis Bahasa Pemrograman ( Deklarasi dan Satement)
                     
Hay guys,bertemu deeengan saya lagi di postingan ke dua saya. Hari ini masih sama dengan judul kemarin yaitu tentang bahasa pemograma, tetapi kali ini saya membahas tentang cara menulis bahasa pemrorgaman, yaitu DEKLARASI dan SATEMENT. Yang saya ingin bahas yang pertama adalah deklarasi. Bagian deklarasi adalah merupakan suatu pengenal (identifier) yang dapat berupa label, konstanta, tipe, variable, prosedur dan fungsi.

1. Deklarasi Konstanta
Definisi konstanta diawali dengan kata cadangan Const diikuti oleh kumpulan identifier yang diberi suatu nilai konstanta. Data konstanta nilainya sudah ditentukan dan pasti, tidak dapat dirubah didalam program.
Contoh :
Const
phi =3.14;
nama='saypul';
Begin
{----
---- }
End.
2. Deklarasi Variabel 
Variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya didalam program. Menggunakan kata cadangan Var sebagai judul didalam bagian deklarasi variable dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya diakhiri dengan titik koma.
Contoh :
Var
r:integer;
nama:string;
luas:real;
Begin
{---
---}
End.
3. Deklarasi Tipe
Pascal menyediakan beberapa macam tipe data, yaitu :
1. tipe data sederhana, terdiri dari :
a. tipe data standar : integer, real, char, string, Boolean.
b. Tipe data didefinisikan pemakai : enumerated atau scalar, subrange.
2. Tipe data terstruktur : array, record, file, set.
3. Tipe data penunjuk.
Contoh :
Type
Desimal = real ;
Bulat = integer ;
Huruf = string [50] ;
Begin
……..
……..
……..
End .
4. Deklarasi Label
Jika program menggunakan statement Goto untuk meloncat ke suatu statement yang tertentu, maka dibutuhkan suatu label pada statement yang dituju dan label tersebut harus di deklarasikan terlebih dahulu pada bagian deklarasi. Menggunakan kata cadangan (keyword) Label diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri dengan titik koma.
5. Deklarasi Prosedur
Prosedur merupakan bagian yang terpisah dari program dan dapat diaktifkan dimanapun didalam program. Prosedur dibuat sendiri bilamana program akan dibagi-bagi menjadi beberapa blok-blok modul. Prosedur dibuat didalam program dengan cara mendeklarasikannya dibagian deklarasi prosedur. Menggunakan kata cadangan Procedure.
6. Deklarasi Fungsi
Fungsi juga merupakan bagian program yang terpisah mirip dengan prosedur, tetapi ada beberapa perbedaannya. Kata cadangan yang digunakan Function.
Dan selanjut nya yaitu tentang caa menulis basa pemrograman statement.
                 Statement Control dalam Bahasa Pemrograman
Statement control atau pengendalian digunakan untuk mengambil suatu keputusan atau memilih bagian program yang akan dikerjakan sesuai dengan kondisi atau syarat yang diberikan. Statement - statement diatas memerlukan suatu kondisi atau syarat sebagai dasar pengambilan keputusan. Salah satu kondisi yang umum digunakan adalah berupa keadaan benar atau salah (true or false), ya atau tidak (yes or no), 0 atau 1 (on or off).

Ketika menyelesaikan masalah, tidak hanya satu kasus yang dapat di temui, namun ada banyak, kadang kala menemui beberapa kasus. Ada beberapa format yang berbeda untuk setiap kasus ketika diimplementasikan di algoritma pemrograman.

IF - THEN Untuk Menyelesaikan Satu Kasus

Struktur dasar IF-THEN (jika-maka) dalam bentuk pernyataan :

if kondisi then
     pernyataan
end if

Program if then untuk 1 kasus :

//Program if-then untuk 1 kasus
#include <iostream.h>
using namespace std;
int main(){
int x;
cout<<"Masukkan bilangan : ";
cin>>x;
if(x%2==0)
    cout<<"Bilangan yang anda masukkan adalah bilangan ";
cout<<"genap \n";
system("Pause");
return 0;
}

IF - THEN - ELSE untuk Menyelesaikan Dua Kasus

Struktur dasar IF-THEN-ELSE (jika-maka-kalau tidak) dalam bentuk pernyataan :

if kondisi then
     pernyataan1
else
     pernyataan2
end if

Program if then else untuk 2 kasus :

//Program if-then-else untuk 2 kasus
#include <iostream.h>
using namespace std;
int main(){
    int x;
    cout<<"Masukkan bilangan : ";
    cin>>x;
    if(x%2==0)
        cout<<"Bilangan yang anda masukkan adalah bilangan Genap \n";
        else
        cout<<"Bilangan yang anda masukkan adalah bilangan Ganjil \n";
system("Pause");
return 0;
}

IF - THEN - ELSE untuk Menyelesaikan Tiga Kasus atau Lebih

Struktur dasar IF-THEN-ELSE (jika-maka-kalau tidak) bertingkat-tingkat.

Sebagai contoh untuk tiga kasus yaitu buatlah algoritma dan pemrograman dalam bahasa C++ untuk membaca sebuah bilangan bulat, lalu menentukan apakah bilangan tersebut positif, negatif atau nol.

Misalkan bilangan bulat itu adalah y.
Analisis Kasus


Kasus 1 : jika y>0, maka y adalah bilangan positif
Kasus 2 : jika y<0, maka y adalah bilangan negatif
Kasus 3 : jika y=0, maka y adalah bilangan nol

Program if then else untuk 3 kasus :

Struktur Case untuk Menyelesaikan Tiga Kasus atau Lebih

//Program if-then-else untuk 3 kasus
#include <iostream.h>
using namespace std;
int main(){
    int y;
    cout<<"Masukkan bilangan : ";
    cin>>y;
    if(y>0)
        cout<<"Bilangan yang anda masukkan adalah bilangan Positif \n";
    else
    if(y<0)
        cout<<"Bilangan yang anda masukkan adalah bilangan Negatif \n";
    else
    if(y==0)
        cout<<"Bilangan yang anda masukkan adalah bilangan Nol \n";
system("Pause");
return 0;
}

Dengan struktur dasar CASE, algoritma dapat dibuat menjadi lebih singkat.
Sekian pengertian cara menulis bahsa pemrograman yang dapat saya ketik. Semoga apa yang saya posting dapat bemanfaat untuk kalian semua. Sampai bertemu di postingan saya selanjutnya. Di tunggu yaaa postingan saa selanjutnya hehehehe.
Jenis-jenis Tipe Data/ Data Type

1.     Tipe data primitive (Sederhana)
Tipe data primitive adalah Tipe data yang mampu menyimpan satu nilai tiap satu variabel. Tipe data primitive merupakan tipe data dasar yang sering dipakai oleh program. Contoh tipe data primitive  adalah tipe numerik (integer dan real), tipe data karakter/char, tipe data boolean.

A.   Numeric
Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk angka. Tipe data ini terbagi atas integer, dan real.

a.   Integer
Integer Merupakan tipe data berupa bilangan bulat, terbagi atas beberapa kategori
b.   Real
Real adalah bilangan yang berisi titik desimal atau jenis bilangan pecahan.

B.   Karakter (char)
Karakter merupakan tipe data yang hanya mampu menyimpan 1 digit karakter.  Ukuran untuk tipe data karakter adalah 1 byte (1 byte = 8 bit). Adapun macam karakter yang ada sejumlah 256 macam karakter yaitu dari kode karakter (ASCII), 0 sampai dengan 255. Untuk penulisan karakter menggunakan tanda petik tunggal (‘ )  di depan dan belakang karakter yang ditulis. Contoh : ‘a’, ‘A’,’&’ dll.

Nilai-nilai yang termasuk karakter adalah :
a.      Karakter huruf : ‘a’..’z’,’A’..’Z’
b.      Karakter angka : ‘0’..’9’
c.       Karakter tanda baca : titik, koma, titik koma, titik dua dan sebagainya
d.      Karakter khusus : $, %, #, @ dan sebagainya.

C.      Boolean
Boolean merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah). Tipe data boolean memakai memori paling kecil.

2.     Tipe data Composite
Tipe Data Komposit merupakan tipe data yang dapat menampung banyak nilai, antara lain sebagai berikut.
A.   Array
Array atau sering disebut sebagai larik, adalah tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Sebagai ilustrasi, array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data tersebut.

B.   Record atau struct
Seperti halnya Array, Record atau Struct juga termasuk tipe data komposit. Record dikenal dalam bahasa Pascal/Delphi sedangkan Struct dikenal dalam bahasa C++. Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe data berbeda-beda (heterogen). Misalnya, satu bagian integer, satu bagian lagi character, dan bagian lainnya Boolean. Biasanya record digunakan untuk menampung data suatu obyek. Misalnya, siswa memiliki nama, alamat, usia, tempat lahir, dan tanggal lahir. Nama akan menggunakan tipe data string, alamat bertipe data string, usia bertipe data single (numeric), tempat lahir bertipe data string, dan tanggal lahir bertipe data date. Berikut ini contoh pengunaan record dalam Delphi.

C.   Image
Image, atau gambar, atau citra, merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan, dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual, tipe data ini telah didukung dengan sangat baik.

D.   Date Time

Nilai data untuk tanggal (date) dan waktu (time) secara internal disimpan dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan, baik tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite, karena merupakan bentukan dari beberapa tipe data.

E.   Object
Tipe data object digunakan untuk menyimpan nilai yang berhubungan dengan obyek-obyek yang disediakan oleh Visual Basic, Delphi, dan bahasa pemrograman lain yang berbasis GUI. Sebagai contoh, apabila mempunyai form yang memiliki control Command button, yang kita beri nama Command1.

F.    Subrange
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya, tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi.

G.   Enumerasi
Tipe data ini merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu persatu, dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi, dan bahasa pemrograman deklaratif seperti SQL.

Pada contoh di atas, tipe data Hari_dlm_Minggu termasuk enumerasi dengan rentang nilai Nol, dimana Senin sampai dengan Minggu dan nilai data dari 0, 1, sampai dengan 7. Sedangkan tipe data Nama_Bulan termasuk enumerasi dengan rentang nilai Nol, Januari sampai dengan Desember dan nilai data dari 0, 1, sampai dengan 12.

Tipe Data Lainnya
1.    Tipe Data Terstruktur
A.   Tipe Data String
Merupakan suatu data yang menyimpan array (larik), sebagai contoh 'ABCDEF' merupakan sebuah konstanta string yang berisikan 6 byte karakter. Ukuran Tempat untuk tipe data ini adalah 2 s/d 256 byte, dengan jumlah elemen 1 s/d 255.
B.   Tipe Data Set
Sebuah set merupakan suatu himpunan yang berisi nilai (anggota). Set merupakan Tipe data yang khusus untuk Pascal. Set dalam pemrograman sangat mirip dengan himpunan dalam ilmu matematika.

Salah satu manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai muncul dalam suatu range tertentu. Misalnya, untuk menentukan apakah suatu karakter berupa Lower Case Letter (huruf kecil), mis. Ch adalah tipe Char, kita bisa menulis, if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch,' merupakan huruf kecil.'); atau, dengan notasi set, kita bisa menulis, if Ch in ['a'..'z'] then Writeln( Ch,' merupakan huruf kecil.');

2.    Tipe Data Pointer
Pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memori. Suatu variabel yang points (menunjuk) ke sesuatu sehingga disebut pointer.

Ada dua macam pointer:
a)   Typed (tertentu) : merupakan pointer yang menunjuk pada tipe data tertentu pada variabel.
b)   Generic (umum) : merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variabel.

Perlu diingat yah sobat, Type data semakin hari semakin berkembang. Itu terbukti dari analisa WESBOL pribadi, ketika WESBOL menggunakan VB6 dan Microsoft Ascces sebagai databasenya, type data yang keluar hanya sedikit.
ScreenShot Tipe Data pada Database Microsoft Access


Pengertian dan Jenis-jenis Tipe Data/ Data Type didalam Dunia Pemrograman

Namun setelah WESBOL beralih menggunakan VB6 dan MySQL sebagai databasenya, type data yang keluar sangat banyak.
ScreenShot Tipe Data pada Database MySQL

Pengertian dan Jenis-jenis Tipe Data/ Data Type didalam Dunia Pemrograman



Pengertian dan Jenis-jenis Tipe Data/ Data Type didalam Dunia Pemrograman



Pengertian dan Jenis-jenis Tipe Data/ Data Type didalam Dunia Pemrograman

Sabtu, 27 Agustus 2016

                                   Pengertian Algoritma dan Pemrograman

1.  Apakah Itu Algoritma

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
2.  Definisi Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
3.  Beda Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :
a.  Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.
b.  Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c.  Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d.  Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
e.  Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f.  Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.
4.  Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
*Mengerti setiap langkah dalam algoritma.
*Mengerjakan operasi yang bersesuaian dengan langkah tersebut.



5.  Mekanisme Pelaksanaan Algoritma oleh Pemroses

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya. Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingatingat.
Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.



Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).
6.  Belajar Memprogram dan Belajar Bahasa Pemrograman

Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :
Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
Bahasa pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan fungsinya. Di antaranya adalah :



7.  Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik?. Beberapa persyaratan untuk menjadi algoritma yang baik adalah :
*Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
*Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
*Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
*Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
*Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
*Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
*Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh :   Tambahkan 1 atau 2 pada x.

Instruksi di atas terdapat keraguan.

*Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
*Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.
Contoh :   Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.

*Misal : Hitung akar 2 sampai lima digit di belakang koma.
*Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :

*Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
*Output: algoritma harus memiliki minimal satu buah output keluaran.
*Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
*Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
*Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1

Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.
8.  Penyajian Algoritma

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di
samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:


Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
Kaidah-Kaidah Umum Pembuatan Flowchart Program
Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :
*Input,
*Proses pengolahan dan
*Output



Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :
Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman :





Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.
Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang.
Solusi : Perumusan untuk mencari luas persegi panjang adalah :
L = p . l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.


Keterangan :
Simbol pertama menunjukkan dimulainya sebuah program.
Simbol kedua menunjukkan bahwa input data dari p dan l.
Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l.
Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
9.  Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
Struktur Runtunan
Digunakan untuk program yang pernyataannya sequential atau urutan.
Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
Masukkan bilangan pertama
Masukkan bilangan kedua
Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
Tampilkan bilangan pertama
Tampilkan bilangan kedua
Solusi Algoritma :
Masukkan bilangan pertama (a)
Masukkan bilangan kedua (b)
if a > b then kerjakan langkah 4
print a
print b
Contoh Lain Algortima dan Pseudo-code :



10.  Tahapan dalam Pemrograman

Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :
*Definisikan Masalah
*Buat Algoritma dan Struktur Cara Penyelesaian
*Menulis Program
*Mencari Kesalahan
*Uji dan Verifikasi Program
*Dokumentasi Program
*Pemeliharaan Program

Rabu, 24 Agustus 2016

Pengertian Variabel, Konstanta dan Tipe Data

Sebelum memasuki Bahasa pemograman kita harus mengenal, mengetahui dan harus diingat tiga hal. Variabel, Konstanta dan Tipe data tiga hal ini selalu berhubungan dengan bahasa pemograman.
Variabel
1.Pengertian Variabel 

Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel akan mempunyai nama (identifier) dan nilai.
Contoh Nama variabel dan nilai. username = “joni”
Nama = “Al-Khawarizmi”
Harga = 2500
HargaTotal = 34000 username, Nama, harga dan HargaTotal adalah nama dari variabel, sedangkan “joni”, “Al-Khawarizmi”, 2500 dan 34000 adalah nilai dari masing-masing variabel. Nilai-nilai ini akan tersimpan di dalam nama variabel masing-masing sepanjang tidak kita rubah.
Pada sebagian besar bahasa pemrograman, variabel harus dideklarasikan lebih dulu untuk mempermudah compiler bekerja. Apabila variabel tidak dideklarasikan maka setiap kali compiler bertemu dengan variabel baru pada kode program akan terjadi waktu tunda karena compiler harus membuat variabel baru. Hal ini memperlambat proses kerja compiler. Bahkan pada beberapa bahasa pemrograman, compiler akan menolak untuk melanjutkan proses kompilasi.
Pemberian nama variabel harus mengikuti aturan yang ditetapkan oleh bahasa pemrograman yang kita gunakan. Namun secara umum ada aturan yang berlaku untuk hampir semua bahasa pemrograman. Aturan-aturan tersebut yaitu:
1.Nama variabel harus diawali dengan huruf.
2.Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa diganti dengan karakter underscore (_).
3.Nama variabel tidak boleh mengandung karakter-karakter khusus, seperti : .,+, -, *, /, <, >, &, (, ) dan lain-lain.
4.Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa pemrograman
Penanaman Yang Benar   Penanaman Yang Salah
1.namasiswa                        1. nama siswa (salah karena menggunakan spasi)
2.XY12                                 2.12X (salah karena dimulai dengan angka)
3.harga_total                         3.harga.total (salah karena menggunakan karakter .)
4JenisMotor                         4.Jenis Motor (salah karena menggunakan spasi)
5.alamatrumah                         5.for (salah karena menggunakan kata kunci bahasa pemrograman)

2.Pengertian Konstanta

Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya. Jika nilai datanya sepanjang program berjalan tidak berubahubah, maka sebuah varibel lebih baik diperlakukan sebagai konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta diberikan langsung di bagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya ditentukan nama variabel dan tipe datanya tanpa isian nilai data. Aturan penamaan variabel juga berlaku untuk penamaan konstanta. Demikian juga aturan penetapan tipe data. konstanta dibagi menjadi 4:
1.Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak bertanda                (unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal.
2.Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam bentuk              pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam double, kecuali jika              diakhiri dengan F atau f (menyatakan konstanta float).
3.Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik ganda    (“…“). Juga dapat mengandung karakter yang menggunakan tanda \ yang disebut karakter escape        (escape sequence).
4.Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘…’). Beberapa              konstanta karakter dapat diawali dengan tanda \ (penempatannya setelah tanda petik tunggal).
   Sebagai contoh, jika kita membuat program perhitungan matematik yang menggunakan nilai pi          (3.14159) yang mungkin akan muncul dibanyak tempat pada kode program, kita dapat membuat pi    sebagai konstanta. Penggunaan konstanta pi akan lebih memudahkan penulisan kode program              dibanding harus mengetikkan nilai 3.14159 berulang-ulang.
3.Tipe Data

Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam pemrograman komputer. Setiap variabel atau konstanta yang ada dalam kode program, sebaiknya kita tentukan dengan pasti tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan sangat menentukan pemakaian sumberdaya komputer (terutama memori komputer). Salah satu tugas penting seorang programmer adalah memilih tipe data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi.
Tipe Data dikelompokkan menjadi dua Yaitu primitive dan composite
   1.Tipe Data Primitive :
     * Numeric
     *Character
     *Boolean
   2.Tipe Data Composite :
    *Array
    *Record
    *Image
    *Date Time
    *Lainya (Subrange, Enumerasi, dll)
#Tipe data primitive adalah tipe data dasar yang tersedia secara langsung pada suatu bahasa pemrograman. Sedangkan tipe data composite adalah tipe data bentukan yang terdiri dari dua atau lebih tipe data primitive.
#Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan tipe data numeric, hanya berbeda dalam jenis numeric yang diakomodasi.

Jenis yang termasuk dalam tipe data numeric antara lain integer (bilangan bulat), dan float (bilangan pecahan). Selain jenis, dalam bahasa pemrograman juga diterapkan presisi angka yang digunakan, misalnya tipe data Single adalah tipe data untuk bilangan pecahan dengan presisi yang terbatas, sedangkan tipe data Double adalah tipe data untuk bilangan pecahan dengan presisi yang lebih akurat.
#Tipe data Character. Bersama dengan tipe data numeric, character merupakan tipe data yang paling banyak digunakan. Tipe data character kadang disebut sebagai char atau string. Tipe data string hanya dapat digunakan menyimpan teks atau apapun sepanjang berada dalam tanda petik dua (“…”) atau petik tunggal (‘…’).
#Tipe data Boolean digunakan untuk menyimpan nilai True/False (Benar/Salah). Pada sebagian besar bahasa pemrograman nilai selain 0 menunjukkan True dan 0 melambangkan False. Tipe data ini banyak digunakan untuk pengambilan keputusan pada struktur percabangan dengan IF … THEN atau IF … THEN … ELSE.
#Array atau sering disebut sebagai larik adalah tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data tersebut..
#Record atau Struct adalah termasuk tipe data komposit. Record dikenal dalam bahasa Pascal/Delphi sedangkan Struct dikenal dalam bahasa C++.

Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe data berbeda-beda (heterogen). . Sebagai ilustrasi array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Sedangkan dalam record, kita bisa menggunakan untuk menampung banyak data dengan tipe data yang berbeda, satu bagian integer, satu bagian lagi character, dan bagian lainnya Boolean.
Biasanya record digunakan untuk menampung data suatu obyek. Misalnya, siswa memiliki nama, alamat, usia, tempat lahir, dan tanggal lahir. Nama akan akan menggunakan tipe data string, alamat bertipe data string, usia bertipe data single (numeric), tempat lahir bertipe data string dan tanggal lahir bertipe data date.

*Image atau gambar atau citra merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual tipe data ini telah didukung dengan sangat baik.
*Date and Time Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan baik tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite karena merupakan bentukan dari beberapa tipe data.
*Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi.
*Tipe data Enumerasi merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu persatu dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi dan bahasa pemrograman deklaratif seperti SQL.
*Tipe data object digunakan untuk menyimpan nilai yang berhubungan dengan obyek-obyek yang disediakan oleh Visual Basic, Delphi dan dan bahasa pemrograman lain yang berbasis GUI. Sebagai contoh, apabila kita mempunyai form yang memiliki control Command button yang kita beri nama Command1.
*Tipe data Variant hanya ada di Visual Basic. Tipe ini adalah tipe data yang paling fleksibel di antara tipe data yang lain, karena dapat mengakomodasi semua tipe data yang lain seperti telah dijelaskan.




Selasa, 16 Agustus 2016


CARA CRIMPING KABEL UTP KE RJ-45(STRAIGHT DAN CROSS)

Cara Crimping Kabel UTP ke RJ45 (Straight dan Cross). Setelah mengetahui Berbagai Kabel Jaringan Komputer Lan,  kita akan melakukan crimping terhadap kabel UTP menggunakan konektor RJ-45 agar bisa digunakan untuk menghubungkan hardware komputer.

nah, sebelum kita mulai, bahan-bahan yang harus dipersiapkan adalah kabel utp, konektor RJ-45, dan Tang crimping dan kalo lebih bagus kalo kamu ada Lan Tester untuk menguji kabel, jika tidak, masih bisa menggunakan cara lain untuk menguji nya..

Cara Crimping Kabel UTP ke RG-45
Tang Crimping



Cara Crimping Kabel UTP ke RG-45
Kabel UTP

Cara Crimping Kabel UTP ke RG-45
Lan Tester

Cara Crimping Kabel UTP ke RG-45
RJ-45
Kabel UTP terdiri dari 2 jenis, yaitu Straight dan Cross, kabel straight digunakan untuk menghubungkan dua buah hardware yang berbeda seperti menghubungkan PC ke Switch/Hub, dan kabel Cross digunakan untuk menghubungkan dua buah hardware yang sama seperti dari PC ke PC, Laptop ke Laptop.Cara Crimping Kabel UTP ke RJ-45

Cara Crimping Kabel UTP ke RG-45
Cara Crimping Kabel UTP ke RG-45 
Untuk membuat kabel Straight, susunan warna yang digunakan adalah :
Sususan warna pada ujung 1 = Putih Orange, Orange, Putih Hijau, Biru, Putih Biru, Hijau, Putih Coklat, Coklat
Sususan warna pada ujing 2 sama dengan ujung 1.
Untuk membuat kabel Cross, susunan warna yang digunakan adalah :
Susunan warna pada ujung 1 = Putih Orange, Orange, Putih Hijau, Biru, Putih Biru, Hijau, Putih Coklat, Coklat
Susunan warna pada ujung 2 yaitu = Putih Hijau, Hijau, Putih Orange, Biru, Putih Biru, Orange, Putih Coklat, Coklat Cara Crimping Kabel UTP ke RG-45

LANGKAH LANGKAH CRIMPING KABEL STRAIGHT DAN CROSS.

Cara Crimping Kabel UTP ke RJ-45
1. Kupas kulit kabel selebar 2 cm.
2. Susun rapi delapan kabel yang terdapat didalam sesuai dengan gambar dan penjelasan diatas.
3. Luruskan kabel yang masih kusut.
4. Ratakan ujung kabel dengan memotong nya menggunakan tang crimping.
5. Setelah yakin urutan warna benar dan ujung kabel sudah rata, masukan kabel kedalam konektor RJ-45 , pastikan ujung kabel menyentuh ujung RJ-45, dan jepitlah menggunakan Tang Crimping.
6. Setelah menyelesaikan kedua ujung kabel, uji menggunakan Lan tester, jika semua lampu menyala, berarti kabel tersebut telah di crimping dengan benar dan bisa digunakan.
MACAM/JENIS ALAT DAN BAHAN NETWORKING

A.Jenis - Jenis Alat Networking

 1.MODEM

Modem merupakan device yang mampu membuat computer terkoneksi internet melalui line telepon standar. Modem banyak digunakan computer-komputer rumah dan jaringan sederhana untuk dapat berkomunikasi dengan jutaan komputer lain dalam lalu lintas Internet. Kata modem itu sendiri merupakan kependekan dari modulator/demodulator. Ini berarti modem bekerja mengkonversi informasi digital dari computer ke bentuk sinyal analog yang ditransmisikan melalui line telepon. Modem (pada computer penerima) selanjutnya mengkonversi ulang sinyal analog ke sinyal digital.
Ditinjau dari sisi hardware, terdapat dua jenis modem popular yakni modem eksternal dan modem internal. Sesuai dengan namanya, modem eksternal adalah jenis modem yang perangakatfisiknya terpisah dari computer (CPU). Sebaliknya, modem internal adalah jenis modem yang disertakan satu paket dengan CPU computer. Modem sangat cocok untuk koneksi internet computer-komputer individual dan jaringan sederhana (yang memiliki jumlah PC tidak bagitu banyak), sedang koneksi internet untuk jaringan-jaringan skala besaar-menengah, memakai teknologi wireless merupakan solusi yang lebih reliable.

Gambar Modem Internal Dan External
2. HUB
 
Hub berfungsi untuk menghubungkan dua computer atau lebih atau ketika ingin membangun sebuah jaringan sederhana, sering dihadapkan pada dua pilihan : apakah menggunakan HUB atau tidak. HUB memang tidak selamanya harus diikutkan dalam membangun jaringan. Jika kabel jaringan yang dipakai berjernis coaxial atau coax, HUB tidak dibutuhkan. Namun jika kabel jaringan berjenis UTP, HUB mutlak diperlukan untuk jumlah klien tiga PC atau lebih.
Secara fisik HUB berbentuk kotak kecil persegi panjang. HUB berfuingsi menghubungkan computer-komputer atau device-device jaringan lainnya, sehingga dapat membentuk satu segment jaringan. Melalui HUB, setiap computer dapat saling berkomunikasi secara langsung.
Kebanyakan HUB yang diproduksi saat ini men-support card jaringan (Ethernet) standar. Orang-orang cukup memasukkan salah satu ujung kabel (yang terpasang konektor RJ-45) ke salah satu port yang tersedia pada HUB, sedang ujung lannya ke Ethernet card computer.
HUB berbeda dengan modem. Modem diperlukan agar dapat terkoneksi Internet, sedangkan HUB dibutuhkan agar dapat menghubungkan computer-komputer satu sama lain. Jika seseorang memiliki koneksi Internet melalui modem, dia dapat memakai HUB untuk membuat koneksi tersebut di-sharing oleh semua computer.
HUB-HUB pada awalnya mensupport kecepatan Ethernet 10 Mbps. Namun dewasa ini banyak HUB memiliki kecepatan data 100 Mbps. Untuk membantu user-user yang mentransfer teknologi lama ke teknologi baru, beberapa jenis HUB ada yang mensupport dua kecepatan : 10 mbps dan 100 Mbps. Jenis HUB ini dikenal dengan dual-speed hubs.
Secara teknis, terdapat tiga jenis hub yang beredar :
  1. Passive hubs == Hub-hub passive tidak memperkuat sinyal elektrik dari paket-paket data yang masuk
  2. Active hubs == sebaliknya, Hub-hub active akan memperkuat sinyal paket-paket sebelum mereka dilepas ke network. Fungsi ini dilakukan juga oleh device lain yang dinamakan “repeater”.
  3. Intelligent hubs == merupakan hub-hub yang memiliki fitur extra dari active hubs, di mana sangat cocok untuk kepentingan bisnis. Sebuah hub yang cerdas secara tipikal men-support manajemen secara remote via SNMP dan virtual LAN (VLAN)  


 Gambar HUB
3.Switch

Switch adalah device sederhana yang juga berfungsi menghubungkan multiple computer pada layer protocol jaringan level dasar.
Switch memang identik dengan hub, tetapi switch umumnya lebih “cerdas” dan memiliki performa tinggi dibanding hub (harganya relative lebih mahal). Secara tipikal, beberapa kelebihan switch di antaranya :
  1. Mampu menginspeksi paket-paket data yang mereka terima
  2. Mampu menentukan sumber dan tujuan paket yang melaluinya
  3. Mampu mem-forward paket-paket dengan tepat
Seperti halnya hub, switch utamanya desajikan unruk Ethernet. Switch memiliki konfigurasi jumlah port yang beragam, mulai dari empat-lima port sampai puluhan port – juga men-support Ethernet kecepatan 10 Mbps, 100 Mbps atau keduanya

GAMBAR SWITCH
  
4.Repeater
Repeater bekerja meregenerasi atau memperkuat sinyal-sinyal yan gmasuk. Pada media fisik seperti Ethernet, kualitas transmisi data hanya dapat bertahan dalam range waktu dan jangkauan terbatas, yang selanjutnya mengalami degradasi. Repeater akan berusaha mempertahankan integritas sinyal dan mencegah degradasi sampai paket-paket data menuju tujuan.
Aktualnya, device-device jaringan yang bekerja senagaimana layaknya repeater, seperti active hubs, seringkali disebut “multiport repeaters”.
Adapun kelemahan repeater, perangkat ini tidak dapat melakukan filter traffic jaringan. Data (bits) yang masuk ke salah satu port repeater dikirim ke luar melalui semua port. Dengan demikian data akan tersebar ke segmen-segmen LAN tanpa memperhitungkan apakah data tersebut dibutuhkan atau tidak.
Repeater adalah suatu alat yang berfungsi memperluas jangkauan sinyal WIFI yang belum tercover oleh sinyal dari server agar bisa menangkap sinyal WIFI. Perangkat Repeater harus 2 alat, yakni untuk menerima sinyal dari server (Client) dan untuk menyebarkan kembali sinyal Wifi tersebut (acces point).

Fungsi Repeater
  • Untuk mengcover daerah-daerah yang lemah sinyal dari Server (pemancar)
  • Untuk memperjauh sinyal dari Server (pemancar)
  • Untuk mempermudah akses sinyal Wifi dari Server
Sedikit Cara Kerja Repeater :
Saat PTT HT Ditekan ( ia akan memancar pada Freq A ) Bag RX repeater (frequency :A) menerima informasi dari radio HT tsb, maka bag rx aktif, dan COR akan langsung menggerakkan bag transmit (TX ) yang secara bersamaan informasi yang  diterima tsb dipancarkan kembali oleh bagian TX ( B). dan pancaran tsb dapat diterima oleh HT lain dilapangan pada Frekwensi receive HT ( B )
Demikian pula saat HT lain mengudara untuk menjawab atau memanggil prosedur tsb kembali berulang. Repeater pada umumnya diletakkan disuatu tempat ketinggian ,antennanyapun ditinggikan lagi yang biasanya diletakkan diatas tower sehingga jangkauan pancaran akan lebih jauh.
Semakin tinggi letak repeater, maka akan lebih jauh pula daya jelajahnya.Seringnya repeater diletakkan disuatu lokasi yang  tinggi misalnya di puncak Gunung, atau Bukit , Antennanya pun  di instalasikan ditower yang cukup tinggi.
Memperkirakan jarak jangkau repeater, secara sangat sederhana adalah dengan melihat area dari lokasi tsb dengan mata kita, bila yang terlihat sangat luas, maka hampir dapat dipastikan, sejauh mata kita memandang, sampai sanalah  area yang dapat dicover oleh repeater itu, ( Line Of Sight ) Mengingat keterbatasan daya pandang, dapat saja coveragenya lebih jauh dari pandangan kita.
Peformance sebuah repeater dipengaruhi pula oleh ,daya pancar repeater, sensitivitas, serta seluruh; ektivitas dari repeater itu sendiri. Untuk meningkatkan  kekuatan pancaran, selain meletakkan repeater pada tempat yang tinggi, maka  digunakan pula Antenna dengan penguatan ( gain ) yang besar.

GAMBAR REPEATER
 5.Bridge
Bridge, banyak yang beranggapan bahwa fungsi Switch dan ridge itu hampir sama, tapi sebenarnya fungsinya berbeda. Mari kita lihat, apa itu Bridge.
Bridge adalah sebuah Network Device yang berfungsi untuk memisahkan sebuah jaringan yang luas menjadi segment-segment yang lebih kecil. Bridge membaca alamat MAC (Media Access Control) dari setiap paket data yang diterima yang kemudian akan mempelajari dridging table untuk memutuskan apa yang akan dikerjakan bridge selanjutnya pada paket data tersebut, apakah diteruskan atau di abaikan. jika switch menpunyai Collision Domain sendiri-sendiri disetiap portnya, begitu juga dengan bridge memilikiCollision Domain tetapi ia juga dapat membaginya dari sebuah Collision Domain yang besar menjadi yang lebih kecil, dah bridge hanya akan melewatkan paket data antar segment - segment jika hanya segment itu sangat diperlukan. 
Selain itu ada yang mendefinikan bahwa Bridge adalah sebuah Network Device yang berfungsi sebagai jembatan fisik dan Bridge pun dapat berfungsi juga sebagai jembatan nalar (logical) seperti pembongkaran dan penyusunan paket, penyelematan, buffering dan lain-lain. Dengan demikian bridge dapat dipakai untuk menghubungkan 2 macam jaringan yang berbeda format paketnya ataupun yang berbeda kecepatan transmisinya. Misal dua kantor menggunakan dua jenis sistem jaringan yang berbeda, yang satu menggunakan sistem Ethernet dan yang lainnya menggunakan sistem Arcnet, maka kedua sistem tersebut dapat digabung dengan menggunakan bridge.

Jenis-Jenis Bridge :
1.  Transparent Bridge
Melakukan bridging antara 2 atau lebih segmen LAN. Jenis bridge ini juga dapat melakukan bridging pada jenis media physical layer yang berbeda (UTP, coax, fiber dll). Pengaturan bridge jenis ini dapat dilihat pada dokumen standar IEEE 802.1D.

2.  Translating Bridge
Adalah jenis bridge yang mampu untuk melakukan bridging antar protocol pada data link layer (contoh Ethernet dengan Token Ring). Dengan demikian terjadi proses konversi jenis frame data dan transmission rate masing-masing protocol. Proses ini dilakukan pada preamble dan FCS (frame check sequence).
Pada bagian lain kita akan membahas pula bagaimana menghitung performance network dalam hubungannya dengan penerapan kedua jenis bridge ini.


GAMBAR BRIDGE
 6.ROUTER
Router secara kasar banyak didefinisikan berfungsi untuk membagi 2 Jaringan atau beberapa jaringan, namun sebenarnya Router adalah perangkat jaringan yang digunakan untuk membagi protocol kepada anggota jaringan yang lainnya, dengan adanya router maka sebuah protocol dapat di-sharing kepada perangkat jaringan lain. Contoh aplikasinya adalah jika kita ingin membagi IP Adress kepada anggota jaringan maka kita dapat menggunakan router ini, ciri-ciri router adalah adanya fasilitas DHCP (Dynamic Host Configuration Procotol), dengan mensetting DHCP, maka kita dapat membagi IP Address, fasilitas lain dari Router adalah adanya NAT (Network Address Translator) yang dapat memungkinkan suatu IP Address atau koneksi internet disharing ke IP Address lain.
Jenis-jenis Router
1. Router Aplikasi
2. Router Hardware
3. Router PC 
Router aplikasi adalah aplikasi yang dapat kita instal pad sistem operasi, sehingga sistem operasi tersebut akan memiliki kemampuan seperti router, contoh aplikasi ini adalah Winroute, WinGate, SpyGate, WinProxy dan lain-lain. 
Router Hardware adalah merupakan hardware yang memiliki kemampuan sepertiu router, sehingga dari hardware tersebut dapat memancarkan atau membagi IP Address dan men-sharing IP Address, pada prakteknya Router hardware ini digunakan untuk membagi koneksi internet pada suatu ruang atau wilayah, contoh dari router ini adalah access point, wilayah yang dapat mendapat Ip Address dan koneksi internet disebut Hot Spot Area. Router PC adalah Sistem Operasi yang memiliki fasilitas untuk membagi dan mensharing IP Address, jadi jika suatu perangkat jaringan (pc) yang terhubung ke komputer tersebut akan dapat menikmati IP Address atau koneksi internet yang disebarkan oleh Sistem Operasi tersebut, contoh sistem operasi yang dapat digunakan adalah semua sistem operasi berbasis client server, semisal Windows NT, Windows NT 4.0, Windows 2000 server, Windows 2003 Server, MikroTik (Berbasis Linux), dan lain-lain.
Router PC adalah Sistem Operasi yang memiliki fasilitas untuk membagi dan mensharing IP Address, jadi jika suatu perangkat jaringan (pc) yang terhubung ke komputer tersebut akan dapat menikmati IP Address atau koneksi internet yang disebarkan oleh Sistem Operasi tersebut, contoh sistem operasi yang dapat digunakan adalah semua sistem operasi berbasis client server, semisal Windows NT, Windows NT 4.0, Windows 2000 server, Windows 2003 Server, MikroTik (Berbasis Linux), dan lain-lain.
B. Bahan - Bahan Networking
1. Cat sixs
 
Cat sixs Adalah alat untuk memasangkan dan mlepaskan kabel UTP pada Modular Jac(MJ) ,alt ini dapat juga untuk menandai kulit bagian luar kabel UTP agar nantinya dapat langsung dilepaskan.
2. Tang Crimping 
 
Tang krimping adalah alat untuk memasang kabel UTP ke konektor RJ-45 / RJ-11 tergantung kebutuhan. Bentuknya macam-macam ada yang besar dengan fungsi yang banyak, seperti bisa memotong kabel, mengupas dan lain sebagainya. Ada juga yang hanya diperuntukan untuk crimp RJ-45 atau RJ-11 saja. 
3. Kabel UTP


 
Unshielded Twisted-Pair (disingkat UTP) adalah sebuah jenis kabel jaringan yang menggunakan bahan dasar tembaga, yang tidak dilengkapi dengan shield internal. UTP merupakan jenis kabel yang paling umum yang sering digunakan di dalam jaringan lokal (LAN), karena memang harganya yang murah, kinerja yang ditunjukkannya juga relatif bagus
4. Kabel Fiber Optic


Kabel Fiber optic adalah sebuah kabel yang terbuat dari serat kaca dengan teknologi canggih dan mempunyai kecepatan transfer data yang lebih cepat daripada kabel biasa, biasanya fiber optic digunakan pada jaringan backbone (Tulang Punggung) karena dibutuhakan kecepatan yang lebih dalam dari jaringan ini, namun pada saat ini sudah banyak yang menggunakan fiber optic untuk jaringan biasa baik LAN, WAN maupun MAN karena dapat memberikan dampak yang lebih pada kecepatan dan bandwith karena fiber optic ini menggunakan bias cahaya untuk mentransfer data yang melewatinya dan sudah barang tentu kecepatan cahaya tidak diragukan lagi namun untuk membangun jaringan dengan fiber optic
dibutuhkan biaya yang cukup mahal dikarenakan dibutuhkan alat khusus dalam pembangunannya.