btc baner

Pages

This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Monday, May 12, 2014

Pemrograman Mikrokontroler AT89S51 (Tingkat Dasar)



Setelah membuat programmer AT89S51 pada tulisan saya sebelumnya, maka kemudian untuk dapat menggunakan mikrokontroler tersebut, maka diperlukan program yang akan di tuliskan ke mikrokontroler tersebut agar mikrokontroler tersebut dapat berfungsi seperti yang kita harapkan.
Untuk dapat melakukan pemrograman pada mikrokontroler AT89S51 sebenarnya ada beberapa bahasa pemrograman yang bisa dipakai, diantaranya adalah bahasa pemrograman tingkat rendah seperti bahasa mesin dan bahasa assembly, ataupun dengan menggunakan bahasa pemrograman tingkat tinggi, seperti bahasa C, Basic, pascal, dll.
1. Bahasa Mesin dan bahasa assembly

Sebenarnya mikrokontroler sendiri cuma mengerti bahasa mesin, yang hanya mesin (mikrokontroler) saja yang mengerti, bahasa mesin ini tersusun dari angka – angka binary yang disimpan dalam memory mikrokontroler yang berupa flash, untuk AT89S51 flash nya berkapasitas 4kB. Contohnya adalah seperti dibawah ini:
Contoh bahasa mesin pada memory flash
Contoh bahasa mesin pada memory flash
Program diatas tersimpan dalam memory flash dari mikrokontroler AT89S51, program tersebut berasal dari hasil compile dari bahasa assembly sebagai berikut :
mov p1,#5
mov p1,#6
end
Dalam memory tersebut, tersimpan data yaitu : ox75, 0×90, 0×05, 0×75, 0×90, dan 0×06. Dari program tersebut, mesin dapat menerjemahkan sebagai berikut:
angka pertama adalah commandnya (0×75 = mov) adalam perintah untuk memberikan nilai pada alamat 0×90 (P1) sebesar 0×05, kemudian mov lagi (0×75) untuk memberikan nilai pada alamat 0×90 sebesar 0×05.
Untuk compiler bahasa assebly nya bisa di donwload melalui link berikut:
Sedangkan untuk tutorial bahasa pemograman assembly untuk intel 8051 (AT89S51 full compatible dengan microprosesor intel 8051) dapat di download melalui link berikut:
Instruction setnya dapat dilihat dalam chapter 4 pada tutorial di atas.
Penggunaan bahasa asembly memiliki kekurangan yaitu bahasa yang digunakan sulit sekali dimengerti oleh manusia, karena masih menggunakan pemrograman tingkat rendah, akan tetapi kelebihannya adalah penggunaan memorynya menjadi semakin kecil. Dengan menggunakan bahasa pemrograman C maka bahasa pemrograman menjadi lebih mudah dipahami, sedangkan penggunaan memori menjadi sedikit lebih besar.
Compiler bahasa C untuk 8051 diantaranya adalah
A. Reads51
programnya dapat di download melalui link berikut:
Contoh programnya adalah sebagai berikut:
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Pemrograman Mikrokontroler AT89S51 menggunakan Reads51
Jika program diatas dikompile, maka akan menghasilkan file .hex (bahasa mesin) sebagai berikut:
File .hex hasil compilan menggunakan Reads51 bahasa C
File .hex hasil compilan menggunakan Reads51 bahasa C
Pada program di atas, sebetulnya perintahnya hampir sama dengan perinta pada bahasa assembly di atas, akan tetapi dengan menggunakan bahasa C Reads51 ternyata banyak perintah – perintah inisialisasi yang besarnya mendekati 2 kB, hal ini tentu saja sangat memboros memory flash, yang pada At89S51 cuma 4 kB.
Program Read51 diatas juga bisa digunakan untuk mengkompile dengan menggunakan bahasa pemrograman asembly.
B. SDCC
Compiler SDCC dapat di download dari link berikut ini:
Contoh programnya adalah sebagai berikut (dengan menggunakan Reads51 hanya untuk editornya saja)
Program menggunakan compiler SDCC
Program menggunakan compiler SDCC
Compiler SDCC masih berbasis dos, jadi untuk mengkompile program butuh sintaks tertentu untuk mengkompilenya, command untuk mengkompile nya adalah sebagai berikut :
dari command prompt :
C:\>sdcc [nama file]
misal :
C:\sdcc file.c
jika kompilasi berhasil, maka akan dihasilkan beberapa file, diantaranya ‘file.ihx’, file tersebutlah yang kemudian akan di download ke mikrokontroler, jika file tersebut dilihat menggunakan isppgm (seperti yang telah disinggung dalam pembahasan downloader /  writer mikrokontroler AT89S51), maka dapat dilihat buffernya adalah sebagai berikut :
File bahasa mesin (.ihx) menggunakan compiler SDCC
File bahasa mesin (.ihx) menggunakan compiler SDCC
Jika dibandingkan dengan compiler sebelumnya yang menggunakan Reads51, penggunaan memorinya lebih sedikit(inisialisasi program sekitar 99 byte) dengan menggunakan perintah bahasa C yang sama, oleh karena itu disarankan untuk menggunakan SDCC compiler untuk pemrograman bahasa C pada mikrokontroler AT89S51.

Light Emiting Dioda (LED)


Light Emiting Diode
Dioda cahaya atau lebih dikenal dengan sebutan LED (light-emitting diode) adalah suatu semikonduktor yang memancarkan cahaya monokromatik yang tidak koheren ketika diberi tegangan maju.
Gejala ini termasuk bentuk elektroluminesensi. Warna yang dihasilkan bergantung pada bahan semikonduktor yang dipakai, dan bisa juga ultraviolet dekat atau inframerah dekat.
LED dapat menyala jika diberikan tegangan yang cukup untuk memicu dioda persambungannya, biasanya nilainya adalah 1.5V, LED tersebut juga harus dialiri arus listrik yang cukup untuk menyalakan LED tersebut, biasanya sebesar 10mA.
Rangkaian LED sederhana dapat dilihat dalam gambar berikut
LED
Dari rangkaian diatas, jika pin di beri tegangan 5V, maka pada resistor akan muncul tegagan sebesar :
VR = Vin – Vled
VR = 5 – 1.5 = 3.5V
Arus yang mengalir pada rangkaian tersebut adalah :
I = VR/R
I = 3.5/330 = 10.6 mA
Arus sebesar 10.6 mA sudah cukup untuk menyalakan LED tersebut dengan nyala yang cukup.

LED Seven Segmen


