PHP Shorthand If/Else

php shorthand if adalah cara untuk mempersingkat fungsi if else di php
bentuknya seperti ini (condition) ? (true return value) : (false return value)
contoh

<?php 
$var = 5;
($var > 2 ? true : false); // returns true

?>

referensi:
http://davidwalsh.name/php-shorthand-if-else-ternary-operators
semoga berguna 🙂

Iklan
Ditulis dalam web. Tag: . Leave a Comment »

Mengenal json (java script object notation)

kali ini saya mencoba share tentang json

definisi json menurut bahasa saya   adalah sebuah data yang terstruktur

kegunaan json

digunakan untuk pertukaran data (cenderung menggantikan xml) ,
misal saat request data pada website

Tipe media Internet resmi JSON adalah application/json sedangkan ekstensi berkasnya adalah .json

nilai data dalam JSON

  1. string dalam tanda kutip ganda, atau angka,
  2. Boolean (true atau false )
  3. null
  4. objek
  5. array atau larik
  6. numerik berupa integer, real, atau floating point

kelebihan json

  • ukuran datanya lebih kecil di banding dengan XML  (karena xml  terus mengulangi kata yang sama dalam tag-tag yang digunakan)
  • kecepatan parsing
  • bisa di uraikan dengan built-in JavaScript eval()
  • dapat di angkut atau di gunakan di AJAX

json objek dimulai dengan { dan diakhiri }

json array dimulai dengan  [ dan diakhiri oleh  ].

logika pertukaran data json

misal kita meminta data mahasiswa , ===> kemudian diproses oleh skrip pemroses dan dikembalikan dalam bentuk json ===>kepada script view memecah json ===> menampilkannya ke client dalam bentuk data yang kita minta

fungsi dukungan bahasa untuk json

php: json_encode() dan json_decode()

java : library untuk proses json  Json-lib

Format JSON

  1. Object adalah satu set nama/nilai yang tidak terurut.
  2. Penulisan objek dimulai dengan tanda { (left brace) dan diakhiri dengan tanda } (right brace).
  3. Setiap nama diikuti oleh tanda : (colon/titik dua) baru isinya/isi datanya
  4. pemisah , (koma) digunakan jika ada data lagi dibelakangnya

contoh json

json data ditulis sebagai pasangan nama  dan nilai nya.

Sepasang nama / nilai terdiri dari nama field (dalam tanda kutip ganda), diikuti oleh titik dua, diikuti dengan nilai:
contoh :
 "namaAnda" : "bima" 

Objek json ditulis di dalam kurung kurawal,

var obj = {};
Objek dapat berisi beberapa nama / pasangan nilai:
 { "namaAnda":"bim" , "alamat":"surabaya" }
 
 JSON array ditulis dalam tanda ”[ ]” (kurung persegi),Array dapat berisi beberapa objek:
 {
 "employees": [
 { "obyek1":"eni" , "alamat1":"sby" },
 { "obyek2":"ahmad" , "alamat2":"bandung" },
 { "obyek3":"wari" , "alamat3":"jkt" }
 ]
 }

sebuah object json

 var mahasiswa = {   "nomorInduk" : "7655677778",
                     "namaDepan": "arif",
                     "namaBelakang": "susilo",
                     "alamat": {
                               "namaJalan": "Jl. Sudirman 15A",
                                "kota": "Jakarta Selatan",
                                "provinsi": "DKI Jakarta",
                                "kodePos": 11111
                                },
                    "nomerTelepon": [
                                 "021 555-1234",
                                 "021 555-4567"
                                    ]
                 }
untuk mengaksesnya
 document.writeln(mahasiswa.nomorInduk);  // Output  7655677778
 Jika object mengandung object lagi di dalamnya, tambahkan titik dan nama properti di belakangnya:
 document.writeln(mahasiswa.alamat.namaJalan);  // Output Jl. Sudirman 15A

perbandingan xml dan json

xml

<mahasiswa>
<nim> 1212323</nim>
<nama> saero </nama>
</mahasiswa>

json

var mahasiswa =
            ({
                "nim":9050505,
                "nama":"saero"
             })
untuk lebih lengkapnya bisa berkunjung ke site  http://json.org/

referensi :

http://secangkirkopipanas.wordpress.com/2008/07/21/apa-itu-json/

http://id.wikipedia.org/wiki/JSON

http://www.ariona.net/apa-itu-json/

http://www.dte.web.id/2013/01/json-javascript-object-notation.html#.Ufa3LqxS6VE

http://everythingaboutboo.blogspot.com/2013/06/apa-itu-json.html

semoga berguna 🙂

Dasar koneksi http post android

kali ini kita mencoba membuat  koneksi http post pada android

post_tambah

skenarionya

aplikasi ini akan menginsert atau menambah data pada server menggunakan metode  POST
menu pada aplikasi :

  • tambah data : untuk menambah data
  • lihat data :untuk melihat data yang telah di tambah

