Anda di halaman 1dari 94

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 1
PENGANTAR REALTIME DAN PENGENALAN SISTEM BERBASIS
REALTIME
1.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Real Time
2. Mahasiswa dapat memberikan contoh penerapan Soft Real Time pada kehidupan
sehari-hari

1.2. Ringkasan Teori


A. Sistem Real-Time
Suatu sistem komputasi dinamakan

real-time jika sistem tersebut dapat

mendukung eksekusi program atau aplikasi dengan waktu yang memiliki batasan, atau
dengan kata lain suatu sistem real-time harus memiliki:
a. Batasan waktu dan memenuhi deadline, artinya

bahwa aplikasi harus

menyelesaikan tugasnya dalam waktu yang telah dibatasi atau ditentukan.


b. Dapat diprediksi, artinya bahwa sistem harus bereaksi terhadap semua
kemungkinan kejadian selama kejadian tersebut dapat diprediksi.
c. Proses bersamaan, artinya jika ada beberapa proses yang terjadi bersamaan, maka
semua deadline nya harus terpenuhi.
d. Dapat mengerjakan hal-hal yang penting saja, yang tidak penting tidak perlu
dikerjakan.
e. Membuat processor agar bekerja lebih cepat, sehingga dapat ditingkatkan jumlah
task yang diselesaikan.
f. Menemukan tingkat effisiensi waktu.

Berdasarkan response time dan dampaknya, maka komputasi real-time dapat


dibedakan menjadi :
1. Sistem Hard Real-Time (HRTS)
2. Sistem Soft Real-Time (SRTS)
3. Semi Hard Real-Time System atau Semi Soft Real-Time (SRTS)

Setiawardhana, Sigit Wasista, PENS, 2014

B. Penjelasan Konsep Real-Time


Sistem real-time merupakan suatu sistem yang mampu memproses tugas-tugas dan
hasilnya tepat waktu.
Real-time Embedded System
Real-Time tidak harus berwujud Embedded System
Sebagian embedded System besar sekali berhubungan dengan Embedded System.
Pada gambar dibawah ini lebih dekat dengan Embedded system bukan real-time,
karena belum terlihat adanya sistem pembatasan waktu (deadline) yang jelas .
Padahal sistem real-time sangat memperhatikan dimana waktu adalah merupakan
hal yang dianggap penting dan vital.

Gambar 1.1Skematik diagram embedded sistem

Sistem yang cepat waktu bukan merupakan tujuan dari

real-time, tetapi

merupakan suatu persyaratan agar sistem tersebut bisa mengerjakan tugas-tugas


dengan cepat.
Suatu hasil dikatakan tepat waktu :
Yang meminta hasil memberitahu, hasilnya harus diserahkan sesuai dengan waktu
yang telah disepakati / ditentukan. Misalnya seorang dosen memberikian ulangan
kepada sejumlah mahasiswa dan memberikan waktu pengerjaan selama 1 jam.
Apabila waktu pengerjaan telah mencapai 1 jam, maka seluruh pekerjaan yang
diberikan tadi harus segera dukumpulkan.
2

Setiawardhana, Sigit Wasista, PENS, 2014

Bisa memberikan jawaban setiap saat diminta.


Harus bisa memberikan jawaban yang terbaik dan akurat.
Kita yang memerintahkan dan kapan harus diberikan oleh sistem serta bisa
menjawab pada setiap saat.

Secara blok diagram untuk sistem Real-Time (studi kasus pada Client-Server)
dapat dilihat sepert gambardibawah ini.

Gambar 1.2 Real Time System Pada Client Server

Sistem waktu nyata merupakan sistem yang berkaitan erat dengan deadline. Agar
dapat mencapai real-time, maka usaha yang dilakukan untuk memenuhi kriteria realtime antara lain :
Software yang dihardwarekan ( Hadrwareisasi )
Dengan teknik

software yang dihardwarekan, maka akan meningkatkan

kecepatan proses kerja, yang pada akhirnya akan mempercepat proses, efisien
waktu dan dapat mendukung terjadinya sistem real-time.

MSB First, MSD First, MSM First, MSI First


Dengan sistem MSB First ( Most Significant Bit ), maka dengan beberapa
langkah eksekusi suatu program ( misalnya kasus pada penjumlahan bilangan ),
akan diperoleh suatu nilai yang sudah mendekati nilai akhir. Dengan metode LSB
( Least Significant Bit ) maka nilai maksimum akan diperoleh setelah melalui
proses yang lama.

Heuristic / Expert Systems, System Pakar / Sistem Cerdas


Sistem pakar merupakan salah satu bagian dari ilmu komputer yang membuat
agar suatu komputer dapat melakukan pekerjaan yang sebaik yang dilakukan oleh
manusia. Cara yang digunakan adalah dengan memberikan pembelajaran

Setiawardhana, Sigit Wasista, PENS, 2014

(learning) terhadap komputer berupa software. Secara blok dapat digambarkan


sebagai berikut.

Gambar 1.3 Sistem Yang Menggunakan Kecerdasan Buatan

Seleksi / Sorting
Sistem sorting digunakan untuk mengurutkan suatu data tertentu dengan tujuan
untuk mempermudah pada saat terjadi pengambilan keputusan, misalnya program
akan mengambil bilangan terbesar, maka tinggal mengarahkan pointer pada indeks
tertentu dan tidak melakukan seleksi pada setiap bilangan.

Preprocessing
Sebelum task yang akan dikerjakan datang, maka sudah diatur-atur terlebih
dahulu, misalnya datanya diurutkan atau diseleksi terlebih dahulu.

Scheduling
Metoda untuk memproses suatu job atau task berdasarkan schedule yang telah
ditetapkan, sehingga tidak terjadi proses tumpang tindih.

Parallelism
Metoda paralelisme pada suatu processor akan mempercepat prose eksekusi
terhadap suatu program, terutama jika program yang dijalankan tersebut kompleks.
Dengan sistem parallel processor ini, setiap task didistribusikan pada masingmasing prosessor dan hasilnya digabungkan menjadi satu. Dengan demikian, maka
proses eksekusi tersebut akan lebih cepat.

Data Reduction
Data-data yang tidak digunakan (tidak penting) atau data yang berulang
(redundancy) bisa dilakukan pengurangan (reduction).

Setiawardhana, Sigit Wasista, PENS, 2014

Data Compression
Kompresi data diguankan untuk menghemat space suatu data. Dalam kompresi
data harus dipertimbangkan dalam hal waktu kompresi, waktu pengiriman data,
dan proses dekompresi data tersebut.

Prediction
Prediction digunakan untuk memperkirakan suatu proses eksekusi data. Berapa
kira-kira yang digunakan untuk mengeksekusi sebuah program.

Sampling
Proses sampling digunakan untuk mengambil data tetapi tidak secara
keseluruhan, melainkan hanya diambil sample-sample tertentu saja dengan harapan
sudah mewakili seluruh data yang ada. Dengan demikian apabila beberapa kriteria
diatas terpenuhi, maka akan diperoleh grafik seperti gambar dibawah ini.

Gambar 1.4 Grafik Suatu Task Dengan Processor Tunggal

Gambar 1.5 Grafik Suatu Task Dengan Processor Paralel Alternatif 1


5

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 1.6 Grafik Suatu Task Dengan Processor Paralel Alternatif 2

C. Arsitekur Sistem Real-Time


Arsitektur sistem real-time mengambarkan interkoneksi antar sistem yang ada
pada real-time. Secara blok dapat digambarkan berikut ini.

Gambar 1.7 Blok Diagram Real-Time Systems

Pada Gambar 1.7 terdiri dari beberapa blok sistem. Secara garis besar dibedakan
menjadi dua, yaitu bagian statistik dan algoritma. Pada bagian algoritma terdapat

Setiawardhana, Sigit Wasista, PENS, 2014

sejumlan n algoritma. Semakin kompleks suatu program, maka akan semakin banyak
punya algoritma yang bisa digunakan untuk menyelesaikan program tersebut.
Pada bagian masukan terdapat saklar selector yang digunakan untuk memilih
input mana yang akan dieksekusi menggunakan algoritma1n, tergantung dari
keinginan kita atau tingkat komplektifitas program.
Agar bisa diperoleh konsep real-time, maka ditambahkan suatu kontrol atau
pencatat kapan program mulai start dan kapan program tersebut harus berhenti dengan
menghasilkan nilai dan waktu sesuai dengan kesepakatan batas waktu (deadline).

1.3. Tugas
1. Buatlah rangkuman mengenai konsep sistem real-time!(Tulis dalam kertas A4)
2. Carilah 10 contoh penerapan sistem real-time dalam kehidupan sehari-hari maupun
dalam bidang teknologi !

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 2
KONSEP HARD REALTIME SISTEM NAVIGASI PESAWAT
2.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Hard Real Time
2. Mahasiswa dapat memberikan contoh penerapan Hard Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Hard Real Time pada program

2.2. Ringkasan Teori


A. Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan
jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan
gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat
mentoleransi keterlambatan tidak lebih dari 100 mikro detik.
Secara umum, sebuah proses di kirim dengan sebuah pernyataan jumlah waktu
dimana dibutuhkan untuk menyelesaikan atau menja-lankan I/O. Kemudian penjadual
dapat menjamin proses untuk selesai atau menolak permintaan karena tidak mungkin
dilakukan.
Mekanisme ini dikenal dengan

resource reservation. Oleh karena itu setiap

operasi harus dijamin dengan waktu maksimum. Pemberian jaminan seperti ini tidak
dapat dilakukan dalam sistem dengan secondary storage atau virtual memory, karena
sistem seperti ini tidakdapat meramalkan waktu yang dibutuhkan untuk mengeksekusi
suatu proses. Diagram hard real-time dapat dilihat seperti Gambar 2.1 berikut ini.

Gambar 2.1 Grafik Hard Real-Time

Setiawardhana, Sigit Wasista, PENS, 2014

B. Navigasi Pesawat
Navigasi udara merupakan kegiatan untuk mengarahkan alat transportasi udara
(dalam hal ini pesawat) dari satu tempat ke tempat yang lain agar tidak keluar dari
jalurnya.
Navigation is the process of reading, planning, recording, and controlling the
movement of a craft or vehicle from one place to another.
[Jacob et al., 1993]
Navigasi juga diperlukan untuk mengurangi risiko kecelakaan pesawat yang
diakibatkan oleh tabrakan dengan pesawat lainnya maupun benturan dengan bukit dan
awan tebal khususnya ketika cuaca buruk atau jarak pandang pilot terbatas.
Navigasi ini dilakukan dari darat yang dibantu melalui sinyal yang dipancarkan
oleh instrumen terpasang pada menara (ground base) maupun sinyal dari satelit
(satellite base). Kemudian dengan sinyal-sinyal yang dipancarkan balik oleh pesawat,
orang di darat dapat mengetahui koordinat titik lokasi pesawat tersebut berada yang
kemudian digunakan untuk mengarahkan pesawat.

C. GPS
GPS adalah sistem radio navigasi dan penentuan posisi menggu-nakan satelit.
Nama formalnya adalah NAVSTAR GPS (Navigation Satellite Timing and Ranging
Global Positioning System). Sistem yang dapat digunakan oleh banyak orang
sekaligus dalam segala cuaca ini, didesain untuk memberikan posisi dan kecepatan
tiga dimensi
yang teliti, dan juga informasi mengenai waktu, secara kontinyu di seluruh dunia.
Pada dasarnya GPS terdiri atas tiga segmen utama, yaitu segmen angkasa (spacial
segment) yang terdiri dari satelit-satelit GPS, segmen sistem kontrol (control system
segment) yang terdiri dari stasiun-stasiun pemonitor dan pengontrol satelit, dan
segmen pemakai (user segment) yang terdiri dari pemakai GPS termasuk alat-alat
penerima dan pengolah sinyal dan data GPS.

Ada beberapa hal yang membuat GPS menarik untuk digunakan dalam penentuan
posisi, yakni:
GPS dapat digunakan setiap saat tanpa bergantung waktu dan cuaca. GPS dapat
digunakan baik pada siang ataupun malam hari, dalam kondisi cuaca yang buruk
sekalipun seperti hujan ataupun kabut. Karena karakteristiknya ini maka
9

Setiawardhana, Sigit Wasista, PENS, 2014

penggunaan GPS dapat meningkatkan efisiensi dan fleksibilitas dari pelaksanaan


aktivitas-aktivitas yang terkait dengan penentuan posisi.
Satelit-satelit GPS mempunyai ketinggian orbit yang cukup tinggi, yaitu sekitar
20.000 km di atas permukaan bumi. Jumlahnya pun relatif cukup banyak, untuk
saat ini terdapat 24 satelit. Ini menyebabkan GPS dapat meliput wilayah yang
cukup luas, sehingga akan dapat digunakan oleh banyak orang pada saat yang
sama, serta pemakaiannya menjadi tidak bergantung pada batas-batas politik dan
batas alam.
Posisi yang ditentukan dengan GPS akan mengacu pada suatu datum global yang
dinamakan WG S 1984. WGS 1984 adalah sistem koordinat kartesian terikatbumi. Pusatnya berimpit dengan pusat massa bumi, sumbu-Z nya berimpit dengan
sumbu putar bumi yang melalui CTP (Conventional Terrestrial Pole), sumbu-X nya
terletak pada bidang meridian nol (Greenwich), sumbu-Y nya tegak lurus sumbu X
dan Z dan membentuk sistem tangan kanan.
GPS dapat memberikan ketelitian posisi yang spektrumnya cukup luas. Dari yang
sangat teliti (orde milimeter) sampai yang biasa-biasa saja (orde puluhan meter).
Luasnya spektrum ketelitian yang bisa diberikan ini memungkinkan penggunaan
GPS secara efektif dan efisien sesuai dengan ketelitian yang diminta.
Selain memberikan informasi posisi, GPS juga dapat memberikan informasi
mengenai jarak, kecepatan, percepatan, dan waktu secara teliti.

