Sunday 28 October 2018

Integrasi Laravel dengan Google Calender API (PART 1)

Assalaamu Álaykum...

Intro

Berbeda jika menggunakan Package https://github.com/spatie/laravel-google-calendar, yang hanya sinkron dengan satu akun google calender. Dalam kasus kali ini kita ingin menghubungkan Google Calender dengan event yang dimiliki User. Jadi seorang user dengan user lain akan memiliki event google calender yang berneda. 

Overview

https://developers.google.com/identity/protocols/OAuth2
Untuk bisa terhubung dengan Google Calender kita memerlukan hak akses / token respon dari Google API. Token inilah yang nantinya akan memberikan hak akses ke Google Calender.


a. Membuat Project Google API
Kita menuju https://console.developers.google.com untuk membuat project baru, jika sudah memiliki project skip step ini.

b. Enable Service Library Google Calender
Setelah project terbuat kita harus enable Google Calender API pada list Library
pilih Google Calender API

Enable Library

c. Membuat Cridential
Langkah selanjutnya kita membuat Cridential, Kita akan menggunakan Oauth client.

Pilih Oauth client ID

kemudian kita akan masuk page selanjutnya, set Redirect Url. Untuk Host bisa di sesuaikan dengan host di local kalian. Disini kita akan route ke "/oauth2callback"

setting redirect
klik Create

d. Download JSON file
Langkah selanjutnya kita download Json file. Json ini berisikan informasi Client Id google console yang baru kita buat.

Download Json File
Sampai langkah ini kita selesai membuat cridential google console yang nantinya akan kita gunakan untuk mendapatkan token dari google API dan kemudian integrasi dengan Google Calender.

Install Google API

Sampai sini asumsi saya kita sudah memiliki project laravel yang suah berjalan. Kita membutuhkan Google API Client library, kita install lewat composer.


composer require google/apiclient

Library ini akan membantu kita dalam menghubungkan laravel dengan Google API. Untuk lebih jelas kalian bisa baca doc nya : https://github.com/googleapis/google-api-php-client


Continue di PART 2 ya.... :)

Saturday 6 October 2018

Composer install error di Ubuntu server 16.04

Beberapa saat yang lalu menemukan error ketika pertamakali install Laravel di Ubuntu server 16.04 dengan php 7.1. Setelah clone dari repo Gitlab, kemudian insatall composer berhasil. ketika
 composer install
muncul error


Problem 1
   - Installation request for doctrine/inflector v1.3.0 -> satisfiable by doctrine/inflector[v1.3.0].
   - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 2
   - Installation request for symfony/css-selector v4.1.6 -> satisfiable by symfony/css-selector[v4.1.6].
   - symfony/css-selector v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 3
   - Installation request for symfony/event-dispatcher v4.1.6 -> satisfiable by symfony/event-dispatcher[v4.1.6].
   - symfony/event-dispatcher v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 4
   - Installation request for symfony/translation v4.1.6 -> satisfiable by symfony/translation[v4.1.6].
   - symfony/translation v4.1.6 requires php ^7.1.3 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 5
   - Installation request for doctrine/instantiator 1.1.0 -> satisfiable by doctrine/instantiator[1.1.0].
   - doctrine/instantiator 1.1.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 6
   - Installation request for myclabs/deep-copy 1.8.1 -> satisfiable by myclabs/deep-copy[1.8.1].
   - myclabs/deep-copy 1.8.1 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
 Problem 7
   - Installation request for phar-io/manifest 1.0.1 -> satisfiable by phar-io/manifest[1.0.1].
   - phar-io/manifest 1.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 8
   - Installation request for phpunit/php-code-coverage 5.3.2 -> satisfiable by phpunit/php-code-coverage[5.3.2].
   - phpunit/php-code-coverage 5.3.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 9
   - Installation request for phpunit/phpunit 6.5.13 -> satisfiable by phpunit/phpunit[6.5.13].
   - phpunit/phpunit 6.5.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 10
   - Installation request for theseer/tokenizer 1.1.0 -> satisfiable by theseer/tokenizer[1.1.0].
   - theseer/tokenizer 1.1.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
 Problem 11
   - doctrine/inflector v1.3.0 requires php ^7.1 -> your PHP version (7.0.32) does not satisfy that requirement.
   - laravel/framework v5.5.44 requires doctrine/inflector ~1.1 -> satisfiable by doctrine/inflector[v1.3.0].
   - Installation request for laravel/framework v5.5.44 -> satisfiable by laravel/framework[v5.5.44].







   ----------
   Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/phpunit 6.5.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.6 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.5 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.12 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.11 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.5.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.4.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.3.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.3.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.2.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.1.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.9 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.8 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.6 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.5 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.4 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.3 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.13 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.12 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.11 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.10 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/phpunit 6.0.0 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - Installation request for phpunit/phpunit ~6.0 -> satisfiable by phpunit/phpunit[6.0.0, 6.0.1, 6.0.10, 6.0.11, 6.0.12, 6.0.13, 6.0.2, 6.0.3, 6.0.4, 6.0.5, 6.0.6, 6.0.7, 6.0.8, 6.0.9, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4, 6.2.0, 6.2.1, 6.2.2, 6.2.3, 6.2.4, 6.3.0, 6.3.1, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.5.0, 6.5.1, 6.5.10, 6.5.11, 6.5.12, 6.5.13, 6.5.2, 6.5.3, 6.5.4, 6.5.5, 6.5.6, 6.5.7, 6.5.8, 6.5.9].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mbstring.ini
    - /etc/php/7.0/cli/conf.d/20-mcrypt.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Setelah googling menemukan reverensi

