Slider 1 mini Slider 2 mini

Friday, June 9, 2017

Installation and Create Simple Spring Boot Project on Eclipse (EN)

Filled under:

The following are the simple tutorial how to build application using Spring Boot Framework.
This knowledge I have gotten when I studied Enterprise Programming in my second semester at my second college. The professor, Samuel Louvan who was really inspiring due to the easy explanation he made, then I can pass the lecturing as well.
I though the practical materials were really systematics.

Before understanding how to build application using Spring Boot Framework, it is better to know the fundamental of layering principal in programming, because Spring Boot Framework actually uses the proper concept. That is Three Tired Web Layers.

Three Tired Web Layers

You might know or not know about this concept. But let me show you how 3 layers develop the whole component of the application.
http://martinfowler.com/bliki/PresentationDomainDataLayering.html

  1. Presentation layer contains any program that will handle http request and render HTML page
  2. Domain layer contains any program that is commonly called as the business logic which also contains the validations and the calculations logic
  3. Data Access layer contains any program that sorts out how to manage persistent data in the database or remote services

Presentation Layer

This layer has responsibility to display the information to the user and interpret command from the user into actions upon the domain and data layer
There are several characteristics owed by the presentation layer such as:
  • How to handle interaction between the user and the software
  • this can be simple as a command-line or text-based menu system
  • These days, it's more likely to be a rich-client graphical user interface (GUI) or and HTML-based browser user interface

Data Source

This layer has responsibility to communicate with the other systems that carry out tasks on behalf of the applications.
There are also several characteristics owed by the Data source such as:
  • Communication with the database
  • Communication with the other applications
  • Communication with the Messaging System
  • Communication with the Transaction Managers

Domain Logic

This layer has responsibility determine the work of applications need to do for the domain we are working with.
There are several characteristics owed by Domain logic such as:
  • Also referred as Business Logic
  • It involves the calculations based on inputs and stored data
  • validation of any data that comes in from the presentation layer
  • and figuring out exactly what data source logic to dispatch
This domain logic created aim to really hide the data from the presentation layer, so that the user will never access the data directly.

How to separate these layers?

it depends on how complex the application is!
  • as the system gets more complex, we would break the three layers into separate classes
  • as complexity increased, we would divide the classes into separate packages
Make sure you do some kind of separaiton-at least at the subroutine level!

Rules

The domain and data source should never be dependent on the presentation!
It means there should be no subroutine call from the domain or data source code into the presentation code. because it will be easier for us to substitute with other/different presentations



OK! after this, we will create program using Spring Boot and Eclipse. Before, there are several requirement that you have to meet in the beginning such as:

  • Download JDK (Java Development Kit) here
  • Set Path JAVA_HOME like here
  • Install Eclipse which installed Maven inside, that is NEON version here
  • Install Spring Tool Suite (STS) here, or you can directly install by visiting Help -> Market Place
After the above required tools installed in your PC, you can start to build the application by following these steps:

Create New Spring Starter Project


  • Open Eclipse
  • Install STS through Eclipse Market Place
  • After finish installing STS, the system will ask you to restart Eclipse, then please restart Eclipse
  • To open Spring Boot project, choose menu File -> New -> Other...
  • Please choose Spring Starter Project within the folder Spring
  • Use default value from Eclipse to fill the properties

  • Click Next, then checklist Web dependency
  • Click Finish

Changing Port Number

  • As the default, server which is used by Spring Boot has port 8080. If you want to change the port number, you can simply change it by going to src/main/resource to access application.properties. Then, you can add the following code:

server.port = 9090

  • In the src.main.java, create new file HelloWorldController.java and add the following code
package com.example; 

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController public class HelloWorldController { 
   
@RequestMapping("/") 
   
public String index ()  { 
       
return "Hello World!"; 
   
} 
}


  • Run the project, Run As Java Application

Using Page Controller

  • Change pom.xml and add the following code:

dependency>   
   
<groupId>org.springframework.boot</groupId>
   
<artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency>

  • Create the HTML page at src/main/resources/templates/hello.html
