Total Tayangan Halaman

Kamis, 23 Mei 2019

Gifthub

GitHub adalah situs jejaring sosial yang banyak digunakan oleh software developer atau programmer untuk menyimpan project - project opensource mereka, dimana project tersebut dapat dikembangkan oleh programmer lain sebagai team maupun per-individu. Saat kita melakukan perubahan pada project kita dan di upload ulang (push) ke repository maka project yang lama masih disimpan dan tidak akan hilang, jadi akan memudahkan kita bila kita ingin melihat, menganaslisa atau mendownload versi sebelumnya.

Berikut alasan mengapa kita perlu mempunyai akun GitHub :

Tempat meyimpan projects (backup), untuk berjaga - jaga apabila file project kita rusak atau hilang yang disebabkan oleh virus dan lainnya.
Project kita OpenSource, Github menyediakan free hosting untuk project open source, dan hosting berbayar untuk project perusahaan atau pribadi yang sifatnya bukan opensource.
Github ditargetkan untuk para developer, yang bekerja secara tim dan tidak disatu tempat.
Github mendukung semua bahasa pemrograman, anda bebas memakai bahasa pemrograman dan tool yang biasa anda pakai.
GitHub juga bisa sebagai media sosial, memiliki beberapa fitur diantaranya user profile, Follow, "fork me", Star, Watch, dan lainnya.
Ada fitur Fork, mengcopy keseluruhan code repository ke repo kita sendiri.
Tempat mencari kode snippet (Gist)
Tempatnya para Programmer membagikan Project OpenSource mereka

Berikut cara membuat akun gufthub  :

Buka gifthub.com lalu klik sign up
Masukkan data diri 

Setelah meng-klik tombol Create Account, masuk ke jendela pilihan personal plan, silahkan pilih "unlimited public repositories for free" untuk akun yang tidak berbayar. Dan apabila ingin yang akun yang private, silahkan pilih yang berbayar.  Kemudian klik Finish sign up

Akun GitHub telah selesai dibuat, Namun akun belum bisa kita gunakan, kita harus melakukan verifikasi di email kita 

buka email yang telah terdaftar , cek pada inbox apakah ada pesan masuk berisi link aktivasi dari Github bila tidak cek pada spam


Klik link aktivasi,  Setelah melakukan aktivasi, kita dapat login  ke Github dan membuat Repository.

Rabu, 22 Mei 2019

Install Library Open CV di Terminal Menggunakan Anaconda Navigator

pertama buka anaconda navigator



lalu pilih environments



klik simbol play disebelah base(root)



setelah itu open terminal






Sebelum itu download open cv disini https://pypi.org/project/opencv-python/#files sekitar (25 mb)

Yang butuh di download hanya 1 file opencv, yang isinya cp3.7 dan versi komputer kalian(windows), jika ada i686 itu 32bit, jika ada 86_64/64 itu 64 bit..
Jadi kalau 64 bit windows : opencv_python-4.1.0.25-cp37-cp37m-win_amd64.whl



ketik perintah seperti gambar dibawah ini 



jika berhasil ketik perintah lagi di pip list


jika sudah bisa dicoba untuk membuat file dan ketik kode seperti gambar dibawah 


Selamat mencoba 









Cara Menginstall Anaconda Navigator

Anaconda Navigator adalah adalah aplikasi dekstop GUI yang berada di dalam paket instalasi Anaconda. Melalui Anaconda Navigator, programmer dapat dengan mudah menjalankan dan mengelola paket Conda, environmentdan kanal tanpa perlu menggunakan perintah command prompt. Anaconda Navigator dapat mencari  paket – paket pada repositori cloud anaconda.

Cara Install Anaconda Navigator :

Pertama download Anaconda Navigator, lalu Install 
jika sudah terinstall maka akan muncul tampilan seperti ini



Jika sudah muncul tampilan seperti diatas pilih editor yang diinginkan seperti Jupyter Notebook dan klik launch.Setelah itu muncul localhost dari phyton dan klik new untuk membuat folder baru



Masuk ke folder baru yang telah dibuat lalu klik new dan pilih phyton3 untuk membuat file



Setelah input koding yang anda inginkan






Cara Menggunakan Kaggle

