WHAT'S NEW?
Loading...



Collections structure :

- component_list


- component_sold


- registered_buyer





Code :

    // line 1 pake db.collection.aggregate juga bisa, optional aja
    CollectionModel.aggregate(
    {
      $lookup: {
        from: "component_list",
        localField: "component_id",
        foreignField: "_id",
        as: "unit"
      }
    }, {
      $unwind: "$unit"
    }, {
      $lookup: {
        from: "registered_buyer",
        localField: "buyer_id",
        foreignField: "_id",
        as: "buyer"
      }
    }, {
      $unwind: "$buyer"
    }, {
      $group: {
        "_id": {
          "name": "$unit.name",
          "brand": "$unit.brand"
        },
        "total_sold": {
          $sum: "$quantity"
        }
      }
    }, {
      $project: {
        "_id": 1,
        "unit": {
          "name": "$_id.name", // dapet dari group, redefine $unit.name ga bakal work
          "brand": "$_id.brand" // sama, dapet dari group
        },
        "buyer": {
          "name": "$buyer.name",
          "address": "$buyer.address",
          "telp": "$buyer.telp"
        },
        "total_sold": "$total_sold" // dapet dari group
      }
    }


code source from : https://github.com/noric1902/express_b/blob/master/routes/app.js



Lagi santai upload project ke hosting, eh salah satu API yang dipakai cuma bisa diakses lewat SSL atau secure link :/ , Kali ini ane mau share cara mengubah semua permintaan link pada Laravel menjadi https.


Tambahkan kode berikut ke app/Providers/AppServiceProvider.php

(Sisipkan pada function boot)


\URL::forceSchema('https');


Dan, tara.. waktu di klik link apapun menjadi https:// :)



Semoga Bermanfaat.


Lama ga ngeblog, saking sibuknya hehe

Kali ini mau share pengalaman dari petualangan belajar Laravel, yaitu menggunakan time ago, kira-kira gimana, langsung aja diliat di bawah.

  1. Tambahkan code ini pada file Controller

    public static function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);
    
    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;
    
    $string = array(
         'y' => 'year',
         'm' => 'month',
         'w' => 'week',
         'd' => 'day',
         'h' => 'hour',
         'i' => 'minute',
         's' => 'second',
     );
     foreach ($string as $k => &$v) {
         if ($diff->$k) {
             $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
         } else {
             unset($string[$k]);
         }
     }
    
     if (!$full) $string = array_slice($string, 0, 1);
     return $string ? implode(', ', $string) . ' ago' : 'just now';
    }
  2. Taro code ini di view

    use App\Http\Controllers\FileController;
  3. Dan untuk memanggilnya

    {{ FileController::namaFunction(valueDatenya, true) }}
    untuk menampilkan hanya dalam hitungan harian, jaman, atau menitan saja gunakan 'false', dan untuk menampilkan full beserta jam, menit, detik gunakan 'true' pada parameternya.
  4. Jangan lupa tambahkan ini pada Controllernya, karena fungsinya menggunakan DateTime;

    use DateTime;
  5. Dan tara... jadi.

     

Maaf tulisan acak2, yang penting isinya :) 


Auto base_url ini berfungsi untuk otomatis membaca dimana web kita dibuka, semisal kita dapet operan project dan base_urlnya ga sesuai sama path folder kita atau kita pengen ngerunning di Android atau di laptop lain yang masih satu jaringan, tapi base_url masih di localhost atau juga kita mau ngehosting, nah script ini berfungsi banget nih jadi gak perlu ubah-ubah base_url lagi di config.php, langsung running aja :)


$root = "http://".$_SERVER['HTTP_HOST'];
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;


Silahkan dicoba, dan semoga bermanfaat :)


Halo, kali ini gua akan membagikan bagaimana caranya mengecek jika ada email yang sudah terpakai pada database, dan langsung muncul notifikasi kalo email itu sudah terpakai.

Disini, gw menggunakan CodeIgniter dan untuk validasinya menggunakan jQuery + jQuery Validator, dan disini gw asumsikan pembaca sudah mengerti dasar dari PHP terutama OOP.

1. Buat database, config CodeIgniternya, bla bla bla ngerti lah ya
2. Langsung ke form, buatlah sebuah form bebas :

<html>
...
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script>
</head>
</body>
<form id="formvalidate"...>
...
<input type="text" id="email" name="email" placeholder="Email">
...
</form>


3. Dan untuk validasinya, seperti berikut :

<script type="text/javascript">
  $(document).ready(function() {
    $("#formvalidate").validate({
      rules: {
        email: {
          remote: {
            url: "<?=base_url()?>/namacontroller/validateEmailExist",
            type: "post",
            data: {
              email: function() {
                return $("#email").val();
              }
            }
          }
        }
     },
   messages: {
     email: {
      remote: "Email telah diambil"
     }
   }
 });
});
</script>

Untuk mengatur lokasi notifikasi error dapat menggunakan seperti berikut :


errorElement: 'span',
errorLabelContainer: '.error'

errorElement memberikan perintah untuk membaca element mana yang berfungsi untuk menampilkan error, pada contoh diatas menggunakan span, span dapat diganti sesuai kebutuhan

<span id="error"></span>

dan errorLabelContainer berguna untuk memberikan style pada error, contoh :

<style media="screen">
  .error {
    font-size: 12px;
    color: red;
  }
</style>

4. Prosesnya


  public function validateEmailExist() {
    if (array_key_exists('email', $_POST)) {
      if ($this->emailexist($this->input->post('email'))==TRUE) {
        echo json_encode(FALSE);
      } else {
        echo json_encode(TRUE);
      }
    }
  }

  private function emailexist($email) {
    $this->db->select('email');
    $this->db->where('email', $email);
    $query = $this->db->get('nama_table');
    $num = $query->num_rows();
    if ($num > 0) {
      return TRUE;
    } else {
      return FALSE;
    }
  }

Dan, jika berhasil maka tampilannya akan seperti ini



Semoga bermanfaat :)


Aplikasi ini dibuat dengan Framework PHP CodeIgniter, dengan fungsi untuk memonitoring barang yang masuk ke Lab dan barang yang keluar dari Lab pada Sekolah.

Fitur dari aplikasi ini, sebagai berikut :

- Daftar Barang, meliputi :

  1. Data Table, yang memungkinkan untuk memfilter/search barang, sorting data dari terbesar-terkecil ataupun dari terkecil-terbesar, dan mengatur berapa data yang ditampilkan setiap paging
  2. Edit, berfungsi untuk mengubah value dari data yang ada
  3. Hapus, berfungsi untuk menghapus data dari table
  4. Kurangi Stock, yang berfungsi untuk mengurangi barang yang ada di dalam Lab, dan akan otomatis barang yang keluar tersebut diinput ke daftar Barang Keluar
  5. Print/Cetak, berfungsi untuk membuat detail setiap barang dalam bentuk lembaran kertas, maupun PDF
  6. Export to Excel, berfungsi untuk mengeksport semua data ke dalam format Excel
  7. Checkbox dan Hapus Item Terpilih, berfungsi untuk menghapus barang yang di centang, untuk mempercepat penghapusan barang
  8. Pagination, pagination berfungsi untuk memperkecil data yang akan di tampilkan, supaya tidak bingung melihat data yang terlalu banyak nantinya

- Tambah Barang, meliputi :
  1. Untuk menginput barang yang masuk ke dalam Lab, terdapat 3 jenis Lab (Lab RPL, Lab MM, dan Lab TKJ)

- Daftar Barang Keluar

  1. Data Table, yang memungkinkan untuk memfilter/search barang, sorting data dari terbesar-terkecil ataupun dari terkecil-terbesar, dan mengatur berapa data yang ditampilkan setiap paging
  2. Edit, berfungsi untuk mengubah value dari data yang ada
  3. Hapus, berfungsi untuk menghapus data dari table
  4. Print/Cetak, berfungsi untuk membuat detail setiap barang dalam bentuk lembaran kertas, maupun PDF
  5. Export to Excel, berfungsi untuk mengeksport semua data ke dalam format Excel
  6. Checkbox dan Hapus Item Terpilih, berfungsi untuk menghapus barang yang di centang, untuk mempercepat penghapusan barang
  7. Pagination, pagination berfungsi untuk memperkecil data yang akan di tampilkan, supaya tidak bingung melihat data yang terlalu banyak nantinya


- Statistik, untuk menu ini belum berfungsi, mungkin ke depannya akan Saya lanjutkan

- Daftar Pengguna, di dropdown list ini menampilkan semua user yang terdaftar beserta nama dan jabatannya

- Account Setting, berfungsi untuk mengatur Nama, password, dan jabatan dari user


Aplikasi ini memiliki 3 level hak akses yaitu :

  1. Kepala Lab / Gudang
  2. Wakasapras
  3. Kepala Sekolah
Masing-masing level memiliki hak yang berbeda-beda, sebagai berikut :

- Untuk Kepala Lab, memiliki akses penuh dari sistem
- Untuk Wakasapras dan Kepala Sekolah, hanya dapat memonitor/melihat data masuk dan data keluar, dan juga membuat report dalam bentuk Excel.

Berikut beberapa screenshoot dari Aplikasi tersebut.











CPU Frequency Indicator merupakan applet untuk menampilkan dan merubah cpu frequency, dengan itu Anda dapat mengatur CPU Anda ke mode Performance untuk mendapatkan performa maksimal dan mode PowerSave untuk menghemat battery pada Ubuntu.


Untuk menginstallnya, ikuti langkah berikut :

Bukalah terminal dan ketikkan:


     sudo apt-get install indicator-cpufreq



Jika cara diatas gagal, cobalah untuk menambahkan repositorynya terlebih dahulu


    sudo add-apt-repository ppa:artfwo/ppa

    sudo apt-get update

    sudo apt-get install indicator-cpufreq


Semoga bermanfaat :)