SlideShare a Scribd company logo
Seminar Pengantar PKL D III Ilkom

                     @ifnubima
            ifnubima@gmail.com
                    ifnubim.org
What You Need from a Platform?
 Open Technology: Open Source, Free Software, Open
    Standard
   Good Language Structure
   Ecosystem
   Platform Range
   Industry Acceptance
   Proven, widely used, lots of options
   Complement and Substitute Solution
   Continues Development
   Popularity
Why Java is a Better Technology?
   WORA, Write Once Run Anywhere.
   One language for all platform: Desktop, Mobile, Web/Enterprise
   Portable
   OOP
   JDK, JVM and Garbage Collector
   Logistics
        Library
        Framework
        Servers
        Resource : tutorial, white paper, case study
 Precision
    Mathematic calculation
    Number handling
 Security Model
Why Java is a Better Technology?
 Bleeding Edge Technology Run on Java
    Hadoop – Map Reduce and Distributed File System
    Lucene – Full Text search and Information Retrieval
    Apache Cassandra – NoSQL Database
 Support from big software vendor
    Oracle
    IBM
    Spring Source / VMWare
    JBoss / Red Hat
Why Java Good For Us?
   High Paid Developer
   Great Career Path
   Working Overseas (Singapore, Malaysia, US, Europe)
   Big Company Using Java
     Banking, Insurance, Financial institution : BCA, Mandiri,
      Permata, Asuransi Wahana Tata, ACC, etc.
     Telco : Telkomsel, XL, Axis, Indosat, etc
     Manufacture: Astra
     Startup : rakuten, blibli
 Zero investment to start learning Java
 Zero investment to start Java Company
 Tons of documents, books, tutorials and forums
How To Start?
 Read Books
    Java Desktop - Ifnu Bima
    JENI - http://space.meruvian.org/jtechnopreneur/jeni
    Java Tutorial - http://docs.oracle.com/javase/tutorial/
    Java EE - http://download.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf
    Baca, Tahu, Paham, Hafal
 Use Java in Your Project
    http://code.google.com/p/project-template/
    https://github.com/endymuhardin
    Lihat, Amati, Tiru, Modifikasi
 Internship
 Certification OJCP (SCJP), SCWCD, SCBD, SCEA – $130. Inixindo
  or MII
What Java Looks Like?
Typical Java Web Application
          Load UI


Browser
             Webserver
           (apache httpd)
                             Get/Post data
                             using JSON REST Service




              Cache Server                 App Server
              (memcache)                    (tomcat)




                                            Database
                                            (MySQL)
Important Things To Learn
 Framework
    Spring – Dependency Injection, MVC
    Hibernate – Object Relational Mapping
    JSP – Java Server Pages
 UI
    HTML, CSS
    JavaScript, jQuery, JSON
 Server
    Tomcat – Application Server
    MySQL – Database Server
    Linux – OS Server
    Apache httpd - Webserver
 Build Tools and Test
    Maven – Build tools
    Junit – Unit Testing
    DB Unit – Unit testing for database application
Java Love Patterns
 MVC
    Model
    View
    Controller
 Façade – Also known as Service Pattern
 DAO – Data Access Object
MVC




      http://www.skywayperspectives.org/docum
      entation/6.3/images/recipes/mvc_whole.jpg
Model / Entity
 @Entity
 @Table(name = "T_USER")
 public class User implements Serializable {

     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "USER_ID")
     private Integer userId;

     @Column(name = "BIRTHDATE")
     @Temporal(TemporalType.DATE)
     private Date birthdate;

     @Column(name = "PASSWORD")
     private String password;

     @Column(name = "USERNAME")
     private String username;

 }
Controller
@Controller
public class UserController {

    @Autowired private UserService userService;

