14 Maret 2019

Answer HackerRank Cat and Mouse

Two cats and a mouse are at various positions on a line. You will be given their starting positions. Your
task is to determine which cat will reach the mouse first, assuming the mouse doesn't move and the cats
travel at equal speed. If the cats arrive at the same time, the mouse will be allowed to move and it will
escape while they fight.

Answer
 if(Math.abs(x - z) < Math.abs(y-z)){
            return "Cat A";
        }
        else if (Math.abs(x - z) > Math.abs(y-z)){
            return "Cat B";
        }
        else{
            return "Mouse C";
        }


HackerRank Grading Student

HackerLand University has the following grading policy:

Every student grade receives a  in the inclusive range from 0 to 100.
Any grade less than 40 is a failing grade.
Sam is a professor at the university and likes to round each student's grade according to these rules:

If the difference between the grade and the next multiple of 5 is less than 3, round  up to the next multiple of 5.
If the value of grade is less 38 than , no rounding occurs as the result will still be a failing grade.

Answer



static int[] gradingStudents(int[] grades) {
        for(int i=0;i<grades.length;i++)
        {
          if(grades[i]>=38)
          {
                 System.out.println(grades[i]%5);
               if(grades[i]+(5-grades[i]%5)-grades[i]<3)
               
               grades[i]=(grades[i]+(5-grades[i]%5));
            
          } 
        }
         
        return grades;

    }

HackerRank Substring diff || Time Conversion

Given a time in -hour AM/PM format, convert it to military (24-hour) time.
Note: Midnight is 12:00:00AM on a 12-hour clock, and 00:00:00 on a 24-hour clock. Noon is 12:00:00PM on a 12-hour clock, and 12:00:00 on a 24-hour clock.
Function Description
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format.

Answer

String hasil="";
String ampm = (s.substring(s.length()-2));
String hh1 = s.substring(0,2);
String mn1 = s.substring(3,5);
String sc1 = s.substring(6,8);
int hh2 = Integer.parseInt(hh1);
int hh3 = 0;
if(ampm.equals("PM")){
if(hh1.equals("12")){
hh3=12;
}else{
hh3 = hh2+12;
}
}else if(ampm.equals("AM")){
if (hh1.equals("00")){
hh3 =12;
}else if(hh1.equals("12")){
hh3=0;
}else{
hh3 = hh2;
}
}
if(hh3<10){
hasil="0"+hh3+":"+mn1+":"+sc1;
}else{
hasil=hh3+":"+mn1+":"+sc1;
}
return hasil;


Thanks :)



29 Agustus 2018

Mengupload file ke server menggunakan ZKoss Framework

Kali ini kita akan membuat sebuah projek, dimana didalamnya ada fitur untuk mengupload sebuah document, document ini bisa berupa image ataupun format file lainya.

Pertama buat projek zk baru, jika anda belum tau caranya bisa lihat disini.
kedua pada index.zul isikan code seperti ini,

<?xml version="1.0" encoding="UTF-8"?>

<zk xmlns="http://www.zkoss.org/2005/zul">
    <window title="Contoh Upload File ZK" apply="controller.indexComposer">
        <button id="uploadBtn" label="Upload file" />
        <separator />
        <image width ="300px" height="300px" id="img" />
        <separator />
        <label id="msgLb" />
    </window>
</zk>
Ketiga buat file controllernya yaitu file indexController.java, sebelumnya buat sebuah folder bernama "controller" di /src/java/
untuk lebih jelasnya hirarki projeknya seperti ini

Hirarki projek

berikut code indexcontroller.java
package controller;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.zkoss.util.media.Media;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.*;

/**
 *
 * @author yusuf
 */
public class indexComposer extends GenericForwardComposer {

