Monday, 17 December 2018
Sunday, 16 December 2018
Sistem Pendukung Keputusan (SPK) Dengan Metode Promethee - VB.Net da Mysql
pada postingan kali ini saya akan sharing tentang aplikasi sistem pendukung keputusan, terdapat banyak metode dalam mengembangkan sistem pendukung keputusan antara lain : AHP, SAW, TOPSIS, FUZZY, Promethee dan lain2, pada postingan ini saya hanya membahas SPK dengan metode promethee.
Apa itu sistem pendukung keputusan (SPK) ?
Sistem pendukung keputusan merupakan sistem informasi interaktif yang menyediakan informasi, pemodelan, dan hasil pengolahan data. Sistem yang digunakan untuk membantu pengambilan keputusan dalam situasi yang semiterstruktur dan situasi yang tidak terstruktur dimana tak seorang pun tahu bagaimana keputusan dibuat.
Apa itu metode Promethee?
Metode Promethee (Preference Ranking Organizational Method For Enrichment Evaluation) merupakan salah satu metode pengambilan keputusan Multi Criteria Decision Making (MCDM) atau pengambilan keputusan suatu masalah yang memiliki lebih dari satu kriteria.
Metode promethee adalah salah satu metode penentuan urutan atau prioritas dalam analisa multikriteri. Masalah pokoknya adalah kesederhanaan, kejelasan, dan kesetabilan. Metode promethee menggunakan kriteria dan bobot dari masing-masing kriteria yang kemudian diolah untuk menentukan pemilihan alternatif yang sesuai. Adapun langkah-langkah pengambilan keputusan dengan metode promethee adalah sebagai berikut :
1. Menentukan kriteria
2. Menentukan bobot atau nilai dari masing2 kriteria
3. Menentukan tipe preferensi untuk menentukan tipe perhitungan dalam mengolah alternatif.
4. Menentukan hasil nilai prefrensi berdasarkan tipe preferensi yang ditentukan
5. Menentukan nilai index preferensi untuk menghitung nilai preferensi dari masing2 kriteria
6. Menentukan promethee ranking yang terdiri dari nilai promethee I dan nilai promethee II. Nilai promethee I menentukan nilai Leaving Flow, Entering Flow. Pada promethee II menentukan nilai Net Flow.
Demikian sedikit gambaran tentang metode promethee, sekarang untuk implementasinya saya menggunakan bahasa pemrograman VB.Net dan database MySQL dan untuk studi kasus yang saya gunakan adalah penerimaan anggota baru resimen mahasiswa (MENWA)
Adapun tampilan aplikasinya seperti berikut :
Tampilan awal
Tampilan data Calon Anggota
Tampilan data kriteria
Tampilan penilaian kriteria / Pembobotan Kriteria
Tampilan hasil perhitungan kriteria / perankingan
Hasil
Sekian sharing kali ini semoga bermanfaat. Termikasih :D
Saturday, 8 December 2018
Dynamic Image in Smartforms
Di Smartforms kita bisa menampilkan gambar secara dinamis dengan type yang sama, di smartforms ada 3 type gambar :
dalam postingan ini saya akan memberikan contoh untuk type gambar yang nomor 2 yaitu Color Bitmap Image (BCOL), sebelumnya kita siapkan 2 buah gambar, disini saya menggunakan gambar dibawah ini :
setelah itu kita upload gambar melalui t-code SE78 lalu pilih type gambar yang Color Bitmap Image.
setelah upload gambar selesai masuk ke t-code SMARTFORMS dan buat form baru dengan nama ZFIMG
design form seperti berikut :
double klik form interface dan tambahkan paramter P_IMG seperti berikut :
lalu tambahkan template didalam main window dan tambahkah graphic object dan text object didalam template
simpan dan activate smartformnya dan coba jalankan smartformsnya untuk melihat hasilnya
Semoga bermanfaat terimakasih :D
dalam postingan ini saya akan memberikan contoh untuk type gambar yang nomor 2 yaitu Color Bitmap Image (BCOL), sebelumnya kita siapkan 2 buah gambar, disini saya menggunakan gambar dibawah ini :
setelah itu kita upload gambar melalui t-code SE78 lalu pilih type gambar yang Color Bitmap Image.
setelah upload gambar selesai masuk ke t-code SMARTFORMS dan buat form baru dengan nama ZFIMG
design form seperti berikut :
double klik form interface dan tambahkan paramter P_IMG seperti berikut :
lalu tambahkan template didalam main window dan tambahkah graphic object dan text object didalam template
simpan dan activate smartformnya dan coba jalankan smartformsnya untuk melihat hasilnya
Semoga bermanfaat terimakasih :D
Sunday, 2 December 2018
Create Dynamic SAPUI5 Tiles With JSON
Postingan kali ini saya akan sharing cara membuat menu tiles di SAPUI5 secara dinamis dengan menggunakan json, ok langsung saja kita buat project baru di eclipse jika belum tau cara membuat project baru sapui5 bisa dilihat DISINI,
1. New Project
untuk iconnya saya menggunakan gambar dibawah ini :

