Senin, 23 April 2018

Pengantar Thread Programing


TUGAS SOFTSKILL 1
Oleh Dosen LELY PRANANINGRUM, SKom.MMSi



Nama          : Annahl Prayitno

Kelompok   : 6
Kelas           : 4IA19



Thread merupakan sekumpulan baris instruksi yang alurnya berjalan secara sekuensial di prosesor. Jadi simpelnya thread adalah bagian dari sautu proses atau bisa juga disebut sebagai proses kecil.
Lalu, dalam sistem operasi kita mengenal istilah multithreading yang  dapat didefinisikan suatu OS mendukung sejumlah thread dieksekusi dalam sebuah proses.


Dalam pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Jika beberapa pengguna menggunakan program atau permintaan bersamaan dari program lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi.


Sebagian besar komputer hanya dapat mengeksekusi satu instruksi program pada satu waktu, tetapi karena mereka beroperasi begitu cepat, mereka muncul untuk menjalankan berbagai program dan melayani banyak pengguna secara bersamaan. Sistem operasi komputer memberikan setiap program “giliran” pada prosesnya, maka itu memerlukan untuk menunggu sementara program lain mendapat giliran. Masing-masing program dipandang oleh sistem operasi sebagai suatu tugas dimana sumber daya tertentu diidentifikasi dan terus berlangsung. Sistem operasi mengelola setiap program aplikasi dalam sistem PC (spreadsheet, pengolah kata, browser Web) sebagai tugas terpisah dan memungkinkan melihat dan mengontrol item pada daftar tugas. Jika program memulai permintaan I / O, seperti membaca file atau menulis ke printer, itu menciptakan thread. Data disimpan sebagai bagian dari thread yang memungkinkan program yang akan masuk kembali di tempat yang tepat pada saat operasi I / O selesai. Sementara itu, penggunaan bersamaan dari program diselenggarakan pada thread lainnya. Sebagian besar sistem operasi saat ini menyediakan dukungan untuk kedua multitasking dan multithreading. Mereka juga memungkinkan multithreading dalam proses program agar sistem tersebut disimpan dan  menciptakan proses baru untuk setiap thread.

Static Threading

Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.

Mekanisme ini terhitung lambat, karenanya disebut dengan static. Selain itu teknik ini tidak mudah diterapkan dan rentan kesalahan. Alasannya, pembagian pekerjaan yang dinamis di antara thread-thread menyebabkan load balancing-nya cukup rumit. Untuk memudahkannya programmer harus menggunakan protocol komunikasi yang kompleks untuk menerapkan scheduler load balancing. Kondisi ini mendorong pemunculan concurrency platforms yang menyediakan layer untuk mengkoordinasi, menjadwalkan, dan mengelola sumberdaya komputasi paralel.

Sebagian platform dibangun sebagai runtime libraries atau sebuah bahasa pemrograman paralel lengkap dengan compiler dan pendukung runtime-nya.

Dynamic Multithreading

Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops. Nested parallelism memungkinkan sebuah subroutine di-spawned (ditelurkan dalam jumlah banyak seperti telur katak) sehingga program utama tetap berjalan sementara subroutine menghitung hasilnya. Sedangkan parallel loops seperti halnya fungsi for namun memungkinkan iterasi loop dilakukan secara bersamaan.



Keuntungan Penggunaan Thread

·         komunikasi thread lebih efisien
·         waktu pembuatan lebih cepat
·         waktu pemberhentian lebih cepat
·         waktu penggantian antar thread lebih cepat


Kerugian penggunaan Thread
·         keamanan yang kurang karena penggunaan shared data


Contoh Aplikasi :
Ms. Dos merupakan salah contoh OS yang hanya mampu menjalankan satu proses dengan hanya 1 thread.
Sebaliknya Unix Family 1980 mendukung banyak proses tapi dengan setiap proses hanya memiliki satu thread.
Contoh OS yang mampu menjalankan banyak thread dalam suatu proses yaitu, Mac, Windows dan Linux, selain itu bahasa yang memiliki OS mini seperti java yang memiliki Java Virtual Machine juga satu proses yang mampu menjalankan banyak thread.