<!DOCTYPE   html>   <html   xmlns:th="http://www.thymeleaf.org">                   
   
<head>                                 
       
<title>First    Page</title>                   
   
</head>                
   
<body>                                 
       
<h1>Hello,  world!</h1>                
   
</body> 
</html>
  • Create Controller page for HTML in the src/main/java/PageController.java and add the following code:
package com.example;   
import  org.springframework.stereotype.Controller;  
import  org.springframework.web.bind.annotation.RequestMapping;
@Controller 
public  class   PageController  {  
   
@RequestMapping("/hello")                  
   
public  String  index(){                                   
       
return  "hello";                   
   
}   
}


Posted By Novida1:54 PM

Installation and Create Simple Spring Boot Project on Eclipse

Filled under:

Assalamualaykum wr. wb.
Konbanwa, minna san!
Kali ini saya ingin berbagi tutorial untuk membuat aplikasi dengan menggunakan Spring Boot yang di run pada IDE Eclipse. Sebenarnya tutorial ini terinspirasi penuh dari mata kuliah saya di Semester 2 di salah satu universitas negeri di Depok :D, Pemrograman Skala Perusahaan (Enterprise Programming) yang diajar langsung oleh Bapak Samuel Louvan. Kalau boleh cerita sedikit, saya sangat suka sekali dengan dosen satu ini, karena selain pintar (ya jelas lah ya), beliau sangat cakap, wawasannya luas, dan pernah bekerja di luar negri yang memproduksi tidak hanya software, tapi juga hardware. Selain itu cara memberikan tutorial juga sangat sistematis, sehingga siapapun juga pasti bias menguasai Spring Boot dengan baik setelahnya.

SEE THIS TUTORIAL IN ENGLISH


Three Tired Web Layers

Anda pasti mungkin belum atau sudah tahu konsep pemrograman web dengan memanfaatkan 3 layer ini:

http://martinfowler.com/bliki/PresentationDomainDataLayering.html

  1. Presentation Layer, adalah layer yang akan melakukan http request dan merender halaman HTML
  2. Domain Layer, adalah layer yang digunakan untuk meletakkan semua logika bisnis (business logic) yang memiliki validasi dan kalkulasi
  3. Data Layer, adalah layer yang digunakan untuk mengelola data di dalam database atau remote services

Presentation Layer

Presentation layer bertanggung jawab untuk menampilkan informasi kepada user dan menginterpretasikan perintah yang diberikan oleh user, dan selanjutnya diserahkan kepada domain dan data layer. Presentation layer biasanya ditunjukkan dengan menggunakan Graphical User Interface yang dapat dipahami oleh manusia sebagai user.
Adapun ciri-ciri spesifik dari presentation layer adalah:
  • Melakukan penanganan interaksi yang dilakukan antara user dan aplikasi
  • Dalam bentuk sederhana dapat berupa command-line atau text-based menu system
  • Dalam era saat ini, bentuknya berupa GUI atau HTML-based browser UI

Data Layer

Data layer bertanggung jawab dalam berkomunikasi dengan layer-layer lain sesuai dengan tugas-tugasnya terhadap aplikasi.
Adapun ciri-ciri spesifik dari data layer adalah:
  • berkomunikasi dengan database engine yang digunakan bersamaan dengan aplikasi
  • berkomunikasi dengan aplikasi lain
  • berkomunikasi dengan system Messaging
  • berkomunikasi dengan Transaction Manager

Domain Layer

Domain layer bertanggung jawab dalam pekerjaan yang dibutuhkan oleh aplikasi agar memenuhi kebutuhan atau requirement.
Adapun ciri-ciri spesifik dari Domain layer adalah:
  • Biasanya dikenal dengan sebutan business logic
  • melakukan kalkulasi terhadap input dan menyimpannya ke data
  • memberikan validasi terhadap data yang dilempar oleh presentation layer
  • Menggambarkan bagaimana sebuah data diformasikan dan dikirim ke data layer

Biasanya tujuan dibuatnya domain layer di tengah-tengah layer adalah untuk benar-benar menyembunyikan data dari presentation layer, sehingga dimungkinkan user pada presentation layer tidak dapat mengakses langsung data yang disimpan.

