• Kategori

  • Masukkan alamat surat elektronik Anda untuk mengikuti blog ini dan menerima pemberitahuan tentang tulisan baru melalui surat elektronik.

  • Komentar

    Mr WordPress on Hello world!
  • Tag

  • Follow Mazparno's Weblog on WordPress.com

Jam Digital dengan Alarm

Gamabar Rangkaian dengan simulator Proteus :

 

Source Code *asm

; *** File Name: CLOCK.ASM
; *** Project: Programmable Digital Clock with Alarm
; *** Author: Suparno, M.Pd
; *** Date: 26/03/2011
; *** Processor: Atmel AT89C51 Microcontroller (Compatible With MCS-51)
; *** Timekeeper: DS1307 I2C Serial Timekeeper IC
; *** Display: 16 characters x 2 lines LCD
;**************************************************************
; LCD Connections
LCD     DATA     P2         ; define LCD data port on port 1
Busy    BIT      LCD.7      ; define LCD busy flag
EN      BIT      P3.5       ; define LCD enable pin on port 2.2
RW      BIT      P3.6       ; define LCD register select pin on port 2.0
RS      BIT      P3.7       ; define LCD read/write pin on port 2.1
;**************************************************************
 Continue reading 

Jam Digital dengan Mode 12/24

Rangkaian :

Source Code : Bascom AVR

$regfile = "m8def.dat"
$crystal = 1000000
'------------------------  lcd -----------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
Cls

'---------------------------  ds 1307 -----------------------------------------
$lib "ds1307clock.lib"
'configure the scl and sda pins
Config Sda = Portd.7
Config Scl = Portd.6
'address of ds1307
Const Ds1307w = &HD0                                        ' Addresses of Ds1307 clock
Const Ds1307r = &HD1
'------------------------------ key --------------------------------------------
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input
Config Pinc.4 = Input
'------------------------------------------------------------------------------
Config Debounce = 30

Dim A As Byte , B As Byte , Data1 As Byte , C As Byte

Dim Seco As Byte , Mine As Byte , Hour As Byte

'----------------------------------------------------------------------------
Cursor Off
'-----------------------------
Cls
Locate 1 , 6
Lcd "Hello"
Locate 2 , 1
Lcd "WWW.elec4u.ir"
Wait 2
 Continue reading 

Pengaturan Kecepatan Motor DC Dengan Mikrokontroler dengan BASCOM AVR

Penggunaan motor DC dewasa ini sudah sangatlah umum, salah satu kelebihan motor DC adalah relatif gampang didapat dan mudah diatur kecepatan putarnya. Secara umum pengaturan kecepatan motor DC adalah dengan menggunakan cara analog. Pada artikel kali ini akan dibahas contoh cara mengatur kecepatan motor DC dengan menggunakan mikrokontroller.

Mikrokontroler yang digunakan adalah Tipe AVR dari Atmel seperti mikrokontroler Atmega 8535, 16, 32. Informasi kecepatan motor akan ditampilkan pada modul LCD HD4480. Sedangkan sebagai driver motor menggunakan modul driver motor IC L298.