Google Chrome : menggunakan multiproses
Mozilla Firefox : menggunakan multithread
Apache              : menggunakan multiproses dan multithread


Minggu, 17 Desember 2017

Mengistal Web Server Apache di Ubuntu 16.04

Server HTTP Apache adalah server web yang paling banyak digunakan di dunia. Server web ini menyediakan banyak fitur canggih termasuk modul yang dapat memuat secara dinamis, dukungan media yang kuat, dan integrasi yang luas dengan perangkat lunak populer lainnya. Disini kita akan menginstal dan mengkonfigurasi Apache di Ubuntu 16.04.


1. Instal Apache


Apache tersedia di dalam repositori perangkat lunak default Ubuntu, jadi kita akan menginstalnya menggunakan alat manajemen paket konvensional. 
Kita akan memulainya dengan memperbaharui paket lokal untuk perubahan terbaru, setelah itu kita akan menginstall paket apache nya:

Setelah instalasi dikonfirmasi, apt-get akan menginstal Apache dan semua 
dependensi yang di butuhkan.


2. Sesuaikan Firewall

Sebelum menguji Apache, kita harus mengkonfigurasi firewall di PC untuk mengizinkan akses dari luar ke port web default. Dan  Anda harus memiliki firewall UFW yang dikonfigurasi untuk membatasi akses ke server Anda.
Selama instalasi, Apache mendaftarkan diri dengan UFW untuk memberikan beberapa profil aplikasi. Kita bisa menggunakan profil ini untuk mempermudah proses mengaktifkan atau menonaktifkan akses ke Apache melalui firewall kita.
Kita bisa daftar profil aplikasi ufw dengan mengetikkan:

Ada tiga profil yang tersedia untuk Apache:
·         Apache          : Profil ini hanya membuka port 80 (lalu lintas web normal dan tidak terenkripsi)
·         Apache Full  : Profil ini membuka kedua port 80 (lalu lintas web normal dan tidak terenkripsi) dan port 443 (lalu lintas terenkripsi TLS / SSL)
·         Apache Secure        : Prof il ini hanya membuka port 443 (lalu lintas terenkripsi TLS / SSL)


3. Setting Traffiq

Di sini kita akan mengijinkan lalu lintas masuk untuk Apache Full profile dengan mengetikkan:


4. Periksa Server Web Anda

Di akhir proses instalasi, Ubuntu 16.04 memulai Apache. Server web seharusnya sudah aktif dan berjalan. Kita bisa mengecek dengan sistem init sistem untuk memastikan layanan berjalan dengan mengetikkan:

                                    
Seperti yang dapat Anda lihat di atas, layanan ini tampaknya sudah mulai berjalan dengan baik. Namun, cara terbaik untuk menguji ini adalah benar-benar meminta halaman dari Apache. Anda dapat mengakses halaman arahan Apache default untuk memastikan bahwa perangkat lunak berjalan dengan baik. Anda dapat mengakses ini melalui nama domain server atau alamat IP Anda.

Jika Anda tidak ingin membuat nama domain untuk server Anda, Anda dapat menggunakan alamat IP publik server Anda. Jika Anda tidak mengetahui alamat IP server Anda, Anda bisa mendapatkannya dengan beberapa cara berbeda dari baris perintah. Ketikan Perintah ini di comand prompt server anda :



Alamat IP atau domain server, masukkan ke alamat browser Anda

5. Mengelola Proses Apache


  • Untuk menghentikan server web Anda, Anda dapat mengetikkan:
  • Untuk memulai server web saat dihentikan, ketik:
  • Untuk berhenti dan kemudian mulai layanan lagi, ketik:
  • Jika Anda hanya melakukan perubahan konfigurasi, Apache sering kali reload tanpa menjatuhkan koneksi. Untuk melakukan ini, Anda bisa menggunakan perintah ini:
  • Untuk mengaktifkan kembali layanan agar memulai saat boot, Anda dapat mengetikkan:











Selasa, 10 Oktober 2017

Pengertian SEO