jangan lupa tambahkan permission android.permission.INTERNET pada android manifest caranya

klik add | uses permission kemudian di kolom name bagian kanan pilih android.permission.INTERNET

file databasenya nama databasenya androidpost


CREATE TABLE IF NOT EXISTS `negara` (
`id_negara` int(11) NOT NULL AUTO_INCREMENT,
`negara` varchar(100) NOT NULL,
PRIMARY KEY (`id_negara`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

file phpnya

tampil.php


<?php

$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the DB');
mysql_select_db('androidpost', $link) or die('Cannot select the DB');

$sql=mysql_query("select * from negara ");
while($row=mysql_fetch_assoc($sql)) $output[]=$row;
print(json_encode($output));
mysql_close();
?>

tambah.php


<?php
$negara = $_POST['negara'];

$link = mysql_connect('localhost', 'root', '') or die('Cannot connect to the DB');
mysql_select_db('androidpost', $link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "insert into negara (negara) values('".$negara."')";
$result = mysql_query($query, $link) or die('Error query:  '.$query);
echo "sukkkk";

?>

file insert.java


package com.example.post_android;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class insert extends Activity {
private EditText tambah;
private Button tambah_btn;

/**
* Method yang dipanggil pada saat aplikaasi dijalankan
* */
@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.tambah);
tambah = (EditText) findViewById(R.id.tambah);

tambah_btn = (Button) findViewById(R.id.tambah_btn);
//beri perintah
tambah_btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {

eksekusi();

}
});
}
public void eksekusi() {

try {

HttpClient client = new DefaultHttpClient();
//kita mencoba di localhost
String postURL = "http://10.0.2.2/postandroid/tambah.php";

HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("negara",tambah.getText().toString()));

UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
post.setEntity(ent);
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
if (resEntity != null) {

Toast.makeText(this,"Sukses "+EntityUtils.toString(resEntity), Toast.LENGTH_SHORT).show();
}

} catch (Exception ex) {
Toast.makeText(this, "Tambah Data Gagal !", Toast.LENGTH_SHORT)
.show();
}

}

}

file lihat.java


package com.example.post_android;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import android.app.Activity;
public class lihat extends ListActivity {

List<String> fd_id=new ArrayList<String>();
List<String> fd_name=new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//   setContentView(R.layout.lihat);
String result = null;
InputStream is = null;
StringBuilder sb=null;

//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/postandroid/tampil.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}

//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";

while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}

is.close();
result=sb.toString();

}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}

//try parse the string to a JSON object

try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;

for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id.add(json_data.getString("id_negara"));
fd_name.add(json_data.getString("negara"));

}

}catch(JSONException e1){
Toast.makeText(getBaseContext(), "Data Tidak ditemukan", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,fd_name));

}

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l,v,position, id);
String negara = ""+ fd_name.get(position);
String idnya = ""+ fd_id.get(position);
Toast.makeText(this, "name:"+negara+" id:"+idnya, 1).show();
}

}

file MainActivity.java


package com.example.post_android;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);

String[] menu = new String[] { "Tambah Data", "Tampilkan Data"};

this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, menu));
}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
tampilkanPilihan(pilihan);
}

