Minggu, 25 Oktober 2015

Proyek Akhir Peminatan Embedded System

Judul : PENERAPAN REAL TIME OPERATING SYSTEMS (RTOS) PADA MIKROKONTROLER AVR 

Fitur : RTOS

Perancangan Sistem :
Perancangan Perangkat Keras
Perangkat keras pada tugas akhir ini hanya untuk mengetes secara nyata cara kerja dari sistem real time yang dirancang. Karena jika tanpa perangkat keras maka tidak relevan antara teori dan kenyataan. Dalam perancangan perangkat keras dalam tugas akhir ini meliputi modul sistem minimum ATmega128L, modul LED dan push button dan LCD. Secara umum perancangan sistem dapat dilihat pada gambar 3.1. 


Gambar Blok diagram sistem

Tiap-tiap bagian blok dari diagram blok tersebut dapat dijelaskan sebagai berikut: 
  1. Modul push button berfungsi sebagai masukkan untuk MCU. Masukkan tersebut bisa berupa interrupt untuk sistem, event untuk sebuah task.
  2. Modul LED berfungsi sebagai keluaran di mana nantinya akan dilihat task yang berjalan atau jika terdapat sebuah event yang terjadi.
  3. Modul LCD berfungsi untuk melihat task berapa yang sedang berjalan dan tingkat prioritas dari task tersebut.
  4. Modul sistem minimum ATmega128L merupakan MCU di mana sistem real time akan ditanamkan. Dan semua proses kernel terjadi di dalam modul ini.
  5. Modul k125 merupakan modul 3 in 1 di mana selain dapat untuk memprogram MCU, modul ini juga dapat berfungsi sebagai catu daya dan penghubung koneksi serial antara MCU dengan laptop.
  6. Laptop berfungsi untuk melihat hasil pengiriman data serial dari MCU.


Perancangan Perangkat Lunak
Sistem yang dibuat pada tugas akhir ini, hanya berupa pembuktian dan penjelasan dari beberapa fungsi dan yang terdapat pada ChibiOS. Sistem ini akan terdiri dari empat buah task dengan prioritas yang berbeda dan pada saat berjalan nantinya prioritas dari keempat task tersebut akan dapat berubah prioritas dan dari sini dapat dilihat respons sistem terhadap tingkat prioritas. Selain itu juga terdapat penggunaan semaphore, yang biasanya dipergunakan pada saat ada dua task atau lebih ingin mengakses sebuah hardware Untuk membuat sistem seperti yang dijelaskan sebelumnya, pada tugas akhir ini digunakan diagram pendekatan berupa diagram fungsional.


Gambar Context diagram  dari sistem

Main task sendiri merupakan perubahan dari fungsi main pada senarai program. Setelah proses inisialisasi pada fungsi main  selesai maka fungsi main akan berubah menjadi main task dengan prioritas normal dengan keadaan current running state. Task 1 mempunyai fungsi untuk komunikasi serial. Nilai pada port B akan dimasukkan ke dalam serial buffer dan selanjutnya akan diproses untuk dilanjutkan pengiriman menuju komputer. Sehingga nilai dan keadaan pada port B akan dapat dimonitor. 

Gambar Diagram alir data sistem level 1

Untuk task 2, task 3 dan task 4 akan menghasilkan keluaran untuk port B yang selanjutnya akan diteruskan ke dalam modul LED sehingga perubahan nilai pada port B bisa diamati. Pada task 2 keluaran yang dihasilkan akan melakukan penjumlahan bilangan hexadecimal secara bertahap dari nilai 0x00 hingga nilai 0xFF. Sehingga pada LED yang muncul adalah penjumlahan bilangan biner dari awal hingga akhir dan proses tersebut akan terus berulang hingga task mendapat semaphore, di reset atau ada task yang lebih tinggi prioritasnya. Keluaran dari task 3 akan membuat LED menyala satu persatu dari bit rendah hingga bit tertinggi dan akhirnya menyalakan semua LED. Dan apabila semua LED telah menyala maka proses selanjutnya merupakan kebalikan dari menyalakan LED yaitu mematikan LED satu persatu dari bit terendah hingga bit tertinggi sampai semua LED mati.  Sedangkan pada task 4, keluarannya berupa penjumlahan dan pengurangan nilai pada port LED. Sehingga pada LED akan memunculkan nyala LED secara acak secara terus menerus.