Cara pengaturan kecepatan yang digunakan adalah dengan menggunakan teknik PWM (Pulse Width Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang umum digunakan. Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah, pengaturan kecepatan motor dengan cara merubah-rubah besarnya duty cycle pulsa. Pulsa yang yang berubah ubah duty cycle-nya inilah yang menentukan kecepatan motor. Besarnya amplitudo dan frekuensi pulsa adalah tetap, sedangkan besarnya duty cycle berubah-ubah sesuai dengan kecepatan yang diinginkan, semakin besar duty cylce maka semakin cepat pula kecepatan motor, dan sebaliknya semakin kecil duty cycle maka semakin pelan pula kecepatan motor. Sebagai contoh bentuk pulsa yang dikirimkan adalah seperti pada gambar 1, pulsa kotak dengan duty cycle pulsa 50%. Sedangkan sebagai contoh bentuk pulsa PWM adalah seperti pada gambar 2.

Seperti pada gambar 1, semakin besar duty cycle pulsa kotak, maka semakin lama pula posisi logika high. Jika motor diatur agar berjalan ketika diberi logika high, maka jika memberi pulsa seperti pada gambar 1 diatas, maka motor akan berada pada kondisi “nyala-mati-nyala-mati” sesuai dengan bentuk pulsa tersesebut. Semakin lama motor berada pada kondisi “nyala” maka semakin cepat pula kecepatan motor tersebut. Motor akan berputar dengan kecepatan maksimum jika mendapat pulsa dengan duty cycle 100%. Dengan kata lain motor mendapat logika high terus menerus.

Dengan mengatur besarnya duty cycle pulsa kotak yang dikirimkan, kita dapat mengatur banyaknya logika high yang diberikan pada motor, dengan kata lain mengatur lamanya waktu motor untuk berputar dalam satu periode pulsa. Jika lamanya waktu motor untuk berputar dalam satu periode pulsa ini berubah maka kecepatan purtaran motor juga akan berubah, sesuai dengan duty cycle atau waktu motor untuk berputar dalam satu periode pulsa.

===============================================================

PENGATURAN KECEPATAN MOTOR DC Berbasis Atmega8535

Skema dengan proteus:

Hasil simulasi dengan proteus:

Program Pengaturan Kecepatan Motor DC dengan Bascom AVR

1 $regfile = “m8535.dat”   ’menggunakan Atmega8535 sebagai preprosesor
  2 $crystal = 12000000      ’menggunakan crystal clock 12 MHz
  3 $eeprom                  'menggunakan fasilitas eeprom Atmega8535
  4
  5 ‘—————————inisialisasi lcd————————————
  6
  7 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
  8 Config Lcd = 16 * 2 : Cursor Off
  9
 10 ‘—————————inisialisasi pwm———————————–
 11
 12 Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up       ‘pwm dengan settingan fast pwm 10 bit
 13
 14 ‘—————————inisialisasi port——————————–
 15
 16 ‘inisialisasi tombol
 17 Config Portb = Input
 18
 19 ‘—————————pull up internal——————————–
 20
 21 Portb.0 = 1
 22 Portb.1 = 1
 23 Portb.2 = 1
 24 Portb.3 = 1
 25 Config Portd = Output
 26 ‘alias logika motor
 27 M1a Alias Portd.0
 28 M1b Alias Portd.1
 29 M2a Alias Portd.2
 30 M2b Alias Portd.3
 31
 32 ‘——————————alias——————————————–
 33
 34 ‘alias tombol
 35 Sw_ok Alias Pinb.3
 36 Sw_cancel Alias Pinb.2
 37 Sw_down Alias Pinb.1
 38 Sw_up Alias Pinb.0
 39
 40 ‘——————————————————————————-
 41
 42 Dim Pwm As Integer
 43 Dim Pwm_eprom As Eram Integer
 44 Home
 45 Lcd “Fahmizal_dte2006″
 46 Lowerline
 47 Lcd “Cek fungsi PWM”
 48 Wait 1
 49
 50 Do
 51 Pwm = Pwm_eprom
 52 If Sw_up = 0 Then : Incr Pwm : Waitms 10
 53 End If
 54 If Sw_down = 0 Then : Decr Pwm : Waitms 10
 55 End If
 56 If Pwm > 1023 Then : Pwm = 0 : Waitms 10
 57 End If
 58 If Pwm < 0 Then : Pwm = 1023 : Waitms 10
 59 End If
 60 Pwm_eprom = Pwm
 61 Cls
 62
 63 Home
 64 Lcd “tes uji pwm”
 65 Lowerline
 66 Reset M1a
 67 Reset M2a
 68 Set M1b
 69 Set M2b
 70 Pwm1a = Pwm
 71 Pwm1b = Pwm
 72 Lcd “nilai pwm:” ; Pwm1a : Waitms 100
 73 Loop
 74 End

TUTORIAL BASCOM AVR

Bascom AVR merupakan editor list program yang berbasis  bahasa basic, software BASCOM AVR dapat dengan mudah diperoleh. link berikut jika ingin mendownload Bascom AVR versi demo

Halaman Editor Bascom AVR

Pengenalan fungsi tools pada BASCOM AVR:

Menubar pada File

  • New, digunakan untuk membuat project baru atau membuat file program baru.
  • Open, digunakan untuk membuka project atau file program yang pernah dibuat.
  • Save,  digunakan untuk menyimapan project atau menyimpan file program.
  • Save As…, digunakan digunakan untuk menyimpan project tau menyimpan file dengan nama yang berbeda dari sebelumnya.
  • Print Preview, digunakan untuk melihat hasil cetakan print out dari sintsks penulisan program.
  • Print, digunakan untuk mencetak file program.
  • Exit, digunakan untuk keluar dari BASCOM AVR

Menubar pada Edit

  • Undo, digunakan untuk kembali ke langkah sebelumnya.
  • Redo, kebalikan dari undo.
  • Cut, digunakan untuk mengkopy dan menghapus teks sekaligus
  • Copy, digunakan untk mengkopy teks.
  • Paste, digunakan untuk menyalin bagian yang telah dikopi.
  • Find, digunakan untuk mencari teks yang diiginkan.
  • Find next, sama halnya dengan find hanya saja berikutnya.

Menubar pada Program

  • compile, digunakan untuk mengkompile program. Proses ini akan menghsilkan file berektension *.hex
  • syntax check, digunakan untuk memerikasa apakah terjadi kesalahan pada penulisan program atau tidak.
  • Show result, digunakan untuk melihat hasil report dan error dari penulisan program.
  • Simulate, digunakan untuk mensimulasikan program.
  • Send to chip, digunakan untuk mengirim file *.hex ke dalam chip mikrokontroler (mendownload program mikrokontroler).

Menubar pada Tools

  • Terminal emulator, digunakan untuk simulasi komunikasi serial dengan komputer (RS232) hampir sama dengan Hypert Terminal yang dimiliki oleh Windows.
  • Lcd designer, digunakan untuk mendesain karakter LCD yang diinginkan.
  • Libray Manager, digunakan untuk library yang terdapat pada BASCOM AVR
  • Export to RTF, digunakan untuk mengkonversi penulisan program pada RTF (Rich Text Format).
  • Graphic Converter, digunakan untuk menkonversi gambar ke LCD yang menujang RGB (high kualitas LCD).
  • Stack Analyser, digunakan untuk menganalisa stack program.
  • PlugIn Manager, digunakan untuk mengatur plugin yang ada.

Menubar pada Options

  • Compiler, digunakan untuk mensetting chip, output, communication, I2C dan LCD.
  • Communication, digunakan untuk mensetting komunikasi mikrokontroler.
  • Simulator, digunakan untuk mensetting simulasi pada BASCOM AVR.
  • Programmmer, digunakan untuk mensetting downloader programmer yang akan digunakan.
  • Monitor, untuk mensetting tampilan.
  • Printer, digunakan untuk mensetting printer yang digunakan.

Pengendali 7 Segment dengan ATMEGA8535

Seperti LED yang disusun paralel, 7 Segmen juga memiliki konfigurasi common, yakni Common Anode (CA) dan Common Cathode (CC). Kalau kita beli komponen ini di toko elektronik, pasti ditanyain “mau yang CA apa CC?”. Nah, sedikit cerita, dulu pernah saya ditanyain kaya gitu ta jawab aja asal, “yang CC mbak…”. Padahal saya ga ngerti CC tu apaan..cara nyalainnya gimana aja ga ngerti.hehe..Semoga setelah membaca artikel ini, bagi yang belum tahu apa itu CA dan CC, jadi tahu dan ngga bingung kalo ditanyain di toko elektronik. :)
Informasi umum konfigurasi pin:

Seperti namanya, 7 segment memiliki segmen-segmen yang berjumlah 7 buah (+1 buah tapi bentuknya bulat – dp / dot point) yang diberi nama a,b,c,d,e,f,g dan dp. Jadi kalau kita ingin menyalakan angka “8″, maka kita harus menyalakan a-g. Pin “com” merupakan common dari 7 segmen. Apabila CA, berarti untuk menyalakan 7 segment, pin “com” harus diberi logika 1 (high) dan data a-dp di beri logika 0 (low). Sebaliknya, apabila CC, berarti untuk menyalakan 7 segment, pin “com” harus diberi logika 0 (low) dan data a-dp di beri logika 1 (high).

