8
BAB II LANDASAN TEORI
Berikut ini adalah likup penerapan sistem untuk penelitian yang dilakukan:
2.1
Rekayasa Perangkat Lunak
2.1.1 Pengertian Rekayasa Perangkat Lunak
Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah
9
perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
Definisi Klasik (1969) : “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” (Pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata).
Definisi IEEE (1993) : (1) The application of a systematic, discipline, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software (applikasi dari sebuah pendekatan kuantitif, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan perangkat lunak; yaitu applikasi dari rekayasa perangkat lunak) (2) The study of approaches as in (1) (studi tentang pendekatan – pendekatan seperti pada (1))
Secara
sederhana,
pengertian
rekayasa
perangkat
perancangan, pengembangan, dan pemeliharaan perangkat lunak.
lunak
adalah
10
2.1.2 Tujuan Rekayasa Perangkat Lunak
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang lain. Hal ini dapat kita lihat pada Gambar di bawah ini.
Gambar 2. 1 Tujuan RPL
Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus tujuan RPL adalah sebagai berikut: a.
memperoleh biaya produksi perangkat lunak yang rendah
b.
menghasilkan pereangkat lunak yang kinerjanya tinggi, andal dan tepat waktu
c.
menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
d.
menghasilkan perangkat lunak yang biaya perawatannya rendah
11
2.1.3 Metode Incremental
Metode
pengembangan
perangkat
lunak
yang
digunakan
adalah
menggunakan model evolusionary (incremental).
Model incremental menggabungkan elemen - elemen dari pengembangan model linier sequential dan model prototyping. Berdasarkan gambar 1.1 (Metode incremental), model ini mengaplikasikan urutan secara linier bertahap berdasarkan waktu kalender. Setiap urutan liner menghasilkan perangkat lunak deliverable yang bertambah setiap tahapnya. Sebagai contoh, Word processor dikembangkan dengan menggunakan metode incremental, pada tahap pertama (first incremen), perangkat lunak hanya bisa membuat dan mengedit file. Pada tahap kedua (second increment), perangkat lunak dapat melakukan pemeriksaan setiap ejaan, kemudian pada tahap ketiga (third increment) dapat melakukan pengaturan layout dokumen.
Pada penggunaan model incremental, tahap pertama berupa produk inti, yang merupakan basic requirement (persyaratan dasar) yang ditujukan. Namun beberapa fitur tambahan belum tersampaikan. Biasanya, produk ini yang digunakan oleh konsumen (pengguna) untuk di ulas lebih lanjut. Sebagai hasil hasil evaluasinya, akan digunakan pada tahap berikutnya (next increment). Tahap selanjutnya adalah tahap perbaikan (modifikasi / penambahan fitur) produk inti menjadi lebih baik, sesuai apa yang diharapkan oleh konsumen (hasil dari evaluasi
12
pertama). Tahapan tersebut berlangsung terus menerus sampai seluruh fitur tercapai sesuai kebutuhan pengguna. Model incremental layaknya seperti pendekatan model prototyping dan model-model evolutionary lainnya, yaitu perulangan secara natural. Namun pada model incremental, difokuskan pada delivery product.
Model pengembangan seperti ini sangat membantu ketika staff yang diperlukan untuk melengkapi proses implementasi tidak tersedia, dengan batas waktu yang telah ditetapkan. Tahapan seperti ini dapat diimplementasikan dengan sedikit orang (pengguna). Jika telah ada fitur baru, maka penambahan staff baru dapat dilakukan. Sebagai tambahan, model incremental juga dapat mengurangi resiko secara teknik.
Setiap tahapan (increment) pada model ini terdiri dari sub-tahapan yang sama seperti model pengembangan perangkat lunak lainnya, yaitu:
-
Analisis Tahap ini merupakan tahap untuk mengerti dan memahasi sifat program yang akan dibangun. Seorang sistem analis, harus domain informasi, seperti fungsi-funfsi yang diperlukan, perilakuk, kinerja, dan antarmuka (user interface). Persyaratan sistem dan perangkat lunak harus didokumentasikan dan ditinjau ulang bersama-sama dengan konsumen.
13
-
Desain Tahap perancangan terdiri dari 4 (empat) atribut penting. Yaitu, struktur data, arsitektur perangkat lunak, antar muka sistem, dan algoritma. Proses perancangan, menterjemahkan kebutuhan sistem kedalam
suatu
bentuk
representasi
perangkat
lunak
sebelum
diimplementasikan kedalam kode program. Seperti halnya kebutuhan sistem, perancangan sistem juga didokumentasikan, dan menjadi bagian dari perangkat lunak.
-
Implementasi (code) Tahap implementasi adalah tahap menterjemahkan hasil perancangan sebelumnya, kedalam bentuk machine-readable (dapat dibaca oleh mesin). Jika perancangan dilakukan secara terperinci, maka proses implementasi (pembuatan kode program) ini dapat dilakukan dengan mudah.
-
Pengujian Setelah kode program dihasilkan, maka tahapan selanjutnya adalah pengujian program. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa setiap pernyataan telah diuji, begitu juga pada fungsinya.
14
2.2
Embedded System
Embedded system atau sistem embedded merupakan kombinasi sirkuit komputer dan perangkat lunak yang dibangun menjadi sebuah produk dengan tujuan tertentu, seperti alat kontrol, pemantau, dan komunikasi. Berbeda dengan komputer secara umum, sistem embedded hanya melakukan fungsi – fungsi (tugas) tertentu yang telah ditetapkan sebelumnya. Sehingga, pada umumnya mereka tidak memiliki perangkat-perangkat komputer umum seperti keyboard, layar monitor, koneksi serial, tempat penyimpanan data (seperti hardisk), atau perangkat lunak yang berhubungan dengan pengguna, kecuali dibutuhkan. Hal ini dimaksudkan untuk mengurangi kompleksitas seperti biaya, ukuran, dan meningkatkan ketahanan sistem embedded tersebut jika dibandingkan dengan komputer secara umum.
Berikut ini adalah karakteristik sistem embedded: -
Dirancang untuk melakukan beberapa tugas tertentu saja, dan bukan untuk menjadi sebuah computer untuk tujuan umum / melakukan banyak tugas. Beberapa diantaranya memiliki kinerja yang harus dipenuhi, untuk alasan seperti keamanan dan penggunaaan, atau kinerja yang rendah dengan alasan perangkat keras yang sederhana, dengan alasan pengurangan biaya.
15
-
Sistem berbasis embedded tidak selalu berdiri sendiri. Misalnya sistem embedded pada automobile, menyediakan fungsi-fungsi spesifik sebagai subsistem dari mobil itu sendiri.
-
Perintah-perintah program yang ditulis pada sistem embedded disebut sebagai firmware, dan biasanya disimpan dalam ROM (read only memory), pada flash, atau pada storage lainnya. Perintah tersebut berjalan dengan sumber daya perangkat keras komputer yang terbatas: seperti memori yang kecil, dengan atau tanpa layar dan keyboard yang kecil.
Sistem embedded biasanya jauh lebih murah dibandingkan dengan komputer secara umum. Selain mimimnya perangkat yang digunakan, juga chip yang tertanam didalamnya. Penggunaan processor yang relatif sangat kecil dibandungkan dengan komputer secara umum dan memory yang digunakan, serta konsumsi power yang rendah membuat sistem embedded ini menjadi lebih murah.
Beberapa sistem embedded memiliki sistem operasi yang disebut embedded operating system. Dan biasanya memiliki ukuran yang sangat kecil, karena dibangun hanya untuk keperluan yang dibutuhkan untuk sistem tersebut. Namun ada pula yang tidak memiliki sistem operasi, biasanya ditulis dengan menggunakan bahasa pemrograman asembly, dan langsung ditanamkan didalam memory.
16
Sistem operasi yang banyak digunakan untuk sistem embedded saat ini adalah Linux dan Windows CE. Namun ada beberapa sistem operasi lainnya yang dipakai seperti LynxOS RTOS, NetBSD dan OpenBSD, FreeDOS, OS-9, dan Windows XP Embedded. Namum dalam kasus ini, penulis menggunakan sistem operasi Linux.
2.3 Embedded Linux
Embedded linux merupakan sistem operasi linux yang berupa liux kernel yang digunakan pada sistem embedded. Tidak ada versi linux secara khusus untuk sistem embedded yang didistribusikan secara umum. Namun tidak berarti linux kernel yang ada tidak dapat dipakai untuk sistem embedded. Kita dapat mengambil linux kernel yang telah dirilis untuk membangun sistem embedded kita sendiri. Biasanya, kita akan melakukan modifikasi terhadap versi kernel tersebut. Misalnya menambah kernel module atau library, ataupun menghilangkan module dan library yang tidak digunakan.
Tidak seperti versi linux lainnya, seperti linux desktop atupun linux server, embedded linux dirancang untuk perangkat-perangkat yang memiliki sumber daya (resource) terbatas seperti telepon genggam atau terminal payment. Dikarenakan masalah biaya dan ukuran, perangkat embedded biasanya memiliki RAM dan tempat penyimpanan data sekunder yang lebih kecil dibandingkan dengan
17
komputer secara umum, dan biasanya cenderung menggunakan flash memory daripada hardisk. Karena sistem embedded melayani fungsi yang spesifik, embedded linux dioptimasi sesuai kebutuhannya saja. Optimasi linux tersebut dapat berupa pengurangan jumlah device driver pada linux kernel, ataupun perangkat lunak lainnya yang berupa library.
Perangkat lunak yang digunakanpun biasanya menggunakan perangkat lunak yang lebih kecil seperti busybox (menggantikan core utils) dan uclibc sebagai standar C library menggantikan glibc.
2.4 Client - Server
Teknologi teleoperasi atau teleotomasi merupakan teknologi yang berhubungan dengan interaksi antara manusia dengan sistem otomatis dari jarak yang jauh. Sistem atau peralatan yang dikendalikan menggunakan teknologi ini pun bermacam-macam, antara lain kamera dan suhu.
Secara garis besar dalam sebuah sistem teleoperasi, terdapat dua buah komponen yang harus dipersiapkan, yaitu bagian pengendali lokal (local site) dan bagian pengendali sisi jauh (remote site). Pengendali lokal merupakan bagian yang menjadi tempat kerja operator dan umumnya diimplementasikan dalam bentuk sebuah komputer yang tidak terhubung langsung dengan peralatan yang
18
dikendalikan, namun terhubung dengan media transmisi tertentu misalnya Internet. Pada bagian ini, untuk mempermudah seorang operator dalam mengendalikan dan mengamati perilaku dari peralatan yang sedang dioperasikan, ditambahkan juga sebuah tampilan visual baik dalam bentuk nyata maupun simulasi. Bagian berikutnya adalah pengendali sisi jauh. Bagian ini berhubungan langsung dengan peralatan yang akan dikendalikan. Pengendali dari jarak jauh bertugas menerima masukan dari pengendali lokal lewat media transmisi yang terhubung dengannya dan selanjutnya mengolah data yang diterima tersebut menjadi sebuah perintah yang dikenali oleh perangkat yang dikendalikan. Perangkat tersebut selanjutnya melakukan aksi sesuai dengan perintah yang diterimanya.
Gambar 2. 2 Client - Server
Pada dasarnya semua transaksi (perpindahan) data di internet tidak terlepas dari konsep client/server. Perpindahan data ini berlangsung karena adanya permintaan (request) dari salah satu komputer ke komputer lain yang menyimpan
19
data (dalam kasus ini adalah data suhu). Sebagai tanggapan permintaaan data tersebut, maka komputer penyimpan data akan memberikan balasan (response). Balasan ini berupa pengiriman data yang ingin diakses oleh komputer yang melakukan permintaan data. Hal ini dapat dilakukan karena kedua komputer telah terhubung.
2.5
SBC (Single Board Computer)
SBC (single board computer) yang digunakan adalah ATNGW100. ATNGW100 adalah SBC buatan perusahaan Atmel, yang mendukung sistem operasi linux tertanam didalamnya. SBC ini memiliki fitur-fitur sebagai berikut: -
2 konektor Ethernet,
-
32MB SDRAM,
-
16MB flash,
-
Mendukung SD/MMC cards,
-
Konektor USB,
-
Konektor JTAG untuk proses debugging atau program,
-
Expantion connector dengan 63 GPIO, dan
-
3 buah lampu, 2 diantaranya dapat dikontrol.
Berikut ini adalah block diagram ATNGW100
20
Gambar 2. 3 Block Diagram ATNGW100
21
2.6
Sensor Suhu
Sensor suhu yang digunakan pada penelitian ini adalah LM35. Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.
Gambar 2. 4 LM35
Gambar diatas menunjukan bentuk dari LM35. 3 pin LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran
22
sensor ini akan naik sebesar 10 mV setiap derajad celcius sehingga diperoleh persamaan sebagai berikut: VLM35 = Suhu* 10 mV
Secara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya
akan sedikit
berkurang
sekitar
0,01 ºC karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara disekitarnya.
Karakteristik dari sensor LM35: 1.
Memiliki
sensitivitas
suhu,
dengan faktor skala linier
antara
tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius. 2.
Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC.
3.
Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
4.
Bekerja pada tegangan 4 sampai 30 volt.
5.
Memiliki arus rendah yaitu kurang dari 60 µA.
23
6.
Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
7.
Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
8.
2.7
Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
GPIO
General purpose input/output (disingkat GPIO) merupakan sebuah interface yang ada pada SCB, yang digunakan sebagai interface (antar muka) antara SCB dengan eksternal device atau periperal lainnya. Dalam kasus ini, GPIO digunakan sebagai interface dengan modul ADC.
GPIO pin biasanya selalu ada disetiap SCB, karena dapat digunakan untuk berbagai macam fungsi (kebutuhan). GPIO dapat berfungsi sebagai input, untuk membaca data atau sinyal dari bagian yang terhubung dengannya, ataupun bisa sebagai output, untuk mengatur atau memberikan sinyal kepada peripheral yang terhubung.
Pin GPIO sering diatur menjadi kelompok-kelompok, biasanya terdiri dari 8 pin (kelipatannya). Biasanya dikonfigurasikan sebagai input dan output. Dalam
24
banyak kasus, GPIO dikonfigurasikan sebagai input untuk
menghasilkan
interrupt, untuk dapat memindahkan data dari ataupun keluar perangkat SBC.
Beberapa aspek yang perlu diperhatikan dalam penggunakan GPIO adalah sebagai berikut: 1. Arah (direction): input atau output 2. Nilau (value): set (diisi) atau unset (dihapus) 3. Polarity: high atau low 4. Edge: rising atau falling
2.8
ADC
Analog to digital converter (disingkat ADC) merupakan sebuah modul elektronik yang digunakan untuk mengubah data analog menjadi data digital. ADC diperlukan karena sensor data yang berasal dari sensor suhu merupakan data analog, sedangkan pemrosesan pada microprosesor (device driver) dilakukan secara digital. ADC berjalan secara free running.
Pada penelitian ini, penulis menggunakan microcontroller ADC yang memiliki 8 channel ADC dengan 10 bit data.
Untuk perhitungan hasil konversi ADC, digunakan rumus sebagai berikut:
25
Data_Register = (vin/vref) * 1024.
Data_register
: merupakan ADC data register, hasil konversi ADC (berupa data 10 bit)
Vin
: merupaka tegangan inputan dari sensor suhu (dalam satuan mV)
Vref
: merupakan tegangan referensi (dalam satuan mV)
Berikut ini adalah gambar skematik microcontroller ADC:
Gambar 2. 5 Skematik Microcontroller ADC
Pada ADC channel terdapat 8 pin yang menunjukkan terdapat 8 channel ADC, sebagain inputan untuk ADC tersebut. Pada ADC Data terdapat 8 pin data, yang menjunjukkan nilai register hasil konversi dari data analog ke data digital. Hasil konversi ADC berupa data 10bit. Namun, hanya delapan bit data saja yang
26
dapat dibaca (bit 0 – bit 7). Ke-2 bit terakhir (bit 7 dan bit8) tidak dapat dibaca karena jumlah pin data pada mikrokontroler hanya berjumlah 8pin.
Dengan kondisi data keluaran dari ADC yang dapat dibaca adalah 8bit data, maka maksimum data hanyalah 825mV, dengan rumusan sebagai berikut:
Diketahui: N maksimum adalah : 256 (8bit) Vref adalah 3,3V (3300mV) Sehingga: Vin = (N * Vref) / 1024 Vin = (256 * 3300) / 1024 Vin = 825mV
Sedangkan minimum data adalah 0mV, pada kondisi nilai data register adalah 0. Dengan demikian, mikrokontroller ADC yang digunakan memiliki range data 0 s/d 825 mV.
Proses perbandingan antara voltase yang dihasilkan dari perhitungan ADC dengan suhu, dilakukan dengan kalibrasi. Proses kalibrasi dilakukan pada suhu ruangan, yaitu 23oC. Pada suhu normal ruangan tersebut, data register yang dikeluarkan oleh ADC adalah 0x5D atau berdasarkan, maka Vin-nya adalah sebesar 300mV. Dihubungkan dengan kemampuan sensor suhu LM35, yaitu
27
kenaikan suhu sebesar 1oC = 10mV, maka berikut ini adalah data hasil perhitungannya:
Suhu (oC)
Vlm35 (mV)
23
300
22
290
21
280
:
:
0
70
-7
0
Tabel 2. 1 Table Perbandingan Suhu
Berdasarkan tabel diatas, maka dihasilkan pembanding suhu sebesar 7oC. Maka, perhitungan suhu yang digunakan adalah sebagai berikut:
Suhu (oC) = (Vlm35 / 10) – 7
Dengan mengetahui nilai minumum dan maksimum data yang dikeluarkan oleh mikrokontroller ADC, dan dengan mengetahui pembanding suhu, maka diketahui minimim dan maksimum suhu yang dapat diproses oleh sistem, yaitu:
Suhu minimum = (0mV / 10) – 7 = -7 oC Suhu maksimum = (825 mV / 10) – 7 = 75,5 oC
28
Pin ADC data adalah pin-pin yang akan disambungkan ke pin – pin yang ada pada SBC (pin GPIO), sebagai data input. Data tersebut yang akan dikirimkan oleh device driver ke applikasi pencatat suhu menjadi data suhu.
Sedangkan pin pada ADC channel merupakan pin yang terhubung ke sensor suhu untuk mendapatkan nilai raw data suhu.
2.9
Device Driver
Device driver merupakan sebuah
module program yang ditulis
menggunakan bahasa C, dan berfungsi sebagai interface terhadap perangkat keras. Dalam struktur OS, dikenal dua istilah pemograman, yaitu kernel space dan user space. Device driver berada pada kernel space, dan applikasi (logger/pencatat data suhu) berada pada user space. Applikasi tidak dapat secara langsung berkomunikasi dengan perangkat keras. Maka dari itu dibutuhkan sebuah driver tertentu untuk perangkat keras tertentu.
Penggunaan device driver pada sistem operasi linux dapat dilakukan dengan menggunakan 2 (dua) metode. Pertama, device driver dapat digunakan dengan menggunakan builtin kernel, maksudnya adalah device driver terbentuk (ter-compile) bersama-sama dengan kernel driver. Sehingga, pada saat sistem operasi berjalan, driver ini telah aktif secara otomatis. Sedangkan metode lain
29
yang dapat digunakan adalah secara manual (kernel module). Maksudnya adalah, device driver ini tidak ter-compile bersama-sama dengan kernel, sehingga pada saat sistem operasi berjalan, device driver ini tidak ada. Namun devcice driver ini dapat dimasukkan kedalam kernel secara manual (menggunakan perintah / linux command). Pada saat device driver ini dimasukkan dan menjadi bagian dari kernel, applikasi-applikasi diatasnya (user space) dapat berfungsi sebagaimana mestinya.
Keuntungan penggunaan device driver dibangun secara otomatis (builtin kernel) adalah tidak perlu menggnakan perintah linux untuk memasukkannya kedalam kernel. Sedangkan kerugiannya adalah dengan mengaktifkan driver dari awal sistem operasi berjalan, maka sistam akan memerlukan power supply yang lebih untuk device terserbut. Sedangkan pada operasi secara manual (kernel module), keuntungannya adalah dapat mengurangi pengeluaran power supply. Penggnaannya dapat dilakukan sesuai kebutuhan (di aktifkan jika dibutuhkan, di non-aktifkan jika tidak diperlukan lagi). Sedangkan kekurangan dengan menggunakan mode manual, adalah memerlukan perintah untuk setiap operasi (memasukkan atau menghapus ke dan dari kernel).
Pengambilan data oleh device driver dilakukan perbit. Hal ini dikarekan ADC data tidak berada dalam 1 register (blok data). Sehingga, pengambilan ADC data dilakukan perpin (bit). Setelah data yang berada pada masing – masing pin diambil, penyatuan kembali bit – bit data tersebut dilakukan dengan menggunakan shift data. Dimana data pada pin ke-1 berada pada bit ke-0, data pada pin ke-2
30
ditempatkan pada bit ke-1, demikian seterusnya sampai pin ke-8 ditempatkan pada bit ke-7. Berikut ini adalah model penenpatan bit – bit data menggunakan shift :
Data pin ke-1 << 0 Data pin ke-2 << 1 Data pin ke-3 << 2 Data pin ke-4 << 3 Data pin ke-5 << 4 Data pin ke-6 << 5 Data pin ke-7 << 6 Data pin ke-8 << 7
Ke-8 bit inilah yang merupakan raw data (ADC register), yang nantinya akan dikembalike ke user space oleh device driver untuk selanjutnya diproses oleh applikasi yang berada pada user space menjadi data suhu.
2.10
Cron
Cron adalah sistem penjadwalan pada sistem operasi berbasis unix. Nama cron berasal dari kata “chromos”, bahasa yunani yang berarti waktu. Cron mengijinkan user untuk melakukan penjadwalan suatu pekerjaan (biasanya berupa shell script atau unix command) untuk jalan (running) secara otomatis
31
berdasarkan waktu yang kita tentukan. Pada kasus ini, cron dipakai untuk menjadwalkan applikasi logger (pencatat suhu) berjalan setiap menit.
Cron dijalankan oleh applikasi yang bernama crontab, yang berupa file konfigurasi yang menentukan perintah shell command dijalankan secara periode berdasarkan pada jadwal yang diberikan. File crontab disimpan dimana daftar pekerjaan atau instruksi untuk cron disimpan. Setiap user (pengguna) dapat memiliki file crontab masing-masing (biasanya berada pada /etc atau didalam subdirektori /etc) dan hanya orang yang memiliki hak akses sebagai sitem administrator yang dapat mengubahnya.
Setiap baris pada file crontab merepresentasikan tugasnya (pekerjaannya) masing-masing, yang terdiri dari ekspresi cron dan diikuti perintah shell script untuk mengeksekusi. Berikut ini adalah format perintah penggunaan crontab:
ABCDEF Keterangan: -
A. menit (setiap menit keberapa, jika dilakukan setiap menit maka dapat disisi dengan menggunakan *)
-
B. jam (setiap jam berapa, jika dilakukan setiap jam, maka dapat disii dengan menggunakan *)
-
C. tanggal (setiap tanggal berapa, jika dilakukan setiap hari, maka dapat disii dengan menggunakan *)
32
-
D. bulan (setiap bulan berapa, jika dilakukan setiap bulan, maka dapat disii dengan menggunakan *)
-
E. hari (setiap hari apa (penggunaan hari dimulai dengan 0: minggu, 1: senin, dst), jika dilakukan setiap hari, maka dapat disii dengan menggunakan *)
-
F. Perintah (perintah untuk menjalan tugasnya)
Contoh penggunaan:
* * * * *
echo “hello” >> /home/sony/pesan.txt
.: Yang berarti setiap menit sistem akan menulis kata ‘hello’ pada file pesan (yang ada di direktori /home/sony
2.11
TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukarmenukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini.
33
Gambar 2. 6 Arsitektur TCP/IP diperbandungkan dengan DARPA Reference Model dan OSI Reference Model
Arsitektur TCP/IP tidaklah berbasis model referensi tujuh lapis OSI, tetapi menggunakan model referensi DARPA. Seperti diperlihatkan pada gambar diatas, TCP/IP merngimplemenasikan arsitektur berlapis yang terdiri atas empat lapis. Empat lapis ini, dapat dipetakan (meski tidak secara langsung) terhadap model referensi OSI. Empat lapis ini, kadang-kadang disebut sebagai DARPA Model, Internet Model, atau DoD Model, mengingat TCP/IP merupakan protokol yang
awalnya
dikembangkan
dari
proyek ARPANET yang
dimulai
oleh Departemen Pertahanan Amerika Serikat.
Setiap lapisan yang dimiliki oleh kumpulan protokol (protocol suite) TCP/IP diasosiasikan dengan protokolnya masing-masing. Protokol utama dalam protokol TCP/IP adalah sebagai berikut:
Protokol lapisan aplikasi: bertanggung jawab untuk menyediakan akses kepada aplikasi terhadap layanan jaringan TCP/IP. Protokol ini mencakup protokol Dynamic Host Configuration Protocol (DHCP), Domain Name
34
System (DNS), Hypertext
Transfer
Protocol (FTP), Telnet, Simple
Protocol (HTTP), File
Mail
Transfer
Transfer
Protocol (SMTP), Simple
Network Management Protocol (SNMP), dan masih banyak protokol lainnya. Dalam beberapa implementasi stack protokol, seperti halnya Microsoft TCP/IP, protokol-protokol lapisan aplikasi berinteraksi dengan menggunakan antarmuka Windows Sockets (Winsock) atauNetBIOS over TCP/IP (NetBT).
Protokol lapisan menggunakan
antar-host: sesi
berguna koneksi
untuk yang
membuat
komunikasi
bersifat connection-
oriented atau broadcast yang bersifat connectionless. Protokol dalam lapisan ini
adalah Transmission
Control
Protocol (TCP)
dan User
Datagram
Protocol (UDP).
Protokol lapisan internetwork: bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Protocol (IGMP).
Protokol lapisan antarmuka jaringan: bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan yang digunakan. TCP/IP dapat bekerja dengan banyak teknologi transport, mulai dari teknologi transport dalam LAN (seperti halnya Ethernet dan Token Ring), MAN. Dan WAN (seperti halnya dial-up modem yang berjalan di atas Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), serta Asynchronous Transfer Mode (ATM)).
35
2.12
CGI
CGI (common gateway interace) adalah protokol standar
yang
menjembatani antara aplikasi eksternal dengan server, seperti HTTP atau webserver. Program CGI dapat ditulis dengan menggunakan beberapa bahasa pemgrogramman seperti C/C++, perl, TCL, Unix Shell, dll.
Gambar 2. 7 Arsitektur Client-Server Menggunakan CGI
Sebuah script CGI biasanya digunakan untuk menyediakan konten dinamis ke klien yang disebut skrip CGI. CGI script berkomunikasi dengan web browser. Jika CGI script adalah script interaktif, biasanya bentuk dengan kontrol berbagai masukan dikirim ke klien Web. Setelah mengisi formulir, dikirim pengguna ke web server. Web server kemudian menggunakan CGI untuk memanggil skrip CGI dengan data dari klien Web. Scrip CGI proses data, mungkin mengakses database di server, dan mengirimkan pesan ke klien yang membuat permintaan tersebut. Jika scrip CGI adalah non interaktif CGI scrip,
36
output dari scrip yang dikirim langsung ke klien yang disebut CGI scrip dengan URL-nya.
Ketika sebuah scrip CGI dipanggil, web server pertama memeriksa REQUEST_METHOD digunakan untuk memanggil scrip CGI untuk menentukan bagaimana
web
klien
sedang
mengirim
data
ke
skrip
CGI. Jika
REQUEST_METHOD yang digunakan untuk memanggil skrip CGI adalah GET, setiap data yang disediakan oleh web klien untuk scrip CGI ditemukan segera setelah nama URL dari CGI script. Oleh karena itu, informasi ini akan disimpan dalam
variabel
lingkungan
QUERY_STRING. Di
sisi
lain,
jika
REQUEST_METHOD digunakan adalah POST atau PUT, ukuran input untuk scrip CGI disimpan dalam CONTENT_LENGTH.CONTENT_LENGTH berisi ukuran data yang diberikan ke skrip CGI dalam bytes. Scrip CGI dapat dibaca dari standard input jumlah byte yang dikembalikan oleh CONTENT_LENGTH untuk mengetahui data yang diberikan ke skrip CGI
37
2.13
Notasi dan Pemodelan Sistem
2.13.1 Context Diagram (CD)
Pada context diagram dapat dilihat kelompok pemakai, organisasi atau sistem lain yang berhubungan dengan sistem yang akan dibangun. Context Diagram juga memperlihatkan input maupun output dari sistem lain dan juga penyimpanan yang digunakan bersama dengan sistem lain. Dalam CD, sistem direpresentasikan melalui sebuah lingkaran.
Komponen-komponen yang penting dalam Context Diagram adalah:
Nama Simbol
Lingkaran
Panah
Simbol
Keterangan
Sistem Pemantau Suhu Ruangan
Lingkaran menunjukkan sistem secara keseluruhan. Penamaan sebuah lingkaran dapat berupa sebuah kata, frase atau sebuah kalimat sederhana yang menjelaskan nama sistem itu sendiri Panah menunjukkan arah aliran data dari sistem ke entity luar atau sistem ke data store atau sebaliknya. Gambar panah diberi nama untuk menunjukkan data yang mengalir melalui aliran tersebut
38
Store (penyimpanan)
Entitas
Tabel 2. 2 Context Diagram
File Log
User (Pemantau Suhu)
Store digambarkan dengan dua buah garis sejajar mendatar, menunjukkan sekumpulan data yang disimpan. Store berfungsi sebagai tempat penyimpanan data yang dapat digunakan dalam sistem baik sebagai input untuk melakukan suatu proses maupun untuk menyimpan hasil suatu proses untuk kemudian digunakan oleh prosesproses lainnya didalam sistem Entity digambarkan dengan sebuah kotak persegi panjang yang berhubungan dengan sistem. Sebuah entity dapat berupa orang, sekumpulan orang atau departemen dalam perusahaan atau organisasi yang sama tetapi berada diluar sistem yang dimodelkan
39
2.13.2 Event List
Event List adalah daftar naratif dari kejadian yang terjadi di luar sistem yang menyebabkan sistem melakukan respon terhadap kejadian-kejadian tersebut. Event List dapat dikatakan sebagai stimuli yang menggerakkan sistem. Dengan demikian sistem yang berjalan akan selalu berdasarkan dari kejadian yang muncul dalam daftar kejadian.
2.13.3 Data Flow Diagram (DFD)
DFD merupakan suatu tools yang menunjukan aliran informasi atau data sumber/tujuan data, proses dan tempat penyimpanan data. DFD menggambarkan sistem sebagai
sebuah jaringan proses yang dihubungkan satu sama lainnya
melalui suatu aliran data dan penyimpanan data. DFD ini merupakan penurunan dari Context Diagram.
Komponen-komponen yang penting dalam penggunaan Data Flow Diagram adalah:
40
Nama Smbol
Proses
Aliran (Flow)
Simbol
Pencatatan_ Data_Suhu
Suhu_Terkini
Penyimpanan data (data store ) File log
Terminator
Pemantau_Suhu
Keterangan Proses dalam Data Flow Diagram digambarkan dengan sebuah lingkaran. Proses menunjukkan bagian sistem yang mentransformasi sebuah atau beberapa input menjadi output. Penamaan sebuah proses dapat berupa sebuah kata, frase atau sebuah kalimat sederhana yang menjelaskan nama proses itu sendiri Flow digambarkan dengan sebuah panah yang keluar atau menuju sebuah proses. Flow digunakan untuk menunjukkan aliran data atau item data dari suatu bagian ke bagian lainnya. Flow diberi nama untuk menunjukkan data yang mengalir melalui flow tersebut Store digambarkan dengan dua buah garis sejajar mendatar, menunjukkan sekumpulan data yang disimpan. Store berfungsi sebagai tempat penyimpanan data yang dapat digunakan dalam sistem baik sebagai input untuk melakukan suatu proses maupun untuk menyimpan hasil suatu proses untuk kemudian digunakan oleh prosesproses lainnya Terminator digambarkan dengan sebuah kotak persegi panjang. Terminator menunjukkan entity luar yang berhubungan dengan sistem. Sebuah terminator dapat
41
berupa orang, sekumpulan orang atau departemen dalam perusahaan atau organisasi yang sama tetapi berada diluar sistem yang dimodelkan Tabel 2. 3 Data Flow Diagram