Jadi apakah Kaggle itu?
Kaggle adalah situs dan platform untuk berlomba membuat model terbaik untuk menganalisa dan memprediksi suatu dataset. Dataset ini diberikan oleh suatu perusahaan, dengan suatu deskripsi masalah tertentu. Misalnya, diberikan data rumah beserta fitur-fiturnya dan harga jualnya, dan deskripsi masalahnya adalah buatlah model untuk memprediksi harga jual berdasarkan fitur-fitur tersebut. Sederhana kan? Kalau Anda bisa membuat model terbaik, ada hadiah total USD $1.2 juta dolar hehe.
Kaggle sangat bermanfaat untuk semua yang berkecimpung di dunia data science.
Banyak perusahaan yang mempunyai permasalahan analisa/pemodelan data, namun mereka tidak punya sumber daya data scientist yang mumpuni untuk memecahkannya. Dengan Kaggle, mereka bisa meminta bantuan data scientist seluruh dunia untuk memecahkan masalah tersebut dengan membuat model terbaik. Istilah kerennya crowd sourcing. Biasanya dengan dengan imbalan hadiah.
Kaggle juga dapat dimanfaatkan oleh perusahaan untuk merekrut data scientist atau ML engineer, dengan cara menyelenggarakan kompetisi untuk tujuan rekrutmen.
Bagi kita praktisi atau pelajar data science, Kaggle sangat berguna untuk belajar, berlatih,  dan mempertajam skill dan insting data science kita. Dengan mempelajari write up atau ulasan orang lain dalam memecahkan suatu masalah, kita bisa mendapat banyak ide dan ilmu tentang bagaimana proses dan jalan berpikir dia memecahkan masalah data science. Lalu dengan ikut dalam kompetisi, kita akan diberi feedback tentang akurasi model kita, dan dari situ kita berlatih bagaimana membuat model yang lebih baik. Selama kompetisi, sering orang berbagi tips atau ide yang dia pakai, sehingga dari situ tidak hanya kita bisa memperbaiki model kita, tapi kita juga bisa belajar, menjadi lebih kreatif, sekaligus melatih instingpemecahan masalah kita.
Beginilah cara Menggunakan Kaggle :

Pertama membuat akun Kaggle lalu login dengan akun tersebut















Lalu buat Kernels baru 





Lalu pilih notebook



Dan yang terakhir lalu copy paste code yang diinginkan
















Selasa, 23 April 2019


Representasi Data Graphic Dan Image


Tipe data
Beberapa tipe data populer product Macromedia Director :
File Import
File Export
Native
ImagePalleteSoundVideoAnim.ImageVideo
.BMP, .DIB, .GIF, .JPG, .PICT, .PNG, .PNT, .PSD, .TGA, .TIFF, .WMF.PAL, .ACT.AIFF, .AU, .MP3, .WAV.AVI, .MOV.DIR, .FLA, .FLC, .FLI, .GIF, .PPT.BMP.AVI, .MOV.DIR, .DXR, .EXE
Fitur Format File Secara Umum
1-bit image
Masing-masing pixel di simpan dalam single bit (0 atau 1) sehingga di sebut binary image. Disebut juga 1-bit monochrome image karena tidak mempunyai warna
8 bit image
Masing-masing pixel mempunyai gray value antara 0 s/d 255. Masing-masing pixel direpresentasikan oleh single Byte. (dark mempunyai kemungkinan nilai 10 sedangkan bright kira-kira bernilai 230). Image merupakan array 2 dimensi dari pixel value yang disebut bitmap. Resolusi image merepresentasikan kumpulan dari pixel2 dalam sebuah image digital. Hardware tempat menyimpan bitmap disebut frame buffer (video card). 8-bit image dapat di gambarkan sebagai himpunan dari 1-bit bitplane dimana 1 plane berisi 1-bit yang merepresentasikan pelevelan image.
  • 8-bit color image