    private Image img;
    private Label msgLb;
    private static final int FILE_SIZE = 1000;// 100k
    private static final String xdate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    private static final String SAVE_PATH = "/home/yusuf/Documents/upload/" + xdate + "/";
//   private static final String SAVE_PATH = "c:\\myfile\\media\\" + xdate + "/"; //ganti jika windows

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp);
    }

    public void onClick$uploadBtn() {
        msgLb.setValue("");

        Media media = Fileupload.get();
        if (media == null) {
            msgLb.setValue("please select a file");
            return;
        }
        String type = media.getContentType().split("/")[0];
        if (type.equals("image")) {
            if (media.getByteData().length > FILE_SIZE * 1024) {
                msgLb.setValue("File size limit " + FILE_SIZE + "k");
                return;
            }
            org.zkoss.image.Image picture = (org.zkoss.image.Image) media;
            img.setContent(picture);
        }
        saveFile(media);
    }

    private void saveFile(Media media) {
        BufferedInputStream in = null;
        BufferedOutputStream out = null;
        try {
            InputStream fin = media.getStreamData();
            in = new BufferedInputStream(fin);
            File baseDir = new File(SAVE_PATH);

            if (!baseDir.exists()) {
                baseDir.mkdirs();
            }
            File file = new File(SAVE_PATH + media.getName());
            OutputStream fout = new FileOutputStream(file);
            out = new BufferedOutputStream(fout);
            byte buffer[] = new byte[1024];
            int ch = in.read(buffer);
            while (ch != -1) {
                out.write(buffer, 0, ch);
                ch = in.read(buffer);
            }
            msgLb.setValue("sucessed upload :" + media.getName());
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }

}

Selanjutnya pada zul.xml tambahkan script berikut
<system-config>
<ui-factory-class>org.zkoss.zk.ui.http.SerializableUiFactory</ui-factory-class>
</system-config>
Penjelasan

upload file menggukanak zkoss

Pada bagian ini, kita mendefinisikan
1. file_size adalah Berapa max file yang diperbolehkan diupload,
2. save_path adalah direktori yang akan digunakan untuk penyimpanan file, jika direktori yang didefinisikan belum ada, maka secara otomatis system akan membuat foldernya di laptop/pc anda.

upload file menggukanak zkoss




Pada bagian ini, kita mendefinisikan hal apa saja yang akan terjadi ketika menekan tombol upload.
didalamnya ada validasi file size, kemudia ada validasi apakah file yang kita upload image atau bukan, kalau image maka akan ditampilkan di index.zul. di bagian ini juga kita memanggil fungsi simpan file.



upload file menggukanak zkoss

Pada bagian ini sistem kan menyimpan file yang kita upload.

Cukup sekian blog saya kali ini, anda bisa mendownload projek ini di github saya disini.
Apabila ada yang ingin ditanyakan silahkan komen dibawah, jika anda ingin respon yang cepat dari saya, anda bisa kirim email ke firdausofyusuf@gmail.com
Terimakasih.


28 Agustus 2018

Membuat validasi password menggunakan javascript


Membuat validasi pada sebuah form bisa dilakukan dengan berbagai macam cara diataranya menggunakan PHP, JQuery, atau menggunakan javascript.
Kali ini saya akan sharing bagaimana cara melakukan validasi menggunakan javascript.

validasi password javascript


Codingnya seperti ini.

<html>
<head>
</head>
<body>

    <script language="javascript">
        function validate() {
            var password1 = document.getElementById('password').value;
            var password2 = document.getElementById('repassword').value;
            if (password1 != password2) {
                alert("Password Tidak Sama!!");
            } else {
                alert("Password Tersimpan");
            }
        }
    </script>


    <form action="#" method="POST">
        <input type="password" placeholder="Masukan password" id="password" />
        <input type="password" placeholder="Masukan Kembali password" id="repassword" />
        <input type="Submit" onClick="validate();" value="OK" />
    </form>
</body>

</html>


Penjelasan

1. Membuat form, membuat input bertipe password dan memberi id yang unik pada setiap inputnya.
<form action="#" method="POST">
<input id="password" placeholder="Masukan password" type="password" />
<input id="repassword" placeholder="Masukan Kembali password" type="password" />
2. Membuat input bertipe submit, dan memberi action yaitu onClick. dan mengisikan fungsi validate(); kedalam event onclicknya
  <input type="Submit" onClick="validate();" value="OK" />
