Sunday, July 1, 2018

How to create a method in scala


In this tutorial ill be showing you how to create a method using Scala.

The requirements are:
-Eclipse
-Latest Version of IDE

1) Once you have to install Eclipse in your machine, you ill then required to download "Scala IDE for eclipse" and "Scala worksheet".

To get this you need to open: Eclipse > Help > Install New Software as shown in the picture below
2) Afterward, a popup windows will open as shown below:
you then need to add this URL in : http://download.scala-ide.org/sdk/lithium/e47/scala212/stable/site
once the URL, has been added you need to checklist "Scala IDE for eclipse" and "Scala Worksheet" and click on next and finish.
3)When the scala has been added, the user need to create a new scala project.
once you click on a new project it will show you a popup and ask the user to name the project.
it will then create 3 items inside the project, right click on "src" and click on New > Scala WorkSheet and it will ask you to give a name for your project.

4) When a blank worksheet has been created, the user must create an object first.
in this example i created an object class and the attributes that i fill in are "carType", "cost" and "color".
i then created a method called greater, which take a parameter (c2) and define the type (which is a type car) and it return as a boolean and compares the cost of the first value to the second value "c2.cost"

I then created 2 objects which is "c1" and "c2" and gives a different values for each
After creating the objects, i would like to compare the prices between them.
i.e 100000 is greater than 3000000 shows that the result gave a false answer.

Import SOA Composites Menggunakan Python Script

Pada Blog sebelumnya saya sudah menjelaskan bagaimana cara untuk melakukan export project SOA menggunakan python script. Nah, kali ini saya akan membahas bagaimana cara untuk Import atau yang biasa kita kenal dengan Deploy .jar project SOA menggunakan python script.
Ketika kita ingin melakukan Import alias deploy .jar project yang sudah kita buat ke SOA Server maka kita harus melakukan import atau deploy satu-satu. Sama halnya seperti export, Bagaimana jika project yang akan kita import/depoly ada ribuan? apakah kita akan melakukan import/depoly satu-satu juga? Terlalu rumit dan melelahkan.
Nah untuk itulah, lagi-lagi saya akan membagikan python script untuk memudahkan proses import atau deploy project SOA yang banyak hanya dengan sekali execute file python script.
Langkah-langkahnya adalah sebagai berikut :
Siapkan python script nya terlebih dahulu.
Anda bisa melihatnya pada gambar di bawah :
  • Script untuk melakukan Proses Import/Deploy SOA Composite
    Arthur_SOAMigrateScript.py
    Script diatas terlebih dahulu akan membaca folder dimana anda menyimpan semua file .jar project anda dan kemudian akan menjalankan command ls -l  untuk melihat detail list .jar file anda.
    Perhatikan script pada bagian :
    read_list = os.popen("ls -l /u01/apps/oracle/bpel/")
    list_jar = read_list.read()
    Setelah menjalakan command itu, maka script ini akan otomatis menjalankan WLST Command untuk import/deploy .jar file project anda sebanyak list project yang ada pada folder anda.
    Perhatikan command :
    sca_deployComposite(host_deploy,path_jar+jarfile,user="username",password="password",forceDefault=false,overwrite=true)
    Pastikan host, username dan password sudah sesuai dengan SOA Server anda. Karena jika tidak maka proses import/deploy ini akan gagal.