OK, mari kita coba saja simulasinya. Pertama-tama kita buat rangkaiannya di proteus.Disini saya gunakan microcontroler ATMEGA8535 atau bisa juga AT90S8535 dan 7 segment CC.


Seperti rangkaian LED, bila digunakan rangkaian sebenarnya, harap Sebelum 7 segmen di beri Resistor minimal 330 Ohm ditiap tiap segmen untuk membatasi arus yang masuk ke 7 segmen agar tidak rusak.

Buka BASCOM AVR, ketik, compile, dan download program “menampilkan angka 5 pada 7 segment” dibawah ini

 1 $regfile = "8535def.dat"
 2 $crystal = 8000000
 3
 4 Config Portc = Output
 5
 6 Segment Alias Portc
 7
 8 Do
 9   Segment = &B01101101
 10 Loop

Pengendali LED Flip Flop

Untuk menyalakan LED, Anoda harus diberi logika 1 (high) dan  Katoda harus diberi logika 0 (low). Kemudian untuk LED dengan jumlah banyak, biasanya semua Anodanya atau Katodanya dijadikan satu (di-common), kemudian pin lainnya dihubungkan  sebagai data. Sehingga sering kita kenal dengan nama common Anode (semua kaki anode di hubungkan ke VCC, untuk menyalakan led, pin yang lainnya diberi logika 0) dan Common Cathode (semua kaki anode di hubungkan ke GND, untuk menyalakan led, pin yang lainnya diberi logika 1).

Nah langsung aja..mari kita buat rangkaiannya dulu di proteus seperti ini (kita gunakan AVR ATMEGA8535 atau AT90S8535 dan rangkaian LED yang di-Common Anoda)

 

Bila digunakan rangkaian sebenarnya, harap Sebelum LED di beri Resistor minimal 330 Ohm untuk membatasi arus yang masuk ke LED aagar tidak rusak.

Ketikkan program LED kedip-kedip di bawah ini, kemudian compile, download ke mikrokontroller di proteus, dan RUN! :

 1 $regfile = "8535def.dat"    'mikro yang digunakan
 2 $crystal = 8000000          'cristal yang digunakan
 3
 4 Config Portb = Output
 5
 6 Do
 7 Portb = 255
 8 Wait 1          'nyalakan LED
 9 Portb = 0
 10 Wait 1          'matikan LED
 11 Loop

Aplikasi ADC pada ATMega8 dengan Bahasa Bascom AVR

Untuk aplikasi ADC menggunakan bahasa Bascom AVR sangatlah sederhana, kita tidak perlu memahami lebih dalam tentang proses yang terjadi pada LCD dan ADC. Kita cukup tau perintah yang digunakan untuk mengakses perangakat tersebut melalui bahasa pemrograman. Pada aplikasi ini saya mencoba menggunakan ATMega8 yang tidak jauh berbeda dengan ATMega8535, yang berbeda hanyalah beberapa fitur dan jumlah Port. Gambar rangkaiannya cukup sederhana seperti gambar dibawah ini.
Gambar Rangkaian Aplikasi ADC menggunakan ATMega8

Berikut ini adalah contoh program sederhana yang dapat di pahami dan dikembangkan dengan mudah dalam aplikasi yang kompleks. Mudah-mudahan bermanfaat. Terima kasih.
Contoh Program :
  1 $regfile = "m8def.dat"  2 $crystal = 4000000  3 Config Portb = Output  4

Jam Digital menggunakan Mikro ATMega8 dan Bahasa BASCOM-AVR

Belajar menggunakan LCD dengan ATMega8535 tidaklah sulit, dengan menggunakan bahasa Bascom AVR hal ini menjadi mudah dilakukan terutama bagi pemula. Berikut adalah rangkaian konfigurasi pin pada mikro ATMega8535 dan contoh program yang dapat dicoba. Selamat Mencoba.

Gambar Rangkaian :

Rangkaian Tampilan LCD.

Kode Bascom AVR

1 $regfile = "m8def.dat"
2 $crystal = 1000000
3 '------------------------  lcd -----------------------------------------------
4 Config Lcd = 16 * 2
5 Config Lcdpin = Pin , Rs = Pind.0 , E = Pind.1 , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.5
6 Cls
7 
8 '---------------------------  ds 1307 -----------------------------------------
9 $lib "ds1307clock.lib"
10 'configure the scl and sda pins
11 Config Sda = Portd.7
12 Config Scl = Portd.6
13 'address of ds1307
14 Const Ds1307w = &HD0                                        ' Addresses of Ds1307 clock
15 Const Ds1307r = &HD1
16 '------------------------------ key --------------------------------------------
17 Config Pinc.1 = Input
18 Config Pinc.2 = Input
19 Config Pinc.3 = Input
20 Config Pinc.4 = Input
21 '------------------------------------------------------------------------------
22 Config Debounce = 30
23 
24 Dim A As Byte , B As Byte , Data1 As Byte , C As Byte
25 
26 Dim Seco As Byte , Mine As Byte , Hour As Byte
27 
28 '----------------------------------------------------------------------------
29 Cursor Off
30 '-----------------------------
31 Cls
32 Locate 1 , 1
33 Lcd "Jam Digital LCD"
34 Locate 2 , 1
35 Lcd "Bina Project"
36 Wait 2 

37 
38 For A = 1 To 15
39  Shiftlcd Left
40 Waitms 30
41 Next
42 
43 Cls
44 '-------------------------------------------------------------------------------
45 Main:
46 Do
47          Gosub Ds1307
48          Gosub 24_12
49          Gosub Chekkey
50 
51 Loop
52 '-------------------------------------------------------------------------------
53 Ds1307:
54         I2cstart                                            ' Generate start code
55         I2cwbyte Ds1307w                                    ' send address
56         I2cwbyte 0                                          ' start address in 1307
57         I2cstart                                            ' Generate start code
58         I2cwbyte Ds1307r                                    ' send address
59         I2crbyte Seco , Ack                                 'sec
60         I2crbyte Mine , Ack                                 ' MINUTES
61         I2crbyte Hour , Nack                                ' Hours
62         I2cstop
63 
64         Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
65 
66         If Seco > 59 Then Seco = 0
67         If Mine > 59 Then Mine = 0
68         If Hour > 23 Then
69         Hour = 0
70         Gosub Seco
71         End If 