Led Seven Segmen biasanya digunakan untuk menampilkan angka berupa angka0 sampai 9, angka – angka tersebut dapat ditampilkan dengan mengubah nyala dari 7 segmen yang ada pada led yang disusun seperti gambar dibawah ini :
segmen
Led Seven Segmen, terdapat dua macam, yaitu common anoda dan common Catoda.
Common Catoda berarti seven segmen tersebut terdiri dari led – led dimana Catoda nya (Kutub -) di hubungkan menjadi satu, skematiknya adalah seperti gambar dibawah ini :
seven_seg_cc_sch
Sedangkan untuk common anoda, skema nya adalah seperti dibawah ini :
seven_seg_ca_sch
Led seven segmen tersebut dapat diaktifkan dengan menghubungkan dengan perangkat kontrol seperti mikrokontroler, seperti di bawah ini :
seven-segment_led_driver
Dengan nilai hambatannya tergantung dari arus yang akan dilewatkan dalam rangkaian.

Rangkaian Digital


Peralatan elektronika elektronika dewasa ini hampir semuanya sudah menerapkan prinsip – prinsip dari elektronika digital.
Di dalam elektronika digital hanya mengenal 2 keadaan logika, yaitu 0 dan 1, 0 berarti berarti tegangan (input/output) memiliki level tegangan tegangan antara 0 – 0,7 V (TTL), sedangkan 1 berarti tegangan (input/output) memiliki level tegangan antara 3,6 – 5 V.
Terdapat beberapa gerbang logika yang digunakan dalam dalam elektronika digital, dapat dilihat dalam tabel berikut ini:
Gerbang Logika Dasar
Gerbang Logika Dasar
Dari tabel diatas, misal pada AND Gate pada masukan A berlogika 1, dan masukan B berlogika 1, maka keluaran F juga akan berlogika 1 seperti yang terlihat dalam tabel kebenaran.
Dalam Elektronika digital, rangkaian gerbang logika, rangkaian gerbang logika dapat dibagi menjadi 2 macam yaitu, rangkaian kombinasional dan rangkaian sekuensial :
1. Rangkaian Gerbang Logika Kombinasional
Rangkaian Gerbang logika Kombinasional dipakai dipakai pada rangkaian Adder,  rangkaian adder ini banyak dipakai dalam aritmatika yang menjadi dasar dari ALU (Arithmatic and Logical unit) atau yang merupakan otak dari sistem mikro komputer.
A. Rangkaian Half Adder (2 bit)
Ini adalah rangkain dasar dari rangkaian adder, rangkaiannya sebagai berikut :
Rangkaian Half Adder
Rangkaian Half Adder
Rangkaian diatas diatas  adalah adalah rangkaian half  adder 1 bit, rangkaian diatas berfungsi untuk menjumlahkan sebanya satu bit,  misalnya pada masukan A berlogika 1 dan B berlogika 1, maka keluarannya adalah 10, CO (Carry out) bisa dipakai jika rangkaian ini akan dikembangkan menjadi lebih dari 2 bit.
Adapun tabel kebenarannya adalah sebagai berikut :
Tabel Kebenar Rangkaian Half Adder
Tabel Kebenar Rangkaian Half Adder
B. Rangkaian Full Adder
Rangkaian Full adder adalah sebagai berikut :
Rangkaian Full Adder
Rangkaian Full Adder
Dalam rangkaian diatas, merupakan penyempurnaan dari Half adder, sehinnga pada rangkaian ini dapat dapat menyertakan Carry out dari dari penjumlahan sebelumnya, dengan adanya Carry in maka rangkaian diatas dapat dikembankan menjadi lebih dari 1 bit masukan, bisa 8bit, 16bit, dll.
Adapun Tabel kebenaran dari rangkaian Full Adder adalah sebagai berikut :
Tabel Kebenaran Rangkaian Full Adder
Tabel Kebenaran Rangkaian Full Adder
2. Rangkaian Gerbang Logika Sekuensial
Rangkaian Gerbang Logika sekuensial adalah suatau rangkaian yang keluarannya dipengaruhi oleh logika masukan sebelumnya (Waktu sebelumnya).
Rangkaian Gerbang Logika Sekuensial adalah sebagai berikut :
A. Flip – Flop RS
Flip - Flop RS
Flip - Flop RS
B. D Flip – Flop
Flip - Flop D
Flip - Flop D
C. Flip – Flop JK
Flip - flop JK
Flip - flop JK
3. Register
Register berfungsi untuk menyimpan data secara digital, register disebut juga sebagai memory dimanis. Dibangun dari kumpulan Flip – Flop yang banyaknya menentukan jumlah bit data yang dapat disimpan dalam Register.
Rangkaian Register adalah sebagai berikut :
A. Register Seri
Register seri adalah sebuah register dimana proses penyimpanan datanya dapat dilakukan secara serial.
Register Seri
Register Seri
B. Register Paralel
Register seri adalah sebuah register yang dapat menyimpan data dimana proses penyimpanan datanya dapat dilakukan secara paralel.
Register Paralel
Register Paralel
[Ym : mikro_kontroler@yahoo.com]

Prinsip Kerja Rangkaian Sensor Ultrasonik

Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Seperti telah disebutkan bahwa sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver. Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik. Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik. Sinyal yang diterima oleh rangkaian receiver dikirimkan ke rangkaian mikrokontroler untuk selanjutnya diolah untuk menghitung jarak terhadap benda di depannya (bidang pantul).
Prinsip kerja dari sensor ultrasonik dapat ditunjukkan dalam gambar dibawah ini :
Prinsip kerja dari sensor ultrasonik adalah sebagai berikut :
  1. Sinyal dipancarkan oleh pemancar ultrasonik. Sinyal tersebut berfrekuensi diatas 20kHz, biasanya yang digunakan untuk mengukur jarak benda adalah 40kHz. Sinyal tersebut di bangkitkan oleh rangkaian pemancar ultrasonik.
  2. Sinyal yang dipancarkan tersebut kemudian akan merambat sebagai sinyal / gelombang bunyi dengan kecepatan bunyi yang berkisar 340 m/s. Sinyal tersebut kemudian akan dipantulkan dan akan diterima kembali oleh bagian penerima Ultrasonik.
  3. Setelah sinyal tersebut sampai di penerima ultrasonik, kemudian sinyal tersebut akan diproses untuk menghitung jaraknya. Jarak dihitung berdasarkan rumus :