Langkah untuk menjalankan Script ini juga sangat sederhana :
  • Pada script pastikan anda sudah memasukkan host, username dan password SOA Server sesuai dengan host, username, dan password SOA server anda dengan benar.
  • Pastikan anda mengetahui letak path nodemanager SOA Server anda. Dimana anda akan meletakkan file python script nya di path ini.
  • Jika Anda membuat python Script tersebut pada local anda, maka pastikan anda sudah meng-copy file tersebut ke path nodemanager SOA Server anda.
    untuk melakukan copy dari local ke SOA Server bisa anda lakukan dengan menjalankan command berikut (jangan lupa memasukkan host dan username yang sesuai dengan SOA Server anda):
    scp /Users/toms/Documents/Nostra/ORACLE/DokumentasiTutorial/Arthur_SOAMigrateScript.py user@host:/u01/oracle/config/aserver/JWS_BPM/nodemanager/
  • Sekarang silahkan masuk ke SOA Server anda. Dalam hal ini saya melakukan ssh ke SOA Server saya.
    berikut ada contoh command yang saya jalankan untuk masuk ke SOA server saya menggunakan ssh :
    ssh user@host
  • Silahkan masuk menggunakan command CD menuju path nodemanager anda.
    berikut ada contoh command yang saya jalankan untuk masuk ke nodemanager server saya :
    cd /u01/oracle/config/aserver/JWS_BPM/nodemanager/
  • Pastikan bahwa python Script anda sudah ter-copy ke path nodemanager.
  • Jika sudah, maka sekarang saatnya kita menjalankan script nya.
    Namun, seperti umumnya dalam oracle. Untuk bisa menjalankan WLST Command maka kita harus set envelope wlst command terlebih dahulu.
    Biasanya pada SOA Server sudah tersedia satu script untuk set envelope yang ada pada path nodemanager itu juga, sehingga kita bisa jalankan script itu saja. Berikut adalah cara jalankan script untuk set envelope wlst command:
    . ./setWLSTEnv.sh 
  • Jika sudah, maka jalankan scriptnya. Berikut ada command untuk menjalankan scriptnya:
    java weblogic.WLST Arthur_SOAMigrateScript.py (*untuk meng-import List .jar project dari path /u01/apps/oracle/bpel ke SOA Server ).
  • Tunggu hingga proses import/deploy selesai.
  • jika sudah selesai, maka silahkan cek list project anda dengan cara menjalankan script Arthur_SOAMigrateScript.py dengan operasi save_list_tofile() seperti yang sudah saya jelakan pada blog sebelumnya. Pasti list project anda sudah bertambah sesuai dengan list project yang baru saja anda import/deploy menggunakan script diatas.
  • Finish
  • Anda tidak perlu lelah lagi melakukan import satu-satu .jar file anda, karena sekarang anda tinggal jalankan script diatas.
Demikian yang bisa saya bagikan kali ini, semoga bermanfaat dan terimakasih.

Export SOA Composites Menggunakan Python Script

Pada Blog kali ini saya akan membahas bagaimana cara untuk Export SOA Composite menggunakan python script.
Apasih SOA Composite itu?
Untuk teman-teman yang sudah biasa bermain di dunia oracle middleware pasti tidak jarang lagi mendengar SOA Composite. SOA Composite merupakan kumpulan dari service-service yang sudah kita deploy dan di simpan dalam satu app (contoh project BPEL, BPM dan lain-lain).
Ketika kita ingin melakukan export atau download project yang sudah kita deploy ke SOA Server pada umumnya kita harus melakukan export satu-satu. Bagaimana jika project yang akan kita export ada ribuan? apakah kita akan melakukan export satu-satu juga?
Saya rasa itu akan membuat kita pusing dan bukan kerjaan bangat kalau harus export satu-satu .jar file nya.
Nah untuk itulah, saya akan membagikan python script untuk memudahkan kita dalam melakukan export project yang banyak hanya dengan sekali execute file python script.
Langkah-klangkahnya adalah sebagai berikut :
Siapkan python script nya terlebih dahulu.
Ada dua script python, dan anda bisa melihatnya pada gambar di bawah :

  • Script untuk melihat semua list SOA Composite yang ada pada SOA Server.
    Arthur_ListSoaComposites.py
    Dalam file Arthur_ListSoaComposites.py paste command WLST di bawah ini :
    sca_listDeployedComposites("host", "port", "username", "password")
    Ganti host, port, username dan password sesuai dengan host, port, username dan password SOA Server anda.
    Siapkan satu file lagi untuk meng-eksekusi WLST Command diatas, untuk mendapatkan semua list SOA Composites yang ada pada SOA Server anda.
    Arthur_SOAMigrateScript.py (*fungsi save_list_to_file())
    Script diatas berguna untuk mendapatkan semua list project SOA yang ada pada SOA Server anda. List tersebut kemudian akan disimpa pada sebuah file .txt dengan nama fileHandling.txt.
    Anda bisa menentukan kemana path file tersebut akan disimpan, dengan cara menambahkan path terlebih dahulu kemudian di ikuti dengan nama file pada variable file pada script anda.
  • Script untuk melakukan Proses Export SOA Composite
    Arthur_SOAMigrateScript.py (*fungsi export_composites())
    Script diatas terlebih dahulu akan membaca file .txt yang sudah anda buat sebelumnya menggunakan script List SOA diatas. Nah dari file itu Script ini akan mengetahui project mana saja yang akan di export.
    Setelah Membaca file, maka script ini akan otomatis menjalankan WLST Command untuk export SOA composite sebanyak nama project yang tertera pada file anda.
  • Script main function untuk memilih operasi apa yang akan dijalankan oleh Script kita.
    Urutannya adalah kita harus memilih operasi save_list_to_file(), kemudian pilih operasi export_composites().
    Arthur_SOAMigrateScript.py (*fungsi main()).

