Showing posts with label CRUD. Show all posts
Showing posts with label CRUD. Show all posts

Sunday, September 9, 2018

Pengalaman pertama menggunakan ASP.NET MVC

Hay gengsss, jumpa lagi sama saya di blog ini, kali ini akan saya ceritakan kesan pertama ketika saya menggunakan ASP.NET.

Background:
1. Di Nostra, belum ada yang memakan product microsoft(khususnya .NET)
2. Penasaran dengan microsoft punya
3. Oracle merupakan rival dari microsoft (Java vs .NET)

Dari beberapa hal diatas membuat penulis penasaran sehingga mencurahkannya dalam tulisan ini, sebelum jauh, kita sisir dulu perbedaan dari kedua kubu tersebut. Java bisa berjalan di beberapa operating sistem, tetapi harus ada Java Virtual Machine(JVM), sedangkan .Net hanya akan berjalan di operating system windows. Sama-sama tidak bersahabat ya guys, berbeda dengan C yang bisa berjalan dimana aja. xixixi. Selain itu Java mendukung bahasa Java, javaScript, Groovy, Clojure dan Scala, sedangkan .Net mendukung bahasa .Net, C#, F#, VB.NET, C++. Disini jelas ya perbedaanya....
ok, setelah kita tahu perbedaanya, akan saya ceritakan rasanya, eh kesan pertama maksudnya....
Let's GO.....
Langkah-langkah nya CRUD MVC dengan Visual Studio 2013:
1. Harus punya dulu visual studio, akan include framework asp.NET
2. Buat project baru C# > tab Web > ASP.NET Web Application > empty project dan tik MVC.
3. Setelah itu akan muncul project seperti gambar 1. dan setup project dan install framework Entity manager, dan akan muncul file entity manager di project explorer seperti gambar 2.
Gambar 1. Tampilan pertama project
Gambar 2. Entity manager framework


 4. Setelah itu tambahkan project baru Class library atau biasa disebut Model dan ulangi langkah ketiga(ini untuk koneksi ke database, btw kita pakai SQL server ya, biar sepaket)
Gambar 3. tambahkan entity library
5. Tambahkan class pada model tersebut, seperti gambar sehingga akan tampil seperti gambar 4, tambahkan juga konfigurasi (DBcontext) untuk menghubungkan database dengan class(gambar 5)
Gambar 4. Setting tabel pada database seperti gambar diatas
Gamabar 5. Setting koneksi antar class dengan tabel database
6. Tambahkan konfigurasi pada App.config dalam model, tambahkan juga pada Web.config, tanpa konfig ini, WebApp kita tidak akan terkoneksi dengan database. setelah itu tambahkan referensi pada main project ke model yang kita buat seperti gambar 7.
Gambar 7. setting koneksi database dan tambah referensi
Gambar 8. tambah kontroller
7. Nah, setelah itu add controllernya seperti gambar 8. pilih MVC 5 with view using entity framework. tambahkan juga routenya seperti gambar 9.
Gambar 9. folder project explorer dan settup route
8. Setelah itu build project, dan run. web browser default akan membuka tab dengan port default http://localhost:59465, jika kita tambah http://localhost:59465/Student akan langsung tampilk seperti gambar 10. Untuk database bisa dilihat di gamvar 11.
Gambar 10. hasil CRUD MVC
Gambar 11. Database CRUD MVC

Kesimpulan:
Kelebihan menggunakan ASP.NET MVC, langkah CRUD jadi semakin cepat, dengan User Interface yang lumayan bagus untuk versi default. Ini akan mempercepat pembuatan aplikasi. Kekurangannya, benyak project ASP.NET yang tidak opensoure, sehingga kita akan sulit mendapatkan template, selain itu, ASP ini hanya berjalan di sistem operasi windows.

Don't stop learning....

Soure:
https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started
https://codeburst.io/java-vs-net-factors-to-consider-cde1d22b06a7
https://mkhuda.com/teknologi/pilih-php-atau-asp/

Saturday, June 30, 2018

Rest API using Play Framework in Java

Halooo . . .
Kali ini saya membuat tulisan mengenai Rest API menggunakan Play Framework khususnya java pada play framework

Sebelumnya, apa itu play framework?
Play Framework adalah framework open souce aplikasi web yang ditulis dengan Scala dan juga pemrograman lainnya seperti Java.
Biasanya pemrograman yang menggunakan java membutuhkan waktu untuk proses build dan deploy. Nah, dengan menggunakan framework ini, hasil coding tersebut hanya cukup kita save dan refresh browser atau postman untuk melihat hasil coding yang kita kerjakan.
Terkadang ada juga pemrograman yang menggunakan java harus restart server terlebih dahulu, padahal yang di edit hanya sedikit line code.

Typesafe Activator merupakan platform yang bisa digunakan untuk membuat dan menjalankan project play framework. Untuk download typesafe activator dapat di download pada link berikut: http://typesafe.com/activator
atau jika anda menggunakan mac, cukup gunakan perintah berikut pada terminal anda :
brew install typesafe-activator