Digunakan sebagai metode untuk merepresentasikan gambar yang tiap pixel-nya terdiri dari 8 bit data warna. Jumlah maximum warna yang bisa ditampilkan dalam 1 waktu adalah 256 warna. Secara umum, warna yang ada pada 8 bit color image didapatkan dari ‘palette’ yang terdiri dari 256 warna, dimana tiap entri pada pallete diberikan nilai RGB tersendiri yang unik. Struktur lain yang sering digunakan pada 8-bit color image adalah penggunaan 8 bit yang secara langsung mendeskripsikan intensitas nilai RGB(red, green, and blue), secara umum dibagi menjadi 3 bits untuk R(red), 3 bits untuk G(green) dan 2 bits untuk B(blue). Bentuk seperti ini biasa disebut dengan 8-bit truecolor. Berikut strukturnya:
Bit0706050403020100
DataRRRGGGBB
Kelebihan 8-bit color images :
Tidak membutuhkan storage yang besar, karena tiap pixel hanya membutuhkan 8-bit untuk pewarnaannya selain itu, bentuk image yang ideal untuk pengelihatan mata orang normal, karena persepsi manusia terhadap warna adalah terbatas/tidak maksimal.
Kekurangan 8-bit color images :
Pewarnaan kurang detail, karena hanya menggunakan 8 bits untuk setiap pixel-nya, sehingga variasi warna-nya ‘sedikit’, hal ini menyebabkan 8-bit color image kurang cocok dimanfaatkan untuk keperluan yang memerlukan advance graphics, misalkan untuk periklanan, seni, dll.

24-bit color image
Format gambar yang menggunakan 24 bits untuk merepresentasikan warna pada tiap pixel. Setiap komponen RGB disimpan sebagai integer 8-bit, sehingga total memerlukan 24 bit. Hal ini digunakan agar dapat menciptakan suatu warna yang detail.
Kelebihan 24-bit color image :
Penggunaan 24 bit data tiap pixel untuk merepresentasikan warna menyebabkan warna yang tercipta akan sangat detail dan dapat mencakup seluruh warna yang dapat di-’terjemahkan’ oleh mata manusia normal, sehingga image jenis ini cocok dimanfaatkan untuk keperluan yang memerlukan advance graphics sebagai gambarnya, misal : iklan, seni, dll.
Penggunaan 24-bit color image memiliki beberapa kelemahan, diantaranya :
  • Ukuran file yang besar, karena tiap pixel memerlukan 24-bit untuk pewarnaannya. Hal ini akan menyebabkan 24-bit color image kurang cocok digunakan sebagai image yang digunakan dalam network/internet, karena akan memakan bandwith yang besar pula.
  • Memerlukan waktu pemrosesan/pengolahan yang relatif lama
  • Pewarnaan yang sangat detail kadang kurang diperlukan karena device output yang digunakan biasanya memiliki kemampuan representasi yang terbatas
  • Dhitering : Suatu proses pemberian noise pada gelombang (gambar, suara, video) sehingga mencegah large-scale pattern seperti kontur menjadi lebih obyektif dan tidak dianggap sebagai noise (uncorrelated noise). Algoritma dithering pada umumnya digunakan untuk memproses file audio maupun video digital. Dan sering digunakan pada step  akhir  pemrosesan audio ke dalam compact disk. Salah satu aplikasi pertama dari dither berasal dari PDII (Hrant H. Papazian). Aplikasi ini digunakan pada pesawat bomber sehingga dapat meningkatkan akurasi jatuhnya bom. Hal ini dapat dimungkinkan karena vibrasi getaran dari pesawat. Sejak saat itulah, kosa kata dither (“to tremble”) digunakan jika ingin meningkatkan akurasi dari suatu alat dengan menggunakan getaran. Istilah tersebut diadopsi oleh dunia digital sebagai penambahan noise terhadap gelombang.
Format File Populer
  • GIF
GIF dibuat oleh Compuserve pada tahun 1987 digunakan untuk menyimpan berbagai gambar dengan format bitmap menjadi sebuah file yang mudah untuk diubah pada jaringan komputer. GIF adalah file format graphic yang paling tua pada Web, dan begitu dekatnya file format ini dengan web pada saat itu sehingga para Browser menggunakan format ini. GIF mendukung sampai 8 bit pixel, itu berarti maksimum jumlah warnanya 256 warna (28 = 256 warna), 4-pass interlacing, transparency dan mengunakan varian dari algoritma kompresi Lempel-Ziv Welch (LZW). Terdapat dua tipe dari GIF, antara lain:
GIF87a : support dengan interlacing dan kapasitas dari beberapa file. Tehnik itu dinamakan GIF87 karena pada tahun 1987 standar ini ditemukan dan dijadikan standar.
GIF89a : adalah kelanjutan dari spesifikasi GIF87a dan penambahan pada transparency, pemberian tulisan dan animasi dari teks dan grafik.
Ada 2 feature GIF yg menarik perhatian, yaitu transparency dan interlacing.
Transparency : GIF mendukung transparency sehingga designer dapat mendesign background sebuah image itu transparan. Artinya, bila kamu meletakkan image yang transparan pada sebuah latar berwarna merah maka warna background image akan memimic seperti bunglon dan ikut berubah menjadi merah.
Interlacing : Interlacing itu akan menciptakan ilusi seolah image GIF itu lebih cepat loadingnya. Sebenarnya image ditampilkan browser dalam beberapa langkah sistemastis. Mulanya blur dan chaotis namun seiring lebih banyak informasi yang didownload dari server, maka image pun akan menjadi lebih dan lebih dan lebih jelas. Perlu dipertimbangkan, image yang sedikit ber-interlacing akan berukuran lebih besar dibandingkan file GIF biasa.
Kapankah GIF sebaiknya dipakai ?
Umumnya, image GIF digunakan untuk logo, line drawing, dan icons. Hindari menggunakannya untuk image photografi, dan juga image yang membutuhkan stretches bertone-yang-konitium. Saat kamu mendesign file GIF, hindari penggunaan gradiens. Jangan pakai anti-aliasing agar ukuran file bisa minimal.
  • JPEG