Langkah untuk menjalankan Script ini juga sangat sederhana :
  • Pastikan anda sudah menyediakan folder kemana semua hasil export-an anda akan disimpan.
  • Dalam Script semua project yang ter-export akan tersimpan ke path : /u01/apps/oracle/bpel/
  • Pastikan anda sudah memasukkan host, username dan password SOA Server sesuai dengan host, username, dan password SOA server anda dengan benar.
  • Pastikan anda mengetahui letak path nodemanager SOA Server anda. Dimana anda akan meletakkan file python script nya di path ini.
  • Jika Anda membuat python Script tersebut pada local anda, maka pastikan anda sudah meng-copy file tersebut ke path nodemanager SOA Server anda.
    untuk melakukan copy dari local ke SOA Server bisa anda lakukan dengan menjalankan command berikut (jangan lupa memasukkan host dan username yang sesuai dengan SOA Server anda):
    scp /Users/toms/Documents/Nostra/ORACLE/DokumentasiTutorial/Arthur_SOAMigrateScript.py user@host:/u01/oracle/config/aserver/JWS_BPM/nodemanager/
  • Sekarang silahkan masuk ke SOA Server anda. Dalam hal ini saya melakukan ssh ke SOA Server saya.
    berikut ada contoh command yang saya jalankan untuk masuk ke SOA server saya menggunakan ssh :
    ssh user@host
  • Silahkan masuk menggunakan command CD menuju path nodemanager anda.
    berikut ada contoh command yang saya jalankan untuk masuk ke nodemanager server saya :
    cd /u01/oracle/config/aserver/JWS_BPM/nodemanager/
  • Pastikan bahwa python Script dan file .txt anda sudah ter-copy ke path nodemanager.
  • Jika sudah, maka sekarang saatnya kita menjalankan script nya.
    Namun, seperti umumnya dalam oracle. Untuk bisa menjalankan WLST Command maka kita harus set envelope wlst command terlebih dahulu.
    Biasanya pada SOA Server yang sudah tersedia, kita langsung bisa menjalankan satu script untuk set envelope yang ada pada path nodemanager itu juga. Berikut ada cara jalankan script untuk set envelope untuk wlst command:
    . ./setWLSTEnv.sh 
  • Jika sudah, maka jalankan scriptnya. Berikut ada command untuk menjalankan scriptnya:
    java weblogic.WLST Arthur_SOAMigrateScript.py (*pilih operasi save_list_to_file() untuk menyimpan List SOA Composite ke file .txt)
    Berikut adalah contoh isi file list .txt yang sudah berhasil ter-create pada folder saya ketika script Arthur_SOAMigrateScript.py dengan pilihan operasi save_list_to_file() di jalankan :
    java weblogic.WLST Arthur_SOAMigrateScript.py (*pilih operasi export_composite() untuk meng-export List SOA Composite dari file .txt ke path /u01/apps/oracle/bpel/)
    Kedua operasi yang ada pada script di atas harus di jalankan satu-satu, setelah script Arthur_SOAMigrateScript.py dengan operasi save_list_to_file() selesai maka dengan command yang sama jalankan script Arthur_SOAMigrateScript.py dan pilih operasi export_composites().
  • Tunggu hingga proses export selesai.
  • jika sudah selesai, maka silahkan masuk ke folder dimana anda menyimpan .jar file hasil export-an dari script anda.
    cd /u01/apps/oracle/bpel/
  • tarrraaaa, maka secara otomatis folder anda akan di isi dengan .jar file yang sudah berhasil ke export.
    Berikut contoh project saya yang sudah berhasil ter-export :
  • Finish
  • Anda tidak perlu lelah lagi melakukan export satu-satu .jar file anda, karena sekarang anda tinggal jalankan script diatas.
