Showing posts with label programming language. Show all posts
Showing posts with label programming language. Show all posts

Sunday, September 9, 2018

Dart Language


Kembali lagi dengan saya Rizky Romadon (Madon)  ,  kali ini saya akan sedikit membahas tentang bahasa pemrogramman Dart. Apasih Dart itu ? Dart adalah bahasa pemrogramman tujuan umum yang awalanya dikembangkan oleh Google dan kemudian disetujui standart oleh Ecma. ini digunakan untuk membangun web , server dan aplikasi seluler 

Kenapa Dart ?
Developer di Google dan ditempat lain menggunakan Dart untuk membuat Aplikasi berkualitas tinggi untuk iOS, Android dan Web dengan fitur yang ditujukan pengembangan pada sisi Client .Dart sangat cocok untuk aplikasi Web dan Mobile

Productive
Syntax Dart ringkas dan jelas dan memiliki inti library dan ribuan package ecosystem

Fast
Dart menyediakan optimaze complie untuk meningkatkan kinerja pada mobile maupun web

Portable
Dart dapat berjalan secara native di iOS , android dan seterusnya. Untuk web apps dart di transpiles ke javascript

Approchable
Dart dapat dengan mudah dipelajari bagi Developer yang sudah familiar dengan OOP.  Jika developer sudah tau tentang C#  , C++ ataupun Java . Dart dapat mudah dipahami dalam hitungan hari.

Two-way problem
Dart Tools dapat melaporkan dua jenis masalah: peringatan dan kesalahan. Peringatan hanyalah indikasi bahwa kode Anda mungkin tidak berfungsi, tetapi mereka tidak mencegah program Anda dieksekusi. Kesalahan dapat berupa waktu-kompilasi atau run-time. Kesalahan waktu kompilasi mencegah kode dari mengeksekusi sama sekali; hasil kesalahan run-time dalam pengecualian yang dibangkitkan saat kode dijalankan.

Platform :
  1. Flutter
    Aplikasi iOS dan android jika ingin menggunakan Dart harus menggunakan Flutter. di desain untuk membangun UI pada aplikasi mobile
  2. Web
    Angular dart digunakan untuk front end. Dart dapat di compile ke dalam javascript sehingga browser dapat menjalankannya
  3. Server
    Dart juga dapat digunakan untuk membangun backend , framework yang bisa dipakai yaitu Express

Instalation :
  • $ brew tap dart-lang/dart
  • $ brew install dart
Fyi, Di dalam SDK Dart sudah terdapat Library yaitu : 
  • Dart
  • Dart2Js
  • DartAnalyzer
  • DartDevc
  • DartDoc
  • DartTmt
  • Pub
Setelah selesai instalasi kita coba membuat file dengan extention dart seperti dibawah ini : 


test.dart


lalu panggil dengan cara command dart "nama file". terlihat text yang kita print di console.

Oke , setelah berhasil print console menggunakan dart selanjutnya kita akan membuat simple REST api menggunakan Aqueduct. Apasih Aqueduct itu ? Aqueduct itu ada sebuah framework open source untuk membuat REST full api mirip seperti Express dan Hapi. Langsung saja kita coba ..

Install menggunakan :
$ pub global activate aqueduct

Lalu kita move to working directory kita buat project dengan command :
$ aqueduct create heroes && cd heroes

setelah project kita selesai dibuat kita buka menggunakan WebStrom , dibawah ini adalah contoh controller dari project yang kita buat tadi

sekarang waktuya kita jalankan aplikasi dengan $ dart bin/main.dart 
setelah berhasil dijalankan mari kita test api kita dengan cara excute http:localhost:8888/example
Nah cukup mudah kan , oke sekian dari saya tentang dart language selamat mencoba dan berkarya menggunakan dart. Terima Kasih  ..


Monday, March 12, 2018

Create An Service From OSB [Version 11.1.1.7] (base:SOAP) and Consume With Spring Boot (base:REST)

Hello guys,

pada kesempatan kali ini gw akan share bagaimana membuat service di OSB versi 11.1.1.7 [base:SOAP], setelah servicenya dibuat lalu diconsume oleh client (baca:Developer Aplikasi)(consumer bisa menggunakan bahasa pemrograman apapun, namun kali ini menggunakan Java dengan Spring-Boot)[base:REST].

adapun tahapannya sbb :
1. koneksi jndi ke data source (host, username, password, dan database yang digunakan).
2. skema xsd. [2 File = Authentication & Skema itu sendiri].
3. skema wsdl. [1 File].
4. Business Service. [1 File].
5. Proxy Service. [1 File].
6. Code Java. [2 File = Services & Controller].