S = 340.t/2
dimana S adalah jarak antara sensor ultrasonik dengan bidang pantul, dan t adalah selisih waktu antara pemancaran gelombang ultrasonik sampai diterima kembali oleh bagian penerima ultrasonik.
a. Pemancar Ultrasonik (Transmitter)
Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal sinusoidal berfrekuensi di atas 20 KHz menggunakan sebuah transducer transmitter ultrasonik
Rangkaian Pemancar Gelombang Ultrasonik
Rangkaian Pemancar Gelombang Ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adlah sebagai berikut :
  1. Sinyal 40 kHz dibangkitkan melalui mikrokontroler.
  2. Sinyal tersebut dilewatkan pada sebuah resistor sebesar 3kOhm untuk pengaman ketika sinyal tersebut membias maju rangkaian dioda dan transistor.
  3. Kemudian sinyal tersebut dimasukkan ke rangkaian penguat arus yang merupakan kombinasi dari 2 buah dioda dan 2 buah transistor.
  4. Ketika sinyal dari masukan berlogika tinggi (+5V) maka arus akan melewati dioda D1 (D1 on), kemudian arus tersebut akan membias transistor T1, sehingga arus yang akan mengalir pada kolektotr T1 akan besar sesuai dari penguatan dari transistor.
  5. Ketika sinyal dari masukan berlogika tinggi (0V) maka arus akan melewati dioda D2 (D2 on), kemudian arus tersebut akan membias transistor T2, sehingga arus yang akan mengalir pada kolektotr T2 akan besar sesuai dari penguatan dari transistor.
  6. Resistor R4 dan R6 berfungsi untuk membagi tengangan menjadi 2,5 V. Sehingga pemancar ultrasonik akan menerima tegangan bolak – balik dengan Vpeak-peak adalah 5V (+2,5 V s.d -2,5 V).
b. Penerima Ultrasonik (Receiver)
Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang dipancarkan oleh pemancar ultrasonik dengan karakteristik frekuensi yang sesuai. Sinyal yang diterima tersebut akan melalui proses filterisasi frekuensi dengan menggunakan rangkaian band pass filter (penyaring pelewat pita), dengan nilai frekuensi yang dilewatkan telah ditentukan. Kemudian sinyal keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator (pembanding) dengan tegangan referensi ditentukan berdasarkan  tegangan keluaran penguat pada saat jarak antara sensor kendaraan mini dengan sekat/dinding pembatas mencapai jarak minimum untuk berbelok arah. Dapat dianggap keluaran komparator pada kondisi ini adalah high (logika ‘1’) sedangkan jarak yang lebih jauh adalah low (logika’0’). Logika-logika biner ini kemudian diteruskan ke rangkaian pengendali (mikrokontroler).
Rangkaian Penerima Gelombang Ultrasonik
Rangkaian Penerima Gelombang Ultrasonik
Prinsip kerja dari rangkaian pemancar gelombang ultrasonik tersebut adalah  sebagai berikut :
  1. Pertama – tama sinyal yang diterima akan dikuatkan terlebih dahulu oleh rangkaian transistor penguat Q2.
  2. Kemudian sinyal tersebut akan di filter menggunakan High pass filter pada frekuensi > 40kHz oleh rangkaian transistor Q1.
  3. Setelah sinyal tersebut dikuatkan dan di filter, kemudian sinyal tersebut akan disearahkan oleh rangkaian dioda D1 dan D2.
  4. Kemudian sinyal tersebut melalui rangkaian filter low pass filter pada frekuensi < 40kHz melalui rangkaian filter C4 dan R4.
  5. Setelah itu sinyal akan melalui komparator Op-Amp pada U3.
  6. Jadi ketika ada sinyal ultrasonik yang masuk ke rangkaian, maka pada komparator akan mengeluarkan logika rendah (0V) yang kemudian akan diproses oleh mikrokontroler untuk menghitung jaraknya.

Komunikasi Paralel Mikrokontroler – Komputer

Mikrokontroler dan komputer dapat melakukan komunikasi dua arah dengan menggunakan port paralel komputer sebagai jalur input dan output antara komputer dan mikrokontroler.
Port paralel ialah port data  di komputer untuk mentransmisi 8 bit data dalam sekali detak. Standar port paralel  yang baru ialah IEEE 1284 dimana dikeluarkan tahun 1994.  Standar ini mendefinisikan 5 mode operasi sebagai berikut :
  1. Mode kompatibilitas
  2. mode nibble
  3. mode byte
  4. mode EPP (enhanced parallel port)
  5. mode ECP (Extended capability port)
Tujuan dari standar yang baru tersebut ialah untuk mendesain driver dan peralatan yang baru yang kompatibel dengan peralatan lainnya serta standar paralel port sebelumnya (SPP) yangn diluncurkan tahun 1981. Mode  Compatibilitas, nibble dan byte  digunakan sebagai standar perangkat keras yang tersedia di port paralel  orisinal dimana EPP dan ECP membutuhkan tambahan hardware dimana dapat berjalan dengan kecepatan yang lebih tinggi. Mode kompatibilitas atau (“Mode Centronics” ) hanya dapat mengirimkan data pada arah maju pada kecepatan 50 kbytes per detik hingga 150 kbytes per detik. Untuk menerima data, anda harus mengubah mode menjadi mode nibble atau byte. Mode nibble dapat menerima  4 bit (nibble) pada arah yang mundur, misalnya dari alat ke computer. Mode byte  menggunakan fitur bi-directional parallel untuk menerima 1 byte (8 bit) data pada arah mundur. IRQ (Interrupt Request ) pada port paralel  biasanya pada IRQ5 atau IRQ7.
Port paralel Extend dan Enhanced menggunakan  hardware tambahan untuk membangkitkan dan mengatur handshaking. Untuk mengeluarkan 1 byte ke printer menggunakan mode kompatibilitas, software harus :
  1. menulis byte ke data port
  2. cek untuk melihat apakah printer sibuk, jika sibuk, ia tidak akan menerima data, sehingga data yang telah ditulis akan hilang.
  3. buat strobe (pin 1) rendah. Ini memberitahukan printer bahwa data yang benar telah berada di line data
  4. buat strobe tinggi lagi setelah menunggu sekitar 5 mikrodetik setelah membuat strobe low.
Hal ini membatasi kecepatan data. Sedangkan  EPP dan ECP mengizinkan hardware mengecek jika printer sibuk dan mengeluarkan sinyal strobe  atau handshaking lainnya. Ini berate hanya 1 instruksi I/O yang harus dilakukan yang akan meningkatkan kecepatan Port ECP juga mempunyai kelebihan menggunakan saluran DMA dan buffer FIFO, jadi data dapat digeser tanpa menggunakan instruksi I/O.
Protokol  EPP mempunyai 4 macam siklus transfer dta yang berbeda yaitu :
  1. Siklus baca data (Data read)
  2. Siklus baca alamat (Address Read)
  3. Siklus tulis data (data write)
  4. siklus tulis alamat (address write)