Demikian yang bisa saya bagikan kali ini, semoga bermanfaat dan terimakasih.



How to get and insert user LDAP using Java

Before inserting user into LDAP, we must understand why we have to have user in the first place.  The reason on why we have to have user is because this user will be used as admin user for OID-OAM integration.

When creating a user, the attributes and the objectclass should be added. After, we can then proceed to adding a user into OID.

Creating the Attributes Interface - Schema > Attributes > Create new LDAP Attributes Type

When creating the attributes, this is the interface that will pop-up on the screen. you can fill in the necessary values in.

Creating the ObjectClass Interface - Schema > Object Classes > Create new LDAP Object Classes Type

This is the interface when creating an Object class. The purpose of an object class is to group the attributes together into one. For example, attributes can be "name" and "email", and the object class can be name as "Personal Information".
So far, i can only manage to add the attributes and the object classes using ODSM (Oracle Directory Service Manager) and cannot be added through java.

Once the attributes and the objectclass has been added, we can use java to add the user.
1) First in order to create a user you must connect to the ODMS. You must provide the IP Address, username and the password in order to connect.

i.e
        Hashtable<String, Object> env = new Hashtable<String, Object>(11);
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://10.0.63.96:3060");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "cn=orcladmin");
        env.put(Context.SECURITY_CREDENTIALS, "TelkomSDP2017");
        InitialDirContext ctx = new InitialDirContext(env);
2) Afterward, we have to create an object "BasicAttributes" in order to create a multiple of attributes.
     BasicAttributes attrs = new BasicAttributes();

3) We then proceed to add the object class.
i.e
     Attribute classes = new BasicAttribute("objectclass");
     classes.add("personinfo");

4) After that, add the objectClass attributes to the attributes
i.e 
   attrs.put(classes);

5) Store the other attributes in the attribute set
i.e 
            attrs.put("cn", "test");
            attrs.put("namaexample", "nostra");
            attrs.put("emailexample", "nostra@nostra.com");

6) Add the new entry to the directory server, this will add the user in and also with the attributes and the object class

i.e 
   ctx.createSubcontext("ldap://10.0.63.96:3060/cn=ariexample,cn=Users,dc=telkom,dc=co,dc=id",       attrs);
            System.out.println("User has successfully been created");
RESULT:
The two result shows 3 different type of output.

1)

The 1st output come out from using apache directory studio
2)
The 2nd output comes from using the ODMS, by using this it shows all the values and their attributes.
3)
The 3rd option is by using java. here are steps on how to display the user using java output
1) First in order to display the user you must connect to the ODMS. You must provide the IP Address, username and the password in order to connect.

i.e
        Hashtable<String, Object> env = new Hashtable<String, Object>(11);
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://10.0.63.96:3060");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "cn=orcladmin");
        env.put(Context.SECURITY_CREDENTIALS, "TelkomSDP2017");
2) we then have to define which user that would like to be shown.
i.e
       DirContext context = new InitialDirContext(env);
            Attributes attributes =                                        context.getAttributes("cn=ariexample,cn=Users,dc=telkom,dc=co,dc=id");

            displayAttributes(attributes);