D. Aplikasi dan Manfaat GPS pada Penerbangan


Potensi penggunaan GPS dalam bidang perhubungan udara terutama terkait
dengan aspek-aspek navigasi dan pemantauan. Kalau kita mengacu pada fase-fase
navigasi yang umum dikenal yaitu en-route/terminal (oceanic, domestic, terminal,
remote areas, special helicopter operations) dan approach and landing (non-precision,
precision), maka pada dasarnya dapat dikatakan bahwa GPS akan punya manfaat dan
peran yang besar untuk setiap fase tersebut.
Di samping dapat memberikan informasi tentang posisi tiga-dimensi pesawat
(termasuk parameter tinggi) dari waktu ke waktu secara teliti, GPS juga dapat
digunakan untuk memberikan informasi tentang kecepatan, arah terbang, serta atitude
(pitch, roll) dari pesawat yang bersangkutan.

10

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 2.2Diagram Komunikasi Pesawat

2.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Simulator Pesawat Terbang menggunakan Direct X dengan Masukan Data
Smartphone. Sistem tersebut berbasis Hard Real-Time. Dalam kehidupan nyata
keterlambatan tidak boleh terjadi, karena dapat berakibat hilangnya kontrol terhadap
navigasi pesawat terbang.

2.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan peralatan sebagai berikut:
1. Komputer Personal
2. GPS dan Kompas Smartphone Android

2.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

11

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 2.3 Diagram proses sistem