protected void tampilkanPilihan(String pilihan) {
try {
Intent i = null;
if (pilihan.equals("Tambah Data")) {
i = new Intent(this, insert.class);
} else if (pilihan.equals("Tampilkan Data")) {
i = new Intent(this, lihat.class);
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}

file tambah.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
android:id="@+id/tambah"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >

<requestFocus />
</EditText>

<Button
android:id="@+id/tambah_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambah" />

</LinearLayout>

file lihat.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:background="#3b3b3b">
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/TextAppearance.Large"
android:gravity="center"
android:text="Data tidak ditemukan">
</TextView>

</LinearLayout>

file MainActivity.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<Button
android:id="@+id/lihat_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tambah_data"
android:text="Lihat data" />

<Button
android:id="@+id/tambah_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Tambah Data" />

</RelativeLayout>

download kodenya

untuk file phpnya letakkan di folder postandroid

semoga berguna 🙂

mengenal string builder java

string builder biasa digunakan  untuk membentuk atau melakukan operasi terhadap objek String

ada 2 metode penting yaitu

  • append untuk menambah isi
  • insert untuk menyisipkan

public class String_builder {

/**
* @param args
*/
public static void main(String[] args) {

//membentuk objek string buider

StringBuilder sb = new StringBuilder();
//menambahkan karakter kedalam string builder
System.out.println("karakter yang ditambah dengan fungsi append");
sb.append("1\n");
sb.append("2\n");
sb.append("3\n");
sb.append("4\n");
System.out.println(sb);

System.out.println("karakter yang disisipkan dengan fungsi append");
//jika kita sisipkan pada karakter ke 2 (awal karakter dimulai dari 1 tidak dari 0)
sb.insert(2,"sisipan");
System.out.println(sb);

}

}

penampakannya

stringbuilder

referensi

http://catatan.desdrianton.net/scjp/content/String_StringBuffer_DAN_StringBuilder.htm
http://www.dedinirtadinata.net/2012/09/java-perbedaan-stringbuffer-dan-stringbuilder/
http://docs.oracle.com/javase/6/docs/api/java/lang/StringBuilder.html

semoga berguna 🙂

Ditulis dalam java. Leave a Comment »

tips menggunakan mandiri kartu kredit skyz pada free longue di bandara

nah bagi anda pemegang kartu kredit mandiri dengan fasilitas free longue seperti jenis kartu skyz  begini caranya

  1. persiapkan tiket anda (tiket yang uda ditukar ya)
  2. persiapkan mandiri kartu kredit anda (yang mempunyai fasilitas free longue)
  3. siap untuk masuk dan menyantap semua makan yang ada dilongue

nah anda sudah siap untuk masuk longue

ini penampakan tiket saya yang sudah dicap ama petugas longuenya

tiket

tagihannya hanya 1 rupiah

blusky

ini hasil rampokan saya (karena bulan ramadhan ane hanya masuk ambil yg bisa dimasukin tas lalu cabut)

???????????????????????????????

semoga berguna 😀

Free longue buat pemegang kartu kredit mandiri

Berawal dari pengalaman kemarin gw naek maskapai li*n air dari surabaya menuju jakarta. Dengan percaya dirinya saya berfikir bahwa klo nanti pas udah magrep saya mau buka di longue.(perjalanan edisi ramadhan) ngetes kartu kredit mandiri . Dan akhinya magrib nyampenya pas magrib saya turun di terminal 1 a . Cari ksana kemari blom nemu free longue buat pemegang kartu kredit mandiri (punya ane skyz emang niat bikin buat keperluan sehari hari plus kalo lg kritis kelaparan di bandara heheheh) akhinya tidak ketemu juga fiuhh usut punya usut tidak ada free longue untuk pemegang kartu kredit mandiri di terminal 1a  yg ada hny buat mandiri prioritas. Adanya diterminal 2f wah hrs naek bus dunk ksananya keburu perang nih cacing dlm perut wkwkwk. biar ente ndak kesasar kayak saya silahkan baca tabel free longue mandiri beserta tempatnya cekidot

image

Oh ya fasilitas ini belaku buat pemegang kartu saja ya
Referensi https://www.mandirikartukredit.com/product/skyz
Semoga berguna 🙂

character yang perlu di waspadai pada sms gateway

Pada saat develop sms gateway kita menggunakan charset gsm, character set GSM  terdiri dari 128 characters setiap karakter 7 bits.ada 10 karakter  yang didefinisikan sebagai extension karakter dan  direpresentasikan dengam menggunakan karakter escape (0x1B) dan sepuluh karakter ini dihitung 2 huruf pada sms yang dikirim 

untuk logika 1 sms = 140 bytes =1120 bit  kita bagi dengan 7 bit ( krn dalam GSM 03.38    jumlah 1 character = 7-bit ) = 160 huruf,
kenyataannya bahwa ada character yang dihitung menjadi 2 character, hal ini akan menyebabkan ketika jumlahnya melebihi 160,padahal dalam aplikasi dihitung memang benar 160 character hal ini akan mengakibatkan sms yang dikirimkan kosong (di tes dengan Gammu encoding pada gammu Default_No_Compression,)

contoh

untuk mengirim [anda akan mengirimkan data  0011011  0111100. ini dihitung 2 character
(0011011  merupakan character ESC )

huruf [

hexa  : ox1B3C
biner : 0011011  0111100
Desimal :27 60

(intip dari sini aja http://www.world-text.com/docs/gsm-character-set.php )

ok langsung saja ane tampilin tabelnya

tabel charakter yang dihitung 1 sms

@

£

$

¥

è

é

ù

ì

ò

Ç

\n

Ø

ø

\r

Å

å

Δ

_

Φ

Γ

Λ

Ω

Π

Ψ

Σ

Θ

Ξ

ESC

Æ

æ

ß

É

SP

!

#

¤

%

&

(

)

*

+

,

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

¡

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Ä

Ö

Ñ

Ü

§

¿

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

ä

ö

ñ

ü

à

tabel character yang dihitung 2 sms

[

]

^

{

|

}

~

sebenarnya character \ termasuk tetapi kemarin waktu saya tes kok tidak menunjukkan 2 character  hmm ?

jika develop dengan php maka character ini juga perlu di waspadai (harus ditambah \ didepannya)

;’

referensi
http://www.clockworksms.com/doc/reference/faqs/gsm-character-set/
http://stackoverflow.com/questions/10109542/accessing-gsm-03-38-extended-character-set-using-esc-character
http://www.developershome.com/sms/gsmAlphabet.asp
http://www.world-text.com/docs/gsm-character-set.php
http://help.cardboardfish.com/?q=GSMEncoding
http://www.binaryhexconverter.com/

semoga berguna 🙂