Mikrokontroler


Pengertian Mikrokntroler

Mikrokontroler adalah sebuah chip terintegrasi yang biasanya menjadi bagian dari sebuah embedded system (sistem yang didesain untuk melakukan satu atau lebih fungsi khusus yang real time). Mikrokontroler terdiri dari CPU, Memory, I/O port dan timer seperti sebuah komputer standar, tetapi karena didesain hanya untuk menjalankan satu fungsi yang spesifik dalam mengatur sebuah sistem, mikrokontroler ini bentuknya sangat kecil dan sederhana dan mencakup semua fungsi yang diperlukan pada sebuah chip tunggal.

Mikrokontroler berbeda dengan mikroprocesor, yang merupakan sebuah chip untuk tujuan umum yang digunakan untuk membuat sebuah komputer multi fungsi atau perangkat yang membutuhkan beberapa chip untuk menangani berbagai tugas. Mikrokontroler dimaksudkan untuk menjadi mandiri dan independen, dan berfungsi sebagai komputer khusus yang kecil.
Keuntungan besar dari mikrokontroler dibandingkan dengan menggunakan mikroprosesor yang lebih besar, adalah bahwa jumlah komponen dan biaya desain dari item yang dikendalikan dapat ditekan seminimum mungkin. Mikrokontroler biasanya didesain menggunakan teknologi CMOS (Complemantary Metal Oxide Semiconductor), sebuah teknologi pembuatan chip terintegrasi (IC) efisien yang menggunakan daya kecil dan lebih kebal terhadap lonjakan listrik dibandingkan teknik yang lain.

Ada beberapa arsitektur yang digunakan, tetapi yang dominan adalah CISC (Complex Instruction Set Computer), yang memungkinkan mikrokontroler untuk memiliki banyak instruksi pengaturan yang dapat dijalankan dengan sebuah instruksi makro. Beberapa menggunakan arsitektur RISC (Reduced Instruction Set Computer), yang menggunakan sedikit instruksi, tetapi memberikan kesederhanaan yang lebih besar dan konsumsi daya yang rendah.

Kontroler-kontroler awal biasanya dibuat dari komponen-komponen logic dan umumnya memiliki ukuran yang cukup besar. Kemudian, mikroprocesor digunakan, dan kontroler dapat muat dimasukkan ke dalam satu board rangkaian. Mikrokontroler saat ini menempatkan semua komponen yang diperlukan ke dalam satu chip. Karena digunakan untuk mengendalikan sebuah fungsi tunggal, beberapa peralatan yang kompleks biasanya bisa memuat banyak mikrokontroler.

Minggu, 18 Oktober 2015

Aplikasi Yang Menggunakan API (Application Programming Interface)

Aplikasi Yang Menggunakan API (Application Programming Interface)


1. FACEBOOK API


Dapat mengintegrasikan facebook dengan website, untuk pengembangan aplikasi yang dapat dijalankan pada facebook dan digunakan untuk pengembangan aplikasi facebook untuk iphone.
API yang disediakan :  FBML, FQL, FBJS, XFBML, REST API



2. Amazon.com

Amazon.com termasuk web API, Amazon.com merilis API sehingga pengembang situs
web dapat lebih mudah mengakses informasi produk Amazon, menggunakan Amazon
API, sebuah situs web pihak ketiga dapat memposting link langsung ke produk Amazon
dengan harga yang terupdate dan pilihan untuk “beli sekarang”.

sumber : http://www.jejaring.web.id/mudahnya-memahami-application-programming-interface-api/




 Jurnal/Pengamatan yang saya dapat tentang API (Application Programing Interface)

JUDUL : Aplikasi Multimedia Menggunakan DirectAnimation