setelah menambah file json dan icon, kita buka file index.html lalu ubah source code nya seperti berikut :
<!DOCTYPE HTML> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> <script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m, sap.suite.ui.commons, sap.ui.commons" data-sap-ui-theme="sap_bluecrystal"> </script> <!-- only load the mobile lib "sap.m" and the "sap_bluecrystal" theme --> <style type="text/css"> element.style { overflow-x: hidden; overflow-y: auto; background-color: #008b8b; } .sapMPage>section { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: darkcyan; } .sapMGT { display: inline-block; overflow: hidden; background: #dddddd; border-radius: 0.25rem; position: relative; box-sizing: border-box; border: 1px transparent dotted; outline: none; margin: 5px; } .sapMPanelHdr { font-weight: normal; font-size: 1.5rem; font-family: Arial,Helvetica,sans-serif; text-shadow: 0 0.0625rem 0 #ffffff; color: #fbf6f6; background-color: transparent; } </style> <script> sap.ui.localResources("ui5_tile"); var app = new sap.m.App({initialPage:"idindex1"}); var page = sap.ui.view({id:"idindex1", viewName:"ui5_tile.index", type:sap.ui.core.mvc.ViewType.JS}); app.addPage(page); app.placeAt("content"); </script> </head> <body class="sapUiBody" role="application"> <div id="content"></div> </body> </html>
buka index.view.js dan ganti bagian title menjadi seperit berikut :
sap.ui.jsview("ui5_tile.index", { /** Specifies the Controller belonging to this View. * In the case that it is not implemented, or that "null" is returned, this View does not have a Controller. * @memberOf ui5_tile.index */ getControllerName : function() { return "ui5_tile.index"; }, /** Is initially called once after the Controller has been instantiated. It is the place where the UI is constructed. * Since the Controller is given to this method, its event handlers can be attached right away. * @memberOf ui5_tile.index */ createContent : function(oController) { return new sap.m.Page({ title: "SAPUI5 TILES WITH JSON", content: [panelContainer ] }); } });
Save lalu jalankan dan lihat hasilnya di browser, cara menjalankannya klik kanan pada file index.html
untuk membuka di browser klik yang diberi tanda merah dan hasilnya di browser seperti berikut :
{ "Tiles": [ { "ContentPanel": [ { "frameTypeGnt": "OneByOne", "headerGnt": "Purchase Requisition", "iconGnt": "asset/icon/1.png", "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Create Purchase Requisition" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Purchase Order", "iconGnt": "asset/icon/2.png", "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Create Purchase Order" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Material Stock", "iconGnt": "asset/icon/1.png", "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Display Material Stock" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Process Order", "iconGnt": "asset/icon/2.png", "idGenericTile": 1, "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Create Process Order" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Confirm Order", "iconGnt": "asset/icon/1.png", "idGenericTile": 1, "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Confirm Process Order" } ], "headerTextPnl": "TRANSACTION", "idPanel": 1 }, { "ContentPanel": [ { "frameTypeGnt": "OneByOne", "headerGnt": "Report1", "iconGnt": "asset/icon/1.png", "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Report1" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Report2", "iconGnt": "asset/icon/2.png", "idGenericTile": 1, "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Report2" }, { "frameTypeGnt": "OneByOne", "headerGnt": "Report3", "iconGnt": "asset/icon/1.png", "idGenericTile": 1, "pressGnt": "", "sizeGnt": "M", "stateGnt": "Loaded", "subHeaderGnt": "Report3" } ], "headerTextPnl": "REPORTS", "idPanel": 2 } ] }
kemudian buka file index.view.js lagi dan tambahkan source code seperti berikut :
sap.ui.jsview("ui5_tile.index", { /** Specifies the Controller belonging to this View. * In the case that it is not implemented, or that "null" is returned, this View does not have a Controller. * @memberOf ui5_tile.index */ getControllerName : function() { return "ui5_tile.index"; }, /** Is initially called once after the Controller has been instantiated. It is the place where the UI is constructed. * Since the Controller is given to this method, its event handlers can be attached right away. * @memberOf ui5_tile.index */ createContent : function(oController) { //Image Component var image = new sap.ui.commons.Image({ src:"{iconGnt}", width:"60px", height:"60px" }) //Tiles var myTiles = new sap.suite.ui.commons.GenericTile({ header:"{headerGnt}", subheader:"{subHeaderGnt}", size:"{sizeGnt}", frameType:"{frameTypeGnt}", headerImage:"{headerImageGnt}", state:"{stateGnt}", imageDescription: "{pressGnt}", tileContent:new sap.suite.ui.commons.TileContent({ content:[image] }), // press: oController.eventTile2 }) //Panel to display tiles var myPanel = new sap.m.Panel({ headerText : "{headerTextPnl}", backgroundDesign : "Transparent", content : { path : "ContentPanel", template : myTiles, templateShareable:true } }) //panel to display myPanel var panelContainer=new sap.m.Panel({ backgroundDesign : "Transparent" }); //Bind JSON to Panel panelContainer.bindAggregation("content", "/Tiles", myPanel); return new sap.m.Page({ title: "SAPUI5 TILES WITH JSON", content: [panelContainer ] }); } });
dan tambahkan source code berikut didalam file index.controller.js
onInit: function() { var oModel = new sap.ui.model.json.JSONModel(); oModel.loadData("asset/json/tile.json"); //load json file sap.ui.getCore().setModel(oModel); },
dan silahkan refresh kembali aplikasinya didalam browser jika berhasil makan tampilannya akan seperti berikut :
sekian sharing kali ini semoga bermanfaat terimakasih :D
Wednesday, 21 November 2018
Membuat CRUD Sederhana Dengan Firebase Javascript dan Bootstrap
Assalamu'alaikum warahmatullahiwabarokatuh, selamat malam teman-teman :D,
pada postingan kali ini saya akan berbagi cara membuat CRUD sederhana dengan firebase dan javascript yang di kombinasikan dengan bootstrap css framework, pertama teman2 harus download bootstrap dulu, atau kalau sudah punya file-nya tidak perlu download :D, untuk mengikuti tutorial ini teman-teman harus punya account firebase jika belum langsung saja daftar atau lihat DISINI cara membuat account firebase.
ok, teman2 buat folder dengan nama firebasejs atau apa saja terserah teman2, copy kan folder (css, js, fonts) yang ada pada bootsrap teman2 kedalam folder firebasejs. Setelah itu buat file baru didalam folder firebasejs dengan nama index.html dan tuliskan source code seperti berikut :
<!DOCTYPE html> <html> <head> <title>CRUD Firebase</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" > <link rel="stylesheet" type="text/css" href="css/style.css"> <script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"></script> <script type="text/javascript"> var config = { apiKey: "AIzaSyA71hPWUdEqgymNFTHg462yFJ_bWDAkHcA", authDomain: "exam-aff8f.firebaseapp.com", databaseURL: "https://exam-aff8f.firebaseio.com", projectId: "exam-aff8f", storageBucket: "", messagingSenderId: "133123398372" }; firebase.initializeApp(config); </script> </head> <body> <h1>Firebase JS CRUD</h1> <button class="btn btn-primary btnTambahData" data-toggle="modal" onclick="cleardata()" data-target="#exampleModal">Tambah Data</button> <table class="table table-striped" id="tbl_list_user"> <thead> <tr> <th scope="col">No.</th> <th scope="col">Nama</th> <th scope="col">Email</th> <th scope="col">Alamat</th> <th scope="col">Aksi</th> </tr> </thead> </table> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel"></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <form action="" method="POST" enctype="multipart/form-data"> <div class="modal-body"> <input type="hidden" name="id" id="id"> <div class="form-group"> <label for="nama">Nama</label> <input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan nama" required="true"> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" name="email" id="email" class="form-control" placeholder="Masukkan email" required="true"> </div> <div class="form-group"> <label for="alamat">Alamat</label> <input type="text" name="alamat" id="alamat" class="form-control" placeholder="Masukkan alamat" required="true"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" onclick="tambahData()" data-dismiss="modal">Simpan</button> </div> </form> </div> </div> </div> <!-- <script src="js/jquery.js"></script> --> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="js/jquery.easing.1.3.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/hm.js"></script> <script type="text/javascript"> var database = firebase.database(); var key = 0; database.ref("users").orderByKey().limitToLast(1).on('child_added',function(data) { key = parseInt(data.key, 10); key = key + 1; }); database.ref('users').on('value', function(snapshot) { var count = 0; if(snapshot.exists()){ $("#tbl_list_user tbody").remove(); var content = '<tbody>'; snapshot.forEach(function(data) { count+=1; var val = data.val(); content +='<tr>'; content += '<td>' + count + '</td>'; content += '<td>' + val.username + '</td>'; content += '<td>' + val.email + '</td>'; content += '<td>' + val.address + '</td>'; content += '<td> <button class="btn btn-danger" onclick="hapusData(' + data.key + ')"> Hapus Data </button> <button class="btn btn-primary tampilModalUbah" onclick="setData('+ data.key +')" data-toggle="modal" data-target="#exampleModal">Edit Data</button> </td>'; content +='</tr>'; key = 0; key = parseInt(data.key, 10); key = key + 1; }); content += '</tbody>'; $('#tbl_list_user').append(content); }else{ $("#tbl_list_user tbody").remove(); } }); function tambahData(){ if($('#exampleModalLabel').text() == "Tambah Data Baru"){ if(key == 0){ key = 1; } database.ref('users/' + key).set({ username: $('#nama').val(), email : $('#email').val(), address : $('#alamat').val() }); alert("Data Berhasil ditambah"); }else if($('#exampleModalLabel').text() == "Ubah Data"){ database.ref('users/' + $('#id').val()).update({ username: $('#nama').val(), email : $('#email').val(), address : $('#alamat').val() }); alert("Data Berhasil diupdate"); } } function cleardata(){ $('#id').val(""); $('#nama').val(""); $('#email').val(""); $('#alamat').val(""); } function setData(id){ $('#exampleModalLabel').html('Ubah Data'); database.ref('users/').child(id).once('value').then( function(snap) { const user = snap.val() $('#id').val(id); $('#nama').val(user.username); $('#email').val(user.email); $('#alamat').val(user.address); }); } function hapusData(id){ var answer = confirm("Hapus Data..?"); if (answer) { database.ref('users/' + id).remove(); alert("Data Berhasil dihapus"); } } $('.btnTambahData').on('click', function(){ $('#exampleModalLabel').html('Tambah Data Baru'); }); </script> </body> </html>
Berikut contoh screen shot hasilnya :
Sekian sharing kali ini semoga bermanfaat, terimakasih :D
Saturday, 3 November 2018
Aplikasi Komputerisasi BPN Kabupaten Malang
Aplikasi ini saya buat pada saat magang di BPN kabupaten malang dulu saat masih kuliah, aplikasi ini hanya digunakan untuk melakukan pecatatan data hasil pengukuran tanah yang dilakukan oleh petugas dilapagan, dimana sebelumnya hanya melakukan pencatatan menggunakan excell, ok itu sekilas penjelasan singkat tentang aplikasi ini, untuk tampilannya bisa dilihat pada gambar2 dibawah ini:
untuk skin tampilannya saya menggunakan devExpress, :D
Subscribe to:
Posts (Atom)
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...
-
Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya ...
-
Postingan kali ini saya akan sharing cara membuat CRUD sederhana dengan CodeIgniter, CodeIgniter merupakan salah satu PHP framework dengan ...
-
1. Create BAdI MB_MIGO_BADI Implementation from tcode SE19 2. Enter Implementation Name 3. Create Enhancement Implementation 4. Open Imple...