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.

Java Technology

  • 1.
    Seminar Pengantar PKLD III Ilkom @ifnubima ifnubima@gmail.com ifnubim.org
  • 2.
    What You Needfrom 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 isa 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 isa 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 GoodFor 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
  • 7.
  • 8.
    Typical Java WebApplication Load UI Browser Webserver (apache httpd) Get/Post data using JSON REST Service Cache Server App Server (memcache) (tomcat) Database (MySQL)
  • 9.
    Important Things ToLearn  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 / ServicePattern 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 WebApplication
  • 18.
    10 Things YouNeed 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 toDo 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.