Siklus data digunakan untuk mentrasfer data antara host dan peripheral.  Siklus alamat digunakan untuk mengirimkan alamat, saluran (channel) atau informasi perintah dan control.
Berikut ialah tabel nama pin dari konekter DB25 dan Centronics dengan jumlah konektor 34.  DB25 ialah konektor yang umum digunakan di computer sebagai port paralel , sedangkan konektor Centronics umum ditemukan di printer.  IEEE 1284 ialah standar yang menentukan 3 konektor berbeda yang dapat digunakan dengan port paralel, yaitu1284 tipe A ialah konektor DB25 yang dapat ditemukan di hampir semua komputer, 1284 tipe B ialah konektor Centronics 36 pin yang umum ditemukan di printer, IEEE 1284 type C ialah konektor 36 pin seperti Centronics, tetapi ukurannya lebih kecil dan lebih memuaskan.
Tabel Nama pin dari konektor parallel port  DB 25 dan Centronics
Pin DB25
Pin Centronics
SPP Signal
Arah  In/out
Register
Hardware di invert
1
1
nStrobe
In/Out
Control
Ya
2
2
Data 0
Out
Data

3
3
Data 1
Out
Data

4
4
Data 2
Out
Data

5
5
Data 3
Out
Data

6
6
Data 4
Out
Data

7
7
Data 5
Out
Data

8
8
Data 6
Out
Data

9
9
Data 7
Out
Data

10
10
nAck
In
Status

11
11
Busy
In
Status
Ya
12
12
Paper-Out / Paper-End
In
Status

13
13
Select
In
Status

14
14
nAuto-Linefeed
In/Out
Control
Ya
15
32
nError / nFault
In
Status

16
31
nInitialize
In/Out
Control

17
36
nSelect-Printer / nSelect-In
In/Out
Control
Ya
18 – 25
19-30
Ground
Gnd


Untuk mengeluluarkan data di port parallel, anda gunakan fungsi outport (8 bit ) dan outportb(16 bit)   sebagai berikut :
//Program menggunakan bahasa C (Turbo C) untuk pengendali lampu led di port paralel
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
outport(0x378,0);//lampu led mati
sleep(1); //tunda 1 detik
outport(0x378,1); //lampu led hidup
sleep(1);
return 0;
}
Untuk mengaktifkan port paralel sebagai jalur data input -  output terlebih dahulu anda harus mensetting bios pada mode EPP, ECP, atau pada beberapa komputer Bi-directional (standard).
Rangkaian antar muka antara mikrokontroler dan komputer adalah sebagai berikut :
Paralel Port

Gambar Antarmuka Port Data Paralel Port dengan Mikrokontroler ATMEGA32

Menggunakan Sistem Operasi di Mikrokontroler

Linux Operating System

Sebuah sistem mikrokontroler / mikrokomputer hanya dapat melakukan satu proses instruksi di setiap siklus mesinnya (machine cycle), hal ini berarti sebuah mikrokontroler hanya dapat melakukan satu operasi saja pada suatu waktu.
Untuk dapat melakukan beberapa operasi sekaligus sebuah mikrokontroler memiliki fitur yang di disebut interupsi, interupsi inilah yang kemudian dapat membuat sebuah mikrokontroler seolah – olah dapat  melakukan beberapa operasi sekaligus.
Ada beberapa sumber interupsi dalam mikrokontroler, seperti interupsi external, interupsi timer, interupsi reset (highest priority), ataupun interupsi ADC, dll.
Sebagai contoh, misalkan sebuah sistem yang dapat menampilkan keluaran di seven segmen, dan juga dapat membaca input dari keypad secara bersamaan, maka pengaturan output pada seven segmen ada di program utama, sedangkan input dari keypad ada dalam program interupsi timer, yang misalnya dilakukan setian 1 mS.
Untuk proses yang tidak terlalu banyak cara diatas masih dapat dilakukan dengan mudah, akan tetapi bagaimana jika suatu terebut harus dapat melakukan banya proses, seperti display di lcd, output di seven segmen, input keypad, input dari ADC, mengatur pwm, kontrol motor, dll, dalam waktu yang seolah – olah bersamaan, maka program yang dibuat akan menjadi lebih rumit.
Untuk mengatasi keadaan tersebut dapat dilakukan dengan menggunakan sistem operasi pada mikrokontroler, sistem operasi ini yang akan mengatur proses yang dijalanka. Sehingga mikrokontroler dapat memiliki fitur multasking yang sebenarnya.

Operating System
Ada banyak sistem operasi yang ada sekarang ini, diantaranya adalah DOS, WINDOWS, LINUX, MACOS, UNIX, dll. Salah satu sistem operasi yang dapat diaplikasikan di mikrokontroler 8bit seperti AVR ATMEGAXX adalah FREERTOS. Source code nya bisa di download disini :

Programmer / Writer Mikrokontroler AT89S51

Programmer / Writer Mikrokontroler AT89S51

Mikrokontroler AT89S51 adalah mikrokontroler produsi Atmel yang kompatible dengan mikrokontroler Intel 8051.
Mikrokontroler tersebut murah harganya, serta mudah didapat di pasaran, mikrokontroler tersebut memiliki spesifikasi sebagai berikut :
8-Bit mikrokontroler keluarga MCS-51
Spesifikasi Teknis :
- 4K Byte Code Memory
- 3 Lock Bit
- 256 Byte Internal RAM
- Two 16-bit Timer / Counter
- 9 sumber interrupt
- Ful Duplex UART Interface
- Dual Pointer
- DIP-40 Package
Spesifikasi lengkapnya dapat dilihat dalam datasheet AT89S51 yang dapat di donwload di :
Dengan fitur – fitur yang lengkap tersebut, mikrokontroler jenis ini ternyata murah, cukup pas untuk experiment, karena tidak membutuhkan biaya yang mahal, dengan ditambah komponen – komponen lainnya seperti kristal 12Mhz, konektor db-25, pcb matrix, resistor, kapasitor, dll, kira – kira menghabiskan dana sekitar Rp 50.000 – Rp 75000, kita sudah bisa ber ekperimen dengan mikrokontroler AT89S51.
Mikrokontroler Atmel AT89S51 ini adalah penyempurnaan dari versi sebelumnya AT89C51 yang menggunakan pemrograman dengan interface paralel yang rumit.
AT89S51 sudah dilengkapi dengan ISP (In System Programming), sehingga hanya membutuhkan beberapa kabel untuk antarmuka pemrograman pada flash nya.
Mikrokontroler AT89S51 memiliki memori flash sebesar 4kB.
Adapun rangkaian antar muka pemrogramannya adalah sebagai berikut :
AT89S51 Programmer / Writer
AT89S51 Programmer / Writer
Software yang digunakan untuk memrogram mikrokontroler AT89S51 adalah menggunakan program ISPPGM.
Software ISPPGM dapat di download di :
File yang dapat di download adalah file dengan extensi hex.
catatan : Sebelumnya, port paralel harus di set standard atau bidirectional terlebih dahulu melalui bios.

Antarmuka Komputer – Mikrokontroler


Antarmuka Komputer – Mikrokontroler