72 
73 Return
74 '-------------------------------------------------------------------------------
75  24_12:
76  If Pinc.4 = 1 Then Gosub Disply_24
77  If Pinc.4 = 0 Then Gosub Disply_12
78  Return
79 '-------------------------------------------------------------------------------
80 Disply_24:
81 
82          Locate 1 , 1
83          Lcd "Jam = " ; Hour ; ":" ;
84          If Mine < 10 Then
85             Lcd "0" ; Mine ; ":" ;
86          Else
87             Lcd Mine ; ":" ;
88          End If
89 
90          If Seco < 10 Then
91             Lcd "0" ; Seco
92          Else 

93             Lcd Seco
94          End If
95 
96          Locate 2 , 6
97          Lcd "(24 Jam)"
98 
99 Return
100 
101 '-------------------------------------------------------------------------------
102 Disply_12:
103 
104          If Hour = 0 Then Hour = 12
105          If Hour > 12 Then Hour = Hour - 12
106
107          Locate 1 , 1
108          Lcd "Jam = " ; Hour ; ":" ;
109          If Mine < 10 Then
110             Lcd "0" ; Mine ; ":" ;

111          Else
112             Lcd Mine ; ":" ;
113          End If
114
115          If Seco < 10 Then
116             Lcd "0" ; Seco
117          Else
118             Lcd Seco
119          End If
120
121          Locate 2 , 6
122          Lcd "(12 Jam)"
123 Return
124 '-------------------------------------------------------------------------------
125 Chekkey:
126
127          Debounce Pinc.1 , 0 , Seco , Sub
128          Debounce Pinc.2 , 0 , Mine , Sub
129          Debounce Pinc.3 , 0 , Hour , Sub
130 
131 

132 Return
133 '---------------------------------------------
134 Seco:
135          Incr Seco
136          If Seco > 59 Then Seco = 0

137          Seco = Makebcd(seco)
138          I2cstart                                           ' Generate start code
139          I2cwbyte Ds1307w                                   ' send address
140          I2cwbyte 0                                         ' starting address in 1307
141          I2cwbyte Seco
142          I2cstop
143 Return
144
145 '-------------------------------------
146 Mine:

147          Incr Mine
148          If Mine > 59 Then Mine = 0
149          Mine = Makebcd(mine)
150          I2cstart                                           ' Generate start code
151          I2cwbyte Ds1307w                                   ' send address
152          I2cwbyte 1                                         ' starting address in 1307
153          I2cwbyte Mine
154          I2cstop
155 Return

Program Output Paralel AT89x52 menggunakan BASCOM

Mikrokontroler AT89S52 memiliki 4 buah port paralel, yaitu PO, P1, P2, dan P3. Kita menggunakan 8 buah LED yang dihubungkan secara paralel.

Untuk lebih jelasnya lihat gambar di bawah!


Programnya sebagai berikut:

$regfile = "8052.dat"
$crystal = 12000000

Dim n As Byte, x as byte

‘$sim
For n = 1 to 4
Pl = &h01 Waitms 10 Pl = &h02
Waitms 10
Pl = &h04
Waitms 10
Pl = &h08
Waitms 10
Pl = &h10
Waitms 10
Pl = &h20
Waitms 10
Pl = &h40
Waitms 10
Pl = &h80
Waitms 10
Next
For x=l to 4
Pl=1
Waitms 10
For n =1 to 8
SHIFT Pl, LEFT,1 Waitms 10
NEXT
Next

Penjelasan program di atas sebagai berikut:

  1. $regfile = “8052.dat”
  2. $crystal = 12000000

Pernyataan di atas disebut compiler directive (pengarah kompiler), yang berarti memberitahu ke kompiler bahwa mikrokontroler yang digunakan adalah AT89S52. Anda dapat menggantinya sesuai dengan yang Anda gunakan Frekuensi crystal yang Anda gunakan adalah 12MHz.

  1. Dim n As Byte , x As Byte

Pernyataan ini merupakan pendeklarasian variabel n dan

  1. Pl = &h01 Waitms 10 Pl =&h02 Waitms 10

Pernyataan yang digunakan untuk mengeluarkan data Port 1, kemudian ditunda selama 10 ms dan mengeluarkan data selanjutnya, sehingga kita akan mendapatkan efek LED yang bergeser dari kiri ke kanan.

  1. For n =1 to 8
    SHIFT Pl, LEFT,1 Waitms 10
    NEXT

Untuk menggeser LED ke kiri atau ke kanan selain menggunakan perintah secara langsung, kita bisa pula menggunakan rutin yang telah disediakan oleh BASCOM yaitu SHIFT Pl, Left, 1.

Perintah berarti menggeser data F ke arah kiri (dari LSB ke MSB) satu kali. Dalam prograrr agar LED terlihat bergeser, maka perintah diulasebanyak 8 kali menggunakan perintah For…Next. Untul-menggeser data ke arah kanan, kita cukup mengganti Left: menjadi Right.

Jaringan Komputer Menggunakan Protokol TCP/IP

Jaringan Komputer Menggunakan Protokol TCP/IP

 

 

 

          Prinsip kerja jaringan protokol TCP/IP dijelaskan secara garis besar. Beberapa aplikasi yang umum digunakan pada jaringan komputer TCP/IP akan diketengahkan. Kemungkinan mengembangkan Wide Area Network (WAN) menggunakan protokol TCP/IP di Indonesia juga akan diterangkan. Sebagai contoh, pengalaman penulis menjalankan PC di amatir radio yang terkait ke jaringan AMPRNet – InterNet menggunakan TCP/IP di Canada akan dijelaskan.

 