Bagaimana untuk memisahkan layer-layer tersebut?

Hal itu sangat bergantung pada kompleksitas aplikasi yang akan kita kembangkan. Semakin kompleks, 3 layer tersebut biasanya dibagi lagi menjadi kelas-kelas. Dan semakin tinggi kompleksitasnya, kelas-kelas tersebut juga akan dibedakan ke dalam beberapa package juga.

Pastikan bahwa anda melakukan pemisahan terhadap layer, setidaknya pada tingkat subroutine!

Rules

Domain layer dan data layer seharusnya tidak bergantung terhadap presentation layer.
Itu artinya, tidak boleh ada pemanggilan subroutine untuk kode domain layer dan data layer kedalam presentation layer.

Contoh penerapan dari dari Three tired ini adalah Spring Boot Framework. Dan sebentar lagi kita akan belajar untuk membuat project, supaya anda paham bagaimana Three tired dapat diaplikasikan.

OK! Untuk dapat membuat program Spring Boot dengan menggunakan Eclipse, berikut ini tools yang harus dipersiapkan:
  • Download JDK (Java Development Kit) di sini
  • Set path JAVA_HOME seperti ini
  • Install Eclipse yang sudah terinstall Maven dengan menggunakan Eclipse versi Neon di sini
  • Install Spring Tool Suite (STS) disini, atau dengan melalui Help -> Market Place dan install melalui page tersebut

Setelah semua tools siap, silakan buka Eclipse anda dan ikuti langkah-langkah berikut ini:

Membuat Project baru

  • Buka Eclipse

  • Install STS melalui Eclipse Market Place

  • Setelah semua yang berkaitan dengan STS finish, anda akan diminta untuk restart Eclipse, maka silakan untuk melakukan restart Eclipse
  • Untuk membuka project Spring Boot, silakan pilih menu File -> New -> Other...
  • Silakan memilih Spring Starter Project yang berada di dalam folder Spring

  • Biarkan saja secara default Eclipse akan mengisi properti yang dibutukan

  • Pilih Next, dan kemudian pilih Web dependency

  • Pilih Finish

Mengubah Port

  • Secara default, server yang digunakan Spring Boot memiliki port 8080. Jika anda ingin mengubahnya, anda bisa pergi src/main/resource untuk mengakses application.properties. Kemudian tambahkan kode berikut:
server.port = 9090
  • Pada src/main/java buatlah file baru dan beri nama HelloWorldController.java, lebih baik lagi jika anda telah terlebih dahulu memiliki package
  • Pada HelloWorldController.java, tambahkan kode sebagai berikut:
package com.example; 

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController public class HelloWorldController { 
   
@RequestMapping("/") 
   
public String index ()  { 
       
return "Hello World!"; 
   
} }


  • Jalankan project, Run As Java Application



Menggunakan Page Controller

  • Ubah pom.xml Tambahkan kode berikut ini:

<dependency>   
   
<groupId>org.springframework.boot</groupId>
   
<artifactId>spring-boot-starter-thymeleaf</artifactId> 

</dependency>



  • Membuat halaman HTML pada src/main/resources/templates/hello.html

<!DOCTYPE   html>   <html   xmlns:th="http://www.thymeleaf.org">                   
   
<head>                                 
       
<title>First    Page</title>                   
   
</head>                
   
<body>                                 
       
<h1>Hello,  world!</h1>                
   
</body> </html>









  • Membuat halaman controller untuk halaman HTML pada src/main/java/PageController.java


package com.example;   
   
import  org.springframework.stereotype.Controller;  import  org.springframework.web.bind.annotation.RequestMapping;
   
@Controller public  class   PageController  {  
   
@RequestMapping("/hello")                  
   
public  String  index(){                                   
       
return  "hello";                   
   
}   }



Posted By Novida10:37 AM

Saturday, April 15, 2017

Need ten thousands of hours to master a passion, then how many days?

Filled under:

JUST SPARE YOUR FEW TIME TO READ MY SHORT STORY, OR YOU NEVER GET THIS AWESOME QUOTE!
It is quite complicated to have a lectured activity during job. There are so many dilemma which cannot be avoided when we should choose rather than prioritise a one of them, or even choose to do the best in both of them.
Like today’s end of working time, I know I have a quiz schedule several hours later, and of course to pass it, I should study hard, not only in a few minutes, but in every time I can gain the time to study it, even by cheating working time which shouldn’t be.
Enterprise Resource Planning, ERP, is the one of all courses I think it is very complicated to be mastered. Moreover, with the existing famous system, SAP application. I know, this time is not much enough to understand the whole definitions, functions, business processes, etc. But, at least, with the maximum energy I have, I will do my best.
“I am sorry to do not fully in charge with this task today. I have a quiz 3 hours later”, I said to Reynaldi, another dedicated person I always believe in.
“What kind of course you should prepare today?”, he asked.
“ERP as well, with its famous system, SAP. Don’t you ever use it before?”, I asked him again.
“Not at all.”, He simply answer it.
“Did you read ‘bout Sales and Distribution modul? I heard that you start using it in your college”, Pak Marsell asked, the man whom I should report everything in my new project this month.
“Yes, Pak!”, I just answering.
“Your task everyday are so big, right?”, Pak Marsell said again.
“Yeah, I should do this everyday and ignore some dilemmas because sometimes should choose one of them. It is so difficult, Pak, actually”, I tell him the reality.
“You don’t need to worry about that. You know, if you can master at least one module of SAP, you will be the most appropriate person in charge for this company. You know, to master something, an organisation needs at least 10 years as well to take study more and more. It is approximately like 10,000 hours in your life. Every worker in Indonesia has about 40 hours per week to do their working. But, I believe that they only spare a half time to do study. A year consists of 960 hours, approximately 1000 hours. It means that we need 10 years to master our passion. BUT IF YOU DO YOUR LIFE LIKE NOWADAYS, studying what you like or what you think it is your passion, with additional time of your lecturing activity is 6 hours, and your half part of your working is 6 hours, and you don’t skip it in weekend, you typically will spare 3456 hours per year. It means, to master your passion, you only need 2,89 years. The different is so far, right? So, like I said before, you don’t need to worry about everything you fight nowadays! Keep spirit after all!” Pak Marsell said with his smile which I always underestimated.
I just close my book and bowed him. I don’t need to think a thousand reasons to take respects to him after all. I believe, every person who read it or hear it by themselves, they will conduct their preparation to gain their dream more seriously.
“Arigatou gozaimashita, kachou san!”, it is what I said in the end of working today.
Jakarta, 2017, March 13rd.

Posted By Novida12:05 AM

Saturday, December 10, 2016

RANKING - OS162

Filled under:

----------------------------------------
RANKING ULASAN1/ULASAN2 PESERTA OS2016-2
----------------------------------------
01.[U1-20] http://keynekassapa13.blogspot.co.id/2016/12/review1-deadlock.html
02.[U1-18] http://catatanpartoba.blogspot.sg/2016/12/ulasan-1.html
03.[U2-12] http://keynekassapa13.blogspot.co.id/2016/12/review2-io-system-and-device-drivers.html
04.[U1-08] https://otonaenomichi.blogspot.co.id/2016/12/hybrid-cloud-infrastructure.html
05.[U1-02] https://johannestobing.blogspot.co.id/2016/11/ulasan1.html
06.[U1-17] http://dwitri-rizkydarmawan.blogspot.co.id/2016/12/ulasan-1.html
07.[U1-06] http://putrirmd.blogspot.co.id/2016/12/cloud-computing.html
08.[U2-01] https://johannestobing.blogspot.co.id/2016/11/ulasan2.html
09.[U2-07] http://pamelakareen.blogspot.co.id/2016/12/ulasan-2-principles-of-operating.html
10.[U1-15] http://harunakaze.blogspot.co.id/2016/12/zephyr-rtos.html
11.[U1-12] http://fascalgh.blogspot.co.id/2016/12/ulasan-1.html
12.[U2-02] http://vincent51-ulasan1.blogspot.co.id/2016/12/ulasan-2-servers.html
13.[U1-22] http://luthviar.blogspot.co.id/2016/11/ulasan-1-android-architecture.html
14.[U2-10] http://harunakaze.blogspot.co.id/2016/12/steamos.html
15.[U1-16] http://nadianurannisa7.blogspot.com/2016/12/ulasan-1-principles-of-operating-system.html
16.[U1-03] http://vincent51-ulasan1.blogspot.co.id/2016/11/ulasan-1-virtualization.html
17.[U2-12] http://keynekassapa13.blogspot.co.id/2016/12/review2-io-system-and-device-drivers.html
18.[U2-03] http://anissaedwita.blogspot.co.id/2016/11/ulasan2.html
19.[U2-05] http://indahp-os162-ulasan.blogspot.co.id/2016/12/understanding-switches.html
20.[U2-04] http://twobunny22.blogspot.co.id/2016/12/ulasan-2-operating-system.html
21.[U1-10] http://indahp-os162-ulasan.blogspot.co.id/2016/12/overview-active-directory-directory_4.html
22.[U1-14] https://muhammadnuim.blogspot.co.id/2016/12/file-sharing.html 
23.[U1-07] http://zetlogger.blogspot.co.id/2016/12/what-are-containers-and-why-are-they-so.html
24.[U2-11] http://muhammadiqbalnazulis.blogspot.co.id/2016/12/ulasan-2-pada-kesempatan-ini.html