pada point 1 (pertama) tidak akan dibahas disini, silahkan teman2 mengikuti referensi di bawah ini ya :
- http://www.avioconsulting.com/blog/oracle-soa-database-adapter-101-weblogic-configuration-steps
- https://www.youtube.com/watch?v=plUfeiex7PU
- https://www.youtube.com/watch?v=5W2tm89yN4A

pada point 4 (empat) tidak akan dibahas detail disini, silahkan teman2 mengikuti referensi di bawah ini ya :
- https://www.youtube.com/watch?v=RxTawFPExVM

nah pada point ke 4 (empat) bahwa BS berfungsi dengan baik dan menghasilkan balikan sesuai dengan harapan ya (baca:apapun case studinya, misalnya tampilkan semua mahasiswa, tampilkan semua customer, tampilkan master area layanan, dll).

nah, untuk kasus kali ini adalah menampilkan Master Area Layanan. sebaiknya rekan-rekan mengambil kasus untuk query select * from tanpa parameter apapun.

---BAGIAN XSD---
1. EsbCommonSchema.xsd berfungsi sbg Autentifikasi payload request dan response saat service ini akan dipanggil (MANDATORY).

2. BCAFAPPS.xsd berfungsi berfungsi sbg "pengatur" payload request dan response untuk Service GetMasterAreaLayanan.
Nah, apakah untuk membuat service GetMasterAreaLayanan memerlukan xsd sepanjang itu? jawabannya TIDAK! terus kenapa panjang? karena itu sudah tercampur oleh "tag" service yang lainnya. apakah boleh dihapus? BOLEH! akan tetapi ada konsueksi nanti di wsdl yang akan dibuat pada tahap selanjutnya, perlu jg dihilangkan bagian yang tidak digunakan tadi.

*NB : selalu sesuaikan schemaLocation (baris 2) dimana tempat penyimpanan EsbCommonSchema.xsd nya ya.

---BAGIAN WSDL---
1. BCAFAPPS.wsdl berfungsi pengaturan binding request, response yang mana ini nanti akan diconsume oleh Proxy Service.

*NB : selalu sesuaikan schemaLocation (baris 9 dan 11) dimana tempat penyimpanan (BCAFAPPS.xsd dan EsbCommonSchema.xsd nya ya).

---BAGIAN PROXY SERVICE---
Nah buat proxy service dengan kriteria pada gambar 1 ya

Gambar 1

pada bagian message flow tambahkan route yang memanggil nama Business Service yang sudah dibuat tadi seperti gambar 2

Gambar 2

tambahkan komponen replace pada routing, sesuai gambar 2, dengan contoh pada gambar 3 pada "value" isinya berdasarkan (payload request) saat dijalankan Business Service (tinggal copas aja ya). *NB : jangan coba2 ngikutin seperti gambar 3, karena untuk setiap case hasil generatenya berbeda-beda. jadi rekan-rekan harus test console business servicenya lalu copas request document di payloadnya ya!

Gambar 3

jika sudah, pada bagian response pipeline tambahkan komponen 3 komponen Assign, dan 1 komponen replace seperti gambar 4.

Gambar 4

nah, detilnya sbb :
  • assign pertama nama variable = "jumlahRows", value = baris 50
  • assign kedua nama variable = "ListAreaIdLayanan", value = 36-48
  • assign ketiga nama variable = "ListAreaNameLayanan", value = 22-34
  • replace : location = body, xpath = ., replace option = replace node contents, value = 1-20

Nah, komponen untuk membuat service di OSB telah selesai. saatnya untuk test lewat soapui seperti gambar 5.
Gambar 5

itu berarti service yang sudah kita buat sudah di OSB siap di consume oleh consumer.

---BAGIAN CONSUMER---
untuk bagian consume service base soap gw menggunakan IDE IntellijIDEA yang Ultimate yang sudah menyediakan fitur untuk "generate java code from wsdl". tinggal menggunakan saja, nah untuk rekan-rekan yang Community silahkan mengikuti referensi di bawah ini ya ...

- http://www.webservicex.net/stockquote.asmx?op=GetQuote
- https://www.youtube.com/watch?v=E-r8JUx5rw4
- https://www.mkyong.com/webservices/jax-ws/jax-ws-wsimport-tool-example/
- http://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example/
- https://docs.oracle.com/javase/8/docs/technotes/tools/unix/wsimport.html
- http://www.thejavageek.com/2015/01/28/using-wsimport-command-generate-web-service-client/