    @RequestMapping(value="/user/list",method= RequestMethod.GET)
    public ModelAndView userList(){
      ModelAndView modelAndView = new ModelAndView();
      modelAndView.setViewName("/userList");
      modelAndView.addObject("users", userService.getUsers());
      return modelAndView;
    }

}
Façade / Service Pattern
public interface UserService {   @Service
                                 @Transactional(readOnly=true)
    List<User> getUsers();       public class UserServiceImpl implements
                                 UserService{
}
                                     @Autowired
                                     private UserDao userDao;

                                     @Override
                                     public List<User> getUsers() {
                                       return userDao.getUsers();
                                     }

                                 }
DAO
@Repository
public class UserDao {

    @Autowired
    private SessionFactory sessionFactory;

    public List<User> getUsers() {
      return sessionFactory.getCurrentSession().createQuery("from User u")
           .list();
    }

}
View
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>User Data</title>
  </head>
  <body>
    <h1>User List</h1>
    <table style="border: 1px">
      <tr>
         <td>User Id</td>
         <td>User Name</td>
         <td>Birth Date</td>
      </tr>
      <c:forEach var="user" items="${users}">
      <tr>
         <td>${user.userId}</td>
         <td>${user.username}</td>
         <td>${user.birthdate}</td>
      </tr>
      </c:forEach>
    </table>
  </body>
</html>
Typical Java Web Application
10 Things You Need to Do Before
Graduated
 Belajar menulis - “A software doesn’t exist, if it doesn’t have
  documentation!”
 Kuliah yang bener dan Lulus Cepat– Konsep Ilmu Komputer yang
  kuat akan sangat membantumu di sesi wawancara kerja
 Ambil kursus pemrograman, terutama OOP – Belajar
  programming dengan jalur yang tepat dan metode penulisan kode
  program yang mengikuti design pattern dan code convention yang
  baik.
 Cari tempat magang yang bagus – Setiap universitas pasti
  mengadakan program magang, manfaatkan dengan baik dan carilah
  tempat magang yang memberi pekerjaan programming, jangan ambil
  tugas magang yang hanya memberi tugas input data.
 Belajar bahasa inggris – Surfing di internet tanpa bisa bahasa inggris
  sama saja seperti nyetir ga bisa baca rambu lalu lintas.
10 Things to Do Before You
Graduate!
 Belajar mikro-ekonomi – Belajar ekonomi dan bayangkan dirimu
    menjadi enterprenur nantinya, jgn mau jadi bawahan terus.
   Jangan meremehkan mata kuliah non IT hanya karena
    membosankan – IP jelek hanya akan menimbulkan banyak keraguan
    dan impresi yang tidak bagus pada waktu mencari kerja nanti.
   Berhentilah mengkhawatirkan nanti akan kerja di mana – Do it
    the best you can do, and it will bring you to the best workplace
    available.
   Buatlah sebuah aplikasi sederhana sampai selesai – Aplikasi ini
    nantinya bisa digunakan pada waktu wawancara, untuk membuktikan
    bahwa kita bisa menerapkan prinsip “get things done!” tidak cuma
    coding kesana kemari tapi tidak menyelesaikan pekerjaan.
   Aktif di komunitas – Dengan sering memposting ke forum/milis kita
    akan tahu apakah pemahaman dan penguasaan terhadap suatu konsep
    benar atau salah, cukup atau kurang. Ini penting sekali untuk
    mengetahui sebenarnya kita siap atau tidak terjun di dunia kerja.

More Related Content

What's hot (20)

PPTX
J2ee architecture
Erencan Özkan
 
PPTX
Spring Framework
tola99
 
PDF
Java Enterprise Edition 6 Overview
Eugene Bogaart
 
PDF
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
1. Spring intro IoC
ASG
 
PPT
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG
 
PPT
What's New in WebLogic 12.1.3 and Beyond
Oracle
 
PPTX
J2ee seminar
Sahil Kukreja
 
PPTX
Future of Java EE with Java SE 8
Hirofumi Iwasaki
 