Pendahuluan.

 

          Banyak protokol komunikasi komputer telah dikembangkan untuk membentuk jaringan komputer. Kompetisi antar perusahaan komputer seperti DEC, IBM dll. menelurkan berbagai standart jaringan komputer. Hal ini menimbulkan kesulitan terutama jika akan dilakukan interkoneksi antar berbagai jenis komputer dalam wilayah yang luas.

          Sekitar tahun 70-an Department of Defence (DoD) di Amerika Serikat memelopori pengembangan protokol jaringan komputer yang sama sekali tidak terikat pada jenis komputer maupun media komunikasi yang digunakan. Protokol yang dikembangkan diberi nama InterNet Protocol (pada network layer) [1] dan Transmission Control Protocol (pada transport layer) [2] atau disingkat TCP/IP. Berbagai protokol tambahan kemudian dikembangkan untuk mengatasi berbagai masalah dalam jaringan TCP/IP. Jaringan komputer menggunakan TCP/IP kini lebih dikenal sebagai jaringan InterNet. Tampak bahwa jaringan InterNet berkembang dari kebutuhan dan implementasi di medan sehingga jaringan komputer ini terus disempurnakan. Saat ini TCP/IP merupakan standard pada sistem operasi UNIX dengan disertakan socket library untuk programmer di UNIX mengakes langsung ke TCP socket. Semua standard yang digunakan pada jaringan TCP/IP dapat diperoleh secara cuma-cuma dari berbagai komputer di InterNet.

          Selain TCP/IP sebetulnya keluarga protokol yang dikembangkan oleh OSI/ISO seperti X.25/X.75/X.400 juga mulai digunakan oleh beberapa institusi. Sayang segala informasi tentang protokol ini harus dibeli oleh kita ke ISO. Hal ini menyebabkan perkembangan ISO/OSI tersendat tidak seperti TCP/IP. Untuk jangka panjang, kemungkinan TCP/IP akan menjadi standart dunia jaringan komputer. Dalam artikel ini akan dijelaskan prinsip kerja TCP/IP.

 

Lapisan protokol di jaringan komputer.

 

          Secara umum lapisan protokol dalam jaringan komputer dapat dibagi atas tujuh lapisan. Lapisan ini dapat dilihat pada gambar 1. Dari lapisan terbawah hingga tertinggi dikenal physical layer, link layer, network layer, transport layer, session layer, presentation layer dan application layer. Masing-masing lapisan mempunyai fungsi masing-masing dan tidak tergantung antara satu dengan lainnya.

          Dari ketujuh lapisan ini hanya physical layer yang merupakan perangkat keras selebihnya merupakan perangkat lunak. physical layer merupakan media penghubung untuk mengirimkan informasi digital dari satu komputer ke komputer lainnya yang secara fisik dapat kita lihat. Berbagai bentuk perangkat keras telah dikembangkan untuk keperluan ini. Satu diantaranya yang cukup banyak digunakan untuk keperluan jaringan komputer lokal (LAN) di Indonesia adalah ARCnet yang banyak digunakan menggunakan perangkat lunak Novell. Untuk keperluan Wide Area Network (WAN) dapat kita dapat menyambungkan berbagai LAN ini menggunakan media radio atau telepon menjadi satu kesatuan.

          Untuk mengatur hubungan antara dua buah komputer melalui physical layer yang ada digunakan protokol link layer. Pada jaringan paket radio di amatir digunakan link layer AX.25 (Amatir X.25) yang merupakan turunan CCITT X.25 yang juga digunakan pada Sistem Komunikasi Data Paket (SKDP) oleh PT. INDOSAT dan Perumtel. Dalam artikel terdahulu dijelaskan tentang <xysical layer dan link layer yang dipergunakan pada Wide Area Network (WAN) menggunakan teknologi amatir paket radio.

          IEEE sebuah organisasi profesi untuk teknik elektro telah mengembangkan beberapa standart protokol physical layer dan link layer untuk LAN. Berdasarkan rekomendasi IEEE pada LAN yang menggunakan ARCnet (IEEE 802.3) atau Ethernet (IEEE 802.3) digunakan link layer (IEEE 802.2). Pada LAN Token Ring digunakan physical layer (IEEE 802.5). Bentuk lain dari LAN yang kurang dikenal adalah Token Bus (IEEE 802.4). Untuk LAN berkecepatan tinggi juga telah dikembangkan sebuah standart yang diturunkan dari IEEE 802.3 yang kemudian dikenal sebagai Fiber Data Distributed Interface (FDDI).

          Artikel ini akan memfokuskan pembahasan pada lapisan protokol network layer dan transport layer. Sebetulnya ada beberapa keluarga protokol lainnya dalam TCP/IP. Tampak pada gambar 2 pada network layer selain IP dikenal juga ICMP (InterNet Control Message Protocol) [3], ARP (Address Resolution Protocol) [4] dan RARP (Reverse Address Resolution Protocol). Pada transport layer digunakan UDP (User Datagram Protocol) [5] selain TCP. Untuk sementara pembahasan akan dibatasi pada prinsip kerja protokol IP damn TCP. Hal ini karena TCP/IP merupakan protokol yang paling sering digunakan dalam operasi jaringan, protokol lainnya merupakan pelengkap yang membantu jaringan ini bekerja. Perlu dicatat bahwa pada jaringan komputer menggunakan TCP/IP umumnya tiga lapisan teratas dilakukan oleh sistem operasi dari komputer yang digunakan. Khususnya untuk komputer yang menggunakan UNIX telah tersedia library untuk network programming sehingga kita dapat mengembangkan program sendiri dengan mengakses langsung ke soket-soket TCP yang tersedia. Mungkin dilain kesempatan akan dijelaskan lebih lanjut mengenai cara pemprograman soket TCP di UNIX yang dapat diakses menggunakan bahasa C.

 