Github account: novidaws
URL Ulasan blog: https://mathisgold.blogspot.com/2016/12/ranking-os162.html
Tanggal submisi revisi pertama: Tanggal submisi revisi kedua:

Posted By Novida11:08 PM

Introduction to Active Directory Directory Services Structure in Windows Server 2012

Filled under:

Assalamualaikum wr. wb.

Pada thread blog kali ini saya akan memberikan ulasan (ulasan 1) dari video berdurasi 46:30 menit dari alamat ini. Ini merupakan video yang diunggah oleh akun bernama “Eli the Computer Guy” dengan judul Introduction to Active Directory Directory Services Structure in Windows Server 2012. Konten di dalam video tersebut secara original telah dibuat oleh Eli. Konten dalam video ini mencakup teknologi informasi secara umum, dan mencakup Sistem Operasi secara khusus. 

Mengapa Active Directory Directory Services Structure sangat penting untuk dipelajari pada Windows environment, khususnya pada corporate network? active directry merupakan service pada server untuk keamanan server, khususnya pada windows environment. Active directory juga digunakan untuk membuat VPN pada corporate connection dan memungkinkan banyak orang untuk terhubung secara aman menggunakan internal connection. active directory service membuat pengguna yang login ke dalam komputernya mendapatkan izin untuk melakukan tindakan baik kepada komputernya sendiri maupun share folder/share point yang terdapat pada jaringan di dalam koneksinya. Selain itu, pengguna juga dimungkinkan untuk membuat suatu kebijakan melalui domain service dan memberlakukannya kepada seluruh komputer yang terhubung dengannya. Active directory dikontrol penuh oleh sebuah Domain Controller. Untuk itu, administrator pada perlu mendaftar pengguna mana dan komputer mana saja yang dapat mengakses domain controller, dua hal itu disebut 1) user account dan 2) computer account. Informasi-informasi tersebut nantinya akan disimpan ke dalam domain controller melalui media penyimpanan atau basis data yang disebut dengan Schema. Setiap user account terdiri dari minimal username dan password, kemudian informasi tambahan seperti email, nama perusahaan atau komunitas, dll. Schema akan membuat kinerja sebuah domain controller menjadi prima ketika ia bersifat extendable. Artinya, secara dinamis pengguna dapat menambahan data yang ingin disimpan kedalamnya secara dinamis. Melalui hal itu, active directory directory services akan mampu mengenali "Siapa yang memiliki hak akses kepada apa". Selanjutnya, untuk setiap user account dan computer account dapat dikelompokkan ke dalam Groups. Setiap group akan memiliki hak akses yang berbeda-beda pada sumber daya di dalam jaringan. Contohnya, pengguna dari accounting group akan diberikan akses kepada folder accounting, dan sistem akan memblokir selain accounting group untuk mengakses folder tersebut. Pada group yang berbeda-beda hak aksesnya, tetap dibutuhkan sebuah group yang memiliki semua hak akses. group akses tersebut adalah Organizational Unit (OU). Sehingga jika terdapat masalah, OU akan melakukan tindakan-tindakan dan menyelesaikannya melalui hak akses yang dimilikinya, karena masalah-masalahnya banyak timbul dari antar account yang berbeda group. Kumpulan dari user account dan computer account yang terhubung dengan domain controller melalui active directory directory services disebut sebagai Domain