3. Membuat javascript validasi yang akan dipanggil ketika mengklik tombol OK
<script language="javascript">
        function validate() {
            var password1 = document.getElementById('password').value;
            var password2 = document.getElementById('repassword').value;
            if (password1 != password2) {
                alert("Password Tidak Sama!!");
            } else {
                alert("Password Tersimpan");
            }
        }
    </script>



Anda juga bisa menambahkan validasi banyaknya leng minimal yang harus diisi pada kondisi if di funtion  validate()
Semoga membantu

22 Juni 2018

Membuat window Modal pada ZK Framework

Kali ini saya akan sharing tentang bagaimana cara menampilkan modal pada zkoss framework. biasanya window bertype modal dipakai untuk menampilkan form/window yang informasinya tidak terlalu banyak.

Langsung saja, pertama anda harus membuat projek ZK baru, jika anda belum bisa membuat projek zk anda bisa membacanya disini

pada file index.zul anda bisa memodifikasinya menjadi seperti ini



<?xml version="1.0" encoding="UTF-8"?>

<zk xmlns="http://www.zkoss.org/2005/zul">
      <window title="Contoh Modal" apply="controller.indexComposer">
        <button id="btnModal"
                label="Tampilkan Modal"
        />
    </window>
</zk>



Kemudian buat file index2.zul
<?xml version="1.0" encoding="UTF-8"?>

<zk xmlns="http://www.zkoss.org/2005/zul">
    <window mode="modal"  closable="true" width="80%" id="winmodal" apply="controller.index2Composer">
        ini adalah tampilan window modal
      
       
        <listbox id="box" multiple="true" checkmark="true" >
        <listhead >
            <listheader label="Name"/>
            <listheader label="Gender"/>
            <listheader label="Age"/>
            <listheader label="Description"/>
        </listhead>
        <listitem>
            <listcell label="Mary"/>
            <listcell label="FEMALE"/>
            <listcell label="18"/>
            <listcell label="A young lady."/>
        </listitem>
        <listitem>
            <listcell label="John"/>
            <listcell label="MALE"/>
            <listcell label="20"/>
            <listcell label="A college student."/>
        </listitem>
       
    </listbox>   
        <button id ="btnClose"
        label="Tutup" />
       
    </window>
</zk>

Lalu buat folder baru pada source Packages, beri nama "controller"

kemudian buat java class baru dan beri nama indexComposer, indexComposer ini berfungsi sebagai controller dari file index.zul

package controller;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Window;

/**
*
* @author yusuf
*/
public class indexComposer extends GenericForwardComposer {

@Wire
private Listbox Listboxs;

public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);

}

public void onClick$btnModal(Event e) throws InterruptedException {
Window window = (Window) Executions.createComponents(
"index2.zul", null, null);
window.doModal();

}

}

Terakhir buat java class untuk controller dari file index2.zul, yaitu file index2Composer
package controller;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Window;

/**
*
* @author yusuf
*/
public class index2Composer extends GenericForwardComposer {

@Wire
private Window winmodal;
@Wire
private Listbox Listboxs;

public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);

}

public void onClick$btnClose(Event e) throws InterruptedException {
winmodal.detach();
}

}

Jalankan projek anda, jangan lupa pilih server untuk menjalankannya

Anda juga bisa mendownload projeknya di github saya disini.

Terimakasih Semoga membantu.

Membuat project ZKoss (ZK) Pertamamu menggunakan Netbean

 ZKoss atau ZK merupakan framework yang biasanya digunakan untuk membuat interface di dalam bahasa pemrograman JAVA, khususnya JAVA EE, untuk lebih jelasnya bisa anda baca di https://www.zkoss.org/

1. Instalasi Plugin.
Yang harus anda miliki adalah plugin REM Plugin terlebih dahulu, anda dapat mendownloadnya disini atau disini