“JPEG” merupakan singkatan dari  Joint Photographic Experts Group, sebuah nama komite yang bertugas untuk membuat standart fotografis. Organisasi ini didirikan pada 1986, dan mengeluarkan standart format foto pada tahun 1992, dan disetujui dengan ISO 10918-1 pada tahun 1994. Standart tersebut sekarang biasa dikenal dengan JPEG. JPEG secara umum dihasilkan dari proses kompresi sebuah photographic images. Tingkat kompresi biasanya bisa diubah, sesuai dengan tradeoff(quality & size) yang diinginkan user. File format JPEG biasa dikenal sebagai ‘JPEG Interchange Format’ (JIF), yang meng-implementasikan semua aspek standard sebagai berikut: Color Space definition, Component Sub-Sampling Registration definition Kevin w/h XD, Pixel Aspect Ratio definition. Metode kompresi yang digunakan biasanya adalah lossy compression, yang berarti beberapa kualitas visual akan hilang dalam proses kompresi dan tidak dapat dikembalikan. Selain itu, terdapat pula format “Progressive JPEG”, dimana data yang dikompresi melalui beberapa fase untuk menghasilkan detail yang lebih baik.namun banyak software image processing yang tidak mendukung format file ini. Kelebihan : Merupakan format file imageyang paling umum, baik untuk fotografik maupun desain grafis dan karena dihasilkan dari proses kompresi, maka ukuran file yang dihasilkan relatif kecil dan tidak memakan storage & bandwith yang besar jika dimanfaatkan. Kekurangan : Karena dihasilkan dari proses Lossy compression, maka akan terdapat informasi dari gambar asli yang hilang, dan tidak dapat dikembalikan
  • PNG
(Portable Network Graphics) dikembangkan pada tahun 1995 dan menjadi rekomendasi W3C pada tahun 1996, dan telah berkembang pada hampir semua Web browser hingga tahun 1998. PNG(Portable Network Graphics), sebuah file format untuk lossless, phototable, yang diperkecil storage imagenya. PNG menyediakan patent-free pengganti GIF dan juga dapat mengganti banyak menggunakan TIFF. Mendukung Indexed-color, grayscale, truecolor, plus optional alpha channel.
Kelebihan:
  1. Merupakan format file image yang cukup umum, baik untuk desain grafis, atau untuk keperluan pertukaran data lewat network/internet.
  2. Karena dihasilkan dari proses kompresi, maka ukuran file yang dihasilkan relatif kecil dan tidak memakan storage & bandwith yang besar jika dimanfaatkan
  3. Karena dihasilkan dari proses Lossles compression, maka informasi dari gambar asli tidak akan hilang, dan dapat dikembalikan setelah proses kompresi
Kekurangan :
  1. Karena dihasilkan dari proses Lossless compression, maka ukuran file yang dihasilkan akan relatif lebih besar jika dibandingkan dengan file image JPEG
  • TIFF
TIFF merupakan singkatan dari Tagged Image File Format yang merupakan salah satu jenis format file image yang digunakan untuk berbagai keperluan, meliputi fotografi dan line art. Secara khusus format file ini sekarang di-control of Adobe Systems. Diproduksi oleh perusahaan bernama Aldus untuk keperluan”desktop publishing”, format file TIFF di-support secara luas oleh berbagai aplikasi image-manipulation.
Kelebihan : TIFF berguna sebagai format untuk saling bertukar antara aplikasi profesional image editing.
Kekurangan : TIFF tidak banyak didukung oleh aplikasi yang tidak fokus pada manipulasi gambar(seperti web browser).
  • EXIF