nah gw pun sudah mengikuti dan ternyata bisa, seperti gambar 6 ya, cukup mudah lewat terminal "wsimport -keep -verbose http://www.webservicex.net/stockquote.asmx?wsdl" tanpa kutip dua ya.
gambar 7 dan 8, kalo menggunakan Intellij IDEA tinggal pake doang. jika sudah tergenerate java code nya akan muncul pada target folder atau package yang telah kita define tadi seperti gambar 9.


Gambar 6

Gambar 7

Gambar 8

Gambar 9

kalo udah seperti yang udah dibahas sebelumnya hanya ada 1 service dan 1 controller. maka yang di bawah ini code untuk Servicenya ya...


Nah yang di bawah ini adalah code untuk code Controller nya ya...

jika sudah, kita coba langsung di postman ya sesuai pada gambar 10.
Gambar 10

Dan yes, semua sudah tercapai ya guys, buat service di osb udah, testing service yang sudah dibuat osb juga sudah, dan consume service dan testing servicenya juga sudah.

selamat mencoba dan selamat mengembangkan lebih jauh lagi guys, jika ada pertanyaan atau ada yang kurang jelas silahkan ditanyakan ya...

Terima kasih!

Saturday, December 16, 2017

Intro to Kotlin: Extension, Lambda Expression and Higher Order Function

Pada tulisan sebelumnya tentang Kotlin, saya telah membahas 4 fitur unggulan yang dimiliki Kotlin yaitu Multiple Top Declaration, Named Parameter, Optional Semicolon dan Default Parameter. Selain 4 fitur keren di atas, terdapat beberapa fitur lain yang ada pada bahasa ini yang menurut saya tidak kalah kerennya. Fitur yang dimaksud adalah Extension, Higher Order Function dan Lambda Expression.

Extension

Extension adalah fitur pada Kotlin yang memungkinkan kita untuk menambahkan property dan function pada suatu kelas tanpa mengubah atau meng-extend kelas tersebut. Fitur ini sangat berguna jika kita menggunakan library yang dibuat oleh orang lain dan menemukan kekurangan dan ingin menambahkan sesuatu pada library tersebut. Berikut ini adalah contoh bagaimana extension dapat digunakan.

Misalnya kita menggunakan library yang memiliki kelas Person di dalamnya dan ingin menambahkan fungsi untuk menari dan dan ingin menambahkan property untuk mengetahui apakah objek Person yang kita buat itu sudah tua atau belum. Salah satu cara untuk melakukan ini tanpa extension adalah dengan membuat kelas baru yang meng-extend kelas Person dan menambahkan secara manual property dan fungsi yang diinginkan pada kelas tersebut. Tetapi, karena Kotlin memiliki fitur extension, hal ini dengan mudah dapat dilakukan dengan cara seperti di bawah ini.


Lambda Expression

Fitur lainnya yang ingin saya bahas adalah Lambda Expression. Lambda expression atau juga sering disebut sebagai anonymous function adalah fungsi yang tidak dideklarasikan tetapi langsung digunakan dalam bentuk expression. Berikut ini adalah contoh Lambda Expression.

Di atas adalah contoh lambda expression yang merepresentasikan fungsi yang menerima satu parameter berupa objek Person dan mengembalikan boolean. Lambda expression akan terasa berguna saat kita menggunakan Higher Order Function yang akan saya bahas pada poin berikutnya.

Higher Order Function

Apakah yang dimaksud dengan Higher Order Function(yang selanjutnya akan disebut dengan HOF)? HOF adalah fungsi yang dapat menerima parameter berupa fungsi dan dapat mengembalikan fungsi. Lalu apa gunanya HOF? Pada Functional Programming, HOF sangat berguna untuk melakukan perhitungan yang direpresentasikan dengan bentuk fungsi. Salah satu bidang ilmu yang menggunakan functional programming adalah matematika. Pada bidang ilmu matematika, suatu masalah sering direpresentasikan dengan bentuk fungsi, dan biasanya fungsi pada matematika dapat berupa fungsi komposisi, yaitu fungsi suatu nilai yang juga merupakan sebuah fungsi. Di bawah ini adalah contoh dari HOF.

Fungsi di ataas adalah fungsi yang menerima tiga buah parameter. Parameter pertama adalah List of Person, parameter kedua adalah conditon dan parameter ketiga adalah action. Fungsi ini akan melakukan action pada setiap elemen di List of person jika condition terpenuhi.

Demikianlah tulisan saya kali ini tentang Kotlin, semoga dapat bermanfaat :)

Keep on hackin'!

Referensi

Reference - Kotlin Programming Language