Berbicara tentang Domain, mari kita ambil contohnya adalah Google. Google memiliki sebuah domain bernama Google.com. Google telah mengekspansi bisnisnya ke Asia, Australia, Eropa, Afrika dan tentu saja Amerika. Namun pada realitasnya, Eropa memiliki requirement yang spesifik tentang penggunaan domain ini dengan alasan keamanan. Sehingga Google membuat sebuah sub domain, yaitu europe.google.com. Sama dengan domain, sub domain juga memiliki Domain Controller, user account dan computer account. Sub domain ini dapat menggunakan schema dari domainnya. Domain membuat sub domain disebut dengan two ways transitive trust, yang berarti domain mempercayai sub domainnya dan sub domain mempercayai domainnya. Domain dapat memiliki lebih dari satu sub domain, dan setiap sub domain terhadap sub domain lainnya juga dapat saling mempercayai, hal itulah yang dimaksud dengan two ways transitive trust

Penyajian materi dalam video ini sangat bagus, karena selain penyampainnya yang banyak diulang-ulang sehingga membuat penonton mengerti benar akan konsep yang diterangkannya, juga disertai dengan ilustrasi gambar yang dibuat dari awal hingga kompleks sehingga membantu penonton untuk berimajinasi tentang konsep yang disampaikannya secara langsung dan benar. Konten yang disampaikan secara eksplisit mencakup materi yang umum, artinya tidak hanya konsep pada Windows Server 2012, tetapi sistem operasi yang lain. 


Berikut merupakan data pribadi saya yang bisa diakses:

Posted By Novida9:23 PM

Thread Fundamentals - Advanced .Net Threading

Filled under:


Assalamualaikum wr. wb.

Pada thread blog kali ini saya akan memberikan ulasan (ulasan 1) dari video berdurasi 1:11:46 jam dari alamat ini. Ini merupakan video yang diunggah oleh akun bernama “Learn Forever” dengan judul Advanced Net Threading – Part 1 – Thread Fundamentals. Konten di dalam video tersebut secara original telah dibuat oleh Jeffrey Richter dari Microsoft Virtual Academy dan diproduksi oleh Wintellect Now. Alasan untuk memilih topik ini, karena selain sebagai tugas mata kuliah Sistem Operasi sekaligus sebagai bahan dasar untuk melakukan eksplorasi .Net System Development di kantor tempat saya bekerja. Selain itu, konten dalam video ini mencakup teknologi informasi secara umum, dan mencakup Sistem Operasi secara khusus.