Prinsip kerja InterNet Protokol (IP).

 

          Fungsi dari InterNet Protokol secara sederhana dapat diterangkan seperti cara kerja kantor pos pada proses pengiriman surat. Surat kita masukan ke kotak pos akan diambil oleh petugas pos dan kemudian akan dikirim melalui route yang random, tanpa si pengirim maupun si penerima surat mengetahui jalur perjalanan surat tersebut. Juga jika kita mengirimkan dua surat yang ditujukan pada alamat yang sama pada hari yang sama, belum tentu akan sampai bersamaan karena mungkin surat yang satu akan mengambil route yang berbeda dengan surat yang lain. Di samping itu, tidak ada jaminan bahwa surat akan sampai ditangan tujuan, kecuali jika kita mengirimkannya menggunakan surat tercatat.

          Prinsip di atas digunakan oleh InterNet Protokol, “surat” diatas dikenal dengan sebutan datagram. InterNet protokol (IP) berfungsi menyampaikan datagram dari satu komputer ke komputer lain tanpa tergantung pada media kompunikasi yang digunakan. Data transport layer dipotong menjadi datagram-datagram yang dapat dibawa oleh IP. Tiap datagram dilepas dalam jaringan komputer dan akan mencari sendiri secara otomatis rute yang harus ditempuh ke komputer tujuan. Hal ini dikenal sebagai transmisi connectionless. Dengan kata lain, komputer pengirim datagram sama sekali tidak mengetahui apakah datagram akan sampai atau tidak.

          Untuk membantu mencapai komputer tujuan, setiap komputer dalam jaringan TCP/IP harus diberikan IP address. IP address harus unik untuk setiap komputer, tetapi tidak menjadi halangan bila sebuah komputer mempunyai beberapa IP address. IP address terdiri atas 8 byte data yang mempunyai nilai dari 0-255 yang sering ditulis dalam bentuk [xx.xx.xx.xx] (xx mempunyai nilai dari 0-255).

          Pada header InterNet Protokol selain IP address dari komputer tujuan dan komputer pengirim datagram juga terdapat beberapa informasi lainnya. Informasi ini mencakup jenis dari protokol transport layer yang ditumpangkan diatas IP. Tampak pada gambar 2 ada dua jenis protokol pada transport layer yaitu TCP dan UDP. Informasi penting lainnya adalah Time-To-Live (TTL) yang menentukan berapa lama IP dapat hidup didalam jaringan. Nilai TTL akan dikurangi satu jika IP melalui sebuah komputer. Hal ini penting artinya terutama karena IP dilepas di jaringan komputer. Jika karena satu dan lain hal IP tidak berhasil menemukan alamat tujuan maka dengan adanya TTL IP akan mati dengan sendirinya pada saat TTL bernilai nol. Disamping itu juga tiap IP yang dikirimkan diberikan identifikasi sehingga bersama-sama dengan IP address komputer pengirim data dan komputer tujuan, tiap IP dalam jaringan adalah unik.

          Khususnya untuk pemakai jaringan komputer hal yang terpenting untuk dipahami secara benar-benar adalah konsep IP address. Lembaga yang mengatur IP address adalah Network Information Center (NIC) di Department of Defence di US yang beralamat di hostmaster@nic.ddn.mil. Pengaturan IP address penting, terutama pada saat mengatur routing secara otomatis. Sebagai contoh jaringan komputer di amatir radio mempunyai IP address kelas yang mempunyai address [44.xx.xx.xx]. Khusus untuk amatir radio di Indonesia IP address yang digunakan adalah [44.132.xx.xx]. Sedangkan penulis di Canada mempunyai IP address [44.135.84.22]. Hal ini terlihat dengan jelas bahwa IP address di amatir radio sifatnya geografis. Dari IP address penulis dapat dibaca bahwa mesin penulis berada di network 44 di InterNet yang dikenal sabagai AMPRNet (ampr.org). 135 menandakan bahwa penulis berada di Canada. 84 memberitahukan bahwa penulis berada di kota Waterloo di propinsi Ontario, sedang 22 adalah nomor mesin penulis. Dengan konsep IP address, route perjalanan IP dalam jaringan komputer dapat dilakukan secara otomatis. Sebagai contoh, jika sebuah komputer di InterNet akan mengirimkan IP ke [44.135.84.22], pertama-tama IP yang dilepas di network akan berusaha mencari jalan ke network 44.135.84, setelah mesin yang mengubungkan network 44.135.84 tercapai IP tersebut akan mencoba menghubungi mesin 22 di network tersebut. Kesemuanya ini dilakukan secara otomatis oleh program.

          Tentunya sukar bagi manusia untuk mengingat sedemikian banyak IP address. Untuk memudahkan, dikembangkan Domain Name System (DNS). Sebagai contoh mesin penulis di AMPRNet dengan IP address [44.135.84.22], penulis beri nama (hostname) ve3.yc1dav.ampr.org. Terlihat bahwa hostname yang digunakan penulis sangat spesifik dan sangat memudahkan untuk mengetahui bahwa penulis berada di AMPRNet dari kata ampr.org. Mesin tersebut berada di Kanada dan propinsi Ontario dari ve3 sedang yc1dav adalah penulis sendiri. Contoh lain dari DNS adalah sun1.vlsi.waterloo.edu yang merupakan sebuah Sun SPARC workstation (sun1) di kelompok peneliti VLSI di University of Waterloo, Kanada (waterloo.edu) tempat penulis bekerja dan belajar. Perlu dicatat bahwa saat ini NIC belum memberikan domain untuk Indonesia. Mudah-mudahan dengan berkembangnya jaringan komputer TCP/IP di Indonesia ada saatnya dimana kita di Indonesia perlu meminta domain tersendiri untuk Indonesia.

 