2.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Buatlah aplikasi pada smartphone android untuk mendapatkan data GPS dan
kompas. Enable komunikasi Bluetooth pada aplikasi android yang Anda buat.
Berikut ini merupakan contoh kode program untuk mendapatkan data GPS.
Tabel 2.1
public void updateLocation(Location location, String
status) {
((TextView)
findViewById(R.id.ValueProvider)).setText(location
.getProvider());
((TextView)
findViewById(R.id.ValueLatitude)).setText(Location.conve
rt( location.getLatitude(), Location.FORMAT_DEGREES));
((TextView)
findViewById(R.id.ValueLongitude)).setText(Location
.convert(location.getLongitude(),
Location.FORMAT_DEGREES));
lat = location.getLatitude();
lon = location.getLongitude();
if (location.hasAltitude()) {
((TextView)
12

Setiawardhana, Sigit Wasista, PENS, 2014

findViewById(R.id.ValueAltitude)).setText(String.valueOf
(location.getAltitude()));
} else {
((TextView) findViewById(R.id.ValueAltitude))
.setText(getString(R.string.DefaultAltitude));
}
if (location.hasSpeed()) { ((TextView)
findViewById(R.id.ValueSpeed)).setText(String
.valueOf(location.getSpeed()));
} else {
((TextView) findViewById(R.id.ValueSpeed))
.setText(getString(R.string.DefaultSpeed));
}
... //masih banyak lagi
2. Kirimkan data GPS dan Kompas tersebut ke PC melalui komunikasi bluetooth.
Untuk

melakukan

hal

tersebut,

Anda

dapat

memanfaatkan

method

sendMessage(String s).
Tabel 2.2
private void sendMessage(String message) {
if (service_data_io.getState() !=
service_bluetooth.STATE_CONNECTED) {
return;
}
if (message.length() > 0) {
byte[] send = message.getBytes();
service_data_io.write(send);
output_string.setLength(0);
output_teks.setText(output_string);
}
}
3. Berikut merupakan tampilan dari aplikasi android pada kasus Simulator Pesawat
Terbang ini.

13

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 2.4 Data GPS dan Kompas

4. Untuk menguji keberhasilankomunikasi data antara smartphone dengan komputer,


Anda dapatmemanfaatkan aplikasi hyperter-minal.
5. Setelah itu, buatlah suatu program simulasi menggunakan bahasa pemrograman
java. Untuk membuat objek 3D pada java, penulis memanfaatkan library direct x
(J3D). Hal tersebut dikarenakan performa java direct x lebih cepat dibandingkan
dengan performa java openGL.
6. Tambahkan kode program berikut untuk menghitung nilai kecepatan, azimuth dan
ketinggian.
Tabel 2.3
public void setAltitude(Point3d planePos)
{
final double FEET_PER_METER = 0.305;
double ft = planePos.z / FEET_PER_METER;
int iAltitudeAbs = (int)ft;
int iAltitudeRel = iAltitudeAbs;
int iTerrainHeight = 0;
if(m_dem != null) {
iTerrainHeight =
(int)(m_dem.getHeight(planePos.x, planePos.y) /
FEET_PER_METER);
iAltitudeRel -= iTerrainHeight;
}
altitudeGauge.setText("" + iAltitudeAbs + "=" +
iTerrainHeight + "+" + iAltitudeRel + " ft");
}
14

Setiawardhana, Sigit Wasista, PENS, 2014

public void setSpeed(double speed) {


// convert speed to mph:
double mph = speed * 3600.0 / 1600.0;
int iSpeed = (int)mph;
speedGauge.setText("" + iSpeed + " mph");
}
public void setAsimuth(double asimuth)
{
double grads = asimuth / Math.PI * 360.0;
int iAsimuth = (int)grads;
asimuthGauge.setText("" + iAsimuth);
}
7. Berikut ini merupakan tampilan running program dari kasus ini:

Gambar 2.5 Tampilan Utama Simulasi Pesawat

Gambar 2.6 Tampilan Utama Simulasi Pesawat


15

Setiawardhana, Sigit Wasista, PENS, 2014

Pesawat akan bergerak sesuai dengan data GPS dan Azimuth dari smartphone. Untuk
ketinggian dari pesawat merupakan ketinggian object pesawat 3D terhadap sumbu x=0,
y=0, dan z=0.
Tabel 2.1 Informasi Kecepatan pada Output Console
Kecepatan sekarang = 1560.0
Kecepatan sekarang = 1580.0
Kecepatan sekarang = 1600.0
Kecepatan sekarang = 1620.0
Kecepatan sekarang = 1640.0
Kecepatan sekarang = 1660.0
Kecepatan sekarang = 1680.0
Kecepatan sekarang = 1700.0
Kecepatan sekarang = 1720.0
...
Setelah itu program akan menginformasikan posisi dari pesawat, yaitu berupa azimuth
dan ketinggian (altitude)setiap durasi 1 mikro sekon.

2.4. Penjelasan
Salah satu penerapanhard real-time dalam kehidupan sehari-hari adalah pada sistem
pengontrol pesawat terbang. Dalam hal ini, keterlambatan sama sekali tidak boleh terjadi,
karena dapat berakibat tidak terkontrolnya pesawat terbang.
Nyawa penumpang yang ada dalam pesawat tergantung dari sistem ini, karena jika
sistem tidak dapat merespon tepat waktu, maka dapat menyebabkan kecelakaan yang
merenggut korban jiwa. Dalam simulasi di atas ditekankan pada sistem navigasi dari
pesawat terbang.

2.5. Tugas
1. Buatlah program yang mengimplementasikan Sistem Hard Real-Time (Waktu
pengerjaan 2 minggu, progress didemokan minggu depan).
2. Buatlah laporan sementara untuk progress Anda !

16

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 3
KONSEP HARD REALTIME SISTEM REAKTOR NUKLIR

3.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Hard Real Time
2. Mahasiswa dapat memberikan contoh penerapan Hard Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Hard Real Time pada program

3.2. Ringkasan Teori


A. Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan
jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan
gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat
mentoleransi keterlambatan tidak lebih dari 100 mikro detik.
Diagram hard real-time dapat dilihat seperti Gambar 3.1 berikut ini.

Gambar 3.1Grafik Hard Real-Time

B. Reaktor Nuklir
Pada reactor nuklir terjadi pembangkitan panas yang dihasilkan dari reaksi nuklir
dengan bahan bakar uranium U-235 perbandingannya adalah 1 kg uranium pada
reactor nuklir sama dengan 3000 ton batu bara pada pembangkit lisrik tenaga batu
bara. Jadi apabila melihat dari perbandingan nulir dengan batu bara, dapat dilihat
mana yang lebih baik karena pembangkit listrik tenaga uap dengan batu bara tidak

17

Setiawardhana, Sigit Wasista, PENS, 2014

terlalu banyak resiko dan membutuhkan teknologi canggih, namun penggunaan batu
bara sebenarnya merupakan sebuah pemborosan dan banyak menghasilkan polusi.
Pada reaktor nuklir yang dimanfaatkan adalah panas yang dihasilkan oleh reaksi
nuklir tersebut. Pembangkitan panas dapat terjadi dengan berbagai cara yang
merupakan hasil uji coba pada aktivitas inti atom.

Gambar 3.2 Reaktor Nuklir

C. Prinsip Kerja Reaktor Nuklir


Pada prinsipnya pembuatan listrik tenaga nulir adalah pemanfaatan reaksi nuklir
yang terjadi untuk memanaskan air dalam sebuah tabung sehingga menghasilkan uap.
Selanjutnya uap tersebut dialirkan melalui pipa-pipa untuk menggerakkan turbin.
Turbin tersebut dihubungkan dengan generator raksasa yang berfungsi untuk
mengubah energy gerak (mekanik) menjadi energi listrik.

3.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Simulator Reaktor Nuklir. Sistem tersebutberbasis Hard Real-Time. Dalam
kehidupan nyata, tidak boleh terjadi, karena dapat berakibat meledaknya reaktor nuklir
yang sangat membahayakan nyawa manusia maupun alam sekitar.

3.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan peralatan sebagai berikut:
1. Komputer Personal

18

Setiawardhana, Sigit Wasista, PENS, 2014

3.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 3.3Diagram proses sistem

3.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Jalankan aplikasi IDE Visual Basic 6.0 dengan cara melakukan klik ganda pada
desktop atau startmenu.
2. Setelah itu akan muncul suatu dialog untuk membuat project baru. Masuk pada tab
New, pilih New Standart Exe. Setelah itu tekan tombol Open untuk
melanjutkan ke proses selanjutnya.
3. Setelah itu akan muncul editor GUI dari visual basic 6.0. Untuk mengganti nama
project, dapat dilakukan dengan memilih menu properties pada project pane Anda.
4. Berikan nama pada form project Anda yang telah ter-generate.
5. Tambahkan beberapa komponen GUI pada frame Anda, dicontohkan seperti pada
gambar berikut:

19

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 3.4Menambahkan komponen pada editor GUI

6. Tambahkan kode program untuk memulai simulasi reactor nuklir. Program tersebut
memanfaatkan komponen timer visual basic untuk pemanggilan data secara realtime.
Berikut merupakan pecahan kode program pada timer tersebut:
Tabel 3.1
masih banyak lagi
If fuel <> 0 Then
If control < 93 Then
maincoolant = (11000 / (((100 - Val(fuel)) * 0.1) +
((Val(control1)) * 0.2))) '+ (202 * ((100 Val(maincoolant1)) * .01))
End If
If control > 92 And control <> 100 Then
maincoolant = (4500 / (((100 - Val(fuel)) * 0.1) +
((Val(control1)) * 0.2))) '+ (202 * ((100 Val(maincoolant1)) * .01))
End If
If maincoolant > 299 Then
maincoolant = ((maincoolant - 300) + ((100 maincoolant1) * ((maincoolant - 300) * 0.004))) + 300 +
heatbuildup
End If
Else
maincoolant = 21
heat = 21
reactor = 21
End If
heatvalve = Val(maincoolantupd) * (1 - ((100 Val(maincoolant1)) * 0.01))
If shpheatexchfailure.BackColor <>&HFF& Then
20

Setiawardhana, Sigit Wasista, PENS, 2014

If heatvalve < 300 Then


heat = 21
End If
If heatvalve >= 300 Then
'determines heat of heat
exchanger
heat = (Val(heatvalve) - 208) + (172 * ((100 Val(tcoolant1)) * 0.01))
End If
If maincoolantupd > 299 Then
heatbuildup = 60 * ((100 - Val(tcoolant1)) *
0.01)
End If
If shpheatexchdamage.BackColor = &HFF& Then
heat = heat + 30
End If
Else
If heat > 21 Then
heat = heat - 0.3
End If
heatbuildup = 0
End If
If Val(heatupd) < Val(heat) Then
heatupd = heatupd + count1
ElseIf Val(heatupd) > Val(heat) Then
heatupd = heatupd - count1
End If
If heatupd > heat And heatupd < heat + count2 Or
heatupd < heat And heatupd > heat - count2 Then
heatupd = Val(heat)
End If
lblheat.Caption = Val(heatupd)
'//////////////Output///////////////
heatturbine = Val(heatupd) * (1 - ((100 Val(tcoolant1)) * 0.01))
If heatturbine >= 110 Then 'determine power output
power = (heatturbine * ((heatturbine / 100) / 4.4))
Else
power = 0
End If
If shpturbinedamage.BackColor = &HFF& Then
power = power * 0.5
End If
If shpturbinefailure.BackColor = &HFF& Then
power = 0
End If
21

Setiawardhana, Sigit Wasista, PENS, 2014

If Val(powerupd) < Val(power) Then


powerupd = powerupd + count1
ElseIf Val(powerupd) > Val(power) Then
powerupd = powerupd - count1
End If
If powerupd > power And powerupd < power + count2 Or
powerupd < power And powerupd > power - count2 Then
powerupd = Val(power)
End If
masih banyak lagi
7. Untuk menjalankan project visual basic yang telah dibuat, dapat dilakukan dengan
menekan tombol run pada toolbar atau dengan menakan tombol F5 keyboard.
Berikut merupakan tampilan program dari kasus ini:

Gambar 3.5 Running program

Gambar 3.6 Running program

22

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 3.7 Running program

3.4. Penjelasan
Salah satu penerapan hard real-time dalam kehidupan sehari-hari adalah pada sistem
reaktor nuklir. Dalam hal ini, keterlambatan atau tidak sampainya data tidak boleh
terjadi, karena dapat berakibat reaktor meledak.
Reaktor nuklir dapat meledak dikarenakan beberapa sebab, diantaranya suhu reaktor
yang melebihi suhu maksimal reaktor dikarenakan sistem pendingin tidak bekerja
sebagaimana mestinya.

3.5. Tugas
1. Lanjutkan pengerjaan program yang mengimplementasikan Sistem Hard Real-Time!
(didemokan minggu depan)
2. Buatlah laporan final untuk program Anda !

23

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 4
KONSEP SOFT REALTIME SISTEM TELEMETERING CURAH
HUJAN DAN TMA
4.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Soft Real Time
2. Mahasiswa dapat memberikan contoh penerapan Soft Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Soft Real Time pada program

4.2. Ringkasan Teori


A. Soft Real-Time
Komputasi soft real-time memiliki sedikit kelonggaran. Dalam sistem ini, proses
yang kritis menerima prioritas lebih daripada yang lain. Walaupun menambah fungsi
soft real-time ke sistem time sharing mungkin akan mengakibatkan ketidakadilan
pembagian sumber daya dan mengakibatkan delay yang lebih lama, atau mungkin
menyebabkan starvation, hasilnya adalah tujuan secara umum sistem yang dapat
mendukung multimedia, grafik berkecepatan tinggi, dan variasi tugas yang tidak dapat
diterima di lingkungan yang tidak mendukung komputasi soft real-time.

Diagram

soft real-time dapat dilihat seperti Gambar 4.1 berikut ini.

Gambar 4.1 Grafik Soft Real-Time

Contoh penerapan sistem ini dalam kehidupan sehari-hari adalah pada alat
penjual/pelayan otomatis. Jika mesin yang menggunakan sistem ini telah lama
digunakan, maka mesin tersebut dapat mengalami penurunan kualitas, misalnya waktu
pelayanannya menjadi lebih lambat dibandingkan ketika masih baru. Keterlambatan
24

Setiawardhana, Sigit Wasista, PENS, 2014

pada sistem ini tidak menyebabkan kecelakaan atau akibat fatal lainnya, melainkan
hanya menyebabkan kerugian keuangan saja. Jika pelayanan mesin menjadi lambat,
maka para pengguna dapat saja merasa tidak puas dan akhirnya dapat menurunkan
pendapatan pemilik mesin.
Setelah batas waktu yang diberikan telah habis, pada sistem hard real-time,
aplikasi yang dijalankan langsung dihentikan. Akan tetapi, pada sistem soft real-time,
aplikasi yang telah habis masa waktu pengerjaan tugasnya, dihentikan secara bertahap
atau dengan kata lain masih diberikan toleransi waktu.
Mengimplementasikan fungsi soft real-time membutuhkan design yang hati-hati
dan aspek yang berkaitan dengan sistem operasi. Pertama, sistem harus punya
prioritas penjadualan, dan proses real-time harus memiliki prioritas tertinggi, tidak
melampaui waktu, walaupun prioritas non real-time dapat terjadi. Kedua, dispatch
latency harus lebih kecil. Semakin kecil latency, semakin cepat real-time proses
mengeksekusi.
Untuk menjaga dispatch tetap rendah, kita butuh agar

system call untuk

preemptible. Ada beberapa cara untuk mencapai tujuan ini. Pertama adalah dengan
memasukkan preemption points di durasi system call yang lama, yang memeriksa
apakah prioritas utama butuh untuk dieksekusi. Jika sudah, maka contex switch
mengambil alih, ketika high priority proses selesai, proses yang diinterupsi
meneruskan dengan system call. Points premption dapat diganti hanya di lokasi yang
aman di kernel dimana kernel struktur tidak dapat dimodifikasi. Metoda yang lain
adalah dengan membuat semua kernel preemptible. Karena operasi yang benar dapat
dijamin, semua struktur data kernel harus diproteksi dengan mekanisme sinkronisasi.
Dengan metode ini, kernel dapat selalu di preemptible, karena setiap data kernel
yang sedang diupdate diproteksi dengan pemberian prioritas yang tinggi. Jika ada
proses dengan prioritas tinggi ingin membaca atau memodifikasi data kernel yang
sedang dijalankan, prioritas yang tinggi harus menunggu sampai proses dengan
prioritas rendah tersebut selesai. Situasi seperti ini dikenal dengan priority inversion.
Kenyataanya, serangkaian proses dapat saja mengakses sumber daya yang sedang
dibutuhkan oleh proses yang lebih tinggi prioritasnya. Masalah ini dapat diatasi
dengan priority-inheritance protocol, yaitu semua proses yang sedang mengakses
sumber daya mendapat prioritas tinggi sampai selesai menggunakan sumber daya.
Setelah selesai, prioritas proses ini dikembalikan menjadi seperti semula.

25

Setiawardhana, Sigit Wasista, PENS, 2014

B. Penakar Curah Hujan


Penakar Curah Hujan Hujan adalah peristiwa turunnya titik-titik air atau kristalkristal es dari awan sampai ke permukaan tanah. Alat untuk mengukur jumlah curah
hujan yang turun kepermukaan tanah per satuan luas, disebut Penakar Curah Hujan.
Satuan curah hujan yang umumnya dipakai oleh BMKG adalah millimeter (mm.).
Curah hujan 1 (satu) millimeter, artinya dalam luasan satu meter persegi pada tempat
yang datar tertampung air setinggi 1 (satu) millimeter atau tertampung air sebanyak 1
(satu ) liter atau 1000 ml.
Secara umum penakar hujan dibedakan menjadi dua, yaitu penakar curah hujan
manual dan penakar curah hujan otomatis.

Gambar 4.2Penakar Curah Hujan Manual

Gambar 4.3.1Penakar Curah Hujan Otomatis

Gambar 4.3.2BagianPenakar Curah Hujan Otomatis

26

Setiawardhana, Sigit Wasista, PENS, 2014

4.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Sistem Telemetering Curah Hujan dan Tinggi Muka Airdi daerah hulu Waduk
Cirata - PJB. Sistem tersebut berbasis Soft Real-Time dikarenakan data yang diterima
(data curah hujan dan tinggi muka air) tidak akan berpengaruh vital terhadap kinerja
sistem tersebut. Sehingga sistem akan terus berjalan walaupun data tidak diterima,
namun terdapat informasi yang memberitahukan bahwa data pada saat itu tidak diterima
oleh sistem.

4.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan beberapa peralatan sebagai
berikut:
1. Komputer Personal (Server)
2. Data Logger
3. Modul Pengukur Curah Hujan (Tipping Bucket)
4. Modul Pengukur Tinggi Muka Air (Waterlevel)
5. Modem GPRS / GSM dengan Antena

4.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

27

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 4.4 Diagram proses sistem

4.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Pasang modul tipping bucket (penakar curah hujan) dan pengukur tinggi muka air
pada beberapa lokasi.
2. Hubungkan setiap modul tersebut pada data logger. Lakukan pengaturan terhadap
sistem data logger sehingga dapat mengirimkan informasi secara real-time. (Dalam
kasus ini data dikirim setiap 15 menit).
3. Lakukanperakitan dan instalasi terhadap PC server. PC server diinstall dengan
sistem operasi windows server 2008 64 bit.

Gambar 4.5 Instalasi Server

28

Setiawardhana, Sigit Wasista, PENS, 2014

4. Setelah itu pasang modem GPRS pada Komputer Server. Atur PORT Modem yang
akan digunakan. Setelah itu lakukan instalasi terhadap IDE Visual Studio 2008,
khususnya untuk bahasa pemrograman Visual Basic.
5. Lakukan instalasi terhadap SQL Server 2005, kemudian lakukan pengaturan
terhadap setting SQL Server sehingga dapat melakukan komunikasi database antara
server dengan beberapa client. Jangan lupa atur user management untuk proses
autentifikasi program yang akan dibuat. Setelah itu, buatlah sebuah database beserta
table yang ada didalamnya untuk proses penerimaan data.
6. Integrasikan IDE Visual Studio dengan database SQL yang telah dibuat dengan cara
menambahkan intruksi seperti ditunjukkan pada table kode program berikut:
Tabel 4.1
Public Class DataBaseConnection
Public Function open() As SqlClient.SqlConnection
Dim conect As New
SqlClient.SqlConnection("Server='ALTRAZPC\SQLEXPRESS';Database='sistem_monitoring'; " & _"
User ID='sa';password='ahmadreza';Pooling=false;")
Try
conect.Open()
Catch ex As Exception
End Try
Return conect
End Function
7. Setelah itu akan dilakukan penambahan beberapa komponen GUI dan kode program
sehingga program dapat diintegrasikan dengan modul sensor yang digunakan.
Berikut ini merupakan pecahan program untuk pembacaan data SMS yang dikirim
oleh data logger pada tiap-tiap lokasi.
Tabel 4.2
Dim u As New Regex("[0-9A-Zaz\,\=\s]*?[\+]CMT[\:][\s]*[\""]([\+09]*)[\""][\s]*[\""\,\/\:\+0-9\s ]*[\s]*[\#]STA[\:][09]*[\;]TM[\:][0-9\/\?]*[\,]([0-9]*[\:][0-9]*)[\:][09]*[A-Z0-9\;\:\.\,]*AD01[\:]([\.0-9\]*)[\;]AD02[\:]([\.0-9\-]*)[\;][0-9A-Z\:\;\\.]*PU03[\:]([0-9]*)[\;][A-Z0-9\;\:\.]*[\#]")
Dim m As Match = u.Match(masukan)
txtHost.Text = masukan
Thread.Sleep(1)
While m.Success
29

Setiawardhana, Sigit Wasista, PENS, 2014

.
.
.
If (nomor_s(0) = msg.nomor) And (mode_hujan(0) = 0) And
(jam_pecah_int = jam_banding) Then
sensor_hujan_tampung(0) = msg.sensor_hujan
sensor_hujan(0) = sensor_hujan_tampung(0) counter_hujan(0)
counter_hujan(0)=counter_hujan(0)+ sensor_hujan(0)
jam_hujan(0) = msg.jam
tegangan(0) = msg.tegangan
Call cek_status_sensor_hujan()
koneksi.update_waktu(Date.Today, nama_s(0),
sensor_hujan(0), status_sensor_hujan(0), "1",
nomor_s(0), sensor_hujan_sebelum(0), jam_hujan(0),
latitud(0), longitud(0), tegangan(0),
stat_periode_hp(0), stat_periode_fail(0),
stat_transmit_mode(0), stat_running_status(0),
stat_sim_card(0), stat_modul_gprs(0), stat_sinyal(0))
.
.
'Masih banyak lagi
8. Berikut ini adalah tampilan running program dari kasus ini:

Gambar 4.6 Tampilan Utama program mode data

30

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 4.7 Tampilan Utama program mode peta

Gambar 4.8 Grafik Curah Hujan Harian

31

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 4.9Laporan harian data yang diterima

4.4. Penjelasan
Program di atas merupakan program yang mengimplementasikan soft real-time. Hal
tersebut dapat dilihat pada gambar 4.7 bahwa terdapat beberapa lokasi penempatan
modul yang tidak mengirimkan data curah hujan dikarenakan terdapat kendala pada
modul tersebut. Data yang tidak masuk ke dalam sistem tersebut tidak akan
mempengaruhi kinerja sistem, dikarenakan data yang masuk ke dalam database hanya
digunakan sebagai informasi untuk mengetahui besarnya curah hujan dan tinggi muka air
dari beberapa lokasipenempatan modul.

4.5. Tugas
1. Buatlah program yang mengimplementasikan Sistem Soft Real-Time (Waktu
pengerjaan 2 minggu, progress didemokan minggu depan).
2. Buatlah laporan sementara untuk progress Anda !

32

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 5
KONSEP SOFT REALTIME SISTEM TELEMETERING ANGIN
5.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Soft Real Time
2. Mahasiswa dapat memberikan contoh penerapan Soft Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Soft Real Time pada program

5.2. Ringkasan Teori


Suatu sistem disebut soft real time jika input yang diberikan tidak berupa variable
vital pada system. Sistem Telemetering ini termasuk soft real time, dikarenakan apabila
data yang dikirimkan oleh AVR dalam keadaan lost, system tidak akan mengalami
gangguan seperti Fatal Error yang mengakibatkan system akan mati. Melainkan data
tidak akan masuk pada media penyimpanan database.

5.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Sistem Telemetering Kecepatan Angin di Gedung Teknik Komputer Lantai 3 PENS. Sistem tersebut berbasis Soft Real-Time dikarenakan data yang diterima (data
kecepatan angin) tidak akan berpengaruh vital terhadap kinerja sistem tersebut. Sehingga
sistem akan terus berjalan walaupun data tidak diterima, namun terdapat informasi yang
memberitahukan bahwa data pada saat itu tidak diterima oleh sistem.

5.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan beberapa peralatan sebagai
berikut:
1. Komputer Personal (Server)
2. Modul Mikrokontroler AVR
3. Penakar Kecepatan Angin
4. Kabel Serial COM (RS-232)

33

Setiawardhana, Sigit Wasista, PENS, 2014

5.3.2. Diagram Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:

Gambar 5.1 Diagram proses sistem

5.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Siapkan modul mikrokontroler AVR. Dalam kasus ini menggunakan modul AVR
AT Mega 16.
2. Tambahkan komponen motor rotary (digunakan sebagai kincir angin)pada modul
mikrokontroler AVR. Hubungkan pada timer 2. Tambahkan pengaturan berikut pada
editor program Anda.
Tabel 5.1
TCCR2=0x07;
TCNT2=0x8A;OCR2=0x00;
MCUCR=0x00;MCUCSR=0x00;
TIMSK=0x40;
3. Setelah itu tambahkan kode program berikut pada timer 2 interrupt sehingga dapat
digunakan untuk membaca data motor.
Tabel 5.2
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
TCNT2=0x8A;
loop++;
34

Setiawardhana, Sigit Wasista, PENS, 2014

loop_menit++;
if (loop>=100 {
loop=0;
d1=data_motor1;
d2=data_motor2;
d_a=data_motor1*0.6;
d_b=data_motor2*0.6;
tampung_data1=tampung_data1+data_motor1;
tampung_data2=tampung_data2+data_motor2;
RPM1[RPMn1]=d_a;
RPM2[RPMn2]=d_b; RPMn1++;RPMn2++;
set_tmp=0;
}
if(loop_menit>=500){
loop_menit=0;
for(i=0;i<5;i++){
RPMx=RPMx+RPM1[i];
RPMy=RPMy+RPM2[i];
}
RPMx=RPMx/5;
RPMy=RPMy/5;
printf("M1:%dM2:%dRPM1:%0.2fRPM2:%0.2f"
,tampung_data1,tampung_data2,RPMx,RPMy);
tampung_data1=0;
tampung_data2=0;
RPMn1=0;
RPMn2=0;
RPMx=0;
RPMy=0;
}
}
4. Setelah itu Lakukan instalasi terhadap SQL Server 2005 pada komputer server.
Jangan lupa atur user management untuk proses autentifikasi program yang akan
dibuat. Setelah itu, buatlah sebuah database beserta table yang ada didalamnya untuk
proses penerimaan data.
5. Integrasikan IDE Visual Studio dengan database SQL yang telah dibuat dengan cara
menambahkan intruksi seperti ditunjukkan pada table kode program berikut:
Tabel 5.3
Public Class connect
Public Function open() As SqlClient.SqlConnection
Dim conect As New
SqlClient.SqlConnection("Server='ALTRAZPC\SQLEXPRESS';Database='sistem_telemetering_angin'; "
& _" User ID='sa';password='ahmadreza';Pooling=false;")
Try
conect.Open()
Catch ex As Exception
End Try
Return conect
End Function
35

Setiawardhana, Sigit Wasista, PENS, 2014

6. Setelah itu akan dilakukan penambahan beberapa komponen GUI dan kode program
sehingga program dapat diintegrasikan dengan modul mikrokontroler AVR yang
digunakan. Berikut ini merupakan pecahan program untuk pembacaan data rotary
motor yang dikirim melalui komunikasi serial oleh modul mikrokontroler AVR.
Tabel 5.4
Private Sub AxMSComm1_OnComm(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
mscom.OnComm
data = mscom.Input
'M1:0M2:0RPM1:0RPM2:0
Dim s As New Regex("M1[\:]([0-9]*)M2[\:]([09]*)RPM1[\:]([0-9\.]*)RPM2[\:]([0-9\.]*)")
Dim n As Match = s.Match(data)
While n.Success
Dim msg As New ShortMessage()
msg.counter1 = n.Groups(1).Value
msg.counter2 = n.Groups(2).Value
msg.rpm1 = n.Groups(3).Value
msg.rpm2 = n.Groups(4).Value
TextBox1.Text = "Counter[1]: " &
msg.counter1 & vbCrLf & "Counter[2]: " & msg.counter2 &
vbCrLf & "RPM[1]: " & msg.rpm1 & vbCrLf & "RPM[2]: " &
msg.rpm2
n = n.NextMatch()
counter(0) = msg.counter1
counter(1) = msg.counter2
rpm(0) = msg.rpm1
rpm(1) = msg.rpm2
Call cek_status()
Call updatedata()
'coun = 0
Call insertdata()
End While
Call data_pens1()
End Sub
7. Berikut ini adalah tampilan running program dari kasus ini:

36

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 5.2 Tampilan utama program

Gambar 5.3 Laporan harian data kecepatan angin lokasi 1

Gambar 5.4 Laporan harian data kecepatan angina lokasi 2


37

Setiawardhana, Sigit Wasista, PENS, 2014

5.4. Penjelasan
Program di atas merupakan program yang mengimplementasikan soft real-time. Hal
tersebut dapat dilihat pada gambar 5.4 bahwa pada lokasi ke-2 terdapat 2 data yang tidak
diterima (kosong) oleh Komputer server.
Data yang tidak masuk ke dalam sistem tersebut tidak akan mempengaruhi kinerja
sistem, dikarenakan data yang masuk ke dalam database hanya digunakan sebagai
informasi untuk mengetahui besarnya kecepatan angin pada lokasi tersebut.

5.5. Tugas
1. Lanjutkan pengerjaan program yang mengimplementasikan Sistem Soft Real-Time!
(didemokan minggu depan)
2. Buatlah laporan final untuk program Anda !

38

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 6
KONSEP SEMI REALTIME SISTEM NAVIGASI
6.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Semi Real Time
2. Mahasiswa dapat memberikan contoh penerapan Semi Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Semi Real Time pada program

6.2. Ringkasan Teori


A. Semi Real-Time
Metoda ini merupakan gabungan antara Semi Hard Real-Time System (HRTS)
atau Semi Soft Real-Time ( SRTS ). Dengan

demikian waktu deadline-nya lebih

pendek jika dibandingkan dengan soft real-time (SRTS).

Gambar 6.1 Grafik Semi Soft Real-Time / Semi Hard Real-Time

B. Global Positioning System (GPS)


Global Positioning System (GPS) adalah sistem radio navigasi dan penentuan
posisi menggunakan satelit, dengan nama resminya NAVSTAR GPS (Navigation
Satellite Timing and Ranging Global Positioning System). GPS dikembangkan
pertama kali oleh Departemen Pertahanan Amerika Serikat pada tahun 1978 dan
secara resmi GPS dinyatakan operasional pada tahun 1994. Pada awalnya GPS
digunakan hanya untuk kepentingan militer Amerika Serikat, tetapi kemudian dapat
dimanfaatkan juga untuk kepentingan sipil. Ada beberapa karakteristik yang
menjadikan GPS menarik untuk digunakan yaitu dapat digunakan setiap saat tanpa
tergantung waktu dan cuaca, posisi yang dihasilkan mengacu pada suatu datum

39

Setiawardhana, Sigit Wasista, PENS, 2014

global, pengoperasian alat receiver relatif mudah, relatif tidak terpengaruh dengan
kondisi topografis, dan ketelitian yang dihasilkan dapat dihandalkan

C. Protokol NMEA 0183


Protokol NMEA 0183 (National Marine Electronics Association) merupakan
suatu badan yang menerbitkan spesifikasi yang mendeskripsikan berbagai
perlengkapan navigasi agar dapat berkomunikasi satu sama lain melalui koneksi serial
RS-232 atau emusinya (misalnya USB port).
NMEA menggunakan file data ASCII dalam pentransmisian sistem informasi
GPS dari

receiver ke hardware yang berfungsi sebagai input dari posisi dan

merupakan realtime untuk navigasi dibidang kelautan. Salah satu aplikasi protokol
ini adalah pada komunikasi data GPS.

Parameter yang digunakan oleh protokol ini adalah sebagai berikut:


a. Baudrate : 4800
b. Jumlah data : 8 bit
c. Stop bit : 1
d. Parity : None

Beberapa ketentuan umum standar NMEA tersebut adalah:


1. Informasi NMEA dikirimkan oleh vendor dalam bentuk

sentences dengan

panjang maksimal 80 karakter.


2. Sentences NMEA berformat:
$<vendor><massage><parameters><checksum><CR><LF>.
3. Kombinasi <vendor><massage> disebut address field
4. Kode vendor untuk GPS adalah GP

D. Format Data GPS


Secara periodik GPS menerima data dari satelit dan mengirimkannya ke bagian
keluaran dengan format data yang beragam. Setiap data yang dikirimkan oleh GPS
mengacu pada standar NMEA 0183. NMEA 0183 adalah standar kalimat laporan
yang dikeluarkan oleh GPS receiver, standar NMEA memiliki banyak jenis bentuk
kalimat laporan diantaranya yang paling penting adalah koordinat lintang (latitude),

40

Setiawardhana, Sigit Wasista, PENS, 2014

bujur (longitude), ketinggian (altitude), waktu sekarang standar UTC (UTC Time) dan
kecepatan (speed over ground). Berikut ini adalah jenis kalimat NMEA 0183 :
a. $GPGGA (Global Positioning System Fixed Data)
b. $GPGLL (Geographic Latitude/Longitude
c. $GPGSA (GNSS DOP and Aktive Satelites)
e. $GPGSV (GNSS Satelite In View)
f. $GPRMC (Recommended Minimum Specific GNSS Data)
g. $GPVTG (Course Over Ground and Ground Speed)

Setiap data di awali dengan karakter $ dan diakhiri dengan <CR><LF>. Pada
prakteknya tidak semua data dengan header ini diambil, hanya yang menyangkut
waktu, garis lintang dan garis bujur untuk posisi pengguna.

6.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
GPS Tracking.

6.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan beberapa peralatan sebagai
berikut:
1. Komputer Personal
2. Modul GPS
3. Modem GPRS
4. Kabel Serial RS232

6.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

41

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 6.2 Diagram proses sistem

6.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Jalankan aplikasi IDE Netbean dengan cara melakukan klik ganda pada desktop atau
startmenu.
2. Untuk membuat project baru. Tekan menu File New Project atau dengan
menggunakan arternatif tombol keyboard Ctrl+Shift+N.
3. Setelah itu pilih jenis project yang akan digunakan. Dalam hal ini pilih Java
Application. Kemudian tekan tombol next untuk melanjutkan ke dialog
berikutnya.
4. Setelah itu, beri nama project Anda. Apabila sudah diberi nama, tekan tombol
finish untuk memulai membuat program Anda.
5. Untuk menambahkan form dan editor berbasis GUI pada netbean, maka klik kanan
pada package project Anda, pilih menu New JFrame Form.

42

Setiawardhana, Sigit Wasista, PENS, 2014

6. Setelah itu , Set nama class Anda. Setelah itu tekan tombol Finish untuk
menerapkan frame tersebut pada project Anda.
7. Tambahkan beberapa komponen GUI pada frame Anda, dicontohkan seperti pada
gambar berikut:

Gambar 6.3 Menambahkan komponen pada editor GUI

8. Tambahkan

kode

program

untuk

membaca

data

serial

dan

kemudian

mengkonversinya ke dalam tampilan point pada map panel. Berikut merupakan


pecahan kode program tersebut:
Tabel 6.1
public class SerialReader implements
SerialPortEventListener
{
private InputStream in;
private byte[] buffer = new byte[256];
public SerialReader ( InputStream in )
{
this.in = in;
}
public void serialEvent(SerialPortEvent arg0) {
int data;
String tampung="";
try
{
int len = 0;
while ( ( data = in.read()) > -1 )
{
if ( data == '\n' ) {}
buffer[len++] = (byte) data;
}
43

Setiawardhana, Sigit Wasista, PENS, 2014

for(int i=0;i<len;i++){
tampung+=(char)buffer[i];
}
String a[];
a=tampung.split("\n");
tampung=tampung.replaceAll("(\\s+)", "");
System.out.print(tampung);
receive_textarea.append(tampung+"\n");
cek_regex(tampung);
tampung="";
for(int i=0;i<buffer.length;i++){
buffer[i]=(byte)0;
}
} catch ( IOException e )
{
e.printStackTrace();
System.exit(-1);
}}}
...
public void cek_regex(String in){
String a=in;
String patternStr =
"[\\+]CMT[\\:][\"]([\\+0-9]*)[\\'\\,\\\"09\\/\\:\\;\\+]*?DTGPS[\\:\\#]*?LAT[\\:]([\\-09\\.]*?)[\\#]LON[\\:]([0-9\\.]*)[\\#]?([0-9]*)[\\#]?";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(a);
boolean matchFound = matcher.find();
if (matchFound) {
text_informasi_serial.setText("");
for (int i=1; i<=matcher.groupCount(); i++) {
String groupStr = matcher.group(i);
}
text_informasi_serial.setText("Nomor HP:
"+matcher.group(1)+"\r\nLatitude:
"+matcher.group(2)+"\r\nLongitude: "+matcher.group(3));
String hp=matcher.group(1);
hp=hp.replaceAll("\\+62", "0");
System.out.println("hp: "+hp);
int kd=Integer.parseInt(matcher.group(4));
String lok;
.
.
.
update_posisi_pengguna(hp,matcher.group(2),matcher.grou
p(3));
update_tampilan(matcher.group(2), matcher.group(3));
44

Setiawardhana, Sigit Wasista, PENS, 2014

}
}
//masih banyak lagi
9. Untuk menjalankan aplikasi tersebut tekan tombol Run pada netbean. Berikut
hasil running program dari kasus ini:

Gambar 6.4Modul Mikrokontroler AVR + GPS

Gambar 6.5 Tampilan Utama Program

45

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 6.6Tampilan Posisi Pengguna

6.4. Penjelasan
Kasus di atas menggunakan konsep semi realtime, dikarenakan data GPS yang
diterima dari satellite provider masih dapat ditoleransi keterlambatannya. Namun range
waktu keterlambatan dari data tidak melebihi sistem soft realtime dan tidak kurang dari
sistem hard realtime.
Data yang terlambat atau tidak diterima oleh sistem(aplikasi) akan berpengaruh
terhadap respond output yang diberikan kepada pengguna modul GPS, namun hal ini
tidak boleh terjadi terus menerus, karena akan menyulitkan pengguna untuk mengetahui
posisi sekarang, bahkan dapat menyebabkan pengguna tersesat dalam perjalanan.

6.5. Tugas
1. Buatlah program yang mengimplementasikan Sistem Semi Real-Time (Waktu
pengerjaan 2 minggu, progress didemokan minggu depan).
2. Buatlah laporan sementara untuk progress Anda !

46

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 7
KONSEP SEMI REALTIME SISTEM PENDETEKSI AKSI EEG
7.1. Tujuan
1. Mahasiswa dapat mengerti konsep dasar sistem Semi Real Time
2. Mahasiswa dapat memberikan contoh penerapan Semi Real Time pada kehidupan
sehari-hari
3. Mahasiswa dapat mengimplementasikan Konsep Semi Real Time pada program

7.2. Ringkasan Teori


A. Semi Real-Time
Metoda ini merupakan gabungan antara Semi Hard Real-Time System (HRTS)
atau Semi Soft Real-Time ( SRTS ). Dengan

demikian waktu deadlinenya lebih

pendek jika dibandingkan dengan soft real-time (SRTS).

Gambar 7.1.1 Grafik Semi Soft Real-Time / Semi Hard Real-Time

B. Otak
Otak tertutup oleh tempurung kepala, yang mana dilindungi langsung oleh tulang
tengkorak. Tempurung kepala ditutupi oleh kulit yang tipis, yang disebut scalp (kulit
kepala). Sebagian besar otak yang terletak langsung di bawah tulang tempurung
kepala adalah

cerebralcortex (kulit otak). Kulit otak tersusun dari sel syaraf

(neurons). Aktivitas pada otak adalah salah satu dari sekian banyak bentuk dari
fenomena bioelektrik dalam tubuh manusia. Fenomena ini terjadi pada bagian dalam
dan bagian terluar dari otak sehingga sinyal ini bisa dideteksi di kulit kepala. Selalu
ada aktivitas listrik dalam bentuk impuls syaraf yang terkirim dan diterima ke dan dari
syaraf cortical, meskipun sedang tidur. Fungsi lapisan otak meliputi pikiran abstrak,

47

Setiawardhana, Sigit Wasista, PENS, 2014

pertimbangan, kesengajaan dan ketidaksengajaan kendali otot kerangka, pengenalan


dan perbendaan dari somatic, visceral dan stimuli sensor yang spesifik. Daerah daerah khusus dari lapisan otak mengolah atau menghasilkan berbagai jenis informasi.

Gambar 7.1.2 Pembagian daerah otak


C. Fast Fourier Transform (FFT)
FFT merupakan algoritma yang efisien untuk menghitung DFT, sehingga dapat
menurunkan jumlah perhitungan DFT. Komputasu langsung dari FFT tidak efisien
secara mendasar karena tidak memanfaatkan sifat-sifat simetri dan keperiodikan.
Transformasi Fourier didefinisikan sebagai sebuah persamaan kontinyu dalam range
tertentu sebagai gabungan dari beberapa persamaan sinus.
Dasar teori Fourier:
Ketika sebuah persamaan kontinyu f(t) didefinisikan pada range terbatas, f(t)
merupakan gabungan dari gelombang sinus (sebagai gelombang dasar) dengan
frekuensi 1/T dan gelombang sinus dengan periode kelipatan bilangan bulat dari
frekuensi tersebut

Berdasarkan pada teorema Fourier, gelombang dasar dengan frekuensi angular

sehingga f(t) menjadi :

(1)
48

Setiawardhana, Sigit Wasista, PENS, 2014

Keterangan :
adalah bilangan tetap, yang lainnya adalah bagian vibrasi.

Dengan menggunakan hukum euler, maka persamaan (1) diubah menjadi:


(2)
Sehingga dengan persamaan (2), persamaan (1) dapat ditulis sebagai berikut :

(3)

Persamaan yang digunakan dalam Fourier adalah persamaan yang oleh waktu T. Jika
bergerak dari T ==> -~ menjadi Fourier Transfer.
Dari persamaan (3), kita dapat memperoleh nilai variabel Fourier dari fungsi f(t)
sebagai berikut :
(4)
Jika sisi kanan (tanpa 1/T) dinotasikan sebagai Xn, maka:
(5)
Dengan menggunakan persamaan (5), maka persamaan (3) dapat ditulis menjadi:
... (6)
Persamaan (6) memiliki jarak frekuensi angular yang sama dimana

=0 dan n

adalah bilangan bulat.


Jarak antara masing-masing frekuensi angular adalah

Jika T , 0 nilai batas pada persamaan (6) adalah tergantung pada dan
disimbolkan dengan X ()
(7)

49

Setiawardhana, Sigit Wasista, PENS, 2014

Pengukuran f(t) dimulai dari t=0 dengan rentang waktu t. Data dampling adalah
sejumlah N. Jika persamaan (7) diintegrasikan dari t=0 dengan rentang waktu t,
maka terjadi :

(8)
7.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Pendeteksi Perintah Aksi (normal,dorong, tarik) pada Sinyal Otak Manusia secara
Real-Time.

7.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan beberapa peralatan sebagai
berikut:
1. Komputer Personal
2. USB Wifi Dongle
3. Modul EEG Neuroheadset

7.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 7.2 Diagram proses sistem


50

Setiawardhana, Sigit Wasista, PENS, 2014

7.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Jalankan aplikasi IDE Netbean dengan cara melakukan klik ganda pada desktop atau
startmenu.
2. Untuk membuat project baru. Tekan menu File New Project atau dengan
menggunakan arternatif tombol keyboard Ctrl+Shift+N.
3. Setelah itu pilih jenis project yang akan digunakan. Dalam hal ini pilih Java
Application. Kemudian tekan tombol next untuk melanjutkan ke dialog
berikutnya.
4. Setelah itu, beri nama project Anda, seperti ditunjukkan pada gambar berikut.
Apabila sudah diberi nama, tekan tombol finish untuk memulai membuat program
Anda.
5. Untuk menambahkan form dan editor berbasis GUI pada netbean, maka klik kanan
pada package project Anda, pilih menu New JFrame Form.
6. Setelah itu, Set nama class Anda. Setelah itu tekan tombol Finish untuk
menerapkan frame tersebut pada project Anda.
7. Tambahkan beberapa komponen GUI pada frame Anda, dicontohkan seperti pada
gambar berikut:

Gambar 7.3 Menambahkan komponen pada editor GUI

8. Berikut ini adalah data EEG pasien yang diperoleh dari EEG Neuroheadset melalui
komunikasi wifi.

51

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 7.4 Data RAW EEG (Realtime)

9. Data yang diperoleh tersebut akan dilakukan filter berdasarkan frekuensi spectrum
(FFT). Berikut merupakan hasil transformasi sinyal menggunakan FFT pada channel
AF3.

Gambar 7.5 Spektrum Frekuensi (Realtime)

10. Ambil data amplitudo dari spektrum tersebut pada range frekuensi 13-30 Hz. Hal
ini bertujuan untuk mendapatkan sinyal beta dari data EEG tersebut. Data sinyal beta
tersebut akan digunakan untuk proses training dan mapping pada jaringan syaraf
tiruan.
11. Untuk menerapkan pemrosesan sinyal pada aplikasi Anda. Tambahkan kode
program untuk memproses sinyal EEG yang masuk (FFT, Filter by Freq, PSD).
Berikut merupakan pecahan kode program tersebut:
Tabel 7.1
... //masih banyak lagi
52

Setiawardhana, Sigit Wasista, PENS, 2014

public static float[] PSD_Welch(FloatFFT_1D fft, float


x[], int numberOfSamples, double [] windows, int
segmentSize, int overlap) {
float X[] = new float[segmentSize / 2 + 1];
float xx[] = new float[segmentSize];
float XX[] = new float[segmentSize / 2 + 1];
int segments = 0;
int offset = 0;
while (offset + segmentSize <= numberOfSamples) {
for (int i = 0; i < segmentSize; i++) {
xx[i] = (float) (x[offset + i]* windows[i]);
}
fft.realForward(xx);
for (int i = 0; i <= segmentSize / 2; i++) {
double re = (i == segmentSize / 2) ? xx[1] : xx[2 * i];
double im = (i == 0 || i == segmentSize / 2) ? 0 : xx[2
* i + 1];
double mag = Math.sqrt(Math.pow(re, 2) + Math.pow(im,
2));
XX[i] = (float) (mag / segmentSize);
XX[i] = (float) Math.pow(XX[i], 2);
if (i != 0 || i != segmentSize)
XX[i] = 2 * XX[i];
X[i] += XX[i];
}
segments++;
offset += segmentSize - overlap;
}
for (int i = 0; i <= segmentSize / 2; i++) {
X[i] = X[i] / segments;
}
return X;
}
... //masih banyak lagi
12. Tambahkan kode program untuk melakukan mapping data sinyal yang telah
diproses ke dalam jaringan syaraf tiruan. Berikut merupakan pecahan kode program
tersebut:
Tabel 7.2
...//masih banyak lagi
for(int i=0;i<jml_input;i++){
input[0][i]=data_group_pola_parameter[i];
}
forward(0); //mapping
System.out.println("\n");
for(int i=0;i<jml_output;i++){
System.out.print("Hasilnya :"+output[0][i]+"\n");
53

Setiawardhana, Sigit Wasista, PENS, 2014

}
cek_aksi();
13. Berikut merupakan tampilan running program dari kasus ini:

Gambar 7.6 Tampilan awal program

Gambar 7.7 Aksi Normal Tidak memikirkan aksi dorong dan tarik

Gambar 7.8 MemikirkanAksi Dorong terdeteksi

Gambar 7.9 MemikirkanAksi Tarik terdeteksi


54

Setiawardhana, Sigit Wasista, PENS, 2014

7.4. Penjelasan
Kasus di atas menggunakan konsep semi real-time, dikarenakan apabila terdapat
data yang lost atau noise pada interval yang tidak terlalu besar, sistem masih dapat
mentoleransinya.Namun apabila sinyal untuk aksi (dorong dan tarik) terlalu banyak yang
tidak diterima, dapat mengakibatkan sistem tidak dapat menyimpulkan aksi tersebut
dengan benar, maka secara default sistem akan memberi kesimpulan bahwa sinyal
tersebut termasuk sinyal dengan aksi Normal/Netral.

7.5. Tugas
1. Lanjutkan pengerjaan program yang mengimplementasikan Sistem Semi Real-Time!
(didemokan minggu depan)
2. Buatlah laporan final untuk program Anda !

55

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 8
SISTEM HARD REALTIME PADA ARM 11 PHYTEC PHYCORE
SISTEM PENDINGIN REAKTOR NUKLIR
8.1. Tujuan
1. Mahasiswa dapat mengaplikasikan sistem HardRealTime di Modul RTOS

8.2. Ringkasan Teori


A. Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan
jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan
gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat
mentoleransi keterlambatan tidak lebih dari 100 mikro detik.

Gambar 8.1 Grafik Hard Real-Time

B. Reaktor Nuklir
Pada reactor nuklir terjadi pembangkitan panas yang dihasilkan dari reaksi nuklir
dengan bahan bakar uranium U-235 perbandingannya adalah 1 kg uranium pada
reactor nuklir sama dengan 3000 ton batu bara pada pembangkit lisrik tenaga batu
bara. Jadi apabila melihat dari perbandingan nulir dengan batu bara, dapat dilihat
mana yang lebih baik karena pembangkit listrik tenaga uap dengan batu bara tidak
terlalu banyak resiko dan membutuhkan teknologi canggih, namun penggunaan batu
bara sebenarnya merupakan sebuah pemborosan dan banyak menghasilkan polusi.
Pada reactor nuklir yang dimanfaatkan adalah panas yang dihasilkan oleh reaksi
nuklir tersebut. Pembangkitan panas dapat terjadi dengan berbagai cara yang
merupakan hasil uji coba pada aktivitas inti atom.
56

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 8.2 Reaktor Nuklir

8.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Simulator Pendingin Reaktor Nuklir Fukushima.

8.3.1. Peralatan
Untuk menunjang percobaan pada kasus pertama dibutuhkan beberapa peralatan
sebagai berikut:
1. Komputer Personal (Server)
2. Modul ARM 11 Phytex Phycore

8.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 8.3 Diagram proses sistem


57

Setiawardhana, Sigit Wasista, PENS, 2014

8.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Siapkan Modul ARM 11 Phytec Phycore dan Komputer.
2. Setelah itu buka IDE QT Creator untuk memulai pembuatan project.
3. Buatlah aplikasi simulasi vending machine pada modul ARM Phytec Phycore.
Berikut ini pecahan kode program untuk aplikasi pada modul ARM Phytec.
Tabel 8.1
int datax[4];
bool mulaix=false;
int suhu_reac=0;
int energi=0;
.
.
.
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this,
SLOT(showTime()));
timer->start(14);
showTime();
.
.
.
void telemetering::showTime()
{
if(mulaix==true){
suhu_reac+=1;
}
if(suhu_reac>300){
energi+=1;
}
if(suhu_reac>=630){
suhu_reac-=2;
energi-=2;
}
if(suhu_reac>900){
QMessageBox::critical(this, tr("Alert"),
tr("REACTOR OVERHEAT !!!"));
}
slider->setValue(suhu_reac);
statusBar()->showMessage("Suhu Reac:
"+QString::number(suhu_reac)+" C <=> Energy:
"+QString::number(energi)+" MW");
58

Setiawardhana, Sigit Wasista, PENS, 2014

QTime time = QTime::currentTime();


QString text = time.toString("hh:mm");
if ((time.second() % 2) == 0)
text[2] = ':';

if(waktu<100){
waktu+=1.67;
progress->setValue(waktu);
}
else
waktu=0;
}
4. Berikut merupakan hasil running program dari kasus ini:

Gambar 8.4 Running Program pada Modul ARM 11 Kondisi OFF

59

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 8.5 Running Program pada Modul ARM 11 Kondisi ON

8.4. Penjelasan
Salah satu penerapan hard real-time dalam kehidupan sehari-hari adalah pada sistem
pendingin reaktor nuklir. Dalam hal ini, keterlambatan atau tidak sampainya data tidak
boleh terjadi, karena dapat berakibat reaktor meledak.
Reaktor nuklir dapat meledak dikarenakan beberapa sebab, diantaranya suhu reaktor
yang melebihi suhu maksimal reaktor dikarenakan sistem pendingin tidak bekerja
sebagaimana mestinya.

8.5. Tugas
1. Buatlah program yang mengimplementasikan Sistem Hard Real-Time pada modul
ARM 11 Phytec Phycore ! (Waktu pengerjaan 2 minggu, progress didemokan
minggu depan).
2. Buatlah laporan sementara untuk progress Anda !

60

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 9
SISTEM HARD REALTIME PADA ARM 11 PHYTEC PHYCORE
SISTEM LIFT
9.1. Tujuan
1. Mahasiswa dapat mengaplikasikan sistem HardRealTime di Modul RTOS

9.2. Ringkasan Teori


A. Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan
jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan
gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat
mentoleransi keterlambatan tidak lebih dari 100 mikro detik.

Gambar 9.1 Grafik Hard Real-Time

B. Kontrol Elevator
Lift pada awalnya tidak memiliki posisi pendaratan otomatis. Lift dioperasikan
oleh operator lift menggunakan kontroler motor. Kontroler ini terkandung dalam
wadah silinder tentang ukuran dan bentuk wadah kue dan ini dioperasikan melalui
pegangan memproyeksikan. Hal ini memungkinkan kontrol atas energi yang dipasok
ke motor (terletak di bagian atas poros lift atau di samping bagian bawah poros lift)
dan sebagainya memungkinkan lift yang akan akurat diposisikan jika operator itu
cukup terampil. Lebih biasanya operator harus jogging kontrol untuk mendapatkan
lift yang cukup dekat dengan titik pendaratan dan kemudian mengarahkan penumpang
keluar dan masuk untuk melihat langkah. Beberapa lift barang tua dikendalikan oleh

61

Setiawardhana, Sigit Wasista, PENS, 2014

switch dioperasikan dengan menarik tali yang berdekatan. Keselamatan Interlocks


memastikan bahwa pintu dalam dan luar ditutup sebelum lift diperbolehkan untuk
bergerak. Sebagian besar lift yang dikendalikan secara manual yang lebih tua telah
dipasang dengan kontrol otomatis atau semi-otomatis.
Lift otomatis mulai muncul pada awal 1930-an. Sistem elektromekanis ini
menggunakan sirkuit logika relay untuk mengontrol kecepatan, posisi dan operasi
pintu elevator atau kabin dari lift. Sistem Otis Autotronik dari awal 1950-an
membawa sistem prediksi awal yang dapat mengantisipasi pola lalu lintas dalam
bangunan untuk menyebarkan gerakan lift dengan cara yang paling efisien. Relay
yang dikendalikan sistem lift tetap umum sampai tahun 1980-an, dan penggantian
bertahap sistem ini dengan solid-state kontrol berbasis mikroprosesor yang sekarang
menjadi standar industri lift.

C. Hardwired Circuit
Pada perancangan perangkat keras lift terdapat banyak komponen elektronika
untuk dapat membangun sebuah sistem lift. Komponenkomponen yang dibutuhkan
dalam membangun sistem lift ini dibutuhkan beberapa jenis sensor dan komponen
komponen

elektronika

lainnya.

Berikut

komponen

yang

digunakan

pada

sistemlift serta rangkaian elektronika untuk mengkontrol perangkat keras antara lain :
Kontrol Tombol
Kontrol Driver Motor DC dan Motor DC Gear
Kontrol Penstabil Tegangan (Regulator)
Power On Reset
Kontrol Alarm
Sensor Limit Switch

D. Brake Control
Lift menggabungkan beberapa fitur keamanan untuk mencegah kabin menabrak
bagian bawah shaft. Pengaman diinstal pada kabin bisa mencegah jenis kecelakaan yg
terjadi ketika rem motor gagal atau tali kawat cangkang tiba2 putus Namun, desain
yang melekat pada pengaman kabin dibuat untuk tidak berlaku ke arah atas.
Dalam arah ke atas, rem motor diperlukan untuk menghentikan kabin ketika
kondisi darurat terjadi. Dalam operasi normal, rem motor hanya berfungsi sebagai rem
parkir untuk menahan kabin saat berhenti. Namun, ketika kondisi darurat terdeteksi,
62

Setiawardhana, Sigit Wasista, PENS, 2014

desain kontrol lift sistem moderen hanya mengandalkan rem motor

untuk

menghentikan kabin.

Electrical Braking (Rem pada Motor Electric)


DC injection braking.
Plugging.
Eddy current braking.
Dynamic resistor braking.
Regenerative braking.

Gambar 9.2 Electical Braking

9.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Simulator Kontrol Lift. Aplikasi ini berfungsi untuk mengkontrol pergerakan dari lift
pada suatu gedung. Pergerakan lift harus sesuai dengan alur dan memprioritaskan request
yang terlebih dahulu dari pengguna. Aplikasi ini mengimplementasikan sistem hard
realtime, khususnya untuk informasi beban total di dalam lift yang tidak boleh melebihi
kapasitas maksimal, selain itu juga tentang informasi dari posisi lift dan urutan request
dari pengguna. Apabila beberapa data tersebut terlambat atau tidak diterima sistem, maka
hal yang fatal dapat mengancam keselamatan dari pengguna di dalam lift.

9.3.1. Peralatan
Untuk menunjang percobaan pada kasus pertama dibutuhkan beberapa peralatan
sebagai berikut:
1. Komputer Personal
63

Setiawardhana, Sigit Wasista, PENS, 2014

2. Modul ARM 11 Phytex Phycore

9.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 9.3 Diagram proses sistem

9.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Siapkan Modul ARM 11 Phytec Phycore dan Komputer.
2. Setelah itu buka IDE QT Creator untuk memulai pembuatan project.
3. Buatlah aplikasi simulasi vending machine pada modul ARM Phytec Phycore.
Berikut ini pecahan kode program untuk aplikasi pada modul ARM Phytec.
Tabel 9.1
void Elevator::addOutsideFloor(int floor, bool
btnUpDown)
{
bool isPresent = (std::find(vecFloors.begin(),
vecFloors.end(), floor) != vecFloors.end());
bool isPresentInHold =
(std::find(vecHoldFloors.begin(), vecHoldFloors.end(),
floor) != vecHoldFloors.end());
switch (moveDirection)
{
case true:
if (floor >= curFloor && !isPresent &&
btnUpDown)
64

Setiawardhana, Sigit Wasista, PENS, 2014

vecFloors.push_back(floor);
else
if (!isPresentInHold && (floor < curFloor
|| !btnUpDown))
vecHoldFloors.push_back(floor);
break;
case false:
if (floor <= curFloor && !isPresent &&
!btnUpDown)
vecFloors.push_back(floor);
else
if (!isPresentInHold && (floor > curFloor
|| btnUpDown))
vecHoldFloors.push_back(floor);
}
}
void Elevator::deleteFloor(int floor)
{
vecFloors.erase(std::find(vecFloors.begin(),
vecFloors.end(), floor));
}
int Elevator::getSize()
{
return vecFloors.size();
}
int Elevator::getFloor(int index)
{
return vecFloors[index];
}
int Elevator::getCurFloor()
{
return curFloor;
}
int Elevator::getPrevFloor()
{
return prevFloor;
}
vector<int> Elevator::getFloors()
{
return vecFloors;
}
void Elevator::start()
{
moveDirection = true;
curFloor = 1;
}
65

Setiawardhana, Sigit Wasista, PENS, 2014

void Elevator::setDirection()
{
if (vecFloors.size() < 1)
mergeVectors();
if (moveDirection)
{
if (vecFloors.size() == 1)
if (curFloor >
*std::min_element(vecFloors.begin(),vecFloors.end()))
moveDirection = false;
}
else
{
if (vecFloors.size() == 1)
if (curFloor <
*std::max_element(vecFloors.begin(),vecFloors.end()))
moveDirection = true;
}
}
bool Elevator::move()
{
setDirection();
if (!(vecFloors.empty() && vecHoldFloors.empty()))
{
prevFloor = curFloor;
if (moveDirection)
curFloor++;
else
curFloor--;
return process();
}
}
bool Elevator::process()
{
int intCount = vecFloors.size();
for (int i = 0; i < intCount; i++)
if (vecFloors[i] == curFloor)
return true;
}

66

Setiawardhana, Sigit Wasista, PENS, 2014

4. Berikut merupakan hasil running program dari kasus ini:

Gambar 9.4 Running Program pada Modul ARM 11

Gambar 9.5 Running Program pada Modul ARM 11

9.4. Penjelasan
Salah satu penerapan hard real-time dalam kehidupan sehari-hari adalah pada sistem
pengontrol elevator (lift). Dalam hal ini, keterlambatan sama sekali tidak boleh terjadi,
karena dapat berakibat tidak terkontrolnya pergerakan lift.
67

Setiawardhana, Sigit Wasista, PENS, 2014

Nyawa pengguna yang ada di dalam lift tergantung dari sistem ini, karena jika
sistem tidak dapat merespon tepat waktu, maka dapat menyebabkan hilangnya kontrol
lift yang dapat mengancam korban jiwa, khususnya apabila beban pengguna melebihi
beban maksimum dari lift.

9.5. Tugas
1. Lanjutkan pengerjaan program yang mengimplementasikan Hard Real-Time pada
modul ARM 11 Phytec Phycore ! (didemokan minggu depan)
2. Buatlah laporan final untuk program Anda !

68

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 10
SISTEM SOFT REALTIME PADA ARM 11 PHYTEC PHYCORE
SISTEM TELEMETERING ANGIN
10.1. Tujuan
1. Mahasiswa dapat mengaplikasikan sistem SoftRealTime di Modul RTOS
2. Mahasiswa dapat melakukan komunikasi serial dengan Modul RTOS

10.2. Ringkasan Teori


A. Soft Real-Time
Suatu sistem disebut soft real time jika input yang diberikan tidak berupa variable
vital pada system. Sistem Telemetering ini termasuk soft real time, dikarenakan
apabila data yang dikirimkan oleh AVR dalam keadaan lost, system tidak akan
mengalami gangguan seperti Fatal Error yang mengakibatkan system akan mati.

B. Alat Pengukur Kecepatan Angin


Angin merupakan pergerakan udara yang disebabkan karena adanya perbedaan
tekanan udara di suatu tempat dengan tempat lain. Dengan adanya pergerakan udara
di atmosfer ini maka terjadilah distribusi partikel-partikel di udara, baik partikel
kering (debu, asap, dsb) maupun partikel basah seperti uap air.
Alat-alat yang paling baik untuk mengukur angin (permukaan) adalah Wind Vane
dan Anemometer. Alat-alat pengukur kecepatan angin di bagi dalam 3 bagian :
1. Anemometer Cup dan Vane, alat ini mengukur banyaknya udara yang melalui alat
per satuan waktu.

Gambar 10.1 Anemometer

2. Pressure Tube Anemometer, alat ini bekerja disebabkan oleh tekanan dari aliran
udara yang melalui pipa-pipanya.

69

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 10.2 Pressure Tube Anemometer

3. Pressure Plate Anemometer, lembaran logam tertentu, ditempatkan tegak lupus


angin. Lembaran logam ini akan berputar pada salah satu sisinya sebagai sumbu.
Besar penyimpangan (sudut) menjadi kecepatan angin.

Gambar 10.3 Pressure Plate Anemometer

10.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah sama dengan aplikasi
pada Pertemuan 5. Namun, dalam kasus ini menggunakan modul ARM Phytec
sebagai prosesor data. Sistem tersebut berbasis Soft Real-Time dikarenakan data yang
diterima (data kecepatan angin) tidak akan berpengaruh vital terhadap kinerja sistem
tersebut. Sehingga sistem akan terus berjalan walaupun data tidak diterima.

10.3.1. Peralatan
Untuk menunjang percobaan pada kasus ini dibutuhkan beberapa peralatan
sebagai berikut:
1.

Komputer Personal

2.

Modul ARM 11 Phytec Phycore

3.

Modul Mikrokontroler AVR

4.

Pengukur Kecepatan Angin

5.

Kabel Serial COM (RS-232)

70

Setiawardhana, Sigit Wasista, PENS, 2014

10.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 10.4 Diagram proses sistem

10.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Siapkan modul mikrokontroler AVR. Dalam kasus ini menggunakan modul AVR
AT Mega 16.
2. Tambahkan komponen motor rotary (digunakan sebagai kincir angin) pada modul
mikrokontroler AVR. Hubungkan pada timer 2. Tambahkan pengaturan berikut
pada editor program Anda.
Tabel 10.1
TCCR2=0x07;
TCNT2=0x8A;OCR2=0x00;
MCUCR=0x00;MCUCSR=0x00;
TIMSK=0x40;
3. Setelah itu tambahkan kode program berikut pada timer 2 interrupt sehingga dapat
digunakan untuk membaca data motor.
Tabel 10.2
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
TCNT2=0x8A;
loop++;
71

Setiawardhana, Sigit Wasista, PENS, 2014

loop_menit++;
if (loop>=100 {
loop=0;
d1=data_motor1;
d2=data_motor2;
d_a=data_motor1*0.6;
d_b=data_motor2*0.6;
tampung_data1=tampung_data1+data_motor1;
tampung_data2=tampung_data2+data_motor2;
RPM1[RPMn1]=d_a;
RPM2[RPMn2]=d_b; RPMn1++;RPMn2++;
set_tmp=0;
}
if(loop_menit>=500){
loop_menit=0;
for(i=0;i<5;i++){
RPMx=RPMx+RPM1[i];
RPMy=RPMy+RPM2[i];
}
RPMx=RPMx/5;
RPMy=RPMy/5;
printf("M1:%dM2:%dRPM1:%0.2fRPM2:%0.2f"
,tampung_data1,tampung_data2,RPMx,RPMy);
tampung_data1=0;
tampung_data2=0;
RPMn1=0;
RPMn2=0;
RPMx=0;
RPMy=0;
}
}
4. Hubungkan port Serial (RS232) Mikrokontroler AVR dengan Port Serial Modul
ARM 11 Phytec Phycore menggunakan kabel serial.
5. Jalankan aplikasi IDE QT Creator untuk membuat project baru. Buatlah aplikasi
untuk menampilkan data serial pada modul ARM Phytec Phycore. Berikut ini
pecahan kode program untuk aplikasi pada modul ARM Phytec.
Tabel 10.3
static struct termio oterm_attr;
CSerialPort::CSerialPort( char* szDevName, int
nBaudRate,
int nDataBit, int nStopBits, char cParity )
{
m_hDev = open( szDevName, O_RDWR );//| O_NOCTTY |
O_NDELAY );}
CSerialPort::~CSerialPort()
{if( -1 != m_hDev ) close( m_hDev );}
ushort CSerialPort::BinarySearch( ushort match )
{
int nCount = sizeof( unicode_gb_table ) / sizeof(
UNICODE_GB_TABLE );
72

Setiawardhana, Sigit Wasista, PENS, 2014

int left = 0; int right = nCount - 1;


int nMiddle = 0;
while( left <= right )
{
nMiddle = ( left + right ) / 2;
if( match == unicode_gb_table[ nMiddle ].unicode
)
return unicode_gb_table[ nMiddle ].gb2312;
else {
if( match >unicode_gb_table[ nMiddle ].unicode )
left = nMiddle + 1;
else right = nMiddle - 1;
}}
return 0;
}
...//masih banyak lagi
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this,
SLOT(showTime()));
timer->start(14);
showTime();
...//masih banyak lagi
QString coba;
coba=""+display->text();//+"\n";
QString get_data;
get_data=getwchar();
daftar_data->append(""+get_data);
if(coba!=""){
CSerialPort("/dev/ttyS0",115200,8,1,'n');//.WriteData(
coba);
puts(coba.toAscii());
daftar_data->append("Me: "+coba.toAscii());
}
display->clear();
..//masih banyak lagi
6. Berikut merupakan hasil running program dari kasus ini:

73

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 10.5 Running Program pada Mikrokontroler AVR

Gambar 10.6 Running Program pada Modul ARM (Read Serial)

10.4. Penjelasan
Simulasi kincir angin menggunakan sebuah motor rotary, motor tersebut diputar
secara manual sehingga didapatakan sebuah data. Kelemahan dari penggunaan motor
rotary ini adalah bahwa arah perputaran tidak dapat dibedakan, kerena setiap kali
motor diputar entah ke kiri atau ke kanan, rotary akan tetap menghasilkan data sebesar
1,pada setiap lubang, pada rotary. Kemudian Setelah itu dta diserialkan secara cross
untuk device yang sama dan straight untuk device yang berbeda.

74

Setiawardhana, Sigit Wasista, PENS, 2014

10.5. Tugas
1. Buatlah program yang mengimplementasikan Sistem Soft Real-Time pada modul
ARM 11 Phytec Phycore !(Waktu pengerjaan 2 minggu, progress didemokan
minggu depan).
2. Buatlah laporan sementara untuk progress Anda !

75

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 11
SISTEM SOFT REALTIME PADA ARM 11 PHYTEC PHYCORE
VENDING MACHINE
11.1. Tujuan
1. Mahasiswa dapat mengaplikasikan sistem SoftRealTime di Modul RTOS
2. Mahasiswa dapat lebih mendalami sistem Soft RealTime

11.2. Ringkasan Teori


A. Soft Real-Time
Komputasi soft real-time memiliki sedikit kelonggaran. Dalam sistem ini, proses
yang kritis menerima prioritas lebih daripada yang lain. Walaupun menambah fungsi
soft real-time ke sistem time sharing mungkin akan mengakibatkan ketidakadilan
pembagian sumber daya dan mengakibatkan delay yang lebih lama, atau mungkin
menyebabkan starvation, hasilnya adalah tujuan secara umum sistem yang dapat
mendukung multimedia, grafik berkecepatan tinggi, dan variasi tugas yang tidak dapat
diterima di lingkungan yang tidak mendukung komputasi soft real-time.

B. Vending Machine
Dunia modern saat ini kemudahan dan efisiensi tenaga serta waktu menjadi
pertimbangan utama manusia dalam melakukan aktivias. Manusia selalu ingin dalam
kemudahan dan tidak puas terhadap suatu produk khususnya dalam hal pelayanan.
Pelayanan terhadap sesuatu yang menjadi kebutuhan pokok saat ini merupakan hal
yang sangat penting bagi manusia, untuk itu diciptakanlah sebuah alat yang dapat
melayani kebutuhan manusia dan dapat diakses kapan saja selama 24 jam disebut
vending machine.
Vending machine ini dibuat untuk menyediakan produk minuman ringan karena
minuman sangat dibutuhkan oleh semua orang dimanapun saat merasa haus. Alat ini
dibangun pada arsitektur prosesor MCIMX31 dengan core prosesor ARM11 yang
fleksibel dan efisien untuk menerapkan sistem embedded. Prosesor ini terdapat pada
modul phyCORE-i.MX31 yang menyediakan beberapa device yang sama dengan
device yang disediakan oleh personal computer, sehingga pengguna bisa
mengembangkan sistem pada modul sama halnya pada personal computer. Pembuatan
76

Setiawardhana, Sigit Wasista, PENS, 2014

vending machine ini menggunakan IDE yang disebut QT Creator. IDE ini merupakan
tempat kita gunakan untuk membuat program aplikasi vending machine.

Gambar 11.1 Vending Machine

11.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Vending Machine. Aplikasi program yang dibuat adalah, ketika seseorang
memasukkan koin dan memilih menu yang ada dalam daftar menu dengan menekan
tombol yang tertera pada interface, selanjutnya mesin akan melakukan perhitungan
berapa banyak koin yang masuk dan memproses sesuai yang dipesan oleh orang
tersebut.

11.3.1. Peralatan
Untuk menunjang percobaan pada kasus pertama dibutuhkan beberapa peralatan
sebagai berikut:
1.

Komputer Personal

2.

Modul ARM 11 Phytex Phycore

77

Setiawardhana, Sigit Wasista, PENS, 2014

11.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 11.2 Diagram proses sistem

11.3.3. Pembuatan Sistem


Berikut merupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Siapkan Modul ARM 11 Phytec Phycore dan Komputer.
2. Setelah itu buka IDE QT Creator untuk memulai pembuatan project.
3. Buatlah aplikasi simulasi vending machine pada modul ARM Phytec Phycore.
Berikut ini pecahan kode program untuk aplikasi pada modul ARM Phytec.
Tabel 11.1
void Vending::uangact1()
{
uang1->setEnabled(false);
koin+=500;
welcome->setText("Uang Anda : " +
QString::number(koin));
uang1->setEnabled(true);
}
void Vending::uangact2()
{
uang2->setEnabled(false);
koin+=1000;
welcome->setText("Uang Anda : " +
QString::number(koin));
uang2->setEnabled(true);
78

Setiawardhana, Sigit Wasista, PENS, 2014

}
void Vending::uangact3()
{
uang3->setEnabled(false);
koin+=2000;
welcome->setText("Uang Anda : " +
QString::number(koin));
uang3->setEnabled(true);
}
void Vending::aksiact1()
{
if (!menu1->isEnabled())
harga=2000;
else if (!menu2->isEnabled())
harga=2500;
else if (!menu3->isEnabled())
harga=3000;
else if (!menu4->isEnabled())
harga=3500;
else if (!menu5->isEnabled())
harga=4000;
if(koin>harga)
{
aksi1->setEnabled(false);
kembali=koin-harga;
koin=kembali;
if (!menu1->isEnabled())
welcome->setText(tr("Selamat Menikmati,
Air Mineral"));
else if (!menu2->isEnabled())
welcome->setText(tr("Selamat Menikmati,
Teh"));
else if (!menu3->isEnabled())
welcome->setText(tr("Selamat Menikmati,
Cola"));
else if (!menu4->isEnabled())
welcome->setText(tr("Selamat Menikmati,
Jus"));
else if (!menu5->isEnabled())
welcome->setText(tr("Selamat Menikmati,
Susu"));
else
{
QMessageBox::StandardButton reply;
reply =
QMessageBox::information(this,tr("quote"),MESSAGE7);
aksi1->setEnabled(true);
flag=false;
79

Setiawardhana, Sigit Wasista, PENS, 2014

}
if (flag==true)
{
QMessageBox::StandardButton reply;
reply =
QMessageBox::information(this,tr("quote"),MESSAGE4 +
QString::number(kembali));
aksi1->setEnabled(false);
welcome->setText(tr("
==*==
Vending Machine ::. ==*== "));
aksi1->setEnabled(true);

.::

koin=0;
harga=0;
kembali=0;
kurang=0;
flag=false;
}
}
else if(koin<harga)
{
aksi1->setEnabled(false);
kurang=harga-koin;
welcome->setText(QString::number(kurang));
QMessageBox::StandardButton reply;
reply =
QMessageBox::information(this,tr("quote"),MESSAGE3 +
QString::number(kurang));
aksi1->setEnabled(true);
}
else
{
if (!menu1->isEnabled())
welcome->setText(tr("Selamat
Air Mineral"));
else if (!menu2->isEnabled())
welcome->setText(tr("Selamat
Teh"));
else if (!menu3->isEnabled())
welcome->setText(tr("Selamat
Cola"));
else if (!menu4->isEnabled())
welcome->setText(tr("Selamat
Jus"));
else if (!menu5->isEnabled())
welcome->setText(tr("Selamat
Susu"));
else

Menikmati,

Menikmati,

Menikmati,

Menikmati,

Menikmati,

80

Setiawardhana, Sigit Wasista, PENS, 2014

{
QMessageBox::StandardButton reply;
reply =
QMessageBox::information(this,tr("quote"),MESSAGE7);
aksi1->setEnabled(true);
flag=false;
}
if (flag==true)
{
aksi1->setEnabled(false);
QMessageBox::StandardButton reply;
reply =
QMessageBox::information(this,tr("Selesai"), MESSAGE2
+ MESSAGE5);
//aksi1->setEnabled(true);
aksi2->setEnabled(true);
aksi1->setEnabled(false);
welcome->setText(tr("
==*==
Vending Machine ::. ==*== "));
aksi1->setEnabled(true);

.::

koin=0;
harga=0;
kembali=0;
kurang=0;
flag=false;
}
}
}
4. Berikut merupakan hasil running program dari kasus ini:

Gambar 11.3 Running Program pada Modul ARM 11


81

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 11.4 Running Program pada Modul ARM 11

11.4. Penjelasan
Sistem ini mengadopsi metode soft real time, sehingga pada saat terdapat hal
yang tidak sesuai dengan prosedur proses sistem ini masih dapat mentoleransi
kesalahan tersebut dan memiliki kondisi lain untuk menyelesaikan persoalan tersebut.
Output alat ini berupa produk minuman ringan yang dipesan oleh pelanggan.

Gambar 11.5 FSM Diagram


82

Setiawardhana, Sigit Wasista, PENS, 2014

Pada state ini, misalnya kita memilih pilihan1 yaitu air dan uang kita pas maka akan
tampil Water Purchased, tetapi jika uang kita lebih maka kembalian akan langsung
tampil pada state tersebut, dan jika uang kita kurang maka state akan gagal, dan apabila
kita menekan tombol cancel maka akan kembali ke menu utama.
Prioritas utama diberikan

kepada

Tombol Cancel,

sehingga

user dapat

menggagalkan dimana saja user untuk membatalkan transakasi. Selanjutnya prioritas


akan diberikan sesuai kebutuhan

11.5. Tugas
1. Lanjutkan pengerjaan program yang mengimplementasikan Soft Real-Time pada
modul ARM 11 Phytec Phycore ! (didemokan minggu depan)
2. Buatlah laporan final untuk program Anda !

83

Setiawardhana, Sigit Wasista, PENS, 2014

PERTEMUAN 12
SISTEM SEMI REALTIME PADA ARM 11 PHYTEC PHYCORE
SISTEM TRACKING BOLA
12.1. Tujuan
1. Mahasiswa dapat mengaplikasikan sistem SemiRealTime di Modul RTOS
2. Mahasiswa dapat menerapkan pengolahan citra pada Modul RTOS

12.2. Ringkasan Teori


A. Pengolahan Citra Digital
Citra merupakan representasi dua dimensi dari bentuk fisik nyata 3 dimensi,
yang mana perwujudannya bisa bermacam-macam. Mulai dari gambar hitam putih
pada sebuah foto yang tidak bergerak sampai pada gambar berwarna yang bergerak
pada sebuah pesawat televisi. Pada proses transformasi yang menghasilkan citra dari
bentuk tiga dimensi ke bentuk dua dimensi akan dipengaruhi oleh bermacam-macam
faktor yang mengakibatkan penampilan citra suatu benda tidak identik dengan
bentuk fisik nyatanya. Faktor-faktor tersebut merupakan efek degradasi atau
penurunan kualitas yang dapat berupa rentang kontras benda yang terlalu sempit
atau terlalu lebar, distorsi geometri (geometric distortion), kekaburan (blur),
kekaburan akibat obyek citra yang bergerak (motion blur), noise atau gangguan yang
disebabkan oleh interferensi peralatan pembuat citra, baik itu berupa tranduser,
peralatan elektronik ataupun peralatan optik.
Proses pengolahan citra digital menggunakan komputer digital adalah terlebih
dahulu mentransformasikan citra kedalam bentuk besaran-besaran diskrit dari nilai
tingkat keabuan pada titik-titik elemen citra. Bentuk citra ini disebut citra digital.
Elemen-elemen citra digital apabila ditampilkan dalam layar monitor akan
menempati sebuah ruang yang disebut dengan pixel (picture elemen / pixel). Teknik
dan proses untuk mengurangi atau menghilangkan efek degradasi pada citra digital
meliputi perbaikan citra (image enhancement), restorasi citra (image restoration),
dan transformasi spasial (spatial transformation). Subyek lain dari pengolahan citra
digital diantaranya adalah pengkodean citra (image coding), segementasi citra
(image segmentation), representasi dan deskripsi citra (image representation and
description).
84

Setiawardhana, Sigit Wasista, PENS, 2014

Pengolahan citra digital memiliki banyak aplikasi seperti pada bidang


penginderaan jarak jauh, robotika, pengenalan dan pendeteksian, biomedis,
keamanan, dan sebagainya. Pada proyek akhir ini pengolahan citra digital
dikembangkan pada platform phyCORE-i.MX31.

B. Threshold
Thresholding adalah suatu proses yang digunakan untuk menghasilkan citra
biner yaitu citra dengan hanya dua warna, yaitu: hitam dan putih. Operator ini
memilih piksel yang memiliki nilai tertentu, atau lingkup tertentu. Proses ini dapat
dilakukan apabila kita telah mengetahui brightness level (atau contrast) dari gambar
tersebut. Bentuk teknik Thresholding ada 2 macam, yaitu: Uniform Thresholding
dan Adaptive Thresholding. Didalam uniformthresholding metode yang digunakan
adalah dengan menentukan suatu batas level, yang nantinya akan dipergunakan
untuk menentukan warna piksel.
Piksel yang levelnya lebih dari threshold level akan dirubah menjadi putih, dan
sebaliknya piksel yang levelnya ada di bawah dari level threshold akan dirubah
menjadi hitam. Seperti yang ditampilkan pada gambar sebelah kiri berikut
merupakan gambar original dan gambar sebelah kanan adalah hasil thresholding.

Gambar 12.1 Thresholding


C. Euclidean Distance
Dalam matematika, euclidean distance atau jarak antara dua titik yang dapat
diukur dan dihasilkan oleh formula pytagoras. Euclidean vector atau sering disebut
dengan vector adalah obyek geometri yang memiliki panjang (magnitude) dan arah
(direction). Sedangkan ruang vektor adalah sebuah struktur matematika yang
dibentuk oleh sekumpulan vektor. Vektor-vektor tersebut dapat ditambahkan,
dikalikan dengan bilangan real dan lain-lain.

85

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 12.2 Ruang vektor dua dimensi

12.3. Percobaan
Pada percobaan ini, topik atau kasus yang digunakan adalah mengenai aplikasi
Sistem penjejakan bola dengan kamera webcam sebagai sensor untuk
pengenalan dan pendeteksian bola. Sistem dibuat dan dijalankan pada arsitektur
prosesor MCIMX31 yang berbasis keluarga inti prosesor ARM11/ARM1136JF-S
produksi Freescale Semiconductor. Platform yang menggunakan prosesor ini adalah
phyCORE-i.MX31 yang diproduksi PHYTEC Amerika

12.3.1. Peralatan
Untuk menunjang percobaan pada kasus pertama dibutuhkan beberapa peralatan
sebagai berikut:
1.

Komputer Personal

2.

Web Camera

3.

Modul ARM 11 Phytex Phycore

86

Setiawardhana, Sigit Wasista, PENS, 2014

12.3.2. Diagram Sistem


Berikut ini adalah diagram proses dari sistem ini:

Gambar 12.3 Diagram proses sistem

12.3.3. Pembuatan Sistem


Adapun beberapa persiapan yang harus dilakukan sebelum membuat sistem
penjejak bola antara lain, mempersiapkan komputer sebagai host untuk melakukan
pengembangan pada phyCORE-i.MX31, instalasi dan konfigurasi paket-paket
software yang dibutuhkan untuk pengembangan, termasuk OpenCV-1.0 yang
memerlukan konfigurasi khusus agar bisa berfungsi dengan baik pada komputer host
dan tentu saja phyCORE-i.MX31 pada khususnya, dll.
Berikutmerupakan ringkasan dari langkah-langkah dalam proses pembuatan
sistem ini:
1. Pasang USB Web Cam pada PIN USB Modul ARM 11 Phytec Phycore.
2. Lakukan instalasi driver USB Web Cam pada Modul ARM 11 Phytec Phycore
3. Siapkan kernel untuk men-support pembacaan data Web Cam. Benamkan kernel
tersebut pada Modul ARM 11 Phytec Phycore.
4. Jalankan aplikasi IDE QT Creator.
5. Setelah itu buatlah suatu class untuk membaca data Web Camera pada modul
ARM Phytec Phycore. Berikut ini pecahan kode program untuk aplikasi pada
modul ARM Phytec.
87

Setiawardhana, Sigit Wasista, PENS, 2014

Tabel 12.1
#include "MyCameraWindow.h"
#include <stdio.h>
#include <math.h>
MyCameraWindow::MyCameraWindow(CvCapture *cam, QWidget
*parent) : QWidget(parent) {
camera = cam;
QVBoxLayout *layout = new QVBoxLayout;
cvwidget = new QOpenCVWidget(this);
layout->addWidget(cvwidget);
setLayout(layout);
resize(100, 100);
startTimer(10);

// 0.01-s

}
void MyCameraWindow::timerEvent(QTimerEvent*) {
IplImage *image2=cvQueryFrame(camera);
IplImage*
image=cvCreateImage(cvSize(240,180),IPL_DEPTH_8U, 3);
cvResize(image2,image,CV_INTER_LINEAR);
cvwidget->putImage(image);
}

6. Setelah itu buatlah suatu class untuk menampilkan widget dan mendeteksi adanya
bola. Berikut ini pecahan kode program untuk aplikasi pada modul ARM Phytec.
Tabel 12.2
void QOpenCVWidget::putImage(IplImage *cvimage) {
int miny,maxy,minx,maxx;
int red,green,blue;
int reds,greens,blues;
float t=0;
float x,y,z;
struct timeval time1, time2;
char pos[100];
QString Qtpos;
CvSeq* circles;
CvMemStorage *storage = cvCreateMemStorage(0);
IplImage *biner =
cvCreateImage(cvSize(100,75),IPL_DEPTH_8U,3);
cvResize(cvimage,biner,CV_INTER_LINEAR);
.
.
.
circles = cvHoughCircles( cvimage2, storage,
CV_HOUGH_GRADIENT, 1, cvimage2->height/4, 100, 40, 5,
88

Setiawardhana, Sigit Wasista, PENS, 2014

240);
for (int i=0; i<circles->total; i++){
float *p =
(float*)cvGetSeqElem(circles,i);
cvCircle(paint,cvPoint(cvRound(p[0]),cvRound(p[1])),3,
CV_RGB(0,255,0),-1,8,0);
cvCircle(paint,cvPoint(cvRound(p[0]),cvRound(p[1])),cv
Round(p[2]),CV_RGB(255,0,0),3,8,0);
x=p[0]; y=p[1]; z=p[2];
}
gettimeofday(&time2,NULL);
t = ((time2.tv_sectime1.tv_sec)*1e6+time2.tv_usectime1.tv_usec)/1000.0f;
printf("Draw circle-> Bola x=%f y=%f r=%f
fr=%f\n", x,y,z,t);
sprintf(pos,"X=%.1f \nY=%.1f \nr=%.2f
\nFT=%.2f ms", x,y,z,t);
Qtpos=pos;
ballposlabel->setText(Qtpos);
if ((paint->width != image.width()) || (paint>height != image.height())){
QImage temp(paint->width, paint->height,
QImage::Format_RGB32);
image = temp;
}
for (int i=0;i<paint->height;i++){
unsigned char R,G,B;
for (int j=0;j<paint->width;j++){
R = paint->imageData[i*paint>widthStep+j*paint->nChannels+2];
G = paint->imageData[i*paint>widthStep+j*paint->nChannels+1];
B = paint->imageData[i*paint>widthStep+j*paint->nChannels+0];
image.setPixel(j, i, qRgb(R,G,B));
}
}
7. Berikut merupakan hasil running program dari kasus ini:

89

Setiawardhana, Sigit Wasista, PENS, 2014

Gambar 12.4 Running program pada Modul ARM 11 Phytec

Gambar 12.5Program mendeteksi adanya bola

12.4. Penjelasan
Dari data hasil pengujian kestabilan sistem terhadap perubahan jarak
pengambilan gambar serta pengaruh cahaya dapat dilihat bahwa sistem akan stabil
dalam mendeteksi bola pada jarak dan intensitas cahaya tertentu. Misalnya pada
pengujian malam hari, sumber cahaya hanya didapatkan dari lampu penerangan yang
ada pada ruangan tempat pengujian, yaitu beberapa lampu neon dengan daya 40 Watt

90

Setiawardhana, Sigit Wasista, PENS, 2014

dan tegangan 220 V yang dikontrol dengan tiga buah saklar. Pada pengujian malam
hari ini terlihat bahwa dengan jarak paling minimal yaitu 2 cm, sistem masih mampu
mendeteksi bola, namun hanya pada beberapa kondisi pencahayaan, yaitu ketika
saklar 2 dan 3 diaktifkan, serta saklar 1 dan 3 diaktifkan, pada kondisi pencahayaan
ini memberikan hasil threshold yang cukup bagus, sehingga bola dapat dideteksi oleh
sistem.
Pada jarak ini terlihat bahwa radius lingkaran ynag didapat paling maksimal
adalah 92 piksel. Pada program, radius maksimal lingkaran yang dideteksi oleh sistem
diatur sebesar 240 piksel, jadi sistem sebenarnya masih mampu mengenali bola
orange dengan jarak kurang dari 2 cm, namun resolusi yang disediakan oleh LCD
phyCORE-i.MX31yaitu hanya sebesar 240x180 piksel (resolusi frame yang
ditampilkan pada LCD) dan jika bola semakin dekat dengan kamera dapat
memberikan hasil thresholding yang buruk, sehingga jarak paling minimum bola
dapat dideteksi sistem adalah 2 cm, kurang dari 2 cm, bola tidak bisa dideteksi oleh
sistem.
Pada pengujian malam hari ini juga dapat diketahui jarak maksimum system
dapat mengenali bola, terlihat bahwa pada jarak 40 cm dan selebihnya dengan kondisi
pencahayaan yang diubah-ubah, sistem tidak dapat mendeteksi bola sama sekali.
Untuk memastikan apakah jarak ini merupakan jarak maksimal, maka dilakukan
pengujian terhadap latar belakang obyek bola pada jarak ini. Obyek bola diberi latar
belakang biru, dan ternyata bola masih bisa dideteksi oleh sistem pada kondisi
pencahayaan saklar 2 dan 3 aktif, saklar 1 dan 2 aktif, serta semua lampu menyala.
Selanjutnya dilakukan pengujian lagi dengan latar belakang yang sama, namun
jarak menjadi 50 cm, pada jarak ini sistem hanya mampu mendeteksi bola pada
kondisi cahaya lampu menyala semua. Selebihnya dari jarak 50 cm, system tidak
dapat mendeteksi bola, jadi jarak maksimum bola dapat dideteksi sistem adalah 50
cm. Pengujian juga dilakukan pada siang hari dengan sistem pengujian yang sama
seperti malam hari. Berbeda dengan malam hari, pada siang hari sistem mendapat
pengaruh cahaya dari luar ruangan pengujian. Pada kondisi ini, sistem tidak bisa
mendeteksi bola pada jarak kurang dari atau sama dengan 2 cm, hal ini karena
banyaknya intensitas cahaya yang mempengaruhi hasil thresholding sistem.
Semakin banyaknya intensitas cahaya menyebabkan hasil thres-holding yang
buruk. Namun sistem masih dapat mendeteksi bola pada jarak 50 cm, tanpa harus

91

Setiawardhana, Sigit Wasista, PENS, 2014

menambahkan latar belakang polos ke obyek untuk memperjelas hasil thresholding.


Lebih dari 50 cm, bola tidak dapat dideteksi lagi oleh sistem.
12.5. Tugas
1. Lakukan setting komputer dan kernel Phytec Phycore sehingga mampu
digunakan untuk pengolahan citra.
2. Buatlah program yang mengimplementasikan Sistem Semi Real-Time pada
modul ARM 11 Phytec Phycore (Waktu pengerjaan 2 minggu, progress
didemokan minggu depan, demo final setelah UAS).
3. Buatlah laporan resmi untuk project Anda !

92

Setiawardhana, Sigit Wasista, PENS, 2014

DAFTAR PUSTAKA
[1] Adhan Yulyandri, Sistem Penjejakan Bola Menggunakan Webcam Berbasis Prosesor
Arm11, Jurusan Teknik Komputer Politeknik Elektronika Negeri Surabaya Institut
Teknologi Sepuluh Nopember Surabaya 2011.
[2] Ahmad Reza Musthafa. 2013,AT-iNEC - Sistem Kontrol Simulasi Mobil 3D dan Sistem
Komunikasi SMS menggunakan EEG, Altraz Technology.
[3] Sistem Penentuan Lokasi Kendaraan Menggunakan Gps Dengan Pemanfaatan Sms
Sebagai Komunikasi Data Oleh: Irawan Kholfanani Nrp. 7107 040 013
[4] QuickStart Instructions Linux-Kit phyCORE-i.MX31
[5] Setiyawan, Tri Budhi. 2005. Tugas Akhir: Rancang Bangun Eelctroencephalograph
Berbasis Mikrokontroller. Surabaya. PENS-ITS
[6] L.I. Aftanas, N.V. Reva, A.A Varlamov, S.V. Pavlov, and V.P. Makhnev. Analysis of
evoked EEG synchronization and desynchronization in conditions of emotional
activation in humans: Temporal and topographic characteristics. Neuroscience and
Behavioral Physiology, 34(8):859867, 2004.
[7] Moch. Arifin,Kontrol Mobile Robot Berbasis Sinyal EEG : Pemrosesan Sinyal EEG
sebagai Aktuator, Proyek Akhir Politeknik Elektronika Negeri Surabaya, 2007.
[8] C.M. Krishna, Kang G. Shin ( 1997 ), Real-time Systems, Mc Graw Hill Book Company.
[9] Sri Kusuma Dewi ( 2003 ), Artificial Intelligence, Yogyakarta : Graha Ilmu.

93

Setiawardhana, Sigit Wasista, PENS, 2014

LAMPIRAN
MODUL WORKSHOP
A. Arsitektur prosesor MCIMX31

Gambar 13.1 Arsitektur prosesor MCIMX31

94

Anda mungkin juga menyukai