SEO (Search Engine Optimization) adalah suatu teknik untuk memaksimalkan nilai relevan halaman website agar meningkatnya ranking dan pengunjung dari Search Engine Google. SEO dilakukan melalui proses yang sistematis (analisa, implementasi, report) yang artinya melakukan Teknik SEO yang masuk dalam kategori Blackhat SEO / Whitehat SEO / Greyhat SEO. Setiap teknik memiliki kelebihan dan kelemahan bila kita jalankan. Seperti Blackhat SEO yang melakukan tindakan berbahaya dengan tujuan mempercepat peringkat sebuah website di pencarian Search Engine. Whitehat SEO merupakan tindakan natural dan relevan dalam meningkatkan peringkat sebuah website. Greyhat SEO merupakan perpaduan kedua teknik sebelumnya untuk meningkatkan peringkat website. SEO adalah singkatan dari "Search Engine Optimization" atau Optimisasi Mesin Pencari. SEO pertama kali digunakan pada 26 Juli 1997 oleh sebuah pesan SPAM yang di posting di Usenet [W].

Cara Kerja SEO pada Google

Google mempunyai algoritma. Algoritma inilah yang bekerja sebagai sistem canggih sehingga pengguna bisa sangat dimanjakan oleh Google.
SEO sangat berhubungan erat dengan cara kerja algoritma Google. Untuk itu, kamu juga harus mengerti bagaimana algoritma ini bekerja.
Berikut ini adalah hal-hal yang dilakukan oleh algoritma Google.
  • ·         Membaca jumlah kata pada sebuah halaman (konten).
  • ·         Membaca gambar pada sebuah halaman (konten).
  • ·         Melihat internal link.
  • ·         Melihat outbound link.
  • ·         Membaca backlink.


Bermacam-macam cara atau teknik SEO yang dapat dilakukan, dari Teknik Optimisasi OnPage atau Offpage, serta analisa website lawan dan website yang akan di Optimisasikan. Pada kesempatan selanjutnya saya akan posting mengenai Pengertian SEO On Page dan Off Page. Teknik SEO bukan ilmu yang bisa kita dapatkan di jenjang pendidikan formal. Teknik SEO harus dipelajari secara otodidak (dipraktekan) dan berkelanjutan (update teknik terbaru), dan perubahan yang terjadi di profesi SEO sesuai dengan aturan-aturan terbaru yang ditetapkan oleh Google (Google Panda Algorithm, Google Penguin Algorithm, Google Hummingbird Algorithm, dll). Banyak website yang memberikan informasi terbaru mengenai teknik terkini mengenai SEO. Lebih disarankan bagi Junior SEO untuk mengikuti perkembangan SEO yang pasti dari Blog Google atau dari Blog SEO ternama, dikarenakan Google melakukan minor update algorithm sekitar 500 kali setahun dan 3-4 kali untuk major updates

Sumber:
http://www.seogereggi.com/2015/01/pengertian-seo-search-engine-optimization.html
https://vatih.com/bisnis/pengertian-seo/

E-Commerce dan Bisnis

E-Commerce termasuk salah satu istilah pada “perdangan elektronik” yang berubah sejalan dengan waktu. Berkembangnya E-Commerce di Indonesia pada era globalisasi ini semakin berkembang pesat saja. Contohnya televisi dan internet .

Awalnya perdagangan elektronik merupakan aktifitas perdagangan yang memanfaatkan transaksi komersial,misalnya mengirim dokumen komersial seperti persamaan pembelian secara elektronik.

