Jumat, 01 Desember 2017

Seminar IBM Bluemix



SEMINAR IBM BLUEMIX

Pada kesempatan kali ini, penulis akan membahas tentang seminar yang penulis ikuti di kampus Universitas Gunadarma beberapa waktu lalu, tepatnya tanggal 25 September 2017. Materi yang di bahas kali ini adalah tentang “IBM Bluemix”. Apa itu IBM Bluemix? Apa fungsinya dan manfaatnya? Mari kita bahas bersama.

IBM BLUEMIX

Seminar ini diadakan dengan tujuan untuk mengenalkan pada mahasiswa maupun masyarakat dengan adanya teknologi baru yang berbasis komputasi awan dan sebagai wujud nyata dari perkembangan tekhnologi pada era ini. 

IBM Bluemix merupakan sebuah IBM inovasi platform komputasi cloud (awan) yang merupakan kombinasi (gabungan) dari Platform as a Service (PaaS) – platform sebagai sebuah layanan – dengan Infrastructure as a Service (IaaS) – Infrastruktur sebagai sebuah layanan -. Bluemix kaya akan pelayanan katalog awan (cloud) dan mudah terintegrasi dengan PaaS dan IaaS untuk membangun sebuah aplikasi dengan cepat. 

-          Infrastructure as a Service (IaaS)
Infrastructure as a Service adalah layanan komputasi awan yang menyediakan infrastruktur IT berupa CPU, RAM, storage, bandwith dan konfigurasi lain. Komponen-komponen tersebut digunakan untuk membangun komputer virtual. Komputer virtual dapat diinstal sistem operasi dan aplikasi sesuai kebutuhan. Keuntungan layanan IaaS ini adalah tidak perlu membeli komputer fisik sehingga lebih menghemat biaya. Konfigurasi komputer virtual juga bisa diubah sesuai kebutuhan. Misalkan saat storage hampir penuh, storage bisa ditambah dengan segera. Perusahaan yang menyediakan IaaS adalah Amazon EC2, TelkomCloud dan BizNetCloud.

-          Platform as a Service (PaaS)
Platform as a Service adalah layanan yang menyediakan computing platform. Biasanya sudah terdapat sistem operasi, database, web server dan framework aplikasi agar dapat menjalankan aplikasi yang telah dibuat. Perusahaan yang menyediakan layanan tersebutlah yang bertanggung jawab dalam pemeliharaan computing platform ini. Keuntungan layanan PaaS ini bagi pengembang adalah mereka bisa fokus pada aplikasi yang mereka buat tanpa memikirkan tentang pemeliharaan dari computing platform. Contoh penyedia layanan PaaS adalah Amazon Web Service dan Windows Azure.

Bluemix dapat menjalankan berbagai aplikasi seperti website, mobile, big data dan smart devices. ngine dari Bluemix sendiri berbasiskan Cloud Foundry, yaitu open source project untuk membangun layanan Cloud PaaS. Secara default, platform Bluemix dapat menjalankan beberapa runtime seperti Java, Ruby, dan Node Js.

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.

Beberapa manfaat yang didapatkan dengan layanan komputasi awan :
1.       Skalabilitas, yaitu kita bias menambah kapasitas penyimpanan data kita tanpa harus membeli peralatan tambahan seperti harrdisk, dll.
2.       Aksesibilitas, yaitu kita bisa mengakses data kapanpun dan dimanapun kita berada, asal kita terkoneksi dengan internet, sehingga memudahkan kita mengakses data disaat yang penting.
3.       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.
4.       Kreasi, yaitu para user bisa melakukan/mengembangkan kreasi atau project mereka tanpa harus mengirimkan project mereka secara langsung ke perusahaan, tapi user bisa mengirimkannya lewat penyedia layanan cloud computing.
5.       Kecemasan, ketika terjadi bencana alam data milik kita tersimpan aman di cloud meskipun hardisk atau gadget kita rusak.

Dalam seminar ini dijelaskan bagaimana langkah-langkah dalam membangun aplikasi sederhana dengan Bluemix.  Aplikasi sederhana yang dibuat bisa berupa aplikasi mobile yang berbasis Android, sehingga pengguna dapat mengintegrasikan Bluemix dengan Eclipse.