Prinsip kerja Transmission Control Protocol (TCP).

 

          Berbeda dengan InterNet Protokol (IP), TCP mempunyai prinsip kerja seperti “virtual circuit” pada jaringan telepon. TCP lebih mementingkan tata-cara dan keandalan dalam pengiriman data antara dua komputer dalam jaringan. TCP tidak perduli dengan apa-apa yang dikerjakan oleh IP, yang penting adalah hubungan komunikasi antara dua komputer berjalan dengan baik. Dalam hal ini, TCP mengatur bagaimana cara membuka hubungan komunikasi, jenis aplikasi apa yang akan dilakukan dalam komunikasi tersebut (misalnya mengirim e-mail, transfer file dsb.) Di samping itu, juga mendeteksi dan mengoreksi jika ada kesalahan data. TCP mengatur seluruh proses koneksi antara satu komputer dengan komputer yang lain dalam sebuah jaringan komputer.

          Berbeda dengan IP yang mengandalkan mekanisme connectionless pada TCP mekanisme hubungan adalah connection oriented. Dalam hal ini, hubungan secara logik akan dibangun oleh TCP antara satu komputer dengan komputer yang lain. Dalam waktu yang ditentukan komputer yang sedang berhubungan harus mengirimkan data atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup dilakukan maka dapat diasumsikan bahwa komputer yang sedang berhubungan dengan kita mengalami gangguan dan hubungan secara logik dapat diputus.

          TCP mengatur multiplexing dari data yang dikirim/diterima oleh sebuah komputer. Adanya identifikasi pada TCP header memungkinkan multiplexing dilakukan. Hal ini memungkinkan sebuah komputer melakukan beberapa hubungan TCP secara logik. Bentuk hubungan adalah full duplex, hal ini memungkinkan dua buah komputer saling berbicara dalam waktu bersamaan tanpa harus bergantian menggunakan kanal komunikasi. Untuk mengatasi saturasi (congestion) pada kanal komunikasi, pada header TCP dilengkapi informasi tentang flow control.

          Hal yang cukup penting untuk dipahami pada TCP adalah port number. Port number menentukan servis yang dilakukan oleh program aplikasi diatas TCP. Nomor-nomor ini telah ditentukan oleh Network Information Center dalam Request For Comment (RFC) 1010 [10]. Sebagai contoh untuk aplikasi File Transfer Protokol (FTP) diatas transport layer TCP digunakan port number 20 dan masih banyak lagi.

          Prinsip kerja dari TCP berdasarkan prinsip client-server. Server adalah program pada komputer yang secara pasif akan mendengarkan (listen) port number yang telah ditentukan pada TCP. Sedang client adalah program yang secara aktif akan membuka hubungan TCP ke komputer server untuk meminta servis yang dibutuhkan.

          State diagram kerja TCP diperlihatkan pada gambar 3. Pada state diagram gambar 3, client akan secara aktif membuka hubungan (active open) dengan mengirimkan sinyal SYN (state SYN SENT) ke komputer server tujuan. Jika server menerima sinyal SYN maka server yang saat itu berada pada state LISTEN akan mengirimkan sinyal SYN dan ke dua komputer (client & server) akan ke state ESTAB. Jika tidak ada tanggapan dari komputer yang dituju, maka program akan kembali pada state CLOSE. Setelah servis yang dilakukan telah selesai maka salah client akan mengirimkan sinyal FIN dan komputer client akan berada pada state FIN WAIT sampai sinyal FIN dari server diterima. Pada saat menerima sinyal FIN, server akan ke state CLOSE WAIT hingga hubungan diputus. Akhirnya kedua komputer akan kembali pada state CLOSE.

 

Beberapa contoh aplikasi jaringan InterNet.

 

          Banyak aplikasi yang mungkin dilakukan menggunakan keluarga protokol TCP/IP. Aplikasi yang umum dilakukan adalah pengiriman berita secara elektronik yang dikenal sebagai elektronik mail (e-mail). Untuk ini dikembangkan sebuah protokol Simple Mail Transfer Protocol (SMTP) [6]. Protokol ini mengatur tata cara mengirimkan berita dari seorang user di sebuah komputer ke komputer lain menggunakan alamat yang unik. Sebagai contoh, alamat e-mail penulis di AMPRNet adalah:

 

          yc1dav@ve3.yc1dav.ampr.org

 

yang berarti bahwa penulis yc1dav berada di (at, @) mesin ve3.yc1dav.ampr.org. Tentunya pada saat pengiriman berita, IP akan melakukan konversi dari hostname ve3.yc1dav.ampr.org ke IP address penulis [44.135.84.22] untuk kemudian mengirimkan informasi SMTP yang dimasukan dalam protokol TCP.

          Aplikasi lainnya adalah remote login ke komputer yang berjauhan. Hal ini dilakukan dengan menggunakan fasilitas Telnet [7] yang dijalankan diatas transport layer TCP. Untuk melakukan file transfer digunakan File Transfer Protocol (FTP) [8] yang juga dijalankan diatas TCP. Dengan semakin rumitnya jaringan maka manajemen jaringan menjadi penting artinya. Saat ini dikembangkan protokol yang khusus untuk digunakan mengatur jaringan dengan nama Simple Network Management Protocol (SNMP) [9]. Masih banyak lagi aplikasi yang dijalankan di atas TCP, seperti NNTP, RSPF dsb. Masing-masing aplikasi mempunyai nomor port TCP yang unik.

          Satu hal yang cukup menarik dengan digunakannya protokol TCP/IP adalah kemungkinan untuk menyambungkan beberapa jaringan komputer yang menggunakan media komunikasi berbeda. Dengan kata lain, komputer yang terhubung pada jaringan yang menggunakan ARCnet, Ethernet, Token Ring, SKDP, amatir paket radio dll. dapat berbicara satu dengan lainnya tanpa saling mengetahui bahwa media komunikasi yang digunakan secara fisik berbeda. Hal ini memungkinkan dengan mudah membentuk Wide Area Network di Indonesia. Saat ini UNINET yang dipelopori oleh rekan-rekan dari PUSILKOM-UI terasa tersendat-sendat terutama karena tingginya biaya yang harus dikeluarkan untuk komunikasi. Di samping itu, protokol yang digunakan dalam jaringan UNINET saat ini adalah UUCP yang pada dasarnya merupakan protokol yang sangat sederhana. Hal ini tidak memungkinkan UNINET untuk melakukan hal-hal yang hanya mungkin dilakukan oleh TCP/IP seperti manajemen network secara otomatis menggunakan SNMP dan hubungan connectionless seperti yang dilakukan menggunakan IP.

          Untuk lebih memperjelas, ada baiknya penulis ketengahkan contoh nyata yang penulis lakukan di jaringan amatir packet radio (AMPRNet) di Canada. Secara garis besar topologi jaringan komputer amatir packet radio di Waterloo terlihat pada gambar 4. Saat ini jaringan AMPRNet di Waterloo bekerja pada Frekuensi 145.09MHz pada kecepatan 1200bps. Kami merencanakan untuk meng-up grade jaringan TCP/IP yang ada ke kecepatan 9600bps. Pada gambar dituliskan beberapa mesin milik teman-teman penulis seperti at.ve3euk.ampr.org dan home.ve3rks.ampr.org.

          Disini kami mempunyai sebuah gateway at.ve3uow.ampr.org milik University of Waterloo – Amateur Radio Club (UoW ARC), dimana penulis juga anggotanya, gateway ini menghubungkan jaringan AMPRNet dengan jaringan LAN PC Token Ring di University of Waterloo. Melalui gateway yang ada di jaringan Token Ring, IP yang dikirim oleh mesin di AMPRNet dapat berhubungan dengan mesin-mesin Unix yang ada di jaringan EtherNet di UoW maupun dengan mesin-mesin lain di InterNet. Tidak banyak gateway antara AMPRNet dan InterNet yang beroperasi di dunia saat ini. Hal ini dapat dilihat pada artikel penulis terdahulu tentang pengalaman penulis bekerja di jaringan amatir packet radio di luar negeri.

          Di AMPRNet Waterloo kami menggunakan sunee.waterloo.edu dan watserv1.waterloo.edu sebagai domain name server (DNS). Dengan kata lain, dengan menggunakan protokol UDP/IP mesin-mesin AMPRNet di Waterloo jika akan berhubungan dengan mesin lain di AMPRNet atau InterNet yang hostnamenya diketahui dapat menanyakan IP address mesin yang dituju tersebut ke DNS. Semua ini dilakukan secara otomatis tanpa perlu operator mesin mengetahui proses terjadi.

          Dengan adanya teknologi amatir paket radio di dunia amatir radio. Kemungkinan mengembangkan WAN dengan biaya murah di Indonesia menjadi mungkin. UNINET tidak mungkin menggunakan AMPRNet karena amatir paket radio tidak mengenal UUCP. Kalaupun dipaksakan amatir radio harus mengembangkan perangkat lunak yang dibutuhkan dari awal. Penggunaan TCP/IP akan memudahkan internetwoking dengan berbagai network seperti AMPRNet yang pada akhirnya membuka kemungkinan pengembangan WAN biaya mudah, tetapi dengan fasilitas yang jauh lebih baik daripada UUCP.

 