Keberadaan e-commerce sebagai cara mutakhir untuk melakukan bisnis telah sedikit banyak mengubah pola kehidupan masyarakat dunia. Bagi negara berkembang seperti Indonesia, kerap dipertanyakan dan diperdebatkan apakah fenomena e-commerce pada hakekatnya merupakan ancaman atau justru peluang bagi para pelaku bisnis di tanah air. Terhadap pertanyaan ini, sebagian besar orang menilai bahwa hal tersebut sangat bergantung pada titik pandang atau perspektif yang bersangkutan. Namun sebenarnya jika dilihat secara lebih seksama, terdapat tiga faktor yang sangat mempengaruhi penilaian orang terhadap keberadaan e-commerce sebagian bagian dari komponen perekonomian modern.
Aspek pertama yang perlu dilihat adalah sejauh mana para pelaku bisnis atau masyarakat yang bersangkutan mengerti benar mengenai paradigma sistem ekonomi digital yang memiliki 12 ciri utama, yaitu: knowledge, digitization, virtualization, molecularization, internet-working, disintermediation, convergence, innovation, prosumption, immediacy, globalization, dan discordance (Tapscott, 1996). Aspek kedua adalah tergantung dari seberapa besar keberadaan e-commerce berpengaruh terhadap industri atau perusahaan yang bersangkutan.
Pada zaman sekarang telah banyak sekali perkembangan dan perubahan dalam dunia bisnis.yaitu perubahan dalam bidang pemasaran, pembayaran, pembelian, pemesanan . Yaitu salah satu cara bagi produsen atau perusahaan untuk memperkenalkan barang atau produknya kepada masyarakat. Seiring dengan perkembangan zaman seperti sekarang yang hampir seluruh kegiatan manusia tidak lepas dari yang namanya teknologi yang berfungsi untuk mempermudah manusia dalam melakukan aktifitasnya. Seperti halnya para perusahaan atau pebisnis dalam melakukan aktifitas bisnis nya. Mereka menggunakan cara yang baru disebut e-commerce . e-commercePerdagangan elektronik atau bahasa Inggris: Electronic commerce, juga e-commerce  adalah penyebaran, pembelian, penjualan, pemasaran barang dan jasa melalui sistem elektronikseperti internet atau televisi, www, atau jaringan komputer lainnya. E-commerce dapat melibatkan transfer dana elektronik, pertukaran data elektronik, sistem manajemen inventori otomatis, dan sistem pengumpulan data otomatis.

data elektronik, sistem manajemen inventori otomatis, dan sistem pengumpulan data otomatis.
Dalam hal ini beberapa manfaat yang telah didpatkan oleh para pengusaha atau pembisnis dalam melakukan bisnis nya ya itu sebagai berikut :
• Meningkatkan pendapatan dengan menggunakan online yang biayanya lebih murah.
• Mengurangi biaya-biaya yang berhubungan dengan kertas, seperti biaya pos surat, pencetakan, report,   dan sebagainya.
• Mengurangi keterlambatan dengan menggunakan transfer elektronik/pembayaran yang tepat waktu dan dapat langsung dicek.
• Mempercepat pelayanan ke pelanggan, dan pelayanan lebih responsif.

sumber : 
https://fardiansyah7fold.wordpress.com/e-commerce-dan-perkembangannya-di-indonesia/
http://blog.pasca.gunadarma.ac.id/2012/12/21/pengaruh-e-commerce-dalam-dunia-bisnis/

Minggu, 18 Juni 2017

8. Penjelasan game sequencial, game simultan, game dengan informasi sempurna dan tidak sempurna, game informasi lengkap dan tidak lengkap, game koperatif dan non koperatif, game zero-sum game dan non zero-sum game

                       a.          Game sekuensial: pemain melakukan tindakan secara bergantian. Pemain berikutnya mengetahui (mungkin secara tidak utuh) tindakan yang diambil oleh pemain sebelumnya.
                       b.          Game simultan: pemain melakukan tindakan secara bersamaan. Pada saat mengambil tindakan, pemain yang terlibat tidak mengetahui tindakan yang dipilih oleh pemain lainnya. Dalam hal ini, jeda waktu pengambilan tindakan antara sesama pemain tidak berpengaruh terhadap pilihan yang diambil oleh pemain ybs.
                       c.          Game dengan informasi sempurna: pemain mengetahui dengan pasti tindakan yang diambil oleh lawannya, sebelum ia memilih tindakan à asumsi ini hanya dapat dipenuhi oleh game sekuensial.
Game dengan informasi tidak sempurna: pemain tidak mengetahui tindakan yang dipilih lawannya sebelum permainan berakhir.
                      d.          Game dengan informasi lengkap (bedakan dengan sempurna): pemain mengetahui payoff lawannya.
Game dengan informasi tidak lengkap: pemain tidak memiliki informasi lengkap tentang payoff lawannya.
                       e.          Game kooperatif: para pemain membuat komitmen yang mengikat (binding commitment) untuk meningkatkan outcome mereka.