3) Afterwards, we get all the attributes and their values from the user and display in the output console.
i.e
   public static void displayAttributes(Attributes attributes) {
        if (attributes != null) {
            try {
                for (NamingEnumeration e = attributes.getAll(); e.hasMore();) {
                   
                    Attribute attr = (Attribute) e.next();
                    System.out.println("Attribute name: " + attr.getID());

                    for (NamingEnumeration n = attr.getAll(); n.hasMore(); 
                            System.out.println("value: " + n.next()));
                }
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
    }





Simple Bar Chart Android Use MPAndroidChart Library

Hallo Guys, kali ini saya akan membahas tentang cara membuat Bar Chart menggunakan
MPAndroidChart library. Mengapa saya memilih ini? karena cara menggunakannya mudah, dan dokumentasi lengkap nanti saya akan sertakan link github nya. Pasti sudah penasarankan seperti apa tampilannya? hehehehhe. Baik kita akan langsung mulai saja.

Pertama - tama , seperti biasa buka android studio dan pilih new Project seperti gambar
di bawah ini :

Jika kita sudah membuat project baru , kita melakukan install library terlebih dahulu dengan penambahan script . pertama pada bagian build.gradle (project) dibaris 18 - 20 , kedua pada bagian build.gradle di baris 28 (app). Masing-masing bisa di lihat pada gambar di bawah ini.

Build.gradle (Project)
Build.gradle (App)

Jika sudah kita lanjut mendesain layout androidnya dengan path nya app/layout/res , kemudian ikuti desain layoutnya seperti gambar di bawah ini.

activity_main.xml (App)

Jika kita lihat seperti gambar diatas, ada atribut layout dengan nama com.github.mikephil.charting.charts.BarChart, artinya yang kita lakukan saat install library telahberhasil serta atribut ini yang memegang peranan dalam membuat tampilan chart/grafik pada android nanti.

Jika kita sudah melakukan pengaturan layout pada android , kita langsung melakukan pengaturan pada bagian java nya, kita mulai dengan path-nya app/java/MainActivity.java, kalian bisa ikuti javanya seperti gambar di bawah ini.
MainActivity.java

Jika sudah , kita bahas satu per satu bagian dari code yang ada , berikut penjelasannya.

Detail Kode Bag 1

Pada baris ke 19 , kita mulai mendifinisikan Bar Chart  dengan membuat objek bar chart , lalu melakukan inisialisai terlebih dahulu.


Detail Kode Bag 2

Pada Baris ke 21 - 27 , kita membuat collection data dengan melakukan pengisian data pada BarEntry, fungsi BarEntry ada dua parameter , parameter pertama untuk isi nilai axis y, parameter kedua untuk pengaturan kolom setiap data, makanya di mulai dari nilai 0 terlebih dahulu.

Pada baris ke  28 , kita melakukan set data pada BarSetData, ini untuk menyimpan data yang sudah kita buat dalam collection java.

Detail Kode Bag 3

Pada Baris 30 - 36 , kita membuat collection data untuk nilai axis x, tidak terlalu seribet dengan collection data pada nilai axis y.

Detail Kode Bag 4

Pada Baris 38, disini kita memsaukan nilai axis x dengan nilai axis y dengan memanggil Bar Data.

Pada Baris 39, kita memasukan semua data yang sudah kita buat kedalam diagram/chart dengan memanggil kembali objek barChart yang kita buat lalu kita melakukan setData pada BarData.

Nah , teman - teman , jika semua sudah selesai , kita lakukan "run" aplikasi android yang kita buat maka akan muncul seperti gambar di bawah ini.

Bar Chart

Nah sangat mudah kan membuat grafiik di android ?  semoga ini bermanfaat ya teman - teman :) .

Referensi :
  • https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Data
  • https://github.com/PhilJay/MPAndroidChart 

React Unit Testing Menggunakan Enzyme

Pada blog post kali ini, saya akan membahas mengenai unit testing aplikasi React menggunakan Enzyme. Sebelum saya membahas lebih dalam mengenai Enzyme, saya akan membahas definisi dari software testing terlebih dahulu.

Apa itu Software Testing ?
Software Testing adalah salah satu step dalam development aplikasi. Pada tahap software testing, dilakukan pengecekan apakah result yang didapatkan dari aplikasi sesuai dengan result yang diharapkan dari aplikasi tersebut. Tidak hanya itu, software testing juga dilakukan untuk memastikan bahwa sistem dari aplikasi tersebut sesempurna mungkin (meskipun tidak mungkin perfect, setidaknya sebisa mungkin mendekati perfect). Software testing juga membantu untuk mengidentifikasi error dan requirements yang kurang sesuai. Software testing dapat dilakukan secara manual ataupun menggunakan automated tools. Terdapat 3 macam paradigma software testing, yaitu :

  1. Unit Testing
    Unit Testing mengacu pada test yang dilakukan pada potongan-potongan code atau unit, sehingga kita dapat memastikan bahwa potongan code tersebut dapat berjalan dengan semestinya, sesuai dengan yang kita harapkan. 
  2. Functional Testing
    Functional Testing mengacu pada test yang dilakukan untuk melihat behavior dari component.
  3. Integration Testing
    Integration Testing mengacu pada test yang dilakukan kepada keseluruhan sistem dari aplikasi dengan seperti layaknya end-user menggunakan aplikasi tersebut.

Enzyme adalah JavaScript testing library yang dibuat oleh AirBnb. Enzyme menyediakan method yang sangat baik untuk memanipulasi output dari virtual DOM React. 

Untuk melakukan unit testing menggunakan Enzyme, kita juga akan menggunakan Jest, yaitu testing framework React official yang dibuat oleh Facebook.


Configuration

Langkah-langkah yang harus dilakukan untuk menginstall library Enzyme dan Jest agar bisa digunakan untuk unit testing adalah sebagai berikut :

  1. Buat sebuah app React dengan menggunakan command create-react-app. Setelah proses build app selesai, melalui terminal, cd ke folder app yang baru saja dibuat.
  2. Ketik command :

    npm install jest-enzyme --save-dev

    setelah selesai, ketik command :

    npm i --save-dev enzyme enzyme-adapter-react-16
  3. Ketik command : 

    npm add react-addons-test-utils

    lalu tekan enter.
  4. Untuk menjalankan test, gunakan command :

    npm test

  5. Setelah selesai, akan muncul tampilan seperti ini
    Test yang dijalankan merupakan code yang terdapat di file App.test.js. Kita dapat mengubah isi dari file App.test.js untuk keperluan testing aplikasi kita sesuai dengan kebutuhan.
  6. Untuk menggunakan enzyme pada saat unit testing, tambahakan code ini pada file App.test.js

    import {shallow, mount, render} from 'enzyme';

    Shallow digunakan untuk menguji komponen sebagai unit.
    Mount digunakan untuk menguji komponen yang memerlukan lifecycle secara keseluruhan untuk dapat sepenuhnya ditest.
    Render digunakan untuk merender komponen menjadi static HTML dan menganalisis struktur HTML yang dihasilkan.
Contoh Unit Testing Aplikasi React Menggunakan Enzyme
Sebagai contoh unit testing, saya membuat sebuah aplikasi React sederhana yang menampilkan angka dan 2 button. Button kiri berfungsi untuk menambah angka, dan button kann berfungsi untuk mengurangi angka.
Tampilan aplikasi untuk testing
Code dari aplikasi
Untuk memulai testing, buka file App.test.js. Sebelumnya, kita sudah menjalankan npm test setelah build aplikasi di awal, dan tampilan terminal menunjukkan ada 1 test berstatus passed. 1 test tersebut adalah test default yang memang sudah disediakan pada saat kita membuild aplikasi.



Referensi :

  1. https://www.guru99.com/software-testing-introduction-importance.html
  2. https://en.wikipedia.org/wiki/Software_testing
  3. https://www.fullstackreact.com/30-days-of-react/day-22/#testing
  4. https://www.toptal.com/react/tdd-react-unit-testing-enzyme-jest
  5. https://gist.github.com/fokusferit/e4558d384e4e9cab95d04e5f35d4f913
  6. https://github.com/airbnb/enzyme/tree/master/docs/api
  7. https://jest-bot.github.io/jest/docs/expect.html#tohavelengthnumber
  8. https://github.com/FormidableLabs/enzyme-matchers/tree/master/packages/jest-enzyme

Continuous Integration Menggunakan CircleCI

Pada blog post kali ini, saya akan membahas mengenai salah satu continuous integration tools, yaitu CircleCI. Sebelum membahas lebih dalam mengenai CircleCI, saya akan membahas apa itu continuous integration terlebih dahulu.

Apa itu Countinuous Integration ?
Continuous Integration adalah sebuah software development practice. Salah satu ciri khas dari CI adalah frekuensi dari code integration yang dilakukan cukup sering. Tujuan utama dari seringnya frekuensi code integration tersebut adalah mengidentifikasi problem yang dapat terjadi pada saat proses development lebih awal, sehingga problem tersebut dapat dicegah. Dengan lebih sering melakukan code integration, update terhadap code menjadi lebih mudah untuk dimerge dan diintegrasikan. Di dalam CI, terdapat juga step testing, untuk memastikan code sudah berjalan dengan baik. Setelah lolos tahap testing, aplikasi akan di build, dan kemudian di deploy ke server.

Skema Continuous Integration



CircleCI


CircleCI adalah salah satu continuous integration tools yang bersifat cloud based. Namun tidak menutup kemungkinan CircleCI juga dapat diinstall di private server.

Apa saja fitur dan kelebihan dari CircleCI?
CircleCI memiliki fitur-fitur yang membedakannya dengan continuous integration tools yang lainnya.
  • CircleCI dapat dipakai scara gratis dan berbayar.
  • CircleCI adalah CI tools yang bersifat cloud based.
  • CircleCI mengotomasi proses build, test, dan deploy.
  • Dapat menggunakan SSH mode untuk mengakses container.
  • Rest API. Kita dapat mengakses project, build, dan artifact.
  • CircleCI menyimpan requirements installation.
  • Support language Ruby, Python, Node, Java, PHP, RoR, DJ, JavaScript.
  • Support database MySQL, MongoDB, PostgreSQL, Cassandra, Riak, Redis, SQLite, Solr, CouchDB, ElasticSearch, Neo4j, Couchbase, Lucene, Sphinx, ThriftDB, Memcache.
CircleCI juga mudah dan cepat untuk disetup dan configure. Karena CircleCI bersifat cloud-based, maka tidak memerlukan server khusus untuk menjalankannya. Namun, hal tersebut selain menjadi kelebihan, juga dapat menimbulkan masalah jika terjadi problem pada cloud CircleCI itu sendiri.


Jenkins


Jenkins juga merupakan salah satu continuous integration tools. Namun, Jenkins tidak bersifat cloud based (tidak menutup kemungkinan untuk diinstal di cloud server). Dari segi popularitas, nama Jenkins lebih banyak diketahui orang di dalam bidang CI. Sama seperti CI lainnya, dengan menggunakan Jenkins, kita dapat mengotamasi task seperti build, test, dan deploy.

Apa saja fitur dan kelebihan dari Jenkins ?

  • Jenkins memiliki banyak sekali plugins yang dapat mengintegrasi Jenkins dengan banyak tools dalam untuk membantu proses build, test, dan deploy.
  • Karena memiliki banyak plugins, Jenkins memiliki banyak kemungkinan yang tidak terbatas.
  • Memungkinkan untuk launching build dengan berbagai kondisi.
  • dan masih banyak kelebihan lainnya.
Kelebihan dari Jenkins terletak pada banyaknya plugins yang dapat digunakan. Jenkins juga dapat dicustomize sesuai dengan kebutuhan. Jenkins juga bersifat open-source dan gratis.

Namun jika dibandingkan dengan CircleCI, meskipun Jenkins bersifat gratis, Jenkins membutuhkan server dan team DevOps untuk mengkonfigurasi dan memaintain Jenkins. Hal tersebut dapat menjadi cost. Proses konfigurasi dan kostumisasi juga dapat memakan waktu.


Sekian pembahasan saya mengenai CircleCI, semoga postingan ini dapat bermanfaat.

Referensi :
  1. https://en.wikipedia.org/wiki/Unit_testing
  2. https://docs.microsoft.com/en-us/azure/devops/what-is-continuous-integration
  3. https://hackernoon.com/continuous-integration-circleci-vs-travis-ci-vs-jenkins-41a1c2bd95f5
  4. https://code-maze.com/top-8-continuous-integration-tools/
  5. https://blog.takipi.com/jenkins-vs-travis-ci-vs-circle-ci-vs-teamcity-vs-codeship-vs-gitlab-ci-vs-bamboo/#1




Menambahkan Fitur Livechat Pada OsTicket

Pada postingan sebelumnya saya telah membuat Sistem Ticketing Menggunakan OsTicket  
Untuk postingan kali ini saya akan memberitahu bagaimana caranya menambahkan fitur livechat pada osticket. Penambahan fitur livechat pada Osticket bertujuan untuk berkomunikasi secara langsung terhadap user secara realtime. mengapa bisa realtime? karena fitur livechat ini sudah terintegrasi dengan telegram.

berikut ini cara menambahkan fitur livechat dan mengintegrasikan livechat dengan aplikasi telegram


setelah instalasi selesai maka akses melalui browser http://namadomain/index.php/site_admin/user/login 

 

masukan user dan password setelah itu akan muncul tampilan seperti gambar dibawah ini

 

setelah itu pilih menu settings lalu pilih embed code dan pilih widget embed code

 
 
 Lalu salin kode untuk diletakan pada file html osticket
 
jika berhasil maka akan muncul tampilan seperti ini pada halaman osticket 

 

 selanjutnya telegram integration

1. Clone github repository https://github.com/LiveHelperChat/telegram

2. Ganti nama file telegram menjadi 'lhctelegram' lalu letakan di /var/www/html/livechat/lhc_web 
    /extension/
3. lalu edit extension
    nano /var/www/html/livechat/lhc_web/settings/settings.ini.php

Edit
  'extensions' =>
                      array (
                                   'lhctelegram'
                       ),
4. install composer
    jika sudah di install jalan comand brikut
    cd /extension/lhctelegram
    composer update
5.  klik clean cache di livehelper chat back office
6.  jalankan doc/install.sql di database manager lalu jalankan
     php cron.php -s site admin -e lhctelegram -c cron/update structure
 7. register bot telegram di https://core.telegram.org/bots#6-botfather
 8. lalu buat bot di LHC back office.



        Navigate to telegram module and click Telegram Bots
 

Click New bot

Now find in telegram @botfather and type /newbot after you registered. You will have two variables. Bot username and Bot API/Token
Enter this data in bot window. Also choose department to which department bot request will come.



Click save.
Then being redirected to bot list click Set Web Hook


               



That's all. Now all requests coming to your bot will appear as chats in in Live Helper Chat back office.

How to setup as support client?
If you have completed. Above steps you have to go again to bot edit page and click Departments. Then check "This bot acts as a client".
Also choose which from which departments messages should come.
Next navigate to Telegram operator section and click new. Do not check confirmed. It will be automatically checked by bot. But is usefull if you want reconfirm again for some reason.

 


Now start conversation and register yourself within bot by typing /register id should be registered operator id. Very first column in operators list.
   That's all.
 
konfigurasi untuk integrasi telegram ke livchat sudah selesai, terimakasih
 
 
                   https://livehelperchat.com/telegram-integration-481a.html