Disini dijelaskan :
      Microsoft DirectAnimation dapat diwujudkan sebagai aplikasi API (Application Programming Interface) yang berdiri sendiri atau sebagai komponen yang terintegrasi didalam Microsoft Internet Explorer 4.0. Hal ini memberikan sekaligus kemampuan multimedia dan animasi dalam halaman Web dan dapat ditampilkan melalui browser secara langsung tanpa perlu melakukan download program tertentu. Direct Animation juga sangat cocok untuk diintegrasikan dengan Dynamic Hypertext Markup Langguage (DHTML) dan oleh karena mudah digunakan untuk menambahkan efek animasi yang ringan dan ringkas kedalam halaman Web. DirectAnimation merupakan salah satu komponen DirectX API yang dapat digunakan untuk membuat animasi dan integrasi media multimedia kedalam halaman Web.

     DirectAnimation merupakan API yang berbasis Component Object Model (COM) dan dapat digunakan dengan berbagai macam teknik pemrograman. Seorang pembuat HTML misalnya, dapat mengintegrasikan animasi dengan menggunakan pengendali multimedia dari  DirectAnimation.
Programmer yang menggunakan Microsoft Visual Basic, VBScript, Jscript atau Java Aplet, dapat pula membuat program animasi animasi untuk Web dengan menggunakan integrasi DHTML. Dan jika kita bekerja dengan menggunakan Java, Visual Basic atau C++ maka kita dapat membuat interaktif ActiveX control untuk aplikasi yang kita hasilkan.  

     Dengan memanfaatkan DirectAnimation, seorang programmer hanya perlu belajar sedikit mengenai konsep animasi dan langsung dapat digunakan dihampir semua jenis media. Contohnya, seorang programmer hanya perlu mendeklarasikan detail tingkat tinggi dari animasi, sedangkan detail yang berhubungan dengan proses kerjanya lansung ditangani oleh DirectAnimation pada saat aplikasi yang dibuat dijalankan.   

Pengertian API (Application Programming Interface)


    API (Application Programming Interface) adalah
sekumpulan perintah, fungsi, dan protocol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk system operasi tertentu.
API memungkinkan programmer untuk menggunakan fungsi standar untuk berinteraksi dengan system operasi.
    API menyediakan fungsi dan perintah dengan bahasa yang lebih terstruktur dan lebih mudah untuk dipahami oleh programer bila dibandingkan dengan System Calls, hal ini penting untuk aspek editing dan pengembangan, sehingga programer dapat mengembangkan sistem dengan mudah. API juga dapat digunakan pada Sistem Operasi mana saja asalkan sudah ada paket-paket API nya.
Dalam contoh program sederhana, dibutuhkan setidaknya ribuan system calls per detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan menggunakan Application Programming Interface(API). Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan nama dari system calls sama dengan nama di API.

sumber : https://www.facebook.com/permalink.php?id=202701406454107&story_fbid=587822124608698


Pengertian Socket Programming
Sbagaimana cara menggunakan socket API ( Application Socket Programming ), untuk menghubungkan komunikasi antara proses remote dan local.
sumber : http://egrit-nurcahyo-w.blog.ugm.ac.id/2011/09/25/pengenalan-socket-programming/

Pengertian Client Server 
Client Server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya.
sumber : https://ardibay89.wordpress.com/server-dan-multi-user/pengertian-istilah-client-server/

Pengertian Protocol  
Protokol adalah aturan-aturan main yang mengatur komunikasi diantara beberapa komputer di dalam sebuah jaringan, aturan itu termasuk di dalamnya petunjuk yang berlaku bagi cara-cara atau metode mengakses sebuah jaringan, topologi fisik, tipe-tipe kabel dan kecepatan transfer data.
sumber : http://muhsub.blogspot.co.id/2009/03/pengertian-protocol.html
Pengertian PORT 
PORT adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan.
sumber : https://id.wikipedia.org/wiki/Port_%28Jaringan_Komputer%29

Pengertian Web Services
Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu.
sumber : http://saptafina13.blogspot.co.id/2013/04/pengertian-web-service.html


Jenis-Jenis API (Application Programming Interface)

win 32 API
Subsistem WIN32 adalah suatu lapisan layanan yang terdapat pada semua sistem
operasi berbasis Microsoft.

sumber : https://stefanusdiptya.wordpress.com/2009/11/11/sub-sistem-win32-api-dan-contoh-program-pemanggilan-fungsi-win32api/
 
Java API
Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak
menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Java menggunakan model pengamanan tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted Java code.

sumber : https://didiindra.wordpress.com/tag/pengertian-java/