Exchangeable Image File Format. Kumpulan informasi teknis yang dilekatkan pada header file gambar. Dikembangkan oleh Japanese Electronics Industry DevelopmentAssociation (JEIDA). Kegunaan : untuk mempermudah dan membuat standar dalam pertukaran data antara perangkat lunak pengolah citra dan perangkat keras seperti kamera. Unsur – unsur : data tanggal pengambilan gambar, digital ISO, kecepatan rana, diafragma, dan jenis kamera. Alat untuk melihat data EXIF suatu gambar adalah EXIFER (perangkat lunak pengolah citra seperti Photoshop atau ACDSee ) untuk OS nya dapat di windows maupun linux.
  • Graphics Animation File
Beberapa format terkenal mempunyai tujuan untuk menampilkan animasi gambar (dalam bentuk seri gambar / ilustrasi gambar). Tujuan adalah sebagai pengganti video. Dimana animasi animasi ini membutuhkan ukuran yang jauh lebih kecil dari video akan tetapi format format file animasi dapat digunakan untuk menampilkan informasi video. Software yang compatible : DL , amiga IFF, apple quick time, dan GIF89
FLC : format animasi dalam gambar gerak. Yang diciptakan oleh animation pro.
GL : Memproduksi gambar gerak yang lebih baik dan dapat menangani file dengan ukuran yang lebih besar
  • PS dan PDF
Diperkenalkan pada tahun 2003. Disingkat dengan PDF. Suatu format dokumen buatan dari Adobe System Inc. Kelebihan dokumen ini adalah kebebasannya untuk dibuka tanpa tergantung terhadap aplikasi original pembuat dokument tersebut, hardaware maupun sistem operasi terutama untuk membuat dan membuka dokumen tersebut. Dahulu kurang begitu populer, dikarenakan Perangkat lunak untuk membuat (Adobe Acrobat) dan membacanya (Acrobat Reader / Adobe Reader) masi dikomersilkan, Versi – versi awal PDF tidak mendukung pranala luar, yang membuatnya kurang terintegrasi dengan world wide web (www), penambahan besar ukuran berkas PDF pada paket data yang dikirimkan membuatnya lambat untuk didownload dengan tingkat kecepatan modem pada saat itu. Karena format berkas PDF harus bersaing dalam tingkat penggunaannya dengan format lain seperti Envoy, Common Ground Digital Paper, dan PostScript (.ps). PostScript adalah format yang juga diciptakan oleh Adobe dan sebagian fungsinya diimplementasikan pada PDF.
Format dokumen PDF mengkombinasikan tiga teknologi:
  • Sub-set dari pemrograman deskripsi halaman PostScript untuk menghasilkan tampilan dan grafik
  • Sistem penempatan/pemindahan huruf untuk mengijinkan perpindahan huruf di dalam dokumen
  • Sistem penyimpanan terstruktur untuk menempatkan dan mengkompresi elemen-elemen dokumen ke dalam satu berkas.
Dokumen PDF pada umumnya tersusun atas : kombinasi Teks, grafik vector, grafik raster
PDF sekarang begitu populer karena Adobe mulai mendistribusikan perangkat lunak Acrobat Reader secara gratis. Mereka juga membebaskan siapapun untuk menciptakan aplikasi pembuat maupun pembaca dokumen PDF tanpa perlu membayar royalti kepada Adobe System selaku pemegang hak paten PDF.
  • Windows WMF
WMF Singkatan dari Windows MetaFile. Pertama kali digunakan awal tahun 1990-an. Berbeda dengan file JPEG dan GIF yang digunakan untuk menyimpan bitmap (foto, scan, grafik), Windows Metafile biasa digunakan untuk menyimpan line-art, atau gambar ilustrasi. Beberapa clipart dari Windows menggunakan format WMF. File WMF menyimpan daftar dari function call yang dapat digunakan oleh Windows graphic layer GDI untuk menampilkan gambar pada screen. Karena beberapa GDI Function dapat menerima pointer untuk callback function sebagai error handling, WMF file dapat berisi executable code.
  • Windows BMP