PDF
Spring framework
Aircon Chen
 
PPT
Spring Framework
nomykk
 
PPT
Java EE7 in action
Ankara JUG
 
PDF
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Edureka!
 
PDF
Spring Framework - Core
Dzmitry Naskou
 
PDF
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Bruno Borges
 
PPTX
Introduction to Spring Framework
Raveendra R
 
PDF
Java EE7 Demystified
Ankara JUG
 
PPTX
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
 
PPT
Spring and DWR
wiradikusuma
 
PDF
Create Restful Web Application With Node.js Express Framework
Edureka!
 
J2ee architecture
Erencan Özkan
 
Spring Framework
tola99
 
Java Enterprise Edition 6 Overview
Eugene Bogaart
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
1. Spring intro IoC
ASG
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG
 
What's New in WebLogic 12.1.3 and Beyond
Oracle
 
J2ee seminar
Sahil Kukreja
 
Future of Java EE with Java SE 8
Hirofumi Iwasaki
 
Spring framework
Aircon Chen
 
Spring Framework
nomykk
 
Java EE7 in action
Ankara JUG
 
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Edureka!
 
Spring Framework - Core
Dzmitry Naskou
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Bruno Borges
 
Introduction to Spring Framework
Raveendra R
 
Java EE7 Demystified
Ankara JUG
 
Seven Points for Applying Java EE 7
Hirofumi Iwasaki
 
Spring and DWR
wiradikusuma
 
Create Restful Web Application With Node.js Express Framework
Edureka!
 

Viewers also liked (10)

PDF
IT Carier
ifnu bima
 
PDF
Rembug Presentation
ifnu bima
 
PDF
Free Software Foundation,FSF,Opensource
ifnu bima
 
PDF
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
ifnu bima
 
PDF
solr @ blibli
ifnu bima
 
PDF
Development di Blibli
ifnu bima
 
PDF
Architecting for Hyper Growth and Great Engineering Culture
ifnu bima
 
PPTX
Lesson learned in developing UI and mobile apps blibli.com
ifnu bima
 
PPTX
Our Battle Against Technical Debt
ifnu bima
 
PPTX
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Irfan Maulana
 
IT Carier
ifnu bima
 
Rembug Presentation
ifnu bima
 
Free Software Foundation,FSF,Opensource
ifnu bima
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
ifnu bima
 
solr @ blibli
ifnu bima
 
Development di Blibli
ifnu bima
 
Architecting for Hyper Growth and Great Engineering Culture
ifnu bima
 
Lesson learned in developing UI and mobile apps blibli.com
ifnu bima
 
Our Battle Against Technical Debt
ifnu bima
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Irfan Maulana
 
Ad

Similar to Java Technology (20)

PPT
Advanced Web Development
Robert J. Stein
 
PDF
RESTEasy
Massimiliano Dessì
 
KEY
Approaches to mobile site development
Erik Mitchell
 
PDF
May 2010 - RestEasy
JBug Italy
 
PPTX
Practical OData
Vagif Abilov
 
ODP
Exploring Symfony's Code
Wildan Maulana
 
PPTX
Resthub framework presentation
Sébastien Deleuze
 
PPTX
The Best Way to Become an Android Developer Expert with Android Jetpack
Ahmad Arif Faizin
 
PDF
.Net template solution architecture
Diogo Gonçalves da Cunha
 
PDF
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
PPTX
LRT MoodleMootUK11 Unconf Presentation
Steve Nisbet
 
PPT
Developing RESTful WebServices using Jersey
b_kathir
 
PDF
uMobile Preconference Seminar
Jennifer Bourey
 
PDF
How to disassemble one monster app into an ecosystem of 30
fiyuer
 
PPTX
Developing web apps using Java and the Play framework
Victor Porof
 