Antar muka Komputer
Mikrokontroler dapat digunakan untuk berhubungan dengan piranti lainnya, salah satunya adalah antarmuka dengan komputer.
Antarmuka ini dimaksudkan agar data yang diperoleh dari mikrokontroler kemudian dapat dihubungkan dengan komputer dan kemudian dapat diproses lebih lanjut, seperti penyimpanan ke database, menampilkan di layar monitor, atau di upload ke server lain di internet.
Ada beberapa terminal antar muka antara komputer dan mikrokontroler, antara lain melalui port paralel, port serial, usb, ataupun melalui card tambahan seperti PPI8255.
Dari beberapa teknik antar muka diatas dapat dijelaskan sebagai berikut :
1.  Antar muka melalui port paralel
Antar muka dengan menggunakan port paralel menggunakan komunikasi  paralel sebanyak 8 bit data dalam parelel port (port data) dihubungkan dengan 8 bit data dalam mikrokontroler. Sistem antar muka ini merupakan sistem antarmuka yang paling cepat diantara yang lainnya. Akan tetapi memiliki kekurangan yaitu membutuhkan jumlah sambungan yang banyak.
2. Antar muka dengan menggunakan serial port
Sitem antar muka dengan menggunakan port serial ini banyak digunakan dalam sistem saat ini. Dengan menggunakan sistem antar muka serial, port serial (UART) dari mikrokontroler dihubungkan ke konverter RS-232 kemudian dihubungkan ke port serial komputer.
Kecepatan transfer dari komunikasi ini bergantung pada baudrate dari komunikasi serial di antara dua piranti tersebut, kedua piranti tersebut, yaitu komputer dan mikrokontroler harus mempunyai nilai baudrate (jumlah byte per detik) yang sama, misal 1200,2100,19200, 115000, dll.
Misal baudrate 1200, maka komunikasi tersebut dapat mentransfer data sebanyak 1200 byte data dalam satu detik.
Sistem antar muka port serial ini banyak digunakan dalam sistem antarmuka saat ini.
3. Sistem antar muka menggunakan usb
Saat ini setiap komputer sudah dilengkapi dengan usb, serta sebagaian besar piranti tambahan komputer juga sudah menggunakan usb, usb saat ini sudah sangat populer untuk menghubungkan perangkat luar ke komputer, seperti transfer data atau gambar, dll.
Demikian juga dengan antar muka misalnya antara handphone dengan komputer juga menggunakan usb. Sistem antar muka antara mikrokontroler dan komputer melalui usb sebenarnya sama dengan antar muka melalui port serial. Jadi data serial dari mikrokontroler dihubungkan terlebih dahulu ke konverter serial – USB kemudian dihubungkan ke port usb.
Di dalam komputer port usb tersebut kemudian di kenali sebagai port serial baru. Jadi, program interface dalam komputer tersebut dapat menerima data tersebut sebagai data serial.

Pengantar Mikrokontroler

Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang dapat menerima sinyal input, mengolahnya dan memberikan sinyal output sesuai dengan program yang diisikan ke dalamnya. Sinyal input mikrokontroler berasal dari sensor yang merupakan informasi dari lingkungan sedangkan sinyal output ditujukan kepada aktuator yang dapat memberikan efek ke lingkungan. Jadi secara sederhana mikrokontroler dapat diibaratkan sebagai otak dari suatu perangkat/produk yang mempu berinteraksi dengan lingkungan sekitarnya.
Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya terdapat mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya. Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz, sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz. Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan mikrokontroler sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena ukurannya yang kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu kompleks dan tidak memerlukan kemampuan komputasi yang tinggi.
Sistem yang menggunakan mikrokontroler sering disebut sebagai embedded system atau dedicated system. Embeded system adalah sistem pengendali yang tertanam pada suatu produk, sedangkan dedicated system adalah sistem pengendali yang dimaksudkan hanya untuk suatu fungsi tertentu. Sebagai contoh printer adalah suatu embedded system karena di dalamnya terdapat mikrokontroler sebagai pengendali dan juga dedicated system karena fungsi pengendali tersebut berfungsi hanya untuk menerima data dan mencetaknya. Hal ini berbeda dengan suatu PC yang dapat digunakan untuk berbagai macam keperluan, sehingga mikroprosesor pada PC sering disebut sebagai general purpose microprocessor (mikroprosesor serba guna). Pada PC berbagai macam software yang disimpan pada media penyimpanan dapat dijalankan, tidak seperti mikrokontroler hanya terdapat satu software aplikasi.
Penggunaan mikrokontroler antara lain terdapat pada bidang-bidang berikut ini.
  • Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking System, sistem pengaman alarm, transmisi automatik, hiburan, pengkondisi udara, speedometer dan odometer, navigasi, suspensi aktif
  • perlengkapan rumah tangga dan perkantoran : sistem pengaman alarm, remote control, mesin cuci, microwave, pengkondisi udara, timbangan digital, mesin foto kopi, printer, mouse.
  • pengendali peralatan di industri.
  • robotika.
Saat ini mikrokontroler 8 bit masih menjadi jenis mikrokontroler yang paling populer dan paling banyak digunakan. Maksud dari mikrokontroler 8 bit adalah data yang dapat diproses dalam satu waktu adalah 8 bit, jika data yang diproses lebih besar dari 8 bit maka akan dibagi menjadi beberapa bagian data yang masing-masing terdiri dari 8 bit. Contoh mikrokontroler 8 bit antara lain keluarga Motorolla 68HC05/11, Intel 8051, Microchip PIC 16, dan yang akhir-akhir ini mulai populer keluarga Atmel AVR. Selain yang telah disebutkan di atas terdapat juga beberapa seri mikrokontroler lain yang cukup dikenal antara lain Basic Stamp dari Parallax (banyak digunakan untuk pembelajaran mikrokontroler) dan HD64180 dari Hitachi (sebagai pengendali LCD). Masing-masing mikrokontroler mempunyai cara dan bahasa pemrograman yang berbeda, sehingga program untuk suatu jenis mikrokontroler tidak dapat dijalankan pada jenis mikrokontroler lain. Untuk memilih jenis mikrokontroler yang cocok dengan aplikasi yang dibuat terdapat tiga kriteria yaitu
  • Dapat memenuhi kebutuhan secara efektif & efisien. Hal ini menyangkut kecepatan, kemasan/packaging, konsumsi daya, jumlah RAM dan ROM, jumlah I/O dan timer, harga per unit
  • Bahasa pemrograman yang tersedia
  • Kemudahan dalam mendapatkannya

SQUID PROXY DENGAN UBUNTU SERVER 11.04 32/64 BIT

 Liat2 di forum http://opensource.telkomspeedy.com/forum/viewtopic.php?pid=118162 eh.. dapet artikel bagus tentang setting squid lusca..
Tutorial ini sebagai pengganti tutorial sebelumnya yang tidak terselesaikan.