Lalu pada Netbean IDE anda, klik tool plugin, klik tab downloaded -> add plugins, (pilih file REM yang sudah di download)lalu klik install.





add plugin REM

Setelah menginstall plugin REM, anda akan diminta restart netbean.

2. Membuat Projek ZK
Klik file-> new project, pilih java web, lalu cari ZK Application.
   ddddBeri nama project anda.
Create New ZK Project
Beri Nama projek anda
Setelah projet terbentuk jalankan projek dengan cara klik kanan->Run atau pilih tombol RUN Project

Jika berhasil akan muncul tulisan "My ZK Applicatin pada browser anda", untuk mengeditnya, anda bisa lakukan pada file index.zk
tampilan ZK pertama kali

Semoga membantu, terimakasih.

26 Februari 2018

Cara Melihat Password Wifi Yang Sudah Connect

Asalamualaikum
Terkadang kita lupa password wifi yang sudah atau sedang terkoneksi dengan laptop kita, cara ini saya lakukan di laptop saya yang bersistem operasi windows 10, tapi juga dapat digunakan di windows 7 dan 8.
langsung saja, pertama kita arahkan kursor ke lambang wifi ( biasanya dibawah kanan) kemudian klik kanan ==> pilih "Open Network And Sharing Center",
klik kanan logo wifi


Kemudian akan terbuka menu network and sharing center pada control panel, lalu klik pada nama wifinya, maka akan muncul pop up status wifi yang sedang terhubung.

pilih nama wifi


Lalu klik tombol wireless properties. setelah muncul pop up wireless propserties klik pada tab security, terakhir check pada checkbox "Show Caracter".

klik wireless properties

chekclist show character


Semoga artikel saya dapat membantu, Wasalam

12 Februari 2018

Cara Men-generate SQL query dari diagram ERD menggunakan Visual Paradigm


Kali ini saya akan sharing sedikit tentang bagaimana membuat queri ddl dari sebuah diagram erd.
tools yang saya gunakan adalah sebuah software/tool yang digunakan untuk membuat diagram-diagram UML, untuk lebih jelasnya bisa langsung kunjungi websitenya disini.

Langkah pertama yang harus dilakukan adalah membuat diagram ERD nya terlebih dahulu. setelah diagram ERD sudah dibuat. silahkan anda pilih semua objek yang ada (ctrl+A) lalu klik kanan pada salah satu diagramnya, kemudian pilih generate SQL (ada dipilihan paling bawah).
membuat erd pada visual pardigm


ctrl+A klik kanan dan pilih generate sql


Selanjutnya anda akan diberikan pilihan ingin membuat sql untuk database apa, disana tersedia mysql, postgresql, sqllite dan lain-lain. kali ini saya memilih mysql.
memilih datase

Anda hanya cukup meng-copy file ddl nya untuk membuat tabel-table didalam database yang anda hendak buat.

Terimakasih, semoga membantu

27 Oktober 2017

Mybatis membuat mapper.xml menggunakan parameter lebih dari satu

Ketika menggunakan framework Mybatis atau dikenal juga dengan iBatis menggunakan mapper xml dengan satu parameter sudah lazim, karena ketika kita mengenerate mybatis maka mybatis generator secara otomatis membuat file-file generator seperti file dao domain mapper.java dan mapper.xml.
Masalah terjadi ketika kita hendak membuat suatu kondisi atau query yang mengharuskan ada lebih dari satu parameter di dalamnya,



contoh query biasa mybatis:

 <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select * from students where students_id = #{students_id,jdbcType=INTEGER}
  </select>

sedangkan query yang kita ingikan adalah

select * from students where students_id = #{students_id,jdbcType=INTEGER} and name= #{name,jdbcType=STRING}

disini ada kebingungan parameter type apa yang digunakan, karena kita menggunakan dua buah parameter yang type datanya berbeda.

maka langkah-langkah yang harus kita lakukan adalah :

Pertama ubah parameterType menjadi "map" dan masukan parameter satunya.

  <select id="selectByPrimaryKey" parameterType="map" resultMap="BaseResultMap">