https://stackoverflow.com/questions/43408604/php7-install-ext-dom-issue

dan saya ketik command

sudo apt-get update
sudo apt install php-xml

dan walaa.....

Error hilang...
 

Monday 16 November 2015

Apa itu Ionic Framework


Ionic Framework

Ionic adalah sebuah framework yang memungkinkan untuk membuat sebuah aplikasi mobile hybrid. Apa itu Mobile Hybrid ? artinya kita hanya perlu melakukan 1x pembuatan untuk berbeda platform smartphone, seperti Android, iOS, Windows Phone. Ionic berjalan di atas AngularJs dan Apache Cordova, menggunakan beberapa bahasa pemrograman seperti CSS, Html, dan Javascript. Dengan menggunakan mobile hybrid tentu sangat membantu para developer dalam membuat beberapa aplikasi sekaligus.

Instalasi Ionic : Mac OsX & Linux

Untuk pengguna Operasi system Windows bisa menggunkan Visual Studio Tools for Apache Cordova.
1. Download dan Install Node.js . (pada terminal bisa check "npm -v")
2. Setelah node.js terinstal, kita akan menginstal cordova dan ionic. Lewat terminal ketik :
npm install -g cordova ionic
3. Bisa kita chek versi cordova dengan "cordova -v". Selesai

Thursday 7 May 2015

Koneksi JasperSoft / iReport dengan Mysql

Software yang di perlukan


  1. JasperSoft Studio / iReport. (di sini saya menggunakan Jasper Studio 6.0.4) . Download
  2. Driver Mysql. Download

Lets Action


  1. Buka JasperSoft Studio, dan buat data adapter baru.
  2. Pilih data adapter yang kita inginkan, kita akan menggunakan JDBC data adapter.
  3. Beri nama koneksi ,kemudian sesuaikan nama database, driver, username, serta password Mysql nya.
  4. Kemudian kita klik Driver classpath (pilih driver mysql yang sudah kita download di atas)

  5. - pilih driver mysql
  6. Kemudian kita klik tombol Test, jika muncul tulisan seperti dibawah ini berarti kamu salah memasukkan data ataupun driver tidak sesuai.
  7. jika koneksi sukses akan muncul seperti ini.
  8. FINISH

Simple Report dengan JasperReports dan Mysql


Dalam kesempatan kali ini saya akan menulis cara membuat simple report menggunakan Jaspersoft ataupun iReport (keduanya memiliki fungsi yang sama). Dalam kasus kali ini saya sama sekali tidak akan melibatkan bahasa pemrograman java. Jadi hanya akan melibatkan Jasperreport dan database Mysql.


Hello Jasper Reports

Secara umum report template pada JasperReport terbagi menjadi beberapa bagian.


ElementDescription
titleTitle adalah judul dari report. Title hanya akan muncul sekali di awal / atas report
pageHeaderPageHeader berisi informasi tanggal atau waktu, page header akan muncul pada setiap halaman (jika hasil report lebih dari satu lembar).
columnHeaderColumnHeader atau Header kolom, akan muncul pada setiap lembar report.
detailDetail adalah bagian spesifik report bisa di bilang baris pada setiap data. bagian ini akan terus di looping sebanyak entry data.
columnFooterColumnFooter dapat berisi apapun , seperti fields, atau text lainnya.
pageFooterPageFooter biasanya berisi nomor halaman. Bagian ini akan muncul pada setiap halaman seperti contoh no 1 dari 5.
summarySummary biasanya berisi informasi lain seperti pie cart dll.


Software yang dibutuhkan