Sejarah keberadaan thread secara umum adalah berasal dari lemahnya eksekusi yang dilakukan sistem operasi terhadap aplikasi-aplikasi yang terdapat didalamnya. Salah satu contohnya adalah terjadinya infinite loop pada proses aplikasi yang dapat menyebabkan mesin berada pada kondisi Freeze. Hal ini sangat tidak User friendly untuk sebuah konsep User Experience pada Sistem Operasi. Kebanyakan orang menganggap bahwa thread akan meningkatkan kinerja dari sistem operasi, namun pada kenyatannya, thread digunakan untuk memvirtualisasikan memori pada komputer sehingga membuat komputer berjalan dengan lebih lambat. Masalah lain muncul kemudian, yaitu 1 CPU hanya dapat menjalankan 1 thread dalam satu waktu, selanjutnya disebut Quantum. Quantum berjalan dengan kecepatan 3milidetik setiap proses. Kemudian Microsoft akhirnya membangun Windows yang mendukung adanya 1+threads per proses. Hal ini akan mendukung Sistem Operasi untuk menjalankan proses yang Infinite loop. Jadi, pengguna dapat membuka task manager untuk melakukan kill terhadap aplikasi yang infinite loop tersebut serta me-release alamat memori yang digunakan oleh aplikasi yang infinite loop tadi dengan tanpa mematikan komputernya. Tujuan utama thread dibuat pada tahap ini adalah untuk alasan ketahanan, keresponsifan dan kereliabelan. Dengan kata lain, thread merupakan teknologi untuk memvirtualisasikan CPU, yang pada dasarnya memiliki sebuah overhead, dalam hal ini adalah waktu eksekusi dan ukuran alokasi memori. Setiap kali thread dipanggil oleh sistem operasi, ia akan membuat sebuah struktur data disebut thread kernel object untuk memenej waktu hidup alokasi memori. Struktur data ini menyimpan informasi tentang waktu pembuatan thread tersebut, penjadwalan, berapa banyak CPU time yang digunakan, posisi apa yang sedang thread kerjakan (create, wait, running atau terminating). thread kernel object terdiri dari context, Thread Local Storage (TLS), dan Graphics Devise Interface. Bagian terpenting di dalam thread adalah Stacks. Satu thread terdiri dari 2 Stacks, yaitu user mode stack dengan kapasitas memori 1MB, dan kernel mode stack dengan kapasitas memori 12KB atau 24KB tergantung besarnya bit sistem operasi yang digunakan. Kemudian hal penting berikutnya dalam thread overhead adalah time overhead yaitu waktu yang digunakan mengalokasi memori dan mendealokasi memori. Time overhead disimpan dalam bentuk DLL.

Kemudian, 2 alasan utama mengapa kita harus menggunakan thread dalam programming adalah 1) untuk mengisolasi suatu kode ke dalam kode yang lain, atau dengan kata lain untuk menciptakan kode yang reliabel dan mudah untuk dibuat, 2) untuk mengeksekusi lebih dari 1 proses dalam sekali waktu secara bersamaan, karena pada saat ini kebanyakan komputer telah mendukung multi-processor.  Benefit yang bisa didapatkan ketika menggunakan thread dalam membuat program adalah 1) menjaga agar CPU tetap sibuk, karena jika 1 CPU dan 1 thread selesai mengeksekusi suatu proses, context switch dapat menjadwalkan proses lain untuk dieksekusi selanjutnya, hal ini akan membuat efisiensi sumber daya yang ada di dalam komputer, misalnya daya baterai, 2) Dalam sekali menjalankan aplikasi, pengguna dapat melakukan eksekusi terhadap lebih dari satu fitur aplikasi, dan 3) Untuk membuat aplikasi yang reliabel, tanpa hangs, dapat ditunda, dan UI yang responsif atau user friendly. Contoh fungsi yang dapat dibuat dengan menggunakan thread adalah 1) file indexing untuk pencarian yang lebih cepat, 2) mengurutkan pengalamatan pada memori fisik untuk mempercepat pengaksesan I/O, 3) Spelling dan Grammar pada saat pengetikan kata di aplikasi pengolah kata.

Tujuan utama dari video ini sebenarnya adalah untuk mengajarkan bagaimana membuat thread dengan menggunakan bahasa pemrograman C#. Namun, penyaji lebih memilih untuk memberikan materi tentang fundamental atau dasar-dasar materi yang harus diketahui tentang threading dengan bahasa yang mudah dipahami dan lengkap terlebih dahulu. Itu berarti penyaji membiarkan pembacanya untuk benar-benar mengerti konsep threading pada C#, tidak hanya sekedar mengikuti apa yang dia buat atau kerjakan. Oleh karena itu saya pribadi sangat setuju dengan cara penyampainnya, walaupun ada bagian yang seharusnya dioptimalkan untuk membuat penggunanya cepat dan mudah memahaminya, yaitu dengan slide presentasi yang unik disertai gambar-gambar pendukung.




Berikut merupakan data pribadi saya yang bisa diakses:

Posted By Novida12:46 AM