select * from students where students_id = #{students_id,jdbcType=INTEGER} and name = #{students_id,jdbcType=INTEGER}
  </select>

Kedua pada class mapper.java tambahkan @Param dan masukan juga parameter yang satunya.

import com.project.domain.module.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;
public interface StudentMapper {
 public List<Student> selectByPrimaryKey(@Param("student_id") Integer student_id,
                                                                        @Param("name") String name);
}
selanjutnya , karena kita sudah menggunakan dua buah parameter maka kita juga harus mengubah interface dari class service dan class service implementasinya (disesuaikan) 


Semoga membantu

11 April 2017

Menonaktifkan auto download PDF di IDM

Bismillahirahmanirahim

Sebagaimana kita ketahui, Internet Download Manager atau lebih banyak dikenal dengan IDM adalah sebuah software yang banyak digunakan oleh khalayak untuk mempermudah dalam proses pengunduhan data atau download, IDM mampu membuat proses download lebih cepat dengan trik membuat request ke server lebih dari sekali. mungkin untuk lebih jelasnya kawan-kawan bisa membacanya disini.

Akan tetapi sering kali saya dibuat jengkel, ketika hendak melihat file PDF tetapi IDM langsung mendownloadnya / memberi pilihan mendownloadnya. maka dari itu kali ini saya akan sharing sedikit tentang bagaimana cara menonaktifkan fitru auto download file PDF yang ada pada IDM atau Internet Download Manager.

Pertama buka IDM-nya, masuk ke toolbar Download ==> Option, pilih tab File Types. Lalu anda hilangkan PDF pada kolom auto start downloading the following file types.

Internet Download Manager Disable auto download PDF

Internet Download Manager Disable auto download PDF


Klik OK.

Coba anda buka lagi file PDF yang ada di internet. insyaAllah sudah tidak terdownload automatis. jika masih terdownload, pastikan step-step di atas dilakukan dengan benar apabila masih tidak bisa anda bisa merestart PC anda.

Wasalamualaikum.

29 Desember 2016

iDempiere ERP cara membuat validasi pada Payment Allocation agar hanya menampilkan document yang complete

Payment allocation pada adempiere berfungsi sebagai sebuah jembatan, yang menghubungkan payment dan invoice yang masih outstanding,
untuk penjelasan lebih lengkap tentang payment allocation pada iDempiere bisa dilihat disini

Namun pada Payment Allocation di iDemiere ERP ternyata masih menampilkan invoice-invoice dan payment-payment yang document statusnya selain complete, tentunya in bisa sangat fatal sekali jika user melakukan allocation terhadap payment atau invoice yang sudah void dan reverse.

Oke, langsung saja, kali ini saya akan membuat tutorial agar payment allocation pada iDempiere ERP hanya menampilkan invoice dan payment yang document statusnya complete saja.

Caranya adalah dengan menambahkan kondisi pada class yang bersangkutan, agar hanya ditampilkan document status complete saja.

Pertama masuk kedalam class Allocation.java di org.adempiere/src/org/compiere/apps/form/

Lihat kebagian "getInvoiceData" tambahkan kondisi didalamnya yaitu and p.docstatus = 'CO'



Selanjutnya adalah bagian payment, lihat kebagian " getInvoiceData" tambahkan kondisi juga didalanya yaitu, and i.docstatus = 'CO'



Demikian tutorial validasi payment allocation agar hanya menampilkan invoice dan payment yang ber document status complete, semoga bermanfaat, Terimakasi.

12 November 2016

Cara Membuat Fitur Terbilang atau kata-kata dari angka (word to ammount) dalam iReport


Terbilang di iReport


Asalamualaikum

Pada kesempatan kali ini saya ingin sharing tentang iReport yaitu tentang bagaimana cara membuat sebuah fitur terbilang.
Biasanya pada sebuah kwitansi atau pada suatu report bukti bayar terdapat kata-kata yang menjelaskan sebuah grandtotal dalam kwitansi tersebut, misalnya grandtotal pembayaran saya Rp.1500.000 maka terbilangnya adalah "Satu Juta Lima Ratus Ribu Rupiah".