Tanpa basa-basi kita create new project dulu ya . .
  1.  Create new Project

    Pertama buka terminal terlebih dahulu, dan pergi ke direktori dimana kita akan create project baru kita
    Gambar 1

    Kemudian ketik perintah : activator new 

    Gambar 2
    Maka akan muncul beberapa pilihan seperti gambar di atas (Gambar 2). dan kita akan memilih nomor 5

    Gambar 3
    Pada gambar diatas (Gambar 3) project sudah berhasil di create dengan nama project (play-java) 

    Untuk menjalankannya : activator run
    Gambar 4
    untuk testing di postman atau di browser : //localhost:9000

    Gambar 5 Tampilan awal Play Framework
  2.  Konfigurasi database
    Tambahkan code-code berikut pada file:

    Pada file build.sbt :



  3. Pada file plugins.sbt : 

            

     Pada file application.conf :
  4. Models
    Selanjutnya kita akan membuat model
    package models;
    import com.avaje.ebean.Model;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "anggota")
    public class Anggota extends Model {
        @Id    
        private Integer id_anggota;
        private String nama_anggota;
        private String alamat_anggota;
    
        public Integer getId_anggota() {
            return id_anggota;    }
        public void setId_anggota(Integer id_anggota) {
            this.id_anggota = id_anggota;    }
    
        public String getNama_anggota() {
            return nama_anggota;    }
    
        public void setNama_anggota(String nama_anggota) {
            this.nama_anggota = nama_anggota;    }
    
        public String getAlamat_anggota() {
            return alamat_anggota;    }
    
        public void setAlamat_anggota(String alamat_anggota) {
            this.alamat_anggota = alamat_anggota;    }
    }
    
  5. Controller
    Dan ini untuk controller
    package controllers;
    import repository.AnggotaRepository;
    import com.fasterxml.jackson.databind.JsonNode;
    import models.Anggota;
    import org.springframework.beans.factory.annotation.Autowired;
    import play.libs.Json;
    import play.mvc.Controller;
    import play.mvc.Result;
    
    import java.util.List;
    public class AnggotaController extends Controller {
    
        @Autowired    AnggotaRepository anggotaRepository;
        public Result viewAnggota(String nama){
            List<Anggota> anggotas = anggotaRepository.cocoTasks(nama);
    
    return ok(Json.toJson(anggotas));
    } public Result listAnggota(){ List<Anggota> anggotas = anggotaRepository.cocoList();
    return ok(Json.toJson(anggotas));
    } public Result createAnggota() { JsonNode json = request().body().asJson();
    Anggota anggota = new Anggota();   
    anggota = (Anggota)Json.fromJson(json,Anggota.class);  
    anggota.save();
    return ok(Json.toJson(anggota));
    } public Result updateAnggota(){
    JsonNode json = request().body().asJson();
    Anggota anggota = new Anggota(); anggota = (Anggota)Json.fromJson(json, Anggota.class); anggota.update(); return ok(Json.toJson(anggota));
    } public Result delete(Integer id_anggota){ Anggota anggota = anggotaRepository.findById(id_anggota); if(anggota==null){   return notFound(Json.toJson("Anggota not Found"));  } anggota.delete(); return ok(Json.toJson("Anggota "+id_anggota+"has been deleted")); } }
  6. Repository
    Dalam project sederhana ini, saya buat file repository. Dimana dalam file ini berisi query-query data yang saya gunakan
    package repository;
    import com.avaje.ebean.Model;import models.Anggota;
    import java.util.List;
    public class AnggotaRepository {
    
        public static Model.Finder<Integer, Anggota> find = 
            new Model.Finder<Integer, Anggota>(Integer.class, Anggota.class);
    
        public static   List<Anggota> cocoTasks(String nama){
            return  find                .query().where()
                    .ilike("nama_anggota","%"+nama+"%")
                    .orderBy("id_anggota").findList();
        }
        public static List<Anggota> cocoList(){
            return  find.orderBy("id_anggota").findList();
        }
    
        public static Anggota findById(Integer id_anggota){
            return find.byId(id_anggota);    }
    }
    
    
    
    
  7. Mapping
    Action-action yang sudah kita code dalam controller dapat kita mapping. Untuk mapping dapat di kita lakukan pada file play-java/conf/routes
    # Routes
    # This file defines all application routes (Higher priority routes first)
    # ~~~~
    
    # An example controller showing a sample home page
    GET     /                           controllers.HomeController.index
    
    GET  /anggota/nama_anggota=:nama_anggota  controllers.AnggotaController.viewAnggota(nama_anggota:String)
    GET   /list-anggota                       controllers.AnggotaController.listAnggota()
    POST  /create-anggota                     controllers.AnggotaController.createAnggota()
    POST  /update-anggota                     controllers.AnggotaController.updateAnggota()
    DELETE  /delete-anggota/:id_anggota       controllers.AnggotaController.delete(id_anggota:Integer)
    
    # An example controller showing how to use dependency injection
    GET     /count                      controllers.CountController.count
    # An example controller showing how to write asynchronous code
    GET     /message                    controllers.AsyncController.message
    
    # Map static resources from the /public folder to the /assets URL path
    GET     /assets/*file               controllers.Assets.versioned(path="/public", file: Asset)
  8. Demo
    - Action Create
    Gambar 6. Action Create

    - Action View
    Gambar 7. List Anggota

    Gambar 8. search by nama anggota

    - Action Update
    Gambar 9. Action Update

    - Action Delete
    Gambar 10. Action Delete


    Begitu lah sharing singkat mengenai Rest API using Play Framework
    Sekian dari saya dan semoga tulisan ini bermanfaat.
    Terima kasih,

    Salam

    Reference :
    https://www.playframework.com/documentation/
    http://www.baeldung.com/rest-api-with-play
    https://www.youtube.com/watch?v=qKxgtmuPjHQ