Hidupkan PC Calon Proxy Server
Masukkan ‘CD Ubuntu Server’ Ke CDROM
Booting dari CDROM
Pilih language English, Enter
Pilih Install Ubuntu Server, Enter
Tekan enter pada ‘Choose Language’ English
Pilih United States
‘Detect Keyboard Layout Pilih ‘No’
Pada Ubuntu ‘Installer Main Menu’ pilih USA
Pada ‘Keyboard Layout’ Pilih USA
Pilih ‘Continue’ pada ‘Configure The Network’
Pilih ‘Configure Network Manually’
Isi IP Address dengan 192.168.11.11 pilih ‘Continue’, lalu tekan Enter
Netmask 255.255.255.0 pilih ‘Continue’, lalu Enter
Pada Gateway sudah terdapat angka ‘192.168.11.1’, biarkan saja terus Tab Pilih ‘Continue’
Pada Name Server Addresses sudah terdapat angka ‘192.168.11.1’ abaikan dan Tab pilih ‘Continue’, lalu enter
Hotsname diisi dengan : anjelanet (terserah anda) terus pilih continue enter
Domain Name: kosongkan saja, pilih ‘Continue’ dan tekan enter
Pada pilihan ‘Configure The Clock’ pilih ‘Select From Worldwide List’ terus cari Jakarta, lalu tekan Enter
Pada menu ‘Partition Disk’ pilih ‘Manually’
(Penulis menggunakan 2 Harddisk 250 GB & 500 GB 7200 RPM, RAM 2 GB PC6400, HDD 500 GB dipersiapkan untuk men-cache Video Streaming & MP3. Jika HDD & RAM anda berbeda sesuaikan dengan kebutuhan, Pola Partition Nomor 1 & 3 tutorial ini mohon tidak di ubah, cukup penyesuaian pada option RAM saja)
Selanjutnya Jika menggunakan Harddisk bekas pakai, Langkahnya kita hapus partisi yang ada terlebih dahulu. Pilih Directory Partition yang akan dihapus, tekan enter dan pilih Delete The Partition (ULANGI PERINTAH INI UNTUK SEMUA PARTISI YG TERSISA).
Jika telah selesai pilih ‘Guided Partitioning’, kemudian pilih ‘Manually’ arahkan pada FREE SPACE. (UNTUK HARDDISK KOSONG LANGSUNG KE LANGKAH INI).
1. Arahkan ke FREE SPACE HDD1 Pilih Create New Partition, Enter
- Besar Partition I adalah 256 MB, Jadikan sebesar itu. Pilih Continue, Enter (Usahakan untuk tidak merubah besaran Partisi Harddisk ini)
- Pilih Primary, Enter
- Pilih Beginning, Enter
- Pada pilihan ‘Use As’ = Ext4, Enter
- Jika muncul option ‘Format The Partition’ tekan enter untuk memilih ‘Yes, Format it’
- Mount point = /boot
- Mount options pilih ‘Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard
- Bootable flag = on
- Pilih ‘Done Setting Up The Partition’
2. Arahkan ke FREE SPACE HDD1 Pilih Create New Partition, Enter
- Besar Partition II adalah 30 GB (Sesuaikan kapasitas HDD anda, minimal 10 GB)
- Pilih Primary, Enter
- Pilih Beginning, Enter
- Pada pilihan ‘Use As’ = Ext4
- Jika muncul option ‘Format The Partition’ tekan enter untuk memilih ‘Yes, Format it’
- Mount point = /
- Mount options pilih ‘Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard
- Pilih ‘Done Setting Up The Partition’




3. Arahkan ke FREE SPACE HDD1 Pilih Create New Partition, Enter
- Besaran Partisi III adalah 4 GB (RAM 2 GB)
(Untuk RAM 1 GB Isikan Partisi III sebesar 2 GB. Rumus = RAM x 2 = Besar Partisi SWAP AREA)
- Pilih Primary, Enter
- Pilih Beginning, Enter
- Pada pilihan ‘Use As’ = Swap Area
- Pilih ‘Done Setting Up The Partition’
4. Arahkan ke FREE SPACE HDD1 Pilih Create New Partition, Enter
- Besar Partition IV adalah keseluruhan sisa HDD 1 yang masih FREE SPACE (dalam hal ini Free Space HDD 1 saya 215,8 GB)
- Pilih Primary, Enter
- Jika muncul option ‘Format The Partition’ tekan enter untuk memilih ‘Yes, Format it’
- Pada pilihan ‘Use As’ untuk Ubuntu Server 32/Bit = ReiserFS, untuk Ubuntu Server 64/Bit Pada pilihan ‘Use As’ = BtrFS
- Pada Mount point = Enter dan pilih Manually, ‘/home ubah menjadi /cache1’
- Mount options untuk Ubuntu Server 32/Bit pilih ‘Notail & Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard,, untuk Ubuntu Server 64/Bit Mount options pilih ‘Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard.
- Pilih ‘Done Setting Up The Partition’

(PERHATIAN : JIKA MENGGUNAKAN 1 HARDDISK, ABAIKAN LANGKAH 5 & 6 BERIKUT INI)

5. Arahkan ke FREE SPACE HDD2 Create New Partition, Enter
- Besar Partition V adalah 300 GB (Sesuaikan kapasitas HDD anda)
- Pilih Primary, Enter
- Pada pilihan ‘Use As’ untuk Ubuntu Server 32/Bit = ReiserFS, untuk Ubuntu Server 64/Bit Pada pilihan ‘Use As’ = BtrFS
- Jika muncul option ‘Format The Partition’ tekan enter untuk memilih ‘Yes, Format it’
- Pada Mount point = Enter dan pilih Manually, ‘/home ubah menjadi /cache2’
- Mount options untuk Ubuntu Server 32/Bit pilih ‘Notail &Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard, untuk Ubuntu Server 64/Bit Mount options pilih ‘Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard.
- Pilih ‘Done Setting Up The Partition’
6. Arahkan ke FREE SPACE HDD2 Create New Partition, Enter
- Besar Partition V adalah 200 GB (Sesuaikan kapasitas HDD anda)
- Pilih Primary, Enter
- Pada pilihan ‘Use As’ untuk Ubuntu Server 32/Bit = ReiserFS, untuk Ubuntu Server 64/Bit Pada pilihan ‘Use As’ = BtrFS
- Jika muncul option ‘Format The Partition’ tekan enter untuk memilih ‘Yes, Format it’
- Pada Mount point = Enter dan pilih Manually, ‘/home ubah menjadi /cache3’
- Mount options untuk Ubuntu Server 32/Bit pilih ‘Notail &Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard, untuk Ubuntu Server 64/Bit Mount options pilih ‘Noatime’ dengan menekan tombol ‘SPACE’ pada keyboard.
- Pilih ‘Done Setting Up The Partition’