Kadang disebut dengan nama Bitmap atau format file DIB (untuk Device-Independent Bitmap). Adalah format file gambar yang digunakan untuk menyimpan bitmap digital image, terutama pada sistem operasi Microsoft Windows dan OS/2. Beberapa user interface menggunakan bitmap dalam built-in graphic subsystem, contohnya subsystem dari GDI platform Microsoft Windows dan OS/2. Dalam file BMP yang tidak terkompresi dan beberapa format file bitmap, pixel gambar disimpan dengan kedalaman warna 1, 4, 8, 16, 24, atau 32 bit tiap pixel. Gambar 8 bit dapat berupa greyscale atau indexed color. Alpha Channel (transparansi) dapat disimpan dalam file yang berbeda, yang mirip dengan gambar greyscale, atau pada channel ke 4 yang membuat file 24 bit berubah ke 32 bit tiap pixel. Untuk gambar yang sama, file BMP (uncompressed bitmap) berukuran jauh lebih besar dari file bitmap yang sudah tercompresi. Contohnya Logo Wikipedia dengan resolusi 1058×1058 berukuran 287.65 KB dalam format PNG, namun berukuran 3358 KB dalam format BMP.
  • Macintosh PAINT dan PICT
PAINT awalnya digunakan pada program MacPaint, yang digunakan hanya untuk gambar monochrome 1 bit. MacPaint adalah SOftware Graphic Painting berbasis Bitmap yang di develope oleh Apple Computer dan dirilis bersama original Macintosh PC pada 22 Januari 1984. Original MacPaint di develope oleh Bill Atkinson, member dari Apple’s Original Macintosh Development Team. Versi terakhir dari MacPaint yaitu MacPaint 2.0, yang dirilis tahun 1988, namun di hentikan penjualannya tahun 1998 karena penjualannya yang menurun. PICT digunakan pada MacDraw (vector based drawing program) untuk menyimpan struktur graphic. PICT adalah graphic file format yang dikenalkan pada computer original Apple Macintosh sebagai format standard metafile. PICT direvisi menjadi versi 2 bersamaan dengan dikenalkannya Macintosh II dan QuickDraw, versi ini memiliki fitur 16 bit opcodesdan beberapa perubahan yang memperbaik utility-nya.
  • XWindows PPM
adalah graphic format untuk sistem X Windows. Portable Pixmap (PPM) support 24-bit color bitmap dan dapat dimanipulasi menggunakan beberapa public domain graphic Editor seperti xv. PPM digunakan dalam X Windows System untuk menyimpan icon, pixmap, backdrops, dsb
Pengertian Threads
Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal.
Apa yang dimiliki oleh Thread ?
  • Status eksekusi thread (running, ready, terminated)
  • Running -> Sebuah thread yang sedang dieksekusi dan didalam control dari CPU.
  • Ready -> Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untukmelakukannya.
  • Terminated -> Status yang dimiliki pada saat proses telah selesai dieksekusi.
  • Simpanan konteks thread (pada saat tidak running)
  • Stack eksekusi
  • Beberapa storage statis untuk menyimpan variabel lokal
  • Hak akses ke memori dan resource yang dimiliki oleh proses
    • Memori dan resource digunakan bersama-sama oleh semua thread dari sebuah proses (share)
Thread memungkinkan beberapa eksekusi berlangsung dalam lingkup proses yang sama.
2 Jenis Thread:
  • Lightweight Process
Merupakan thread yang mempunyai beberapa properti dari sebuah proses.
  • Multithreading
Merupakan kemampuan sistem operasi dalam mengeksekusi banyak thread yang berasal dari sebuah proses
Thread Model :

a) 1 proses 1 thread (one to one)     
b) process banyak thread (many to one)

  1. Kolom pertama berisi beberapa item yang dibagikan oleh semua thread dalam suatu proses.
  2. Kolom kedua berisi beberapa item pribadi ke setiap thread.


Satu proses memiliki banyak thread dan setiap thread mempunyai stacknya masing-masing.


Apa keuntungan dari penerapan Thread?
  1. Pembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru.
    • Penelitian menunjukkan pembentukan thread 10 kali lebih cepat daripada pembentukan proses.
  2. Terminasi suatu thread jauh lebih cepat daripada terminasi proses.
  3. Perpindahan eksekusi antar thread jauh lebih cepat.
  4. Antar thread dapat berkomunikasi tanpa melibatkan kernel.
    • Sebagai efek dari penggunaan share memori dan file.