openGL
OpenGL memiliki fungsi-fungsi helper seperti GLUT, yang merupakan API karya Mark Kilgard yang memungkinkan pengguna untuk membuat windows dan menangani pesan pesan. OpenGL berbasiskan pada variabel variabel state dan tidak memiliki class, berbeda dengan DirectX, namun sudah terstruktur secara logis. 
sumber : http://mobiuswings.blogspot.co.id/2013/09/opengl-kegunaan-dan-cara-kerjanya.html


 



Minggu, 11 Oktober 2015

Cloud Computing

Komputasi awan (bahasa Inggris: cloud computing) adalah gabungan pemanfaatan teknologi komputer ('komputasi') dan pengembangan berbasis Internet ('awan'). Awan (cloud) adalah metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, awan (cloud) dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu metoda komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service),  sehingga pengguna dapat mengaksesnya lewat Internet ("di dalam awan")  tanpa mengetahui apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya. Menurut sebuah makalah tahun 2008 yang dipublikasi IEEE Internet Computing "Cloud Computing adalah suatu paradigma di mana informasi secara permanen tersimpan di server di internet dan tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor, monitor dan lain-lain."
Komputasi awan adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dan tren teknologi terbaru lain yang dikenal luas, dengan tema umum berupa ketergantungan terhadap Internet untuk memberikan kebutuhan komputasi pengguna. Sebagai contoh, Google Apps menyediakan aplikasi bisnis umum secara daring yang diakses melalui suatu penjelajah web dengan perangkat lunak dan data yang tersimpan di server. Komputasi awan saat ini merupakan trend teknologi terbaru, dan contoh bentuk pengembangan dari teknologi Cloud Computing ini adalah iCloud.


Kenapa Dinamakan Cloude Computing ?

kenapa namanya Cloud Computing? kenapa bukan “Sky Computing”(Komputasi Langit), atau  “Ocean Computing”(Komputasi Lautan) atau “Forest Computing” (Komputasi Hutan)? dan banyak lagi pilihan terminologi lainnya yang mungkin saja dijadikan sebagai istilah yang digunakan untuk konsep yang ada pada Cloud Computing.
Bagi praktisi IT yang sering bersinggungan dengan simbol-simbol yang digunakan dalam topologi internet, maka pasti tahu simbol bergambar awan dalam topologi networking/internet, yaitu simbol untuk mewakili suatu jaringan yang komplex seperti topologi switching dan routing maupun mewakili internet. Misalkan seperti beberapa contoh gambar dibawa ini:


Dari contoh-contoh gambar tersebut yang ada simbol-simbol awannya, setidaknya ada gambaran untuk dapat dipahami mengapa konsep yang ini dinamakan Cloud Computing, yaitu pemanfaatan teknologi yang diakses oleh penggunanya melalui media internet, atau dengan kata lain, pengguna yang ingin menggunakan layanan cloud computing harus terhubung dengan internet untuk bisa menggunakan layanan tersebut. Sedangkan internet disimbolisasi dengan menggunakan gambar awan dalam topologinya. Itulah latar belakang digunakannya terminologi Cloud Computing (Komputasi Awan).


Manfaat Cloude Computing 
  • Skalabilitas, yaitu dengan cloud computing kita bisa menambah kapasitas penyimpanan data kita tanpa harus membeli peralatan tambahan, misalnya hardisk dll. Kita cukup menambah kapasitas yang disediakan oleh penyedia layanan cloud computing.
  • Aksesibilitas, yaitu kita bisa mengakses data kapanpun dan dimanapun kita berada, asal kita terkoneksi dengan internet, sehingga memudahkan kita mengakses data disaat yang penting.
  • Keamanan, yaitu data kita bisa terjamin keamanan nya oleh penyedia layanan cloud computing, sehingga bagi perusahaan yang berbasis IT, data bisa disimpan secara aman di penyedia cloud computing. Itu juga mengurangi biaya yang diperlukan untuk mengamankan data perusahaan.
  • Kreasi, yaitu para user bisa melakukan/mengembangkan kreasi atau project mereka tanpa harus mengirimkan project mereka secara langsung ke perusahaan, tapi user bisa mengirimkan nya lewat penyedia layanan cloud computing.
  • Kecemasan, ketika terjadi bencana alam data milik kita tersimpan aman di cloud meskipun hardisk atau gadget kita rusak.

Sumber : https://id.wikipedia.org/wiki/Komputasi_awan
                http://www.cloudindonesia.or.id/kenapa-disebut-cloud-computing.html