Oke langsung saja kita mulai. bismilahirahmanirahim

Langkah pertama, kita membutuhkan sebuah library untuk menerjemahkan angka menjadi rangkaian kata, saya menggunakan lib adempiere, saya sudah sertakan link downloadnya beserta report ini.

Setelah didownload dan diextrak file zipnya, sekarang copy-kan lib tersebut didalam folder iReport anda, yaitu di iReport/ireport/libs

berikutnya buka iReport. kik "Tools" pada menubar. pada bagian iReport pilih tab classpath. kemudian klik add jar, lalu pilih jar adempiere.jar tadi dan klik ok

word to amount

Word to Amount


Sekarang kita mulai membuat reportnya

Masuk kebagian SQL/query buat querynya begini saja select 1500000 as grandtotal

iReport Amount to Word


Langkah selanjutnya adalah membuat variable,
buatlah variable dan beri nama words_amount lalu isikan coding berikut pada variable expresion
new org.compiere.util.AmtInWords_IN().getAmtInWords($F{grandtotal}.toString())  +" Rupiah"

iReport Amount to Word

lalu buat lagi sebuah variable dan beri nama terbilang lalu pada variable exresionnya isikan coding ini
$V{words_amount}.replaceAll( "Koma Nol", "" )

iReport Amount to Word


selanjutnya masukan field grandtotal dan variable terbilang kedalam report. kemudian run

anda bisa mendownload lib Adempiere dan jrxml report ini disini.

Sekian artikel saya tentang bagaimana cara membuat fungsi terbilang dengan menggunakan iReport, terimakasi sudah membaca
Wasalamualaikum.

1 Oktober 2016

Pengertian dan Pemodelan DSS (Decision Support System)

MSS (Management Support system)

Saat ini Teknologi informasi berkembang sangat cepat dan membuat perubahan yang sangat banyak pada kehidupan masyarakat, khususnya pengaruh pada perkembangan suatu lembaga/perusahaan. Penggunaan komputer sebagai alat bantu mutlak diperlukan untuk mempercepat proses pengolahan data dan sebagai media penerima atau penyimpan data.

Pengguna system ini antara lain manajer perusahaan, yang lebih dikenal dengan istilah management support system (MSS) Sistem pendukung keputusan manajement. Mss adalah kumpulan teknologi komputer yang mendukung keputusan manajerial khususnya dalam mengambil keputusan.

MSS terdiri dari:
  1. Decision Support System (DSS)
  2. Group Support System (GSS), termasuk Group dss (GDSS)
  3. Executive Information System (EIS)
  4. Expert System (ES)
  5. Artificial Neural Network (ANN)
  6. Hybird Support System

Decision Support System
  • Sistem berbasis komputer yang interaktif, yang membantu mengambil keputusan memanfaatkan data dan model untuk menyelesaikan masalah-masalah yang tak terstruktur.
  • DSS memanfaatkan resources individu-individu secara intelek dengan menggunakan komputer untuk meningkatkan kualitas keputusan, jadi ini sistem pendukung keputusan berbasis
  • Komputer untuk manajemen pengambilan keputusan yang berhubungan dengan masalah-masalah yang semi terstruktur.
  • Istilah DSS terkadang digunakan untuk menggambarkan suatu sistem yang terkomputerisasi.
  • DSS digunakan untuk definisi sistem yang lebih sempit, dan digunakan istilah MSS sebagai payung untuk menggambarkan berbagai tipe sistem pendukung.

Mengapa perusahaan memulai DSS dalam skala besar
  • Kebutuhan akan informasi yang akurat
  • DSS dipandang sebagai pemenang secara organisasi
  • Kebutuhan akan informasi baru
  • Manajemen diamanahi DSS
  • Penyediaan informasi yang tepat waktu
  • Pencapaian pengurangan biaya

Mengapa menggunakan DSS
  • Perusahaan beroprasi pada ekonomi yang tak stabil
  • Perusahaan dihadapkan pada kompetisi dalam dan luar negri yang meningkat
  • Perusahan menghadapi penginkatan kesulitan dalam hal melacak jumlah operasi-operasi bisnis
  • Sistem komputer perusahaan tak mendukung peningkata tujuan perusahaan dalam hal efisiensi , profitabilitas, dan mencari jalan masuk dipasar yang benar-benar menguntungkan.

Hubungan TPS,MIS,DSS,EIS & ES dengan teknologi lain
  • Pelbagi teknologi ini dapat dipandang sebagai klas yang unik dari teknologi informasi.
  • Mereka saling berhubungan dan mereka saling mendukung satu sama lain dalama pelbagi manajemen pengambil keputusan
  • Evolusi dan pembuatan tool-tool yang lebih baru membantu kinerja pengembangan teknologi informasi untuk kebaikan manajemen dalam hal informasi.
  • Keterkaitan dan koordinasi diantara tool-tool ini masi berevolusi

Perbedaan DSS dan MIS

Fitur DSS

  • DSS dapat digunakan untuk mengawali kerja ad hoc, masalah-masalah yang tak diharapkan
  • DSS dapat menyediakan representasi valid dari sistem didunia nyata
  • DSS dapat menyediakan pendukung keputusan dalam kerangka waktu yang pendek/terbatas
  • DSS dapat berevolusi sebagaimana halnya pengambil keputusan mempelajari tentang masalah-masalah yang dihadapinya
  • DSS dapat berkembang oleh para profesional yang tak melibatkan pemrosesan data

Karakteristik DSS
  • Kajiannya ada pada keputusan-keputusan dimana ada struktur yang cukup pada komputer dan alat bantu analitis yang memiliki nilai tersendiri tetapi tetap pertimbangan manajer memiliki esesnsi utama.
  • Hasil utamanya adalah dalam peningkata jangkauan dan kempampuan dalam proses pengambilan keputusan para manajer untuk membantu mereka meningkatkan efektifitas
  • relevansi untuk manajer adalah dalam pembuatan tool pendukung, dibawah mereka yang dimaksudkan untuk tak mengotomatisasikan proses pengambilan keputusan, tujuan sistem, atau proses tertentu

Karakteristik MIS (Management Information System)
  • Kajiannya ada pada tugas-tugasnya yang terstruktur
  • aturan keputusan dan alur informasi dapat didefinisikan
  • hasil utamanya dengan meningkatkan efisiendi dengan mengurangi biaya, waktu tunggu, dll dengan mengganti karyawan kerikal
  • relevansi untuk manajer mengambil keputusan biasanya tidak langsung didapatkan , misal dengan menyediakan laporan dan akses kedata.




Kerangka DSS(3)
  • Terstruktur, mengacu pada permasalahan rutin dan berulang pada solusi standard yang ada
  • Tak terstruktur adalah “fuzzy”, permasalahan kompleks dimana tak ada solusi serta merta, masalah tak terstruktur adalah tak adanya 3 fase proses terstruktur
  • Semi Terstruktur , terdapat beberapa keputusan terstruktur, tetapi tak semuanya dari fase-fase yang ada

Proses pengambilan keputusan (3): Hebert A. Simon
  • Inteligence – Pencarian kondisi-kondisi yang dapat menghasilkan keputusan
  • Design – Menemukan pengembangan, dan menganalisis materi-materi yang mungkin untuk dikerjakan
  • Choice – memilih dari materi-materi yang tersedia, mana yang akan dikerjakan.

Proses pengambilan keputusan
  1. Step A. mengerti masalah (atau kesempatan yang ada). ES dapat membantu mendesain alur informasi pada eksekutif (misalnya, untuk memonitor, kapan) dan dalam penginterpretasian informasi, disebatkan beberapa informasi bersifat fuzzy, maka kordinasi antara ES dan ANN tentu akan membantu. Seluruh area dalam proses scanning, monitor, forecasting (misalnya, tren) dan penginterpretasian sangat dibantu oleh adanya komputerisasi. Demikian pula denga natural language procesors (NLP) akan berguna dalam menyimpulkan informasi.
  2. Step B. Analisis, sekali satu masalah (kesempatan) teridentifikasi, pertanyaan selanjutnya adalah apa yang harus dikerjakan dengan hal ini? Disinilah langkah analisis berperan, analisis bisa bersifat kualitatif ataupun kuantitatif (atau kombinasi) analisis kuantitatif didukung oleh DSS dan oleh tool-tool analisis kuantitatif, Analisis kualitatif didukung oleh ES.
  3. Step C. Memilih, pada langkah ini, keputusan dibuat dengan memperhatikan masalah (atau kesempatan) berdasarkan dari hasil analisis. Langkah ini didukung oleh DSS (jjika pengambil keputusan adalah seseorang) atau GDSS (jika keputusan diambil oleh sekelompok orang)
  4. Step D. Implementasi, pada tahap ini, keputusan untuk mengimplementasikan solusi tentu dilakukan, dan DSS dan atau ES bisa mendukung tahap ini.


Model
  • Karakteristik dari DSS adalah dengan adanya pemodelan.
  • Model adalah representasi sederhana atau penggambaran dari kenyataan.
  • Terdapat 3 jenis model
  1. Iconic (Scale), reflika fisik dari sistem, biasanya dalam skala tertentu dari bentuk aslinya. GUI dari OOPL adalah contoh dari model ini.
  2. Analog. Tak seperti sistem yang sesungguhnya tetapi berlaku seperti itu. Lebih abstract daripada model iconic dan merupakan representasi simbolis dari kenyataan, contoh: bagan organisasi, peta, bagan pasar modan, speedometer.
  3. Matematis (kuantitatif), kompleksitas hubungan dalam sistem organisasi tak dapat dipresentasikan dengan iconic atau analog, karena walaupun bisa akan memakan waktu lama dan sulit. Analisis DSS menggunanakan hitungan numerik yang dibantu oleh model matematis atau model kuantitatif lainya.

Keuntungan Model
  1. Biaya analisis model lebih murah daripada percobaan yang dilakukan pada sistem yang sesungguhnya.
  2. Model kemungkinan untuk menyingkat waktu. Operasi bertahun-tahun dapat disimulasikan dalam hitungan menit dikomputer.
  3. Manipulasi model (perubahan variable) lebih mudah diterapkan daripada diterapkan pada sistem nyata, Selanjutnya percobaan yang dilakukan akan lebih mudah dan tak mengganggu jalannya operasi harian organisasi.
  4. Akibat yang ditimbulkan dari adanya kesalahan-kesalahan sewaktu proese trial-an-error lebih kecil daripada penggunaan model langsung di sistem nyata.
  5. Lingkungan sekarang yang semakin berada pada ketidak pastian, penggunaan pemodelan dapat menjadikan seorang manajer dapat menghitung resiko yang ada pada proses-proses tertentu.
  6. Penggunaan model matematis dapat menjadikan analisis dilakukan pada kemungkinan-kemungkinan solusi yang banyak sekali bahkan bisa tak terhitung. Dengan adanya komunikasi dan teknologi canggih sekarang ini, manajer akan seringkali memiliki alternatif-alternatif pilihan.
  7. Model meningkatkan proses pembelajaran dan meningkatkan pelatihan.

Proses Pemodelan
Berikut ini proses yang terjadi pada proses pemodelan:
  • Trial and Error dengan sistem nyata. Tapi ini tak berjalan bila:
  1. Telalu banyak alternatif untuk dicoba
  2. Akibat dari error yang terjadi besar pengaruhnya
  3. Lingkungan itu sendiri selalu berubah
  • Simulasi
  • Optimalisasi
  • Heuristic



Answer HackerRank Cat and Mouse

Two cats and a mouse are at various positions on a line. You will be given their starting positions. Your task is to determine which cat w...