Semakin berkembangnya zaman, semakin berkembang pula tekhnologi yang manusia ciptakan, manusia dapat menciptakan suatu inovasi baru dengan kecerdasan mereka dalam mengolah sebuah permasalahan yang dihadapi masyarakat dewasa ini. Mengikuti perkembangan tekhnologi memang sudah seharusnya dilakukan, namun harus diingat, apa manfaat tekhnologi tersebut untuk kehidupan apakah baik atau sebaliknya. Inovasi Bluemix merupakan inovasi yang bisa sangat membantu dalam pelayanan komputasi awan.

Sekian review Seminar IBM Bluemix dari saya, apabila ada tulisan yang kurang tepat, penulis mohon maaf, karena keterbatasan pengetahuan penulis. Semoga tulisan ini dapat bermanfaat. :)


Rabu, 25 Oktober 2017

Contoh Thread pada Windows



Contoh Thread pada Windows

Pembahasan kali ini yaitu mengenai thread yang ada pada sistem operasi. Thread yang dibahas adalah thread yang ada pada sistem oprasi Windows. Sebelumnya apasih thread itu? 

Thread ?

Thread merupakan unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi dan sebuah unit dasar dari sistem utilisasi pada processor (CPU). Dalam ilmu komputer, thread diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan thread  lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu thread  ke thread lainnya atau multiprocess (ketika thread-thread tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem. Thread sebenarnya mirip dengan proses, tetapi cara berbagi sumber daya antara proses dengan thread sangat berbeda. Thread merupakan sebuah situs eksekusi seperti ready, running, suspend, block, queue,dll. 

Thread kadang disebut sebagai proses ringan (lightweight). Sebuah thread  terdapat : ID Thread, Program Counter, Register, dan Stack. Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread yang lain yang memiliki proses yang sama. Keuntungan dari adanya thread :
1.      Pembuatan thread baru lebih cepat dari pada proses baru 
2.      Penghentian thread lebih singkat daripada penghentian proses 
3.      Switching  antara dua thread  lebih singkat daripada switching antar proses 
4.      Thread dapart berkomunikasi satu sama lain

User Thread dan Kernel Thread
User Thread merupakan thread yang berjalan pada user level. Pengaturan dan penjadwalan dari thread ini sepenuhnya dilakukan pada user level tanpa campur tangan dari kernel level. Setiap proses memiliki thread table untuk menyimpan informasi thread yang dimilikinya. User thread secara umum lebih ringan dalam proses pembentukan dan penjadwalan. Akan tetapi tidak dapat berjalan secara multi threading.
Kernel thread merupakan thread yang diciptakan dan berjalan pada kernel level. Penjadwalan dan manajemen dilakukan oleh kernel pada kernel level. Kernel thread sering disebut juga proses yang ringan (Lightweight Process/LWP). Kernel thread lebih lambat proses pembentukan dan penjadwalan jika dibandingan dengan user thread. Kernel thread mendukung multithreading dimana beberapa thread dapat dijalankan dalam waktu yang bersamaan.

                             User Thread                                                       Kernel Thread

Terdapat relasi diantara user threads dan kernel threads. Relasi ini secara umum dapat dimodelkan menjadi 3 bentuk yaitu :
1.      Many-to-One
Many-to-One model memetakan semua user thread ke dalam satu kernel thread. Manajemen pengaturan thread dilakukan pada user level sehingga kinerja lebih cepat. Kekurangannya adalah jika suatu thread melakukan blocking maka thread yang lain tidak dapat berjalan. Hanya satu thread yang dapat dijalankan pada satu waktu.

2.      One-to-One
Satu user thread memiliki satu kernel thread. Keuntungan dari model ini adalah lebih dari satu thread dapat berjalan secara bersamaan. Jika satu thread melakukan blocking, thread yang lain tetap dapat berjalan. Karena setiap penciptaan user thread harus dibarengi dengan kernel thread maka model ini cenderung lebih lambat dibandingkan dengan many-to-one.

3.      Many-to-Many
Memetakan beberapa user thread ke dalam sejumlah kernel thread, dimana jumlah kernel thread yang dapat digunakan sama atau lebih sedikit dari jumlah user thread. Pada model ini hanya satu thread yang dapat dijadwalkan oleh kernel thread dalam satu waktu.

Thread pada Windows

Windows mengunakan Win32 API sebagai API utama dalam hampir semua sistem operasi Microsoft. Selain itu windows mengimplementasi model relasi One-to-One, dimana terdapat satu kernel thread yang berasosiasi dengan masing – masing user thread.
 Thread pada windows secara umum mempunyai komponen sebagai berikut :
-          Thread ID
-          Register set
-          User stack dan kernel stack
-          Private storage area.
Register set, stacks dan private data storage disebut sebagai context dari sebuah thread. Struktur data utama dari sebuah thread :
-          ETHREAD (executive thread block)
-          KTHREAD (kernel thread block)
-          TEB (thread environment block)

ETHREAD (executive thread block


Bagian penting dari ETHREAD adalah KTHREAD, Process ID, Thread start address. Blok KTHREAD merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID juga merupakan suatu pointer yang menunjuk pada proses utama yang memiliki thread tersebut dan Thread start address adalah alamat dari rutin awal thread. 

KTHREAD (kernel thread block


KTHREAD menyimpan informasi yang dibutuhkan oleh kernel untuk dapat melakukan penjadwalan dan sinkronisasi thread. Pada KTHREAD juga terdapat kernel stack, yang mana akan digunakan ketika thread berjalan pada kernel mode. Juga terdapat pointer yang menunjuk TEB.

TEB (thread environment block)


TEB menyimpan informasi image loader dan beberapa DLLs dari windows. Komponen - komponen ini berjalan pada user mode, maka dibutuhkan suatu struktur data yang dapat dimanipulasi(writable) pada user mode. Oleh karena itu, tidak seperti KTHREAD dan ETHREAD yang berada pada kernel space, TEB berada pada user space.


                                 Struktur Thread pada Windows XP

Proses Pembentukan Thread
Sebelum sebuah thread dibuat, diperlukan stack dan context dimana thread akan dijalankan. Proses pembentukan stack dilakukan dengan pemanggilan fungsi CreateThread. Fungsi ini terdapat dalam Kernel32.dll. Process manager akan mengalokasikan space untuk object dari thread yang baru dan memanggil kernel untuk membuat kernel thread block. Berikut ini langkah – langkah pembentukan thread :
1.      Memanggil fungsi CreateThread membuat stack untuk thread pada user-level.
2.      Thread's hardware context diinilisasi oleh CreateThread.
3.      Fungsi NtCreateThread dipanggil untuk membuat executive thread object. NtCreateThread memanggil fungsi PspCreateThread dan menjalankan proses – proses berikut :
-          Thread count pada program/proses akan dinaikan 1.
-          Executive thread block (ETHREAD) dibuat dan diinisialisasi.
-          Thread ID dibuat untuk thread yang baru
-          TEB di setup (user- mode)
-          Thread start address pada user-mode disimpan dalam ETHREAD
-          Fungsi KelnitThread dipanggil untuk membuat KTHREAD block. KelnitThread mengalokasikan kernel stack dan inisialisasi machinedependent hardware context termasuk didalamnya context, trap, dan exception frames.
-          Thread access token di set sesuai dengan proces acces token dan akan dicek apakah program/proces tersebut memiliki hak untuk membuat thread atau tidak. Proses cek ini akan selalu berhasil jika thread yang diciptakan bersifat lokal, dimana thread yang diciptakan masih berada dalam program/proces yang sama. Kemungkinan gagal jika thread yang akan dibuat untuk program/proces yang lain.

4.      Thread baru diinformasikan oleh CreateThread kepada Windows subsystem dan subsystem melakukan beberapa proses setup untuk thread yang baru.
5.      Thread handle dan thread ID dikembalikan kepada proses/program yang membuat thread tersebut.
6.      Thread dijalankan.

Windows dalam mengimplementasikan thread memakai model One-to-One. Sehingga windows mendukung multithreading. Win32 API adalah pustaka thread yang digunakan oleh windows.
Struktur data utama dalam thread windows : ETHREAD (executive thread block), KTHREAD (kernel thread block) yang keduanya berada pada kernel-level dan TEB (thread environment block) yang berada pada user-level.

Daftar Pustaka

1.      https://www.google.co.id/amp/s/tintakopi.wordpress.com/2011/10/24/thread-multhiread/amp/ 
2.      https://id.m.wikipedia.org/wiki/Utas_(komputer) 
3.      https://www.google.co.id/url?sa=t&source=web&rct=j&url=https://juliusbata.files.wordpress.com/2011/02/tugasso_juliusbata_309012.pdf&ved=0ahUKEwjy9o-bqI3XAhUSTY8KHb13DKUQFggcMAA&usg=AOvVaw3yV1FR7xp8tOkfYrWXPQ0_

Tugas Softskill : Aplikasi Android Pemesanan Warteg

Pemesanan Menu Warteg melalui  Aplikasi Android Pada dasarnya pemesanan warteg pada saat ini hanya bergantung pada sumber daya manusia. S...