Pilih Finish Partitioning And Write Changes To Disk, tekan Enter
Pada pilihan Write The Changes To Disk pilih Yes, tekan Enter
Pada Full Name For The New User isi dg anjelanet, pilih continue & tekan Enter
Pada Username For Your Account isi dg anjelanet, terus continue & tekan Enter
Pada a password For The New User isi dg anjelanet, terus continue & tekan Enter
Pada Re-Enter Password To Verify isi dg anjelanet, terus continue & tekan Enter
Jika muncul pilihan Use Weak Password pilih Yes, tekan Enter
Pada pilihan Encrypt Your Home Directory pilih ‘No’, tekan Enter
Pada pilihan HTTP Proxy Information dikosongkan saja, pilih Continues, tekan Enter
Pada saat ‘Configuration apt’ mencapai 23% tekan enter, juga pada 72% tekan Enter
Pada saat pilihan updating pilih ‘No Automatic Update’
Pada Choose Software To Install pilih ‘OpenSSH Server’ dengan menekan tombol ‘SPACE’ pada keyboard, selanjutnya pilih Continues, tekan Enter
Pada Pilihan ‘Install GRUB Loader’ pilih Yes
Pada saat ‘Ejecting CD Ubuntu Server Installer’ ambil CD-nya tutup kembali CDROM dan pilih pilih Continues

‘FINISH THE INSTALLATION & CPU ON PROCEED REBOOT, DON’T TOUCH ANYTHING’
‘NOW WAKE UP… PROXY SERVER UBUNTU IS READY FOR NEXT STAGE’

Login pada Ubuntu Server (Isikan sesuai User & Password anda)
- Login as : anjelanet
- Password : anjelanet
Untuk proses agar bisa Login di @root :
- Ketikan perintah : sudo su – dan tekan enter
- Isikan Password : anjelanet
- Ketikan perintah : passwd dan tekan enter
- Isikan Password Baru : anjelanet
- Isikan kembali Password Baru : anjelanet
- Reboot PC dengan mengetikan perintah = reboot –h now
Hubungkan Kabel UTP atau Kabel LAN dari PC ke Routerboard (Mikrotik) pada ether3 (terserah sisa Port Mikrotik anda). Jenis Kabel LAN bisa Type ‘Straight’ atau Type ‘Cross’, terserah anda.
Pada Mikrotik masuk dengan Winbox pilih interface ether3 (terserah sisa Port Mikrotik anda) ganti nama ‘ether3’ menjadi ‘Proxy’ dan pilih ‘OK’
Pilih Terminal dan masukkan script berikut :

/ip address
add address=192.168.11.1/24 network=192.168.11.0 broadcast=192.168.11.255 interface= Proxy

Cek Koneksi PC Proxy server dengan Mikrotik dari Terminal Mikrotik, ketikan perintah berikut :

Ping 8.8.8.8

Jika berjalan dengan baik Ping - nya, PC Proxy server dengan Mikrotik telah terhubung dengan baik.
PERSIAPAN Instalasi Squid download dahulu dari Web Browser File squid.conf, sysctl.conf, squid, storeurl DISINI.
Cek terlebih dahulu Type dan Komponen PC Proxy Server anda, selanjutnya masuk ke http://en.gentoo-wiki.com/wiki/Safe_Cflags, tentukan CHOST, CFLAGS & CXXFLAGS PC Proxy Server anda untuk proses ‘Compile’ . Simpan type CHOST, CFLAGS & CXXFLAGS di Notepad.
Untuk memudahkan proses selanjutnya adalah me-remote PC Proxy Server dari PC lain dalam satu jaringan, menggunakan WINSCP dan PUTTY. Jika belum punya silahkan download DISINI.
Install WINSCP dan PUTTY
Buka WINSCP, pada Hostname masukkan IP Address PC Proxy Server 192.168.11.11, pada User masukkan ‘root’ (tanpa tanda petik) dan pada Password isikan ‘anjelanet’ (tanpa tanda petik). Untuk memudahkan proses, pilih ‘Save’ kemudian pilih ‘Login’. Jika muncul pilihan, pilih ‘Yes’ atau ‘Update’
Setelah Login WINSCP, pada toolbarnya ada pilihan ‘Open session in PUTTY’, pilih saja untuk membuka PUTTY, atau bisa juga dengan menekan Ctrl+P.
Pada Login PUTTY, masukkan Password ‘anjelanet’ (tanpa tanda petik)
Sekarang anda telah masuk dalam Login PUTTY, untuk melakukan proses Update terhadap PC Proxy Server sebagai tahap berikutnya.
Pada PUTTY, masukkan perintah berikut ini satu per satu, (Jika nanti pada proses updating terdapat pilihan ‘Y/N’ pilih ‘Y’ dan Enter) :

sudo apt-get update
sudo apt-get install squid
sudo apt-get install squid squidclient squid-cgi
sudo apt-get install gcc
sudo apt-get install build-essential
sudo apt-get install sharutils
sudo apt-get install ccze
sudo apt-get install libzip-dev
sudo apt-get install automake1.9
sudo apt-get install acpid
sudo apt-get install multitail

Setelah selesai Proses updating, langkah berikutnya dari PUTTY download file LUSCA_FMI (Credit To NEO FMI), masukkan perintah berikut ini :

wget http://anjelanet.googlecode.com/files/LUSCA_FMI.tar.gz
atau
wget http://code.google.com/p/lusca-cache/downloads/list
untuk versi stabil sekarang
http://lusca-cache.googlecode.com/files/LUSCA_HEAD-r14809.tar.gz

Selesai proses download, masukkan perintah :

tar xzvf LUSCA_FMI.tar.gz

kemudian :

cd LUSCA_FMI/

Jika anda menggunakan Ubuntu Server 64/bit, masukkan perintah :

make distclean