Penutup

 

          Prinsip kerja secara umum jaringan komputer menggunakan keluarga protokol TCP/IP telah diterangkan secara garis besar. Beberapa contoh penggunaan dan kemungkinan untuk membentuk WAN menggunakan TCP/IP telah dijelaskan. Beberapa artikel / buku yang mungkin dapat memberikan informasi yang cukup mendalam tentang prinsip kerja jaringan menggunakan TCP/IP dapat diperoleh pada RFC 1122 [12] dan RFC 1123 [13]. Copy dari RFC dapat diperoleh dari Network Information Center (NIC) yang beralamat di :

 

          DDN Network Information Center

          SRI International

          333 Ravenswood Avenue

          Menlo Park, CA 94025

          U.S.A.

          telp: 800-235-3155

 

Bagi kami yang berada diluar negeri, copy RFC dapat kami peroleh secara cuma-cuma dengan melakukan FTP ke NIC.DDN.MIL. Beberapa copy dari RFC dalam bentuk file yang dikompress dalam disket telah penulis kirim ke Indonesia. Saat ini file-file dalam disket berisi RFC tentang jaringan TCP/IP, program KA9Q TCP/IP beserta source code yang penulis gunakan untuk bekerja di jaringan AMPRNet, kemungkinan besar bisa diperoleh dari Dr. Kusmayanto Kadiman (ketua PIKSI-ITB), Ir. A. Mas’ud (PAU Mikroelektronika ITB), Dr. S. Nasserie (Jurusan Teknik Elektro ITB), redaksi majalah Elektron dan ITB Amatir Radio Club. Penulis berharap artikel ini dapat memberikan gambaran secara umum tentang jaringan komputer TCP/IP dan kemungkinan pengembangannya di Indonesia.

 

DAFTAR PUSTAKA

 

[1]      J. Postel, “RFC 791: Internet Protocol (IP),”  InterNet Network Working Group, September 1981.

 

[2]      J. Postel, “RFC 793: Transmission Control Protocol,” InterNet Network Working Group, September 1981.

 

[3]      J. Postel, “RFC 792: Internet Control Message Protocol,” InterNet Network Working Group, September 1981.

 

[4]      D.C. Plummer, “RFC 826: An Ethernet Address Resolution Protocol,” InterNet Network Working Group, November 1982.

 

[5]      J. Postel, “RFC 768: User Datagram Protocol,” InterNet Network Working Group, Agustus 1980.

 

[6]      J. Postel, “RFC 821: Simple Mail Transfer Protocol,” InterNet Network Working Group, Agustus 1982.

 

[7]      J. Postel dan J. Reynolds, “RFC 854: Telnet Protocol Specification,” InterNet Network Working Group, May 1983.

 

[8]      J. Postel dan J. Reynolds, “RFC 959: File Transfer Protocol (FTP),” InterNet Network Working Group, October 1985.

 

[9]      J. Case, M. Fedor, M. Schoffstall dan C. Davin, “RFC 1098: A Simple Network Management Protocol,” InterNet Network Working Group, April 1989.

 

[10]    J. Reynolds dan J. Postel, “RFC 1010: Assigned Numbers,” InterNet Network Working Group, May 1987.

 

[12]    R. Braden, “RFC 1122: Requirements for InterNet Hosts – Communication Layers,”, InterNet Network Working Group, October 1989.

 

[13]    R. Barden, “RFC 1123: Requirements for InterNet Hosts – Application and Support,” InterNet Network Working Group, October 1989.

 

KETERANGAN GAMBAR

 

Gambar 1   Tujuh lapisan protokol yang digunakan dalam jaringan komputer sesuai dengan rekomendasi yang dikeluarkan oleh OSI/ISO.

 

Gambar 2   Keluarga protokol dalam jaringan komputer yang menggunakan protokol TCP/IP. Tampak bahwa selain TCP/IP juga digunakan beberapa protokol tambahan. Perlu dicatat bahwa protokol yang ditampilkan diatas hanya sebagian saja dari seluruh protokol yang dikenal.

 

Gambar 3   State diagram secara sederhana dari Transmission Control Protocol (TCP). Prinsip client-server digunakan dalam interaksi dua buah komputer menggunakan TCP.

 

Gambar 4   Contoh topologi jaringan AMPRNet di Waterloo, Canada yang terkait melalui at.ve3uow.ampr.org ke jaringan PC Token Ring yang kemudian melalui jaringan EtherNet dan mesin watmath.waterloo.edu terkait ke jaringan komputer InterNet.


 

 

1

 

 

 

2


 

 

3


 

 

4