Sebelum memulai, terlebih dahalu kamu harus menyediakan :
  1. Jaspersoft Studio / iReport . Download
  2. Database Mysql

Lets Actions


  1. Yang pertama kali kamu lakukan adalah membuat sebuah database baru dengan nama "jasper" (atau apapun terserah kamu).
  2. Membuat tabel dan insert beberapa data, silahkan coy paste code berikut

  3. Table PERSONS
    create table PERSONS (    ID int primary key,    NAME varchar(30),    CITY varchar(30) ); insert into PERSONS values(1, 'ETHAN', 'NEW YORK'); insert into PERSONS values(2, 'CALEB', 'SAN FRANCISCO'); insert into PERSONS values(3, 'WILLIAM', 'LONDON');            
    
    Table EMAIL_ADDRESSES
    create table EMAIL_ADDRESSES (    ID int primary key,    ID_PERSON varchar(30),    EMAIL varchar(100) ); insert into EMAIL_ADDRESSES values(1, 1, 'ethan@yahoo.com'); insert into EMAIL_ADDRESSES values(2, 1, 'ethan@gmail.com'); insert into EMAIL_ADDRESSES values(3, 2, 'caleb@yahoo.com'); insert into EMAIL_ADDRESSES values(4, 2, 'caleb2@linux.com'); insert into EMAIL_ADDRESSES values(5, 2, 'cccleb@jaspersoft.com'); insert into EMAIL_ADDRESSES values(6, 3, 'wlm@somedomain.co.uk'); insert into EMAIL_ADDRESSES values(7, 3, 'william@someemail.eu'); insert into EMAIL_ADDRESSES values(8, 3, 'willy@myemail.org');     
    
    Table PHONE_NUMBERS
    create table PHONE_NUMBERS (    ID int primary key,    ID_PERSON varchar(30),    PHONE varchar(100) );     insert into PHONE_NUMBERS values(1, 1, '1(111) 111-1111'); insert into PHONE_NUMBERS values(2, 1, '1(222) 222-2222'); insert into PHONE_NUMBERS values(3, 1, '1(333) 333-3333'); insert into PHONE_NUMBERS values(4, 2, '1(444) 444-4444'); insert into PHONE_NUMBERS values(5, 3, '1(555) 555-5555'); insert into PHONE_NUMBERS values(6, 3, '1(666) 666-6666');
    
  4. Membuat JasperReports,
  5. a. Buat file baru dengan cara klik menu File - New - Jasper Report.

    b. Pilih template, di sini kita akan memilih Blank A4.
    c. Rename file dengan nama address_book. 
    d. Pilih Koneksi database yang akan di pakai, kamu bisa lihat pada artikel Koneksi JasperReport/iReport dengan Mysql.
    e. Menulis Query untuk menampilkan semua data table PERSONS.
    SELECT * FROM PERSONS;
    
    e. Pilih semua field yang muncul dari taruh di kanan dan kemudian klik FINISH.

Setelah kamu klik finish kamu akan melihat beberapa bagian seperti berikut :

4. Drag and drop fields ke bagian detail 1, nantinya pada bagian header column akan otomatis muncul mengikuti field yang ada. Apabila ingin mengganti textnya tinggal double klik. Kemudian kita dapat melihat hasilnya dengan mengklik preview.

Pada kesempatan berikutnya saya akan menulis tentang membuat sub report pada IReport / JasperReport.

Berkenalan Dengan JasperReports


Assalamualaikum...
Jika menemukan artikel ini berarti kamu ingin mencari tahu apa itu Jasper Report.
JasperReports merupakan library open source berbasis Java yang dapat memenuhi berbagai kebutuhan dalam membuat laporan, yang outputnya dapat berupa : PDF, HTML, Microsoft Excel, RTF, ODT , Comma-separated values (CSV), ataupun file XML.
Jika kamu membuka situs reminya kamu akan menemukan berbagai installer Jaspersoft StudioJasperReports Server, iReport . Ketika saya membuka page download, saya bingung harus download installer yang mana? apa perbedaan antara ketiganya ?


Jaspersoft Studio : Software ini berbasis Eclipse yang nantinya digunakan untuk mendesain berbagai report.

iReport  : Sebenarnya tidak ada bedanya dengan Jaspersoft Studio, kegunaannya sama-sama untuk mendesain report.

JasperReports Server : Adalah server apps, yang artinya applikasi ini berjalan di server dan di akses lewat browser sehingga dapat di integrasikan dengan applikasi web lain.

Dalam kesempatan berikutnya saya akan menulis tentang membuat report sederhana dengan Jaspersoft Studio...


Best regard
Powered by Blogger.