Proses Compile (Buka Notepad hasil CHOST, CFLAGS & CXXFLAGS tadi :
- Untuk Ubuntu 32/bit :
1. Masukkan CHOST anda, tekan enter
2. Masukkan CFLAGS anda , tekan enter
3. Masukkan CXXFLAGS anda, tekan enter
4. Masukkan kode Compile berikut ini :

./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid \
--localstatedir=/var/spool/squid --datadir=/usr/share/squid --enable-http-gzip --enable-async-io=24 --with-aufs-threads=24 --with-pthreads --enable-storeio=aufs \
--enable-linux-netfilter --enable-arp-acl --enable-epoll --enable-removal-policies=heap --with-aio --with-dl --enable-snmp \
--enable-delay-pools --enable-htcp --enable-cache-digests --disable-unlinkd --enable-large-cache-files --with-large-files \
--enable-err-languages=English --enable-default-err-language=English --with-maxfd=65536

Tekan Enter

- Untuk Ubuntu 64/bit :
1. Masukkan CHOST anda, tekan enter
2. Masukkan CFLAGS anda, tekan enter
3. Masukkan CXXFLAGS anda, tekan enter
4. Masukkan kode Compile berikut ini :

./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid \
--localstatedir=/var/spool/squid --datadir=/usr/share/squid --enable-http-gzip --enable-async-io=24 --with-aufs-threads=24 --with-pthreads --enable-storeio=aufs \
--enable-linux-netfilter --enable-arp-acl --enable-epoll --enable-removal-policies=heap --with-aio --with-dl --enable-snmp \
--enable-delay-pools --enable-htcp --enable-cache-digests --disable-unlinkd --enable-large-cache-files --with-large-files \
--enable-err-languages=English --enable-default-err-language=English --with-maxfd=65536
Tekan Enter

Selanjutnya masukkan berikut :

make dan berikutnya : sudo make install
atau sekaligus ini saja:  make all && make install

Dari WINSCP copy paste file Squid.conf, Storeurl, Squid, & sysctl : (INGAT PADA WINSCP SISI KIRI ADALAH KOMPUTER YG DIPAKAI UNTUK PROSES REMOTE & SISI KANAN WINSCP ADALAH KOMPUTER PROXY SERVER YANG DIREMOTE)

- File sysctl.pl Copy & Paste dari Directory /sbin/ ke Directory /etc/
- File squid.conf & storeurl ke Directory /etc/squid/
- File squid ke Directory /etc/init.d/

Untuk cache yang digunakan adalah 70% dari kapasitas hardisk.
Kemudian pada buka file squid.conf pada Directory /etc/squid/ yang di copy paste tadi, edit dan sesuaikan bagian ini :

cache_dir aufs /cache1 27300 64 256
cache_dir aufs /cache2 27300 64 256
cache_dir aufs /cache3 27300 64 256

cache_dir aufs /cache1, cache_dir aufs /cache2, cache_dir aufs /cache3 menunjukkan partisi HDD yang akan difungsikan untuk menyimpan cache.

Sesuaikan ‘IP Address Network Mikrotik’ anda, (Ingat bukan IP Address Mikrotik & IP Address Gateway Mikrotik)

acl localnet src 192.168.1.0/24

INGAT!!!!
KESALAHAN PADA cache_dir & acl localnet ‘squid.conf’, MENYEBABKAN ANDA TIDAK DAPAT MENYELESAIKAN PROSES SELANJUTNYA, SEHINGGA MUNCUL PESAN ‘FATAL BUNGLED LINE……’
JADI PERHATIKAN BAIK-BAIK ‘squid.conf’ ANDA.

Selanjutnya kita memberikan Permission untuk Folder Directory Cache, ketikan perintah :

chown proxy:proxy /cache
chmod 777 /cache
chown proxy:proxy /etc/squid/storeurl.pl
chmod 777 /etc/squid/storeurl.pl

karena saya menggunakan Tiga Directory cache, maka perintah yang saya masukkan adalah :

chown proxy:proxy /cache1
chown proxy:proxy /cache2
chown proxy:proxy /cache3
chmod 777 /cache1
chmod 777 /cache2
chmod 777 /cache3
chown proxy:proxy /etc/squid/storeurl.pl
chmod 777 /etc/squid/storeurl.pl

Berikutnya folder-folder swap/cache di dalam folder cache ditentukan dengan perintah :

squid -f /etc/squid/squid.conf -z

Selesai Proses Installasi LUSCA_FMI dengan Squid Proxy High Performance, perintahkan untuk reboot squid anda dengan memasukkan perintah :

sudo /etc/init.d/squid restart

Terakhir, reboot PC Ubuntu Proxy Server anda dengan perintah :

Reboot -h now

Jika Anda Mengikuti Step By Step Proses Instalasi Di Atas Maka Untuk Mematikan PC Ubuntu Proxy Server Anda, Cukup Dengan Menekan Tombol Power PC Ubuntu Proxy Server Anda (Jangan Ditahan, Cukup Tekan Sekali Dalam Hitungan Detik), dimana anda sudah menginstall tools ACPID dengan perintah ‘sudo apt-get install acpid’.

Selanjutnya adalah mengaktifkan PC Proxy sebagai ‘Server Cache’ untuk komputer2 yang lain. Caranya setting mikrotik dari Winbox. Dari Terminal ketik berikut :

/ip fi addr
add name=Local address=192.168.1.0/24
add name=Proxy address=192.168.11.0/24

/ip fi nat
add chain=dstnat action=dst-nat to-addresses=192.168.11.11 to-ports=3128 protocol=tcp \
src-address-list=Local dst-address-list=!Proxy in-interface=Local \
dst-port=80,81,8080,3128 commet="TRANSPARENT PROXY"

add chain=srcnat action=masquerade out-interface=pppoe-speedy1 comment="MASQUARADE"
add chain=srcnat action=masquerade out-interface=Modem

add chain=dstnat action=redirect to-ports=53 protocol=udp dst-port=53 comment="DNS"
add chain=dstnat action=redirect to-ports=53 protocol=tcp dst-port=53

add chain=dstnat action=dst-nat to-addresses=192.168.11.11 to-ports=22 protocol=tcp \
in-interface=pppoe-speedy1 dst-port=22 comment="DMZ"
add chain=dstnat action=dst-nat to-addresses=192.168.3.1 to-ports=80 protocol=tcp \
in-interface=pppoe-speedy1 dst-port=8181

/ip fi addr
add name=Local address=192.168.1.0/24
add name=Proxy address=192.168.11.0/24

/ip fi ma
add chain=forward action=mark-connection new-connection-mark="HIT" passthrough=yes \
protocol=tcp in-interface=Proxy out-interface=Local src-port=3128 dscp=12 comment="PROXY-HIT"

Keterangan :
!Proxy = Membaca IP address Proxy di IP-Firewall-IP Address List
Local = Interface mikrotik yang mengarah ke jaringan Lokal
pppoe-speedy1 = Interface mikrotik yang mengarah ke jaringan internet
Modem = Interface mikrotik yang mengarah ke modem bridge’

‘SESUAIKAN DENGAN KONDISI JARINGAN ANDA’

Sampai disini, anda telah berhasil membangun jaringan dengan menggunakan proxy server sendiri. Selanjutnya tinggal mengembangkan script pada Routerboard/mikrotik untuk pengaturan Mangle dan Bandwidth Management pada opsi ‘Queue’. Tutorial mengenai hal tersebut sudah sangat banyak sekali di internet.

BILA PROXY SETELAH RESTART TIDAK MAU JALAN LAGI
(mandailingnatal.com)

buka dengan perintah ini #nano /etc/rc.local
sisipkan perintah ini squid start
Kemudian simpan dengan menekan CTRL + X , Kemudian restart squid anda, perhatikan pada dengan perintah ps -aux apakah squid sudah berjalan atau tidak.

referensi laen:
http://devilzc0de.org/forum/thread-7222.html (menggunakan CentOS)