Thursday, 15 December 2016

Saturday, 26 November 2016

Saturday, 19 November 2016

Atom : A Hackable Text Editor

Status : Draft

Berikut adalah beberapa plugin yang bisa penulis gunakan :

Thema :
Produktivitas :
  1. nuclide, https://atom.io/packages/nuclide
  2. atom-ide-ui, https://atom.io/packages/atom-ide-ui
    Jika Anda sudah menggunakan nuclide, Anda tidak perlu menginstall kembali  atom-ide-ui, karena nuclide sudah dibundle dengan atom-ide-ui
  3. ide-typescript, https://atom.io/packages/ide-typescript
  4. ide-flowtype, https://atom.io/packages/ide-flowtype
  5. ide-java, https://atom.io/packages/ide-java
  6. ide-php, https://atom.io/packages/ide-php
  7. local-history, https://atom.io/packages/local-history
  8. php-fmt support for Atom, https://atom.io/packages/php-fmt
  9. symbols-tree-nav, https://atom.io/packages/symbols-tree-nav
  10. tab-switcher, https://atom.io/packages/tab-switcher
  11. language-elixir, https://atom.io/packages/language-elixir
  12. atom-elixir, https://atom.io/packages/atom-elixir
  13. linter-elixirc, https://atom.io/packages/linter-elixirc
  14. linter, https://atom.io/packages/linter
  15. language-r, https://atom.io/packages/language-r
  16. autocomplete-r, https://atom.io/packages/autocomplete-r
  17. language-rust, https://atom.io/packages/language-rust

Shorcut 

ctrl+t atau ctrl+p : Untuk mencari file secara cepat 
ctrl+alt+o : Untuk membuka symbol tree nav
ctrl+g : Untuk loncat menuju baris ke-

Jika menggunakan nuclide dapat melihat [3]

Wednesday, 28 September 2016

Export/Import Data dari PostgreSQL Menggunakan PHP dengan Format XML

Status : Draft

Latar Balakang

Pada salah satu aplikasi yang kita kembangkan, Bank Soal [1], kita memerlukan proses export/import data custom, karena proses export/import data menggunakan database yang kita gunakan, PostgreSQL, sudah tidak memenuhi kebutuhan lagi. Oleh karena itu diperlukan utilitas export/import data yang custom menggunakan format data xml.

Solusi

Export

Untuk export, kita menggunakan solusi built-in postgresql query_to_xml(query text, nulls boolean, tableforest boolean, targetns text) [2].

Salah satu contoh SQL untuk exportnya seperti ini :

SELECT * FROM query_to_xml('SELECT * FROM jenis_soal  WHERE id_jenis_soal
                           IN(SELECT DISTINCT(id_jenis_soal)
                              FROM soal WHERE id_set_soal = '||$1||')',true,false,'') jenis_soal_xml;
Contoh Outputnya seperti berikut :

<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
  <id_jenis_soal>1</id_jenis_soal>
  <nama>Pilihan Berganda</nama>
  <urut>1</urut>
</row>
<row>
  <id_jenis_soal>2</id_jenis_soal>
  <nama>Kombinasi Berganda</nama>
  <urut>3</urut>
</row>
</table>


Import

Untuk proses import kita menggunakan php dengan bantuan pustaka sabre/xml [5].

Contoh Implementasi Import :

  $service = new Sabre\Xml\Service();
  $service->elementMap = [
   '{}row' => function(Sabre\Xml\Reader $reader) {
return Sabre\Xml\Deserializer\keyValue($reader, '');
},
'table' => function(Sabre\Xml\Reader $reader) {
return Sabre\Xml\Deserializer\repeatingElements($reader, 'row');
},
  ];

  $data_xml   = $service->parse(file_get_contents($file_xml));

Outputnya akan berupa array, seperti berikut :

Array
(
    [0] => Array
        (
            [id_jenis_soal] => 1
            [nama] => Pilihan Berganda
            [urut] => 1
        )
    [1] => Array
        (
            [id_jenis_soal] => 2
            [nama] => Kombinasi Berganda
            [urut] => 3
        )
)

Referensi

  1. Sistem Informasi Bank Soal,Transformative Assesment : When Assesment is Not Only About Judging The Students But Developing Their Performance,  http://banksoal.openthinklabs.com
  2. PostrgreSQL : Export - Import Data, http://postgresql.openthinklabs.com/2016/08/postrgresql-export-import-data.html
  3. Export/Import Data dari MySQL Menggunakan PHP dengan Format XML, http://software.openthinklabs.com/2015/10/exportimport-data-dari-mysql.html
  4. An XML library for PHP you may not hate., http://evertpot.com/an-xml-library-you-may-not-hate/
  5. sabre/xml, http://sabre.io/xml/