Game nonkooperatif: para pemain tidak membuat komitmen yang mengikat.
                        f.          Zero-sum game: jumlah payoff dari setiap pemain sama dengan nol. Untuk game dengan 2 pemain, besar keuntungan di satu pihak sama dengan besar kerugian di pihak lain.
Non-zero-sum game: tidak demikian.



7. Siapa saja para pengambil keputusan dalam teori game (catur dan sepakbola

Kecerdasan Buatan atau kecerdasan yang ditambahkan kepada suatu sistem yang bisa diatur dalam konteks ilmiah atau Intelegensi Artifisial (bahasa Inggris: Artificial Intelligence atau hanya disingkat AI) didefinisikan sebagai kecerdasan entitas ilmiah. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.

Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, membuat permainan catur atau Backgammon. Di sisi lain, hal yang bagi manusia kelihatannya menuntut sedikit kecerdasan, sampai sekarang masih sulit untuk direalisasikan dalam Informatika. Seperti contoh: Pengenalan Obyek/Muka, bermain sepak bola.

Walaupun AI memiliki konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

‘Kecerdasan buatan’ ini bukan hanya ingin mengerti apa itu sistem kecerdasan, tapi juga mengkonstruksinya. Jadi yang mengambil keputusan ketika kita bermain catur atau sepakbola ketika melawan musuh (computer) itu adalah kecerdasan buatan yang dimasukkan kedalam game.


6. Binding comitmen dan Flowchart

Binding Commitment jika diterjemahkan berarti komitmen yang mengikat. Binding Commitment ini merupakan salah klasifikasi pada teori game berdasarkan kesepakatan, yaitu Game Kooperatif. Game Kooperatif itu sendiri memiliki pengertian para pemain membuat komitmen yang mengikat (binding commitment) untuk meningkatkan outcome mereka.  
·      Hal demikian tidak terjadi pada game nonkooperatif.
·      Jika komitmennya tidak mengikat, game tidak dapat bersifat kooperatif, karena para pemain mungkin akan melanggar komitmen tersebut untuk kepentingan dirinya.
·      Dilema Tahanan adalah game nonkooperatif.
·      Pertanyaannya: bagaimanakah outcome-nya, jika dijadikan game kooperatif?
Permainan ini tidak dapat disempurnakan terhadap semua permainan kooperatif, namun ada beberapa outcome positif dalam game kooperatif. Dapat diambil contoh permainan Who Wants to be Millionaire. Penjelasan outcome positif dalam game tersebut:
1.         Virtual Presence berpengaruh positif terhadap Learning Outcomes
Penggunaan game Who Wants to be Millionaire menunjukkan pengaruh yang positif terhadap pemahaman mahasiswa tentang learning outcomes yang mereka raih. Kehadiran virtual/virtual presence yang tampak pada alur dari game tersebut, menunjang pemahaman mahasiswa tentang tujuan materi dalam game tersebut, yaitu pengambilan keputusan, berpikir analitis dan taktis serta ketelitian. Oleh sebab itu peningkatan virtual presence yang dialami mahasiswa memiliki kecenderungan dalam meningkatkan learning outcomes.
2.          Perceived Usefulness berpengaruh positif terhadap Learning Outcomes
Tingkat kepercayaan yang tinggi bahwa penggunaan game simulasi yang dimainkan akan meningkatkan kinerja yang bersangkutan akan menyebabkan perhatian dan fokus mahasiswa yang optimal pada konten materi dan instruksi desainer pelatihan berbasis permainan yang dilakukan.
3.         Intention to Use berpengaruh positif terhadap Learning Outcomes

Intention to use yang digerakkan oleh perceived usefulness yang tinggi akan meningkatkan sikap atau niat perilaku untuk menggunakan game simulasi yang diberikan, yang berlanjut pada peningkatan perhatian pengguna game simulasi pada konten materi dalam permainan yang pada akhirnya akan meningkatkan learning outcomes, seperti yang diimplikasikan oleh Mohammadi (2015) tentang actual usage (penggunaan aktual) pada elearning.