PDF
Unit 07: Design Patterns and Frameworks (3/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
PDF
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
Matt Raible
 
PPTX
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
jpalley
 
PPT
Dojo - from web page to web apps
yoavrubin
 
PPTX
Introduction to using jQuery with SharePoint
Rene Modery
 
Advanced Web Development
Robert J. Stein
 
Approaches to mobile site development
Erik Mitchell
 
May 2010 - RestEasy
JBug Italy
 
Practical OData
Vagif Abilov
 
Exploring Symfony's Code
Wildan Maulana
 
Resthub framework presentation
Sébastien Deleuze
 
The Best Way to Become an Android Developer Expert with Android Jetpack
Ahmad Arif Faizin
 
.Net template solution architecture
Diogo Gonçalves da Cunha
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
LRT MoodleMootUK11 Unconf Presentation
Steve Nisbet
 
Developing RESTful WebServices using Jersey
b_kathir
 
uMobile Preconference Seminar
Jennifer Bourey
 
How to disassemble one monster app into an ecosystem of 30
fiyuer
 
Developing web apps using Java and the Play framework
Victor Porof
 
Unit 07: Design Patterns and Frameworks (3/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
Matt Raible
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
jpalley
 
Dojo - from web page to web apps
yoavrubin
 
Introduction to using jQuery with SharePoint
Rene Modery
 
Ad

Java Technology

  • 1. Seminar Pengantar PKL D III Ilkom @ifnubima [email protected] ifnubim.org
  • 2. What You Need from a Platform?  Open Technology: Open Source, Free Software, Open Standard  Good Language Structure  Ecosystem  Platform Range  Industry Acceptance  Proven, widely used, lots of options  Complement and Substitute Solution  Continues Development  Popularity
  • 3. Why Java is a Better Technology?  WORA, Write Once Run Anywhere.  One language for all platform: Desktop, Mobile, Web/Enterprise  Portable  OOP  JDK, JVM and Garbage Collector  Logistics  Library  Framework  Servers  Resource : tutorial, white paper, case study  Precision  Mathematic calculation  Number handling  Security Model
  • 4. Why Java is a Better Technology?  Bleeding Edge Technology Run on Java  Hadoop – Map Reduce and Distributed File System  Lucene – Full Text search and Information Retrieval  Apache Cassandra – NoSQL Database  Support from big software vendor  Oracle  IBM  Spring Source / VMWare  JBoss / Red Hat
  • 5. Why Java Good For Us?  High Paid Developer  Great Career Path  Working Overseas (Singapore, Malaysia, US, Europe)  Big Company Using Java  Banking, Insurance, Financial institution : BCA, Mandiri, Permata, Asuransi Wahana Tata, ACC, etc.  Telco : Telkomsel, XL, Axis, Indosat, etc  Manufacture: Astra  Startup : rakuten, blibli  Zero investment to start learning Java  Zero investment to start Java Company  Tons of documents, books, tutorials and forums
  • 6. How To Start?  Read Books  Java Desktop - Ifnu Bima  JENI - http://space.meruvian.org/jtechnopreneur/jeni  Java Tutorial - http://docs.oracle.com/javase/tutorial/  Java EE - http://download.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf  Baca, Tahu, Paham, Hafal  Use Java in Your Project  http://code.google.com/p/project-template/  https://github.com/endymuhardin  Lihat, Amati, Tiru, Modifikasi  Internship  Certification OJCP (SCJP), SCWCD, SCBD, SCEA – $130. Inixindo or MII
  • 8. Typical Java Web Application Load UI Browser Webserver (apache httpd) Get/Post data using JSON REST Service Cache Server App Server (memcache) (tomcat) Database (MySQL)
  • 9. Important Things To Learn  Framework  Spring – Dependency Injection, MVC  Hibernate – Object Relational Mapping  JSP – Java Server Pages  UI  HTML, CSS  JavaScript, jQuery, JSON  Server  Tomcat – Application Server  MySQL – Database Server  Linux – OS Server  Apache httpd - Webserver  Build Tools and Test  Maven – Build tools  Junit – Unit Testing  DB Unit – Unit testing for database application
  • 10. Java Love Patterns  MVC  Model  View  Controller  Façade – Also known as Service Pattern  DAO – Data Access Object
  • 11. MVC http://www.skywayperspectives.org/docum entation/6.3/images/recipes/mvc_whole.jpg
  • 12. Model / Entity @Entity @Table(name = "T_USER") public class User implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "USER_ID") private Integer userId; @Column(name = "BIRTHDATE") @Temporal(TemporalType.DATE) private Date birthdate; @Column(name = "PASSWORD") private String password; @Column(name = "USERNAME") private String username; }
  • 13. Controller @Controller public class UserController { @Autowired private UserService userService; @RequestMapping(value="/user/list",method= RequestMethod.GET) public ModelAndView userList(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/userList"); modelAndView.addObject("users", userService.getUsers()); return modelAndView; } }
  • 14. Façade / Service Pattern public interface UserService { @Service @Transactional(readOnly=true) List<User> getUsers(); public class UserServiceImpl implements UserService{ } @Autowired private UserDao userDao; @Override public List<User> getUsers() { return userDao.getUsers(); } }
  • 15. DAO @Repository public class UserDao { @Autowired private SessionFactory sessionFactory; public List<User> getUsers() { return sessionFactory.getCurrentSession().createQuery("from User u") .list(); } }
  • 16. View <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>User Data</title> </head> <body> <h1>User List</h1> <table style="border: 1px"> <tr> <td>User Id</td> <td>User Name</td> <td>Birth Date</td> </tr> <c:forEach var="user" items="${users}"> <tr> <td>${user.userId}</td> <td>${user.username}</td> <td>${user.birthdate}</td> </tr> </c:forEach> </table> </body> </html>
  • 17. Typical Java Web Application
  • 18. 10 Things You Need to Do Before Graduated  Belajar menulis - “A software doesn’t exist, if it doesn’t have documentation!”  Kuliah yang bener dan Lulus Cepat– Konsep Ilmu Komputer yang kuat akan sangat membantumu di sesi wawancara kerja  Ambil kursus pemrograman, terutama OOP – Belajar programming dengan jalur yang tepat dan metode penulisan kode program yang mengikuti design pattern dan code convention yang baik.  Cari tempat magang yang bagus – Setiap universitas pasti mengadakan program magang, manfaatkan dengan baik dan carilah tempat magang yang memberi pekerjaan programming, jangan ambil tugas magang yang hanya memberi tugas input data.  Belajar bahasa inggris – Surfing di internet tanpa bisa bahasa inggris sama saja seperti nyetir ga bisa baca rambu lalu lintas.
  • 19. 10 Things to Do Before You Graduate!  Belajar mikro-ekonomi – Belajar ekonomi dan bayangkan dirimu menjadi enterprenur nantinya, jgn mau jadi bawahan terus.  Jangan meremehkan mata kuliah non IT hanya karena membosankan – IP jelek hanya akan menimbulkan banyak keraguan dan impresi yang tidak bagus pada waktu mencari kerja nanti.  Berhentilah mengkhawatirkan nanti akan kerja di mana – Do it the best you can do, and it will bring you to the best workplace available.  Buatlah sebuah aplikasi sederhana sampai selesai – Aplikasi ini nantinya bisa digunakan pada waktu wawancara, untuk membuktikan bahwa kita bisa menerapkan prinsip “get things done!” tidak cuma coding kesana kemari tapi tidak menyelesaikan pekerjaan.  Aktif di komunitas – Dengan sering memposting ke forum/milis kita akan tahu apakah pemahaman dan penguasaan terhadap suatu konsep benar atau salah, cukup atau kurang. Ini penting sekali untuk mengetahui sebenarnya kita siap atau tidak terjun di dunia kerja.