Implemetasi Thread
  1. User Space
  • Kernel tidak mengetahui keberadaan thread.
  • Thread management dilakukan oleh aplikasi user level/library.5





Keuntungan :
  • Setiap proses mempunyai penjadwalan masing-masing.
  • Performa lebih cepat.
  • Dapat berjalan di berbagai OS.
Kerugian :
  • Membutuhkan pemanggilan non-blocking system.
  • Jika ada 1 threads yang sedang berjalan maka thread yang lain harus menunggu.
  1. Kernel Space

Thread management dilakukan oleh kernel.
Keuntungan :
  • Tidak membutuhkan pemanggilan non-blocking system.
  • Thread pada proses yang sama dapat dijalankan pada prosesor yang berbeda.
Kerugian :
  • Membutuhkan biaya yang besar.
  1. Hybrid          
  • Ada sejumlah kernel level thread yang dipetakan ke sejumlah user level thread.
  • Pembuatan thread, scheduling, sinkronisasi dilakukan di user space.

Pop Up Thread

Pembuatan thread baru dilakukan pada saat pesan datang.
a) Sebelum pesan datang
b) Sesudah pesan datang
Thread Basics
Thread State
  1. Spawn -> Thead muncul atau dibuat oleh proses/OS.
  2. Block – Thread menunggu sebuah event.
  3. Unblock – Ketika event yang ditunggu oleh thread muncul.
  4. Finish – Thread selesai. Register context dan stack yang digunakan dibebaskan.
Relasi antara Thread dan Process
10

Session 8 – Threads (2)

Thread di Linux
GNU/Linux menggunakan POSIX Standard Thread API. Dikenal dengan nama pthread. Program dengan thread harus di-compile dengan option -lpthread.
Contoh : gcc testhread.c -o thread -lpthread
Pembuatan Thread
Setiap thread dalam sebuah program diidentifikasi dengan thread ID.
Type: pthread_t
Fungsi Untuk Membuat Thread
int pthread_create(pthread_t *obj, const pthread_attr_t* attr, void * (*func) (void *), void *arg);
Parameter ke:
1 → Thread ID
2 → Thread attribute (NULL untuk default attribute)
3 → Fungsi yang ingin dijalankan
4 → Parameter untuk fungsi yang dijalankan
  • Thread ID digunakan untuk mengambil ID dari thread yang dibuat
  • Parameter attr digunakan untuk mengatur properti khusus dari thread. Contoh : penjadwalan dan prioritas.
  • Jika attr bernilai NULL, thread akan dibuat dengan penjadwalan dan prioritas default.
  • Func adalah pointer ke function. (function hanya dapat mengambil void * parameter)
  • Arg adalah void * yang mewakili argumen yang diteruskan ke function func ketika thread dieksekusi.
  • Mengembalikan nilai 0 jika sukses.

Setting Thread Attributes
Beberapa properti :
  • Contention Scope
Digunakan untuk mengatur properti penjadwalan baik di dalam proses atau pada sistem global.
  • Stack Size & Stack Address
Memungkinkan programmer untuk mengatur seberapa besar ukuran stack dan di mana letak memory itu berada.
  • Detach State
Dapat membuat thread terpisah atau tergabung.
  • Schedule Policy & Schedule Parameters.
Jika sistem operasi mendukung maka kita dapat melihat secara garis besar penjadwalan mana yang harus dilakukan dalam proses Light Weight Processes (LWP’s).
  • Ketika thread dibuat dengan objek atribut yang sesuai maka akan memiliki behavior yang telah ditentukan.
  • Untuk mengatur objek atribut harus memanggil function : pthread_attr_init().
Detached Threads
  • Detached threads merupakan thread yang diabaikan oleh thread yang lain.
  • Ketika thread dihentikan, maka secara otomatis dibangun kembali oleh OS.
Terminating Thread
  • pthread_exit()
Merupakan function yang berfungsi untuk mengambil pointer ke data dan dikembalikan saat thread diinisialisasikan.
Kapan Menggunakan Thread?
  • Thread cocok digunakan untuk program yang melakukan task secara bersamaan atau
memiliki sejumlah task yang dapat diselesaikan secara paralel untuk menghasilkan hasil.
  • Saat membuat program menggunakan thread, kita harus mengatur program tersebut agar berbagai task tersebut dapat dijalankan secara bersamaan.
Contoh : Masalah grafis komputer ( ray tracing ), manipulasi matriks.