SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Spring Framework
Spring Framework  Spring Framework
Spring Framework tola99
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
1. Spring intro IoC
1. Spring intro IoC1. Spring intro IoC
1. Spring intro IoCASG
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondOracle
 
Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Hirofumi Iwasaki
 
Spring framework
Spring frameworkSpring framework
Spring frameworkAircon Chen
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in actionAnkara JUG
 
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Edureka!
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - CoreDzmitry Naskou
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno Borges
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkRaveendra R
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 DemystifiedAnkara JUG
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Hirofumi Iwasaki
 
Create Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkCreate Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkEdureka!
 

Tendances (20)

J2ee architecture
J2ee architectureJ2ee architecture
J2ee architecture
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
 
1. Spring intro IoC
1. Spring intro IoC1. Spring intro IoC
1. Spring intro IoC
 
Ankara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADFAnkara JUG Ağustos 2013 - Oracle ADF
Ankara JUG Ağustos 2013 - Oracle ADF
 
What's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and BeyondWhat's New in WebLogic 12.1.3 and Beyond
What's New in WebLogic 12.1.3 and Beyond
 
J2ee seminar
J2ee seminarJ2ee seminar
J2ee seminar
 
Future of Java EE with Java SE 8
Future of Java EE with Java SE 8Future of Java EE with Java SE 8
Future of Java EE with Java SE 8
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
Advance Java Tutorial | J2EE, Java Servlets, JSP, JDBC | Java Certification T...
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Java EE7 Demystified
Java EE7 DemystifiedJava EE7 Demystified
Java EE7 Demystified
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
 
Spring and DWR
Spring and DWRSpring and DWR
Spring and DWR
 
Create Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express FrameworkCreate Restful Web Application With Node.js Express Framework
Create Restful Web Application With Node.js Express Framework
 

En vedette

Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentationifnu bima
 
Free Software Foundation,FSF,Opensource
Free Software Foundation,FSF,OpensourceFree Software Foundation,FSF,Opensource
Free Software Foundation,FSF,Opensourceifnu bima
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBifnu bima
 
solr @ blibli
solr @ bliblisolr @ blibli
solr @ blibliifnu bima
 
Development di Blibli
Development di BlibliDevelopment di Blibli
Development di Blibliifnu bima
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Cultureifnu bima
 
Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comifnu bima
 
Our Battle Against Technical Debt
Our Battle Against Technical DebtOur Battle Against Technical Debt
Our Battle Against Technical Debtifnu bima
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSIrfan Maulana
 

En vedette (10)

IT Carier
IT CarierIT Carier
IT Carier
 
Rembug Presentation
Rembug PresentationRembug Presentation
Rembug Presentation
 
Free Software Foundation,FSF,Opensource
Free Software Foundation,FSF,OpensourceFree Software Foundation,FSF,Opensource
Free Software Foundation,FSF,Opensource
 
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPBjava-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
 
solr @ blibli
solr @ bliblisolr @ blibli
solr @ blibli
 
Development di Blibli
Development di BlibliDevelopment di Blibli
Development di Blibli
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
Lesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.comLesson learned in developing UI and mobile apps blibli.com
Lesson learned in developing UI and mobile apps blibli.com
 
Our Battle Against Technical Debt
Our Battle Against Technical DebtOur Battle Against Technical Debt
Our Battle Against Technical Debt
 
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSSPhp Indonesia x Bliblidotcom - Architecting Scalable CSS
Php Indonesia x Bliblidotcom - Architecting Scalable CSS
 

Similaire à Java Technology

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Approaches to mobile site development
Approaches to mobile site developmentApproaches to mobile site development
Approaches to mobile site developmentErik Mitchell
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasyJBug Italy
 
Exploring Symfony's Code
Exploring Symfony's CodeExploring Symfony's Code
Exploring Symfony's CodeWildan Maulana
 
Resthub framework presentation
Resthub framework presentationResthub framework presentation
Resthub framework presentationSébastien Deleuze
 
The Best Way to Become an Android Developer Expert with Android Jetpack
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android JetpackAhmad Arif Faizin
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
LRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationLRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationSteve Nisbet
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jerseyb_kathir
 
uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference SeminarJennifer Bourey
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30fiyuer
 
Developing web apps using Java and the Play framework
Developing web apps using Java and the Play frameworkDeveloping web apps using Java and the Play framework
Developing web apps using Java and the Play frameworkVictor Porof
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015Matt Raible
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...jpalley
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointRene Modery
 

Similaire à Java Technology (20)

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
Approaches to mobile site development
Approaches to mobile site developmentApproaches to mobile site development
Approaches to mobile site development
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasy
 
Practical OData
Practical ODataPractical OData
Practical OData
 
Exploring Symfony's Code
Exploring Symfony's CodeExploring Symfony's Code
Exploring Symfony's Code
 
Resthub framework presentation
Resthub framework presentationResthub framework presentation
Resthub framework presentation
 
The Best Way to Become an Android Developer Expert with Android Jetpack
The Best Way to Become an Android Developer Expert  with Android JetpackThe Best Way to Become an Android Developer Expert  with Android Jetpack
The Best Way to Become an Android Developer Expert with Android Jetpack
 
.Net template solution architecture
.Net template solution architecture.Net template solution architecture
.Net template solution architecture
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
LRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationLRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf Presentation
 
Developing RESTful WebServices using Jersey
Developing RESTful WebServices using JerseyDeveloping RESTful WebServices using Jersey
Developing RESTful WebServices using Jersey
 
uMobile Preconference Seminar
uMobile Preconference SeminaruMobile Preconference Seminar
uMobile Preconference Seminar
 
How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30How to disassemble one monster app into an ecosystem of 30
How to disassemble one monster app into an ecosystem of 30
 
Developing web apps using Java and the Play framework
Developing web apps using Java and the Play frameworkDeveloping web apps using Java and the Play framework
Developing web apps using Java and the Play framework
 
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
 
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
RailsConf 2010: From 1 to 30 - How to refactor one monolithic application int...
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 

Java Technology

  • 1. Seminar Pengantar PKL D III Ilkom @ifnubima ifnubima@gmail.com 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.