Category Archives: Pemrograman

Ampersand (&) Character pada jQuery Ajax Request

Senen pagi bagi org kantoran adalah the worst day ever *selaen hari di akhir bulan, bokek! :p. Pagi-pagi seperti biasa nyalain PC login messanger, belum bbrapa lama login, simessanger uda laris ada yg nagih buku, nagih report, nagih uang arisan *haha yg trakhir ngga ding. Krn emg sabtu kemaren sy ga lembur, jadi agk byk kerjaan ketunda :p.

nah, dari beberapa messanger yg masuk ada yang cukup menarik perhatian sy, ada user di department sebelah komplain bhw aplkasi yg sy develop ada bebrapa bug yaitu data/value yang terdapat karakter “&”. Setelah sy trace ternyata memang failed! Jadi, karakter setelah “&” ga tersimpan dalam database. Di aplikasi tsb untuk proses insert dan update data sy make AJAX jQuery

Mengapa?
ampersand atau karakter “dan” yang biasa ditulis “&” dalam pemrograman PHP/javascript biasanya digunakan sebagai pemisah antar parameter, seperti GET Request. Dalam case ini karakter dan dianggap sebagai pemisah parameter/variabel yang akan dikirim dalam Ajax Request, contoh source code :
$.ajax({type: "POST", url: "index.php/ajaxdefect/updateCorrectiveAction_Occurance", data: "mode=Insert"+"&id="+$("#id").val()+"&message="+$("#message").val(), success: function(msg){ alert(msg);}});

1. Solusi A
dengan menambahkan

encodeURIComponent(thisId)
data: "mode=Insert"+"&id="+$("#id").val()+
"
&message="+encodeURIComponent
($("#message").val()),

2. Solusi B

Mengganti

data: "id=" + thisId + "&message=" + thisValue 

menjadi:

data: { id: thisId, message: thisValue } 

Setelah sy modif sedikit, problem pun solved! šŸ™‚
thanks bwt agan2 yang uda share info dsini: http://stackoverflow.com/questions/4226480/ampersand-character-inside-a-value-of-jquery-ajax-request-data-option

Permasalahan Filter Tipe File (.JPG) di IE

Huaaahh ahirnya posting pertama… uda lebih staun dari posting terakhir :p
setelah berbulan-bulan berpusing2 sama si skripsii ahirnya selesai juga,, tgggal revisi laporan -__- huufh…

Di posting ini sy pengen share skalian bikin dokumentasi sapa tau byk agan2 yang punya masalah sama kyk sy :d. Sebagai web developer biasanya dipusingkan dengan yang namanya si IE (:p maaf yah IE ga mksd hehe),, ā€œcoding gw jalan koq d mozilla, chrome, dll..tp koq di IE diem kyk batuuu??ā€

pengalaman ini juga sy rasakan ketika saat itu sedang mengembangkan pendaftaran online mahasiswa baru,
Hari pertama pendaftaran agak leha2 krn situsasi tidak byk komplain datang, nah kekacauan mulai ketika memasuki hari ke-3 (klo ga sala hehe) pas itu byk komplain dari calon mahasiswa ga bisa upload foto. ā€œPerasaan disini oke2 aja! Uda di-tes pake IE, mozilla, chrome, knp masi ada yang ga bisa?? (*^%#^&*_ !ā€ seluruh isi kebun binatang kesebutĀ  smw dah. Waktu yang sempit + telp komplain terus berdering.. kringet dah sebiji2 duren ….mampus!

Waktu itu pada pendaftaran online ada feature untuk upload foto, syaratnya ukuran dibawah 300KB dan tipe file .JPG. nah, permasalahan terjadi ketika calon mahasiswa mengupload foto di IE, padahal tipe file sudah .JPG tetapi tetap gagal mengupload foto. Setau saya (:p hehe) untuk filtering format .JPG cuma perlu memfilter yang tipenya image/jpg dan image/jpeg tapi setelah bersemedi sama mbah google ternyata ada satu lagi tipe file untuk .JPG yaitu image/pjpeg ! Sepele tapi cukup fatal akibatnya.
Ini merupakan beberapa potong coding sederhana untuk melakukan filter tipe file, ada 2 halaman yaitu form.html dan cek.php
Halaman untuk template form.html:

<form action="cek.php" enctype="multipart/form-data" method="post">
<table cellspacing="1" cellpadding="3"><!--Upload Foto -->
<tbody>
<tr>
<td valign="top">Upload Foto</td>
<td>: <input type="file" name="foto" id="foto" size="20"/><br /><b>* format .JPG</b> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Upload" /></td>
</tr>
</tbody>
</table>
</form>

Halaman cek.php

//inisialisasi
$allow = array(ā€˜image/jpgā€™,ā€™image/jpegā€™,ā€™image/pjpegā€™);
$msg = ā€˜ā€™;
$daftar  = false;
$ftype   = $_FILES['foto']['type'];

//seleksi
if(in_array($ftype,$allow))
$daftar =  true;

if($daftar)
$msg=ā€™File .JPG!ā€™;   // jika file .JPG benar, silahkan isi baris coding Anda disini
else
$msg=ā€™Tipe file tidak sesuai, tipe file harus .JPGā€™;
echo $msg;

Konversi Bilangan Desimal Ke Biner (Viceversa)

Kmaren pas iseng-iseng liat forum diskusi ada yang nanya konversi bilangan desimal ke biner. Saking iseng dan nganggur ga ada kerjaan ahirnya nyoba bikin programnya (ok, i lied,.. deadline skiripsi udah deket tp blom kelar2 hehe :p), sy bwt pake java (it doesnt use GUI yet) struktur codingnya masih perlu perbaikan (like usual :p)

Bagi yg blum tau logicnya gimana konversi bilangan desimal ke biner ato sebaliknya, uda skalian sy buat ilustrasinya biar gampang dimengerti. Disini sy ambil angka 13 (bad luck?).

Ilustrasi Konversi Bilangan Desimal Ke Biner:

algoritma konversi desimal ke biner

Ket:

warna hijau: bilangan basisnya
warna biru: bilangan biner (ditulis dari bawah ke atas)

Read the rest of this entry

Distribusi Bilangan + Grafik

iseng-iseng posting soal latihan uts-nya pak arif…yg ikut pemrog1 psti masi inget soal yang dikasih pak arif, cz kluar d uts-nya mirip2 gini..(tp ampun uts-nya lebih susah hehe)

soalnya gini,…
random 50 bilangan antara 0-9, trus dikelompokkan (distribusi). hitung jumlah masing-masing disribusi trus dbuat grafiknya ke bawah (bukan kesamping) dalam bentuk bintang

maaf codingnya amburadul, masi newbi šŸ™‚ just for sharing ajah hehe..
fungsi-fungsinya sengaja saya taroh bawah setelah program utama (haha kliatan kacaunya)
benernya masih banyak cara yg lebih mudah dan simple, ini cuma salah satunya aja šŸ™‚


import java.util.*;
import java.io.*;

public class grafikmenurun{
 //program utama
 public static void main(String[] args){
 int[] data= new int [50];
 int[] dis= new int[10];
 int maxdis=0;

 Random Rbil = new Random();

 System.out.println("DATA BILANGAN:");
 for (int i=0;i<data.length;i++){

 data[i]=Rbil.nextInt(10);
 System.out.println("data ke-"+i+" = "+data[i]);

 }

 sort(data); //data di sorting dulu

 distribusi(data,dis);

 System.out.println('\n');
 System.out.println("DATA DISTRIBUSI BILANGAN 0-9:");

 //cetak distribusi
 for (int i=0;i<dis.length;i++)Ā Ā  Ā {

 System.out.println("bilangan "+i+" sebanyak "+dis[i]);

 }

 System.out.println('\n');

 //mencari distribusi terbanyak
 for (int i=0; i<dis.length;i++){
 if (dis[i]>maxdis){
 maxdis=dis[i];
 }

 }

 dis_max(maxdis,dis);
 System.out.println('\n'+"GRAFIK SEBARAN DISTRIBUSI: "+'\n');
 grafik(dis,maxdis); //manggil fungsi grafik untuk mencetak grafik distribusi

 }

// fungsi untuk mengurutkan dari bilangan terkecil hingga terbesar
static void sort(int[] z){
 int temp;

 for (int a=0;a<z.length;a++){
 for(int b=0;b<z.length-1;b++){

 if(z[b]>z[b+1]){
 temp=z[b];
 z[b]=z[b+1];
 z[b+1]=temp;

 }

 }

 }

}

//fungsi untuk menentukan banyak anggota masing-masing distribusi (setelah dsorting datanya)
static void distribusi(int[] y, int[] x){
 int smtr=y[0],k=0;

 for (int a=0;a<y.length;a++){

 if (y[a]>smtr){
 smtr=y[a];

 k++;
 x[k]++;

 }
 else{

 x[k]++;
 }

 }

}

//fungsi untuk cetak data
static void cetak(int[] c){
 for (int i=0;i<c.length;i++)Ā Ā  Ā {

 System.out.println(i+". "+c[i]);

 }

}

//fungsi untuk menginisialisasi nama distribusi terbanyak
static void dis_max(int dm,int[] arr_dis){
 String nama_dm="";

 if (dm==arr_dis[0]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 0";

 }

 else if (dm==arr_dis[1]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 1";
 }

 else if (dm==arr_dis[2]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 2";
 }

 else if (dm==arr_dis[3]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 3";
 }

 else if (dm==arr_dis[4]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 4";
 }

 else if (dm==arr_dis[5]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 5";
 }

 else if (dm==arr_dis[6]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 6";
 }
 else if (dm==arr_dis[7]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 7";
 }

 else if (dm==arr_dis[8]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 8";
 }

 else if (dm==arr_dis[9]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 9";
 }

System.out.println(nama_dm+" mempunyai "+dm+" anggota ");

}

//fungsi untuk cetak grafik kebawah
static void grafik(int[] d,int m){
 int g=0,a=1;

 System.out.println("0 1 2 3 4 5 6 7 8 9 ");

 while (g!=10){

 for(int b=0;b<d.length;b++){

 if(d[b]>=a){

 System.out.print("* ");
 }
 else{
 System.out.print("Ā  ");
 }

 }
 a++;
 System.out.println("");
 if(a>m)
 g=10;
 }

}

}

banyak data

grafik distribusi