Monday, 8 July 2019

Aplikasi Pembayaran SPP dan Daftar Ulang Dengan C# MySql

Postingan kali ini saya akan share aplikasi pembayaran SPP dan Daftar Ulang sederhana berbasis desktop yang dibuat deangan visual studio (C#) dan MySql. dalam aplikasi ini terdapat beberpa master data antara lain, data siswa, data spp siswa per-tahun ajaran, data biaya daftar ulang siswa per-tahun ajaran, data kelas siswa. untuk transaksinya ada dua yaitu pembayaran SPP dan Pembayaran Daftar ulang, dan terdapat laporan rekap pembayaran SPP dan rekap pembayaran Daftar ulang. Untuk tampilan aplikasi seperti berikut :

Tampilan awal adalah untuk konek ke server, pilih server lalu double klik tombol konek ke server atau bisa langsung double klik nama servernya.

 

Setelah berhasil konek ke server, selanjutnya memasukkan user ID dan password untuk login.


 Setelah login berhasil akan muncul tampilan utama dari aplikasi ini


menu untuk menambah, edit dan hapus data siswa



form untuk mengupdate kelas siswa


Form laporan data siswa, dalam laporan ini bisa menampilkan data siswa berdasarkan kelas




form master SPP siswa per-bulan dalam satu ajaran, untuk menambah data SPP siswa bisa kelik tombol tambah seperti yang ditandai kotak merah


setelah klik button tambah akan muncul form untuk mengisikan jumlah SPP perbulan siswa, kita masukkan nomer induk siswa lalu tekan enter dan isikan nominal SPP perbulan lalu tekan save.


setelah tekan save listnya akan langsung muncul seperti berikut


Master biaya daftar ulang siswa


 tambah biaya daftar ulang siswa


Master data kelas


Transaksi pembayaran SPP






Transaksi pembayaran biaya daftar ulang, dalam daftar ulang ini terdapat pembayaran SPP satu bulang, untuk otomatis melakukan pembayaran SPP satu bulang centang Lunasi SPP satu bulang lalu pilih bulan berapa yang mau di lunasi dan tekan save



berikut ini adalah laporan rekapitulasi pembayaran SPP, dimana ada yang dibayarkan dari daftar ulang dan daftar SPP secara langsung, akan ada keterangan jika SPP dibayar otomatis dari daftar ulang


laporan pembayaran daftar ulang



data rekapitulasi daftar ulang, pada laporan ini akan terlihat berapa jumlah daftar ulang yang sudah dibayarkan dan sisa tunggakan tinggal berapa serta ada keterangan tanggal pembayaran dan keterangan.





sekian postingan kali ini :D

Tuesday, 19 March 2019

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer, Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa.

untuk data-data yang dibutuhkan antara lain :
1. data kategori asset
dalam menu ini kita bisa meng-input jenis2 kategory asset :



tambah kategori asset :





2. data department





3. data karyawan





4. data department per karyawan





5. data asset location 





6. data satuan asset



dan untuk transaksi yang ada dalam aplikasi ini adalah, 
1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut:




setelah klik tombol save akan muncul seperti dibawah :


untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih menu transaction > Asset > Display Asset pada menu sidebar dan akan langsung muncul tampilan seperti berikut :




Jika kita tau nomor asset yang ingin di tampilkan kita bisa langsung menuliskan nomornya, jika tidak kita klik tombol cari yang di tandai kotak merah seperti diatas, dan akan muncul list asset yang sudah dibuat dan kita pilih satu






setelah memilih nomor asset yang akan ditampilkan lalu klik tombol show data dan akan langsung muncul detail dari asset yang dipilih seperti berikut :






halaman login dan halaman utama :




Sekian sharing kali ini, :D

download source code DISINI

Note : jika login gagal dihalaman login, kosongin password di database mysql terus coba login cukup mengisikan username, setelah berhasil login bisa create user baru di menu configuration.

Thursday, 7 March 2019

SAP ABAP - Set Individual Cell Color ALV Grid

*&---------------------------------------------------------------------*
*& Report ZALVCOLOR
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZALVCOLOR.

TYPESBEGIN OF Y_T_ITAB,
         MATNR    TYPE MATNR,
         MAKTX    TYPE MAKTX,
         COLORTAB TYPE LVC_T_SCOL,
       END OF Y_T_ITAB.

DATA ITAB TYPE STANDARD TABLE OF Y_T_ITAB.
DATA COLOR_TAB TYPE STANDARD TABLE OF LVC_S_SCOL.
DATA IT_FCAT TYPE STANDARD TABLE OF LVC_S_FCAT.
DATA WA_ITAB TYPE Y_T_ITAB.

FIELD-SYMBOLS<F_WA_ITAB> TYPE Y_T_ITAB.
DATA WA_FCAT  TYPE LVC_S_FCAT,
       WA_LAYO  TYPE LVC_S_LAYO,
       WA_COLOR TYPE LVC_S_SCOL.

DATA GC_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
       GC_GRID      TYPE REF TO CL_GUI_ALV_GRID.

SELECT-OPTIONS S_MATNR FOR WA_ITAB-MATNR.

SELECT MATNR MAKTX FROM MAKT
  INTO CORRESPONDING FIELDS OF TABLE ITAB
  WHERE MATNR IN S_MATNR
    AND SPRAS =  SY-LANGU.

IF SY-SUBRC EQ 0.
  SORT ITAB BY MATNR.
ENDIF.

CALL SCREEN '0100'.

*----------------------------------------------------------------------*
*  MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'GG'.
  SET TITLEBAR  'TT'.

* create the grid object
  CREATE OBJECT GC_CONTAINER
    EXPORTING
      CONTAINER_NAME              'CONTAINER'
    EXCEPTIONS
      CNTL_ERROR                  1
      CNTL_SYSTEM_ERROR           2
      CREATE_ERROR                3
      LIFETIME_ERROR              4
      LIFETIME_DYNPRO_DYNPRO_LINK 5
      OTHERS                      6.


  CREATE OBJECT GC_GRID
    EXPORTING
      I_PARENT          GC_CONTAINER
    EXCEPTIONS
      ERROR_CNTL_CREATE 1
      ERROR_CNTL_INIT   2
      ERROR_CNTL_LINK   3
      ERROR_DP_CREATE   4
      OTHERS            5.


* create fcat
  WA_FCAT-FIELDNAME 'MATNR'.
  WA_FCAT-REF_FIELD 'MATNR'.
  WA_FCAT-REF_TABLE 'MAKT'.
  APPEND WA_FCAT TO IT_FCAT.

  WA_FCAT-FIELDNAME 'MAKTX'.
  WA_FCAT-REF_FIELD 'MAKTX'.
  WA_FCAT-REF_TABLE 'MAKT'.
  APPEND WA_FCAT TO IT_FCAT.

*add colors to the cells
* LOOPing just to add different colors to different records
  LOOP AT ITAB ASSIGNING  <F_WA_ITAB>.
    REFRESH COLOR_TAB[].

    CASE SY-TABIX.
      WHEN 1.
        WA_COLOR-FNAME 'MATNR'.
        WA_COLOR-COLOR-COL 6.  " red color
        APPEND WA_COLOR TO COLOR_TAB.

        WA_COLOR-FNAME 'MAKTX'.
        WA_COLOR-COLOR-COL 5" green color
        APPEND WA_COLOR TO COLOR_TAB.

      WHEN OTHERS.

        WA_COLOR-FNAME 'MATNR'.
        WA_COLOR-COLOR-COL 3"yellow
        APPEND WA_COLOR TO COLOR_TAB.

        WA_COLOR-FNAME 'MAKTX'.
        WA_COLOR-COLOR-COL 7"violet
        APPEND WA_COLOR TO COLOR_TAB.

    ENDCASE.
    INSERT LINES OF COLOR_TAB INTO TABLE <F_WA_ITAB>-COLORTAB.
  ENDLOOP.

* pass the column name of the internal table
* which contains the color sequence to the layout of the grid
  WA_LAYO-CTAB_FNAME 'COLORTAB'.

* display the grid

  CALL METHOD GC_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT                     WA_LAYO
    CHANGING
      IT_OUTTAB                     ITAB[]
      IT_FIELDCATALOG               IT_FCAT[]
    EXCEPTIONS
      INVALID_PARAMETER_COMBINATION 1
      PROGRAM_ERROR                 2
      TOO_MANY_LINES                3
      OTHERS                        4.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  CASE SY-UCOMM.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE.

Saturday, 2 February 2019

Menggunakan OMDB API Dengan HTML & JavaScript

Selamat malam coders...

pada postingan kali ini saya akan sharing cara menggunakan OMDb API, OMDb API merupakan API penyedia data-data film dari seluruh dunia, agar bisa menggunakan API dari OMDb ini kita harus generate API key terlebih dahulu di websitenya http://www.omdbapi.com/ setelah membuka websitenya pilih menu API Key dan pilih yang Free kemudian isikan email, nama dan untuk bagian Use isi saja dengan Education setelah itu klik submit maka teman-teman akan mendapatkan email dari OMDb nya berupa API key yang akan teman-teman gunakan untuk mengkses API-nya dan jangan lupa klik link activate yang di email dan API OMDb sudah siap kita akses.




selanjutnya kita buat folder baru dengan nama movie dan penyimpanan foldernya terserah teman-teman mau simpan di drive mana saja boleh, lalu didalam folder movie tambah folder assets dan didalam folder assets simpan file css dan js dari bootstrap karena kita akan menggunakan bootstrap untuk layout-nya.

tambah file dengan nama index.html di folder movie dan source codenya sperti berikut :


<!DOCTYPE html>
<html>
<head>
    <title>Rest API</title>
    <link rel="stylesheet" href="assets/css/bootstrap.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>

  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="container">
      <a class="navbar-brand" href="">Movie Zone</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
    </div>
  </nav>
  

  <div class="container mt-3">
    <div class="row justify-content-center">
      <div class="col-md-8">
        <div class="input-group mb-3">
          <input type="text" id="search-text" class="form-control" placeholder="Input Movie Title" aria-label="Recipient's username" aria-describedby="button-addon2">
          <div class="input-group-append">
            <button class="btn btn-primary ml-2" type="button" id="btn-search">Search <i class="fa fa-search"></i></button>
          </div>
        </div> 
      </div>
    </div>
    <hr>

    <div class="row" id="movie-list">        

    </div>
  </div>

  <!-- Modal -->
  <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Movie Details</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">

        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>

  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
  <script src="assets/js/bootstrap.js"></script>
  <script src="assets/js/script.js"></script>
</body>
</html>


lalu didalam folder assets/js tambah file javascript baru dengan nama script.js


$('#search-text').on('keyup', function(e){
    if(e.keyCode == 13)
    { 
        searchMovies();
    }
})

$('#btn-search').on('click', function(e){
    searchMovies();
})

$('#movie-list').on('click', '#btn-details', function(e){
    $.ajax({
        url:'http://www.omdbapi.com',
        type:'GET',
        dataType:'json',
        data:{
            'apikey' : 'ec38fba9', //API Key
            'i' : $(this).data('id') //Parameter i untuk pencarian film berdasarkan id film  / omdbID
        },
        success: function(result){
            if(result.Response === "True"){
                $('.modal-body').html('');
                $('.modal-body').append(`
                    <div class="container-fluid">
                        <div class="row">
                            <div class="col-md-4">
                                <img src="` + result.Poster + `" class="img-fluid">
                            </div>
                            <div class="col-md-8">
                                <ul class="list-group">
                                  <li class="list-group-item"><h4>`+ result.Title +`</h4></li>
                                  <li class="list-group-item">Released : `+ result.Released +`</li>
                                  <li class="list-group-item">Genre : `+ result.Genre +`</li>
                                  <li class="list-group-item">Writer : `+ result.Writer +`</li>
                                  <li class="list-group-item">Actors : `+ result.Actors +`</li>
                                  <li class="list-group-item">Production : `+ result.Production +`</li>
                                  <li class="list-group-item">Plot : `+ result.Plot +`</li>
                                </ul>
                            </div>
                        </div>
                    </div>    
                `);
            }
        }
    });
})


function searchMovies(){
    $.ajax({
        url:'http://www.omdbapi.com',
        type:'GET',
        dataType:'json',
        data:{
            'apikey' : 'ec38fba9', //API Key
            's' : $('#search-text').val() //Parameter s pencarian film berdasarkan judul
        },
        success: function(result){
            let movies = result.Search;
            $('#movie-list').html('');
            if(result.Response == "True"){
                $.each(movies, function(i, data){
                    $('#movie-list').append(`<div class="col-md-4 mb-3">
                        <div class="card" style="width: 18rem;">
                        <img src="`+ data.Poster +`" class="card-img-top" height="300px">
                        <div class="card-body"><h5 class="card-title">`+ data.Title +`</h5>
                        <p class="card-text">Year : `+ data.Year +`</p>
                        <a href="#" class="btn btn-primary" id="btn-details" data-id="`+ data.imdbID +`" 
                        data-toggle="modal" data-target="#exampleModal">Show Details</a>
                        </div></div></div>
                    `);
                })
            }else{
                $('#movie-list').append(`
                    <div class="col-sm-12 text-center">
                        <h1>`+ result.Error +`</h1>
                    </div>
                `);
            }
        }
    });

    $('#search-text').val("");
}


untuk melihat parameter-parameter yang disediakan oleh OMDb API-nya bisa teman-teman lihat di menu Usage di website-nya.






jika sudah coba jalankan di browser dan lihat hasilnya :





untuk detailnya seperti berikut :



semoga bermanfaat sharing kali ini :D



Belajar SAP ABAP RAP

  Belajar SAP ABAP RAP: Pengenalan dan Konsep Dasar Restful ABAP Programming Model Kalau kamu seorang ABAPer yang mulai terjun ke dunia SAP...