IT Trainer Indonesia

Hery 081.223344.506 – Freelance Certified IT Trainer , Excel VBA , Android Phonegap, Google Map API, Google Sketchup3D , MS Project, ExtJS, Oracle, SQL Server, MySQL, MS. Access VBA, Facebook API Developer dll.. Berpengalaman 15 Tahun sebagai Trainer bersertifikasi CIW, OCA, ITILF, MCP, MOS , Visit : http://freelance-it-trainer.blogspot.com/2014/12/freelance-certified-it-trainer-bandung.html

Recommended , IT Trainer, Bandung, Jakarta, Indonesia,

Freelance IT Trainer , Excel VBA , Android Phonegap, Google Map API, Sketchup3D , MS Project, ExtJS

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

JSON to JSONP

Introduction JSON

In my last article (Prepare a JSON Web Service and access it with JQuery), I had explained JSON, how to return JSON data from a Web Service, and how to use a JSON-enabled Web Service with JQuery. In this article, I will explain how JavaScript Object Notation with Padding (JSONP), an extended concept from JSON, can be used to solve cross domain issues.

What and why JSONP?

AJAX is a key technology in web 2.0 that is being used widely in web sites. AJAX uses the XMLHttpRequest client side API for communicating with the server in the background. However, this approach doesn’t allow cross domain communication due to security reasons. JavaScript Object Notation with Padding (JSONP) is a way to grab JSON data from external domains. It’s a better and cleaner alternative to other approaches (web proxy and IFrame) to get data from an external domain.

Same-Origin Policy

Same-origin policy is a concept in browser-side programming languages (such as JavaScript) which allows accessing resources in the same site (same domain) but preventing accessing resources in different domains. To overcome the same origin policy, we have the two following popular options in our hand:

Use a Proxy Web Service

As XMLHttpRequest (in AJAX) doesn’t allow cross domain calls, the common approach is to use a proxy Web Service to access third party data. Say your site is hosted in www.mydomain.com and you need to access data from a different domain called www.thirdpartydomain.com. With AJAX, you can’t directly call a Web Service on www.thirdpartydomain.com, but you can write a Web Service in your domain which will get data from www.thirdpartydomain.com. The approach is shown in figure 1:

Fig_1_-_Proxy_to_access_third_party_domain_data.jpg

Figure 1: Using a proxy Web Service to access data from a different domain

This approach works as the XMLHttpRequest calls the Web Service (i.e., the proxy Web Service) in my own domain and then the proxy Web Service calls the actual Web Service on the different domain. But though this is the easiest and widely used solution, it requires two Web Services calls, which is slower. Also, every call to the external Web Service requires going through my Web Service, which takes my server’s valuable thread to process.

Use IFrame

Using IFrame, we can easily fetch data from a third party site. IFrame is easy to use but difficult to manage as each IFrame is an independent element in a page and interactions between IFrames are difficult. Also, once the content in the IFrame is loaded, the content itself is subjected to the same same-origin policy.

Why do we need to break the same-origin policy?

Today’s web applications are rich in both data and UI, complex from a technical point of view, and combine different sets of data from different sources. For example, you have a university site where students visit. Also, you have a Facebook group for this university and you want to show group activities in your university site. To get activities from Facebook, you need to access services on the Facebook site (a different domain) from you web page. And here comes the cross domain issue. You can access Facebook site services from your server side code without any cross-domain issue. But this will prevent the processing of the page from finishing until the Web Service call finishes. Instead of calling the Web Service from server side code, you can add a JavaScript block which call the Web Service from the client's browser and thus alleviate load on your server. In a Mashup application, we need to access data from different sources. In the computing world, Mashup is a web application that combines data or functionality from two or more external sources.

How JSONP works?

The same-origin policy doesn’t allow a script loaded from one domain to manipulate properties of a document loaded from a different domain. The browser does so to isolate contents from different domains to protect from improper manipulation. However the same-origin policy doesn’t prevent adding scripts dynamically in the page from a different domain as long as the script doesn’t try to load document from a different domain. The JSONP is a combination of these facilities: “On-demand JavaScript”, and “Same-origin’s flexibility for adding JavaScript from different domains”:

On-demand JavaScript: This allows adding JavaScript to the page after the page is loaded. The JavaScript can be added by calling a Web Service with AJAX/XMLHttpRequest. So, due to this on-demand JavaScript facility, JavaScript can be added after the page is loaded. The script will be executed as soon as it will be added to the page. Details on on-demand JavaScript can be found here.

To explain how JSONP works, consider there’s an external third party site www.thirdpartydomain.com and we have our site www.mydoman.com, and our site will call a third party site’s Web Service to get data. Let’s consider the following scenario to explain JSONP:

  • Add a JS function in your page: Say, in your page, you have a JavaScript function showThirdpartyData which takes an argument (of type JSON) and process this argument to show data on your site’s web page. However, the data showThirdPartyData expects (dataArgument in the following code snippet) that ans argument will come from a Web Service on a different domain www.thirdpartydomain.com. The following code snippet shows the function signature:
  • Collapse | Copy Code
    <script type="text/javascript">          function showThirdPartyData(dataArgument) {               //process data here          }  </script>
  • Make sure the third party Web Service supports JSONP: We need to have a Web Service on www.thirdpartydomain.com which will support JSONP. That is, the Web Service will return JSON data but should be packed within a function name. The JSON data the Web Service will return will look like:
  • Collapse | Copy Code
    showThirdPartyData('{ firstName: 'Sohel', lastName: 'Rana' }');

    So, by calling the Web Service on www.thirdpartydomain.com, we will generate JSON data as shown above. Calling the Web Service will generate JSON data which is actually a JavaScript function call. The function name (in which data will be packed) needs to be configurable. Say, we can pass the function name in the querystring in the Web Service call and the Web Service will pack data inside the function name. That’s how Flickr API works and we’ll see that later.

  • Call the third party Web Service: Now you can call the www.thirdpartydomain.com Web Service with AJAX as it generates a JavaScript function call and the JavaScript function doesn’t try to access data from a different domain except www.thirdparty.com. So, calling this Web Service complies with the same-origin policy [the same-origin policy doesn’t prevent adding a script dynamically in the page from a different domain until the script doesn’t try to load the document from different domains]. The following code block can be used to call a Web Service from the www.thirdparydomain.com site. You can call the following JavaScript function (callWebService) on a button’s OnClick event:
  • Collapse | Copy Code
    function callWebService() {       // Insert dynamic script       var script = document.createElement('script');       script.src = 'http://www.thirdpartydomain.com/webservice/... ';              // append the script in the document body.        // As per on-deman script behaviour as soon as you add the script to        // the document,the script will be execute and the web service will        // be called.       document.body.appendChild(script);   }

Here is the sequence of how JSONP will work:

  1. The callWebService method will add a script tag in the page and will set the source of the script tag to the URL of the third party Web Service.
  2. You will call the CallWebService method on some events, say on a button's click event. As soon as the callWebService method is called, the script from the third party site will be added in the page.
  3. As soon as the script tag is added to the page, the script will be executed as per on-demand JavaScript’s behavior. Once the script is executed, the method showThirdPartyData will be called in the page.

How a Web Service can be JSONP compatible

For JSONP to work, the Web Service from www.thirdpartydomain.com will support JSONP. To support JSONP, the Web Service must return JSON data in the format:

Collapse | Copy Code
functionName('{JSONData}')

Here the function name is a JavaScript function name. So when you call the Web Service from another site, the Web Service will generate JSON data which is actually a JavaScript function call. For example, to get the latest images tagged as 'cat' from Flickr, we can call the Web Service as: http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=myFunctionName.

In the above URL, the querystring tags=cat tells the service to return images tagged with cat. Here, the important one is jsoncallback=myFunctionName. This tells the service that the return data will be packed in a function call named myFunctionName. If you hit the URL, you will get the JSON data as shown below:

Fig_2_-_JSONP_support_in_flickr_API.jpg

Fig 2: JSONP support in Flickr API

So the above call to the Flickr API takes the function name in the querysting jsoncallback and we can pass the method name we are interested to use.

A real life example with Flickr

In the code provided along with this article, I have used the Flickr API to show recent images. Using JSONP, I have accessed data from flickr.com which is different from my domain. The Web Service URL is: http://api.flickr.com/services/feeds/photos_public.gne?tags=dog&tagmode=any&format=json&jsoncallback=showFilckrDataDog.

When you run the application provided along with this code, you will get two buttons in a web page. Clicking on a button will show the images tagged with cat, and clicking on another will show images tagged with dog. The two buttons invoke two different JavaScript functions: getFlickrDataWithDogTag and getFlickrDataWithCatTag. getFlickrDataWithDogTag uses the native JavaScript approach to add a script to the page. Whereas getFlickrDataWithCatTag uses JQuery to call the JSONP supported Web Service. The JQuery.getJSON method allows to load JSON data from a different domain. The format of the getJSON method is:

jQuery.getJSON(url, data, callback)

url is the URL for the Web Service. data (which is JSON data to the Web Service) can be omitted if not needed. callback is the callback method which will be called once the JSON data will be returned from the Web Service. Remember when you call the Web Service with the getJSON method, the Web Service URL will be a bit different. The jsoncallback querystring needs to have a ‘?’ value. The URL to be used in the getJSON method is shown below:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?" +             "tags=cat&tagmode=any&format=json&jsoncallback=?", showFilckrDataCat);

jQuery will automatically replace the ‘?’ with the callback method (in the above URL, this is the showFlickrDataCat). And also, jQuery will add the script tag for you. So, when the Web Service call will return, jQuery will add the script tag which will invoke the JavaScript method in your page.

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Tips Liburan Ke Legoland johor

Kali ini saya akan membahas kegiatan liburan saya dengan keluarga ke legoland bulan Januari 2015 ini tepatnya trip itinerary selama 4 hari 3 malam di johor malaysia

Liburan tahun ini cukup istimewa karena ditemani dengan putra kami yang baru berumur 16 Bulan

Berikut ulasannya semoga bermanfaat buat para keluarga yang ingin berlibur ke legoland johor tertutama membawa balita

BOOKING PESAWAT AIRASIA DARI BANDUNG KE JOHOR

Semua berawal dari iseng mencari jadwal penerbangan untuk liburan pada bulan desember 2014 lalu, awalnya kami berniat liburan akhir tahun ke bali namun melihat ternyata harga tiket pesawat sungguh mahal karena peak season , maka setelah memilih rute lain akhirnya jatuh pilihan pada Johor disamping putriku sudah cukup lama ingin wisata ke legoland dan hello kitty johor malaysia. Saya memilih penerbangan di awal tahun di samping harga tiket yang murah dan tentunya kami tidak akan menemukan crowded yang terjadi saat berpergian dengan tingkat keramaian tinggi karena kami akan membawa putra kami yang masih balita dan belum tau dilema apa yang akan dihadapi.

Syukurnya kami mendapatkan jadwal dan harga yang pas yaitu berangkat sabtu 10 Jan dan pulang selasa 13 Jan 2015 dan lebih bersyukur lagi karena Airasia memiliki jadwal penerbangan pulang pergi dari Bandung (husein) ke Johor (Senai Airport) langsung. Kami pun langsung membooking penerbangan tersebut dengan kartu kredit, tak lama ticket itinerary dari asia sudah langsung kami dapatkan

Kesimpulan saya setelah kembali ke indonesia
– Beli tiket tidak disaat peak seasion jauh menguntungkan
– Penerbangan Airasia Bandung – johor sungguh membantu kami yang tinggal di bandung
– Bayi (Infant) tidak membayar full , hanya sekitar 180 ribu
– Bagasi cukup pesan untuk 1 orang kapasitas 25 KG , ternyata saya cuma membawa 18 KG saja
– Stroller bayi sangat membantu di tempat tujuan , Gratis masuk bagasi (tidak dihitung dari yang 25 kg tersebut) Aturan berlaku untuk semua penerbangan Internasional
Tahapan selanjutnya memesan hotel yang sesuai budget dan nyaman, proses pencarian memakan waktu cukup lama kurang lebih sekitar 3-4 hari setiap pulang kerja, bolak balik agoda.com dan booking.com mencari harga spesial diskon, sepertinya hampir semua hotel di johor saya cek reviewnya di tripadvisor, target saya untuk hotel saat itu adalah :
1. Murah tentunya
2. Besar ukurannya (> 20 M2), Jika memungkinkan 2 kamar
3. Lokasi strategis dekat dengan mall, tempat makan, apotik, dan klinik (karena saya bawa bayi tentunya jadi prioritas masalah keamanan)
4. Amenities (Minimal harus ada Coffee maker, agar bisa buat susu panas buat bayi)
5. Terakhir baru sebisa mungkin dekat dengan legoland/ hello kitty jika dapat
6. Breakfast tidak terlalu penting yang penting dekat dengan tempat makan
Setelah mencari cari bahkan sampai begadang akhirnya pilihan jatuh pada hotel Grand Sentosa Hotel (Plaza sentosa – taman Sentosa Johor) yang merupakan hotel budget di johor  , lokasi di dalam mall Plaza sentosa. dan berdekatan dengan klinik, apotik dan tempat makan walaupun jarak ke lokasi Legoland dan Hello Kitty cukup jauh sekitar 40 menit  pakai taksi atau sekitar 25 KM tapi tidak masalah yang penting keluarga aman.

Beberapa review di tripadvisor mungkin tidak terlalu bagus, tapi saya rasa logic saja namanya juga Budget hotel, tentunya jangan berharap lebih seperti bintang 4 atau 5 , yang saya suka dari hotel ini ukuran kamarnya 54 meter2 dan syukurnya saya berhasil mendapatkan 2 kamar connecting hanya dengan 2,1 Juta saja untuk 3 malam ( strategi saya adalah 2 kamar tersebut bermanfaat sebagai kamar bersih dan kamar kotor atau artinya area buat istirahat anak anak tentunya di kamar bersih dan area buat segala macam kekacauan dan crowded di kamar kotor ) Alhamdulillah artinya  dengan 2 kamar itu saya punya kamar seluas 100 Meter persegi untuk dimanfaatkan anak anak dan keluarga

Kesimpulan saya setelah balik ke indonesia :

1. Pilihan saya sudah tepat dengan hotel  Grand Sentosa karena lokasinya sangat mendukung buat keluarga , karena berada di dalam mall plaza sentosa , didalamnya ada area toko toko buat istri window shopping, ada supermarket juga didalamnya  yang menjual susu bayi, makanan bayi, pampers, hampir sama besar dan lengkap dengan yogya dept store, harga sama dengan di Indonesia kok tidak jauh beda terkecuali Rokok yah (2x harga di indonesia, masih murahlah ketinmbang di singapore)

2. Pilihan memilih 2 kamar juga tepat, karena ketika si bayi waktunya istirahat disaat bersamaan istri saya harus mempersiapkan ini itu atau mencuci kelengkapan makan dan baju si bayi di kamar mandi tidak ada yang terganggu (anak anak tidur pulas ditemani saya) dan istri di kamar satu lagi sibuk dengan aktifitasnya, kamar mandi pun tidak saling menunggu untuk digunakan

3. Jangan lupa membawa penghubung colokan listrik yang kaki tiga – mirip  di singapore (untungnya saya masih menyimpannya sisa perjalanan singapore tahun lalu)

4. Seperti beberapa ulasan di tripadvisor mengenai air yang tidak panas memang terjadi tapi saya sudah tahu resikonya (Pihak hotel cept tanggap kok menyelesaikan masalah air), karenanya strategi saya mengambil 2 kamar sehingga saat salah satu kamar airnya tidak panas, kami punya kamar lainnya. Oh ya kebiasaan saya juga setiap checkin bersama staff roomboy yang mengantar koper saya tidak pernah menyuruh dia langsung pergi tapi saya akan touring dan cek semua amenities yang ada di hotel dan memastikan lancar semua, jadi saat saya mengetahui air di salah satu kamar mandi tidak panas, langsung saya info dan langsung mendapat respon teknisi kurang dari 5 menit
5. Di sekitar hotel terdapat berbagai makanan, mayoritas masakan china, karena wilayah itu dikenal sebagai sentra bisnis kaum cina , masalah halal dan haram tentu harus Anda tanyakan dulu ke pihak resorannya, tapi kalau mau aman saat keluar hotel ambil kiri kurang lebih berjarak 50 meter ada restoran India Muslim yang buka 24 Jam , rasa masakannya mirip mirip masakan padang tentunya

6. Di sebelah hotel juga banyak klinik obat tradisional cina dan tidak jauh dari situ sekitar 150 meter ada juga toko farmasi modern dimana waktu itu saya memang harus membeli obat buat si bayi yang mencret mencret

7. Pihak hotel sangat friendly, sangat membantu sekali, setiap hari jam 9 kurang  kamar pasti dibersihkan tanpa diminta, kalau saya sudah terbiasa tidak membiarkan kamar dibersihkan saat saya tidak ada, bukan berarti disana tidak aman yah, itu sudah kebiasaan saya saja di hotel manapun

8. Setiap  malam saya dan keluarga atau kadang bergantian dengan istri bisa berjalan jalan di sekitar hotel dan di mall, bahkan terkadang istri saya pergi sendiri untuk belanja kebutuhan di supermarket tanpa ditemani saya

9. karena daerah tersebut mayoritas etnis cina, maka jangan kaget pemandangannya jauh diluar konteks negara islam , wanita wanita cina super super seksi akan sering anda lihat siang ataupun malam, malam akan lebih ramai lagi karena penuh dengan tempat makan outdoor. (Tapi positifnya bagi saya adalah daerah ini lebih terbuka dengan modernisasi sehingga gaya berpakaian atau kegiatan kita tidak selalu jadi sorotan)
Jadi Grand sentosa Hotel membuat saya nyaman menginap terutama saat membawa bayi

Selanjutnya setelah pesan hotel, saya lanjukan dengan membuat passpor untuk bayi, prosesnya lagi lagi sangat mudah, setelah searching link di google akhirnya ketemu link web imigrasi dan saya mulai proses tahapan buat passpor online.. saran saya lakukan tengah malam saat server tidak terlalu sibuk, beberapa kali saya coba siang terjadi error.

Prosesnya sangat mudah Anda tidak perlu lagi scan Kartu keluarga dan lain lain karena sudah tidak ada upload dokumen lagi, Anda cukup mengisikan data data utama bayi anda sesuai kartu keluarga, gunakan alamat email valid Anda untuk daftar, setelahnya anda akan mendapatkan  email berisi besaran yang harus anda bayar , waktu itu saya cuma 355 ribu, print attachmentnya dan bawa ke bank BNI, tanya saja ke security  bahwa anda mau bayar passpor online, di teller setelah membayar Anda akan mendapat bukti bayar (jangan sampai hilang) di dalam bukti bayar ada kode bayar yang harus Anda masukkan kembali ke website imigrasi (melalui link di email) , setelahnya Anda akan diminta mengisikan tanggal kedatangan Anda ke kantor imigrasi setempat, pastikan Anda dan istri (harus berdua, kalau tidak bikin surat kuasa) Harus  datang sesuai tanggal yah dan jangan lupa bawa kelengkapan (Passpor suami istri, Surat Nikah, KTP, Kartu Keluarga (Semua dicopy 2 kali, yang asli tetap dibawa) , Materai 6000 sebanyak 2 buah, dan bawa juga bukti setor BNI

Begitu datang ke imigrasi jangan ikutan ngantri dengan pengantri umum lainnya, tanya ke security / petugas dimana antrian passpor online (Antriannya sedikit kok untuk online) waktu itu saya  cuma butuh waktu 30 menit  dari antri sampai dengan interview dan pengambilan foto si jagoan kecil saya

Setelahnya tunggu 3 hari kerja untuk pengambilan passpor (Ngantri ambilnya yang lama sampai 2 jam  karena waktu itu  lagi rame orang mau berpergian ke luar negeri kali diakhir tahun ), datanglah pagi pagi untuk ambil

Kesimpulan saya soal passpor online

1. Bikin passpor online mudah dan murah

2. Lakukan di malam hari

3. Selalu simpan bukti pembayaran dan buat copy semua kelengkapan minimal 2

4. jangan lupa materai 2 buah

5. Antri untuk ambil passport sebaiknya datang paling pagi (sebelum buka)

MEMBELI TICKET LEGOLAND ONLINE

Satu hal yang tidak saya lakukan / tidak sempat adalah membeli ticket legoland online yang bisa hemat sampai dengan 20% hal itu karena waktu yang mepet sudah H-3 dan saya tidak ingin ambil resiko ticket onlinenya tidak saya terima atau ada masalah pembayaran online, akhirnya saya putuskan tidak membelinya secara online.

Untungnya begitu sampai di hotel saya iseng menanyakan apakah ada yang menjual ticket legoland di hotel, dan ternyata ada dengan harga cukup murah 130 RM/adult dan kids 90RM (<3 tahun gratis) jadi saya bisa save lumayan walau tidak  sampai  hemat 20% seperti beli online, belum lagi supir taksi juga menawarkan voucer hemat 40RM , karena para supir tersebut kalau beli (petrol/ bensin) mereka mendapatkan voucer potongan ke legoland biasanya mereka jual vouvher potongan itu 20RM tapi karena saya sudah pesan di hotel jadi tawaran supir taksi saya tolak

Kesimpulan saya :
1. Jangan takut kalau tidak sempat beli online
2. Tanyakan pihak hotel alternatif pembelian tiket murah legoland , pasti selalu ada

MEMBELI KELENGKAPAN PERJALANAN

Saya selalu berprinsip apabila berpergian sebisa mungkin barang barang bagus yang ada dirumah tidak dibawa mengindari tertinggal dan menjadi keributan baru dengan istri

Jadi sebelum berangkat saya membeli beberapa perlengkapan yang berharga murah terutama buat sikecil seperti

1. Botol Susu

2. Tempat Susu Bubuk Plastik (saya pakai botol minum plastik biar praktis tidak perlu pake sendok)

3. Pasta gigi, sabun cair

4. Topi murah, kaca mata hitam murah  (di legoland panas banget)

5. Beli stroller baby yang super murah dan ringan cuma Rp 200 rb di toko lavie bandung

6. Tempat makan plastik  bayi dan sendok yang sekali pakai
7. Karena Senai dan Husein keduanya Airport lokal dan bukan internasional maka proses pemeriksaan cukup ringan tidak seperti Seoakrno Hatta dan Changi airport singapore yang cukup ketat, bahkan aturan membawa cairan > 100 ml seakan tidak berlaku, botol minuman saya lolos pemeriksaan sejak di husein s/d senai airport

Pokoknya semua barang itu yang saya nilai kalau hilang , tertinggal atau rusak nothing to lose lah…, tidak perlu jadi keributan  dengan istri

Kesimpulannya :

1. Barang barang itu benar benar menghemat konsentrasi saya agar tidak banyak yang diingat dan diurus bahkan ada yang sekali pakai – buang

2. Buatlah senyaman mungkin perjalanan Anda agar fokus dengan si kecil , bukan dengan barang barang bawaan

Untuk pengguna Airasia Anda sebenarnya dari senai Airport johor bisa hemat biaya taksi dengan order ticket bis causeway link senai – JB Sentral for free (lakukan sewaktu masih di Indonesia), silahkan cari link causeway link johor dan cari link airasia passenger , isikan booking no. Air asia dan data semua penumpang dari keluarga Anda (Sistem mereka akan cek data penumpang sesuai ticket), tunggu beberapa menit maka ticket causeway link akan dikirim ke email Anda (langsung di print), lumayan Anda bisa menghemat 90-100 RM perjalanan Dari Grand sentosa – Senai Airport atau sebaliknya.

Namun sekalipun saya memesan tiket causeway tapi saya tidak gunakan karena pertimbangan
1. Saya membawa keluarga dan barang banyak, akan repot membawa  dan menunggu bis yang akan mengantar karena lokasinya tidak di pintu keluar bandara
2. Suasana pas landing lagi hujan di Airport senai
3. Jalur bis causeway tidak ada yang melewati taman sentosa daerah hotel, jadi saya nantinya akan turun di JB Sentral lalu sambung taksi lagi sekitar 10RM ke Grand sentosa Hotel

Sehingga saya putuskan demi kenyamanan spent 90RM untuk nantinya PP Hotel – Senai Airport

Kesimpulan saya :
1. causeway link perlu / tidak perlu mending tetap diregistrasi saja (toh gratis buat penumpang airasia)

Melihat fasilitas web checkin di airasia tentu saja membuat saya berpikir untuk mencobanya sehingga tidak perlu berlama lama antri checkin di airport nantinya, sehingga saya lakukan  web checkin Airasia di H-3 , masalahnya adalah :

1. Saat datang kita tetap harus baggage check in karena membawa koper yang akan masuk bagasi dan tentu antriannya tetap sama dengan antrian orang checkin lainnya , untungnya bukan peak session jadi counter pun kosong
2. Saya berani katakan bahwa terjadi kecurangan oleh petugas bandara husein.  saat checkin saya menunjukkan boarding passdari web checkin online , tentunya didalamnya sudah tidak tercantum cost breakdown seperti di lembar ticket  itinerrary airasia, dan petugas menagih kembali airport tax, karena yang checkin saat itu istri saya dan saya sibuk urus memasukkan koper dan stroller , istri saya langsung membayar kembali airport tax, tidak lama setelah itu saya baru ingat bahwa airaisa sudah memasukkan airport tax dalam tagihan itinerary yang kami bayar, tapi karena itinerary saya ada di tas yang lain dan susah untuk diambil dan saya juga tidak mau jadi masalah yah sudahlahhh saya ikhlaskan saja (biar tuhan yang balas).
Tapi strategi saya adalah nanti saat balik dari senai saya tidak akan menunjukkan boarding pass web cehckin tapi saya tunjukkan saja Itinerary yang saya bawa dimana ada cost breakdownnya sehingga bisa saya tunjukkan ke petugas bahwa airport tax sudah saya bayar saat beli online,  dan benar saja di senai petugas tidak menagih airport tax lagi, kami langsung mendapat boarding pass

Kesimpulan saya :
1. Jika Anda berpergian dengan membawa koper bagasi , percuma lakukan web checkin, sebaiknya tetap lakukan checkin biasa dengan datang 2 jam lebih awal sebelum flight
2. Hati hati dengan oknum petugas di Husein yang memanfaatkan keribetan anda, tunjukkan ticket  itinerary yang ada cost breakdownnya, kalau perlu todong duluan bahwa anda sudah bayar airport tax dan perlihatkan detail yang ada di itinerary airasia

Satu yang saya sesali adalah tidak membeli prepaid simcard sewaktu di pesawat airasia padahal pramugari sudah menawarkan saat dipesawat, kalau anda bisa beli langsung saat booking online mendingan beli langsung nanti tinggal diambil simcardnya saat dipesawat dengan menunjukkan itinerary anda, kenapa ?? karena harganya ternyata jauh lebih murah hanya 35RM sudah termasuk 500MB untuk data internet, 30 menit call

kenapa saya sesali karena begitu sampai airport Anda hanya menemukan 1 counter operator yaitu celcom yang mahal sekali yaitu 50RM dan hanya 30 menit telepon (tanpa paket data), akhirnya tidak saya beli dan di mall didalam hotel pun sama bahkan lebih parah  15 menit pemakaian 40 RM (tanpa paket data) akhirnya karena sudah nanggung saya beli di mall di hotel untuk internet untungnya wifi cukup kencang di hotel jadi masih bisa BBM dengan orang tua di bandung mengabari bahwa kami sudah sampai di hotel dengan selamat.

Anda tidak perlu 2 kartu yang penting cukup 1 kartu saja agar anda bisa menelepon supir taksi dan juga untuk tujuan darurat (Tapi terserah anda jika ingin tetap bisa komunikasi dengan istri saat mungkin tiba tiba anda terpisah), kalau saya selama trip ke luar negeri cukup beli 1 saja

Waktu di johor sama dengan waktu indonesia tengah (WITA) artinya beda  lebih cepat 1 jam dengan waktu bandung (WIB) , karenanya begitu sampai disana sesuaikan jam anda dengan menambah 1 jam, dan jangan kaget juga disana jam 7.20  malam masih terang benderang dan jam 6 pagi masih gelap sekali (mmhh ..saya rasa harusnya johor itu WIB.. 🙂

Perlu di ingat bahwa grand sentosa Hotel ada juga kekurangan lainnya  (walau bagi saya tidak masalah) tapi belum tentu buat Anda, yaitu jalur hotel ini tidak dilalui bis sekalipun ditengah kota yang ramai, sehingga kemana mana harus dengan taksi, tapi bagi saya gak masalah karena semua kebutuhan ada di sekitar hotel dan udara disekitar hotel tidak panas bahkan sejuk berangin (beda sekali dengan lokasi legoland yang super panas)

Hanya saja untuk ke legoland atau ke hello kitty tentu saja kami harus mengenakan taksi. Ok begini petunjuk dari saya

Di Johor ada 4 jenis taksi dibedakan dengan warna (Putih, Merah, Kuning, Biru)
1. Taksi putih, taksi ini adalah taksi khusus airport , begitu anda sampai dekat pintu keluar ada counter khusus Taksi (hanya 1 counter kok), sebutkan tujuan Hotel Anda nanti resepsionisnya akan memberi tahukan pricenya. Enaknya harga yang disampaikan sudah include semua layanan bahkan sampai Tips (Anda dilarang memberi tips ke supir  taksi putih dan memang pasti ditolak drivernya, karena sudah saya coba dan supir tidak mau terima) waktu itu saya cuma bayar 45RM dan bayar langsung di counternya dari senai ke grand sentosa hotel (Drivernya friendly sekali, semua taxi driver di johor benar benar ramah termasuk yang kalangan India), mayoritas orang India bekerja sebagai pelayan, tukang sapu atau supir taksi

2. Taksi Merah, taksi ini bukan taksi dari perusahaan, taksi ini milik personal tapi diawasi ijin dan operasionalnya  oleh pemerintah jadi anda tetap terjamin aman, dan karena taksi ini milik personal/pribadi maka anda bisa bernegosiasi dengan supir taksi harga non argo-nya dimana paling jauh rata – rata 40-50 RM asumsi 45 menit – 1 jam perjalanan (pelajari jarak tempuh di google map bisa membantu), enaknya adalah jika Anda menggunakan supir etnis India mereka suka kasih diskon kalau kita memesan ulang lagi , contohnya saat kami ke hello kitty kami bayar 45 RM , saat ke legoland cuma 40 RM dan saat ke airport yang lumayan jauh cuma 40 RM (simpanlah no kontaknya) sebenarnya anda bisa meminta pihak hotel untuk memanggil taksi yang sama tapi saran saya sebaiknya jangan,  anda cukup janjian dengan si supir jam berapa ingin dijemput di hotel , karena kalau melalui hotel si supir harus kasih tips petugas hotelnya (curhat si pak supir ke saya … he he ). tapi yah gpp terserah Anda (kalau saya lebih senang janjian dengan 1 taksi yang sama biar dapat diskon dan obrolannya bisa nyambung terus)

3. Taksi Biru, banyak ulasan jelek tentang taksi ini di internet, tapi jangan salah tafsir saya rasa taksi ini tidak mahal karena sebanding dengan pelayanannya, dikatakan lebih mahal mungkin karena taksi ini milik perusahaan dan kita dilarang nembak atau negosiasi dengan supir karena harus menggunakan argo, taksi biru benar benar exclusive dan taksinya baru baru tidak seperti taksi putih atau merah yang jadul, taksi ini pun kelasnya bukan sedan tapi seperti inova, KIA carnival  dan mobil jenis APV besar lainnya, jadi buat keluarga terutama yang bawa stroller ke legoland atau hello kity tidak perlu repot melipatnya. Saya dan keluarga menggunakan taksi ini setiap pulang dari satu lokasi , kenapa taksi ini saya gunakan? , karena mereka mendominasi tempat  kunjungan hello kitty dan legoland perusahaan mereka berani bayar sewa parkir taksi di lokasi tersebut, sehingga taksi lain seperti taksi merah tidak akan bisa ngetem atau parkir disana, mereka hanya bisa lewat saja dan drop penumpang, dan beberapa taksi merah yang lewat pun jangan kaget kalau tidak mau menerima Anda karena area itu dimiliki taksi biru, karena sudah saya coba , kecuali anda jalan jauh keluar dari area hello kity dan legoland, anda tentu tidak mau kalau bersama keluarga jalan kaki dulu jauh ke area yang non blue taksi area, alternatif lain anda bisa gunakan bus sekitar 4,5-8 RM / perorang ke JB Sentral dari Hello Kitty / legoland lalu sambung pake taksi ke hotel sekitar 8-10 RM(tapi sekali lagi saya tidak mau repot kalau bawa baby) rate pulang dari Hello kitty ke hotel 60 RM dan kalau dari legoland ke hotel berdasarkan argo 50 RM dengan taksi biru, sekali lagi sebanding karena taksinya nyaman dan pengemudinya ramah sekali, jagoan kecil saya saja suka dengan para supir india ini

4. Taksi kuning, taksi ini jarang dan belum saya coba, tapi kata supir taksi merah taksi ini sistemnya charter atau sewaan

Taksi lain juga ada taksi hitam yang kelas mercy biasanya ada di hotel mewah tentu saja ratenya jangan ditanyalah.. untuk tamu VIP juga sepertinya


Lokasi ini tidak menyenangkan buat orang dewasa, tapi buat anak anak terutama anak cewek cukup menyenangkan karena semua bertema hello kitty, tiket masuk 75RMbaik dewasa atau anak kecuali dibawah 3 tahun (gratis), tapi lokasi diluar hello kitty cukup bagus untuk foto foto, sebenarnya ada 3 lantai di lokasi ini, untuk anak cewe cocok lantai 2 (Hello kity) dan untuk anak cowo lantai cocoknya di lantai 3 (tiap lantai beda wahana dan beda tiket tentunya), saya hanya berkunjung ke Hello Kity saja karena sudah cukup memuaskan putri cantik saya… dan kami juga tidak bisa lama karena kami datang terlambat jam 14.30 kami baru sampai sedangkan tempatnya tutup jam 17.30 (tapi cukup kok karena wahanya sangat sedikit).

Supir taksi sebenarnya lebih menyarankan kami berkunjung ke angry bird ketimbang hello kitty, karena beberapa turis menurut dia lebih puas berkunjung ke angry bird, tapi karena sudah janji ke anak saya tetapkan tetap ke hello kitty daripada putri cantikku penasaran sepulang ke Indonesia

Kami berangkat ke legoland jam 9.30 sampai sana jam 10.20 karena kami memilih waktu pas hari kerja yaitu hari senin maka suasana disana yang panas tidak menyebalkan karena tidak ada antrian setiap kali naik wahana, bahkan putri saya bisa naik 1 wahana sampai beberapa kali, sayangnya si baby cuma bisa naik 1 wahana saja yaitu kereta kecil di tempat bermain khusus baby.

Saat sampai disana suasana sepi sekali, kami manfaatkan untuk makan siang dulu di KFC sebelum pintu masuk  walaupun baru jam 10.45 biar tidak terpotong acaranya dan info dari supir taksi bahwa makanan di cafe didalam area legoland mahal mahal

Satu hal yang menarik soal KFC di johor baik di senai airport dan lokasi lain termasuk legoland adalah ayamnya yang besar besar dan nasinya selalu dalam bentuk nasi lemak (enak dan gurih) sehingga paket 13,5 RM cukup saya beli 2 buat bertiga (saya, istri dan anak perempuan yang besar) tinggal tambah nasi 1 buah, 1 paket saja berisi 2 ayam yang besar besar (pokoknya kenyang)

Wahana di legoland mirip dengan percampuran  dufan dan Universal studio singapore, yang saya suka adalah lokasi toilet yang selalu ada didekat setiap wahana terutama juga ada family room di area toilet sehingga memudahkan saya dan istri mengganti popok bayi putra kami yang sedang mencret (toilet bersih dan harum kok) petugas kebersihannya hampir semua etnis India yang standby setiap saat.

Saran saya saat melihat pekerja india di johor ingatlah “Don’t judge the book from it’s cover yah… ” , penampilan mereka terlihat selintas kurang nyaman karena hitam pekat dan tatapannya kadang terlihat kurang senyum, tapi cobalah iseng tanya sesuatu atau minta bantuan , mereka akan menjawab dan membantu dengan sangat ramah (sampaikan hal itu ke istri dan anak anak anda biar hilang rasa tidak nyamannya)

Kami kembali ke indonesia dengan berangkat dari hotel jam 9 pagi walaupun mepet dengan waktu checkin tapi Alhamdulillah kami bisa membeli oleh oleh oleh berupa coklat dan permen khas johor di airport diborong samapi sekitar 150 RM sama istri, agenda yang tidak bisa kami lakukan selama di johor adalah ke angry bird dan ke  JPO (Johor premium Outlet) katanya berjarak 30 menit dari hotel kami, kendalanya adalah  karena putra kami dalam kondisi kurang bagus (Mencret mencret dari sejak sampai di Johor) tapi tidak apa yang penting hello kitty dan legoland sebagai agenda utama sudah tercapai dan itu sudah cukup memuaskan terutama lagi tahun ini adalah perjalanan pertama kami dengan si jagoan kecil kami yang baru 16 bula dan menjadi tantangan buat kami. Alhamdulillah sampai di bandung sikecil langsung ke dokter dan sekarang sudah sehat kembali

Satu hal yang berkesan adalah penduduk Johor, supir taksi, petugas imigrasi johor, awak airasia semuanya sangat ramah kepada kami , sehingga kunjungan ke johor sungguh berkesan.

Justru pengalaman tidak berkesan saya adalah saat keberangkatan di husein (Kecurangan airport tax oleh oknum petugas) dan kepulangan di husein juga dimana saat pulang kami pemegang passpor Indonesia yang jelas beralamat di bandung masih harus mengisi form kedatangan , sampai kesalnya menunggu karena juga kelelahan istri membawa anak anak saya nyelonong keluar dan saat ditanya petugas istri saya cuma bilang “Sedang diisi suami saya disana tuh!!” (mantap !! he he)

Bukan kami tidak taat aturan tapi menurut kami perlu direview hal hal konyol seperti ini. karena di Johor saja kami tidak perlu mengisi apapun, bahkan saya ingat saat di senai dimana istri saya sedang menggendong si jagoan kecil sehingga susah melepas tasnya, petugas wanitanya dengan ramah mempersilahkan istri saya lewat tanpa periksa tas (karena dia tau istri saya sedang ribet) bahkan petugas itu setelahnya berbincang bincang dengan istri serta bercanda dengan anak anak saya, ketika saya ribet mencari stroller untuk angkut barang petugas itu juga yang mengambilkan stroller buat saya (benar benar pengalaman berkesan di johor dan diairport senai, someday saya dan keluarga InsyaAllah kembali lagi untuk menyelesaikan agenda wisata kami lainnya, Terima kasih buat warga johor malaysia atas keramah tamahannya)

Postingan selanjutnya akan saya tampilkan foto foto perjalanan kami

Salam,
Semoga bermanfaat
Hery Purnama
SISINDOTEK Bandung
Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Teror di Paris, 10 tewas , 5 di sandra, foto pelaku teror

Aksi terorisme yang dilakukan terhadap kantor tabloid Charlie Hebdo di Paris yang berjarak sekitar 2 KM dari Menara Eiffel , aksi terorisme yang berlangsung pada tanggal 7 januari dan masih berlanjut telah menewaskan 10 wartawan termasuk pemimpin redaksi, 2 Polisi dan juga penyanderaan sekitar 5 orang di sebuah supermarket, aksi penyanderaan dikabarkan juga terjadi dilokasi lain.

Cherif and Said Kouachi adalah dua bersaudara tersangka aksi teror di markas Charlie Hebdo.

Pelaku lain adalah Mourad hamyd berusia 18 tahun dilaporkan telah menyerahkan Diri ke pihak polisi

Cherif bukan nama yang asing lagi bagi polisi antiteror Prancis. Pria yang memiliki nama alias Abu Issen tersebut tercatat sebagai anggota Jaringan Buttes-Chaumont yang aktif mengirimkan pejihad ke Iraq. Saat itu dia memang merekrut muslim radikal dari Prancis untuk bergabung dengan Al Qaeda dan memerangi pasukan Amerika Serikat (AS) yang mereka anggap menginvasi Iraq.

Cherif tertangkap saat hendak terbang ke Syria dalam perjalanannya menuju Iraq. Terbukti mendukung terorisme, dia mendapatkan hukuman tiga tahun penjara, termasuk 18 bulan masa percobaan. Dua tahun kemudian, nama Cherif kembali muncul pada radar polisi. Dia terlibat dalam upaya kaburnya Smain Ait Ali Belkacem dari penjara. Belkacem adalah dalang pengeboman stasiun kereta api Musee D'Orsay.

Sampai saat ini kedua pelaku masih diburu oleh kurang lebih 80.000 anggota kepolisian Perancis

Diinformasikan oleh :

Hery Purnama

(Freelance Personal IT Trainer)

http://freelance-it-trainer.blogspot.com

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Google Map PI v3 with Jquery Mobile

Using Google Maps JavaScript API v3 with jQuery Mobile

 Jul 18, 2013
First let us talk about how Gmap v3 API can be used inside a classic web application, it will give us a good perspective when we switch back to jQuery Mobile. In the beginning of a map craze iframe was a standard delivery solution but as a time went by it become an outdated technology, more like an obstacle them a successful delivery technology.

 

The new JavaScript Maps API Version 3 was built from the ground up by Google to offer a clean, fast and powerful maps application development platform for both desktop Web browsers and mobile devices. The v3 API lets developers embed Google Maps in their own Web pages and is specially designed to be faster and more applicable to mobile devices, as well as traditional desktop browser applications, according to Google.

 

Unlike v2 API which worked on IE6+, Firefox 2.0+, older versions of Chrome v3 API will work on every HTML5 supported browser ranging from IE8+, Firefox 3.0 + up to iOS, Android and BlackBerry 6+ browsers. Which makes it an excellent solution for jQuery Mobile applications. But let me first show you how it works in a classic web page.

 


Classic solution


 
 

Working jsFiddle example can be found here: http://jsfiddle.net/Gajotres/T4H5X/

 

As you can see it is an extremely easy solution. It uses vanilla javascript to initialize and display the map. Map is created from numerous canvas elements and it is fully responsive.

 
<!DOCTYPE html>  <html>      <head>          <title>Google Maps JavaScript API v3 Example: Map Simple</title>          <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>          <meta charset="utf-8"/>          <style>              html, body, #map_canvas {              margin: 0;              padding: 0;              height: 100%;              }          </style>          <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>          <script>              var map;              function initialize() {              var mapOptions = {              zoom: 8,              center: new google.maps.LatLng(-34.397, 150.644),              mapTypeId: google.maps.MapTypeId.ROADMAP              };              map = new google.maps.Map(document.getElementById('map_canvas'),              mapOptions);              }                            google.maps.event.addDomListener(window, 'load', initialize);          </script>      </head>      <body>          <div id="map_canvas"></div>      </body>  </html>  
 

Map container can be dynamically changed and a map will automatically resize to fill new available space.

 

jQuery Mobile solution


 
 

Combine jQuery Mobile and v3 API and everything becomes a little bit complicated. Unlike classic web development jQuery Mobile, pages are responsive by its nature which means page dimensions will become a problem here. During the jQuery Mobile page initialization page is constantly changing and resizing. Basically page height can be successfully calculated only during the pageshow event.

 

For those who still don’t have much experience with jQuery Mobile pageshow event is a last state to be called during the page initialization. It best jQuery counterpoint would be window ready. That means in order to successfully initialize v3 API we must do it after pages has been displayed which brakes its usefulness.

 
 

As always there’s a solution to every problem. If we have a good idea how our page is going to look we can force content div to resize according to available space even before pageshow event. This can be done with this CSS rules:

 
#content {      padding: 0;      position : absolute !important;       top : 40px !important;        right : 0;       bottom : 40px !important;        left : 0 !important;       }  
 

This CSS will remove classic content padding and absolutely position content div to cover all available space, giving only some space to page header. Bottom rule can be a changed to 40px in case footer is also needed.

 

Working jsFiddle example can be found here: http://jsfiddle.net/Gajotres/7kGdE/

 
 
 
<!DOCTYPE html>  <html>      <head>          <title>jQM Complex Demo</title>          <meta name="viewport" content="initial-scale=1, maximum-scale=1"/>          <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />          <style>              #content {                  padding: 0;                  position : absolute !important;                   top : 40px !important;                    right : 0;                   bottom : 40px !important;                    left : 0 !important;                   }          </style>          <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>              <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>             <script>  		$(document).on('pageinit', '#index',function(e,data){      		   var minZoomLevel = 12;    		   var map = new google.maps.Map(document.getElementById('map_canvas'), {  			  zoom: minZoomLevel,  			  center: new google.maps.LatLng(38.50, -90.50),  			  mapTypeId: google.maps.MapTypeId.ROADMAP  		   });                  });          </script>       </head>      <body>          <div data-role="page" id="index">              <div data-theme="a" data-role="header">                  <h3>                      First Page                  </h3>              </div>                            <div data-role="content" id="content">                  <div id="map_canvas" style="height:100%"></div>              </div>                            <div data-theme="a" data-role="footer" data-position="fixed">                  <h3>                      First Page                  </h3>              </div>          </div>      </body>  </html>      
 

Second jQuery Mobile solution


 
 

Unfortunately, a first solution will not be useful every time. Sometimes we will not know our page dimensions or what will be available space for our content div, this is where jQuery comes to help.

 

Here’s a nifty function that will calculate available content height. It can be then used to dynamically set new content height. That combined with window resize event will give you best responsiveness.

 
function getRealContentHeight() {  	var header = $.mobile.activePage.find("div[data-role='header']:visible");  	var footer = $.mobile.activePage.find("div[data-role='footer']:visible");  	var content = $.mobile.activePage.find("div[data-role='content']:visible:visible");  	var viewport_height = $(window).height();    	var content_height = viewport_height - header.outerHeight() - footer.outerHeight();  	if((content.outerHeight() - header.outerHeight() - footer.outerHeight()) <= viewport_height) {  		content_height -= (content.outerHeight() - content.height());  	}   	return content_height;  }  
 

And here’s also a working jsFiddle example: http://jsfiddle.net/Gajotres/xbr2v/

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

ExtJS , AJAX References

Get Data from servlet to an ExtJs grid using ajax request

Search result description:Jun 16, 2013 I'm newbie at ExtJs and i would to read data from a servlet and put this data into
an ext js grid using ajax request, but i'm always having blank …

Search result title:

Using Ext.Direct in Ajax applications

Search result description:Oct 12, 2010 Ext.Direct, a feature of the ExtJS JavaScript framework that was … Asynchronous
JavaScript and XML (Ajax)-style applications much simpler.

Search result title:

Call SOAP Web services with Ajax, Part 1: Build the Web services

Search result description:Oct 11, 2005 Implement a Web browser-based SOAP Web services client using the
Asynchronous JavaScript and XML (Ajax) design pattern.

Search result title:

Maximizing JavaScript and Ajax performance

Search result description:Sep 28, 2010 With Ajax and JavaScript becoming more prominent in modern web … jQuery,
Dojo, MooTools, YUI, ExtJS, and so on all contain a plethora of …

Search result title:

Ext JS で作る AJAX アプリケーション

Search result description:2008年7月1日 Ext JS は再利用性が高いオブジェクトや UI 部品を多数備え、AJAX …. では、Ext JS の
AJAX 機能を使って ExtJS.com のフォーラムから最新の投稿を …

Search result title:

Compare JavaScript frameworks

Search result description:Feb 2, 2010 Ajax stands for Asynchronous JavaScript and XML, although the ….. First off, take
a look at a typical ExtJS Ajax request (see Listing 11).

Search result title:

Build Ext JS extensions and plug-ins

Search result description:Nov 23, 2010 It also handles Ajax and direct web remoting, has an impressive collection of UI
controls and ….. Article source code, extjs.example.zip, 3KB …

Search result title:

Reverse Ajax, Part 1: Introduction to Comet

Search result description:Jul 19, 2011 In this first article, explore different Reverse Ajax techniques. … Get ExtJS, the
cross-browser JavaScript library for building rich internet …

Search result title:

Find and resolve browser memory leaks caused by JavaScript and

Search result description:Apr 5, 2011 If you're developing Web 2.0 applications that heavily use JavaScript and Ajax
technologies, it is likely you will encounter browser memory …

Search result title:

Using Ajax with WebSphere Portal

Search result description:Jun 28, 2006 This article introduces you to the idea of integrating Ajax into your portal …
Because there are several general Ajax articles already available …

Search result title:

JavaScript フレームワークの比較

Search result description:2010年2月2日 Ajax が登場する以前は、サーバー・サイドを処理したり、データベースに ….. まず初めに
記載するのは、ExtJS の典型的な Ajax リクエストです (リスト 11 を …

Search result title:

Ext.Direct を Ajax アプリケーションで使用する

Search result description:2010年10月12日 PHP を使ってクライアント・サイドとサーバー・サイドの Ajax アプリケーション開発を
効率化する. ExtJS JavaScript フレームワークの新機能として …

Search result title:

dW:Ajax:Ajax forum – IBM

Search result description:Cancel. Moderated by: Mr. Jack D. Herrington <p> Ajax forum is a community for
Web developers just …. Get Data from servlet to an ExtJs grid using ajax request.

Search result title:

Reverse Ajax, Part 4: Atmosphere and CometD

Search result description:Sep 6, 2011 Learn about Atmosphere and CometD–the best-known open source Reverse
Ajax libraries for Java technology servers.

Search result title:

What's new in Ext JS

Search result description:May 4, 2010 Ext JS is an advanced JavaScript framework that not only supports and simplifies
the foundations of Asynchronous JavaScript and XML (Ajax) …

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Sencha ExtJS , Ext.Component Class

Base class for all Ext components. All subclasses of Component may participate in the automated Ext component lifecycle of creation, rendering and destruction which is provided by the Container class. Components may be added to a Container through the items config option at the time the Container is created, or they may be added dynamically via the add method.

The Component base class has built-in support for basic hide/show and enable/disable and size control behavior.

All Components are registered with the Ext.ComponentManager on construction so that they can be referenced at any time via Ext.getCmp, passing the id.

All user-developed visual widgets that are required to participate in automated lifecycle and size management should subclass Component.

See the Creating new UI controls tutorial for details on how and to either extend or augment ExtJs base classes to create custom Components.

Every component has a specific xtype, which is its Ext-specific type name, along with methods for checking the xtype like getXType and isXType. This is the list of all valid xtypes:

xtype            Class
-------------    ------------------
button          
Ext.button.Button
buttongroup      
Ext.container.ButtonGroup
colorpalette    
Ext.picker.Color
component        
Ext.Component
container        
Ext.container.Container
cycle            
Ext.button.Cycle
dataview        
Ext.view.View
datepicker      
Ext.picker.Date
editor          
Ext.Editor
editorgrid      
Ext.grid.plugin.Editing
grid            
Ext.grid.Panel
multislider      
Ext.slider.Multi
panel            
Ext.panel.Panel
progress        
Ext.ProgressBar
slider          
Ext.slider.Single
spacer          
Ext.toolbar.Spacer
splitbutton      
Ext.button.Split
tabpanel        
Ext.tab.Panel
treepanel        
Ext.tree.Panel
viewport        
Ext.container.Viewport
window          
Ext.window.Window

Toolbar components
---------------------------------------
paging          
Ext.toolbar.Paging
toolbar          
Ext.toolbar.Toolbar
tbfill          
Ext.toolbar.Fill
tbitem          
Ext.toolbar.Item
tbseparator      
Ext.toolbar.Separator
tbspacer        
Ext.toolbar.Spacer
tbtext          
Ext.toolbar.TextItem

Menu components
---------------------------------------
menu            
Ext.menu.Menu
menucheckitem    
Ext.menu.CheckItem
menuitem        
Ext.menu.Item
menuseparator    
Ext.menu.Separator
menutextitem    
Ext.menu.Item

Form components
---------------------------------------
form            
Ext.form.Panel
checkbox        
Ext.form.field.Checkbox
combo            
Ext.form.field.ComboBox
datefield        
Ext.form.field.Date
displayfield    
Ext.form.field.Display
field            
Ext.form.field.Base
fieldset        
Ext.form.FieldSet
hidden          
Ext.form.field.Hidden
htmleditor      
Ext.form.field.HtmlEditor
label            
Ext.form.Label
numberfield      
Ext.form.field.Number
radio            
Ext.form.field.Radio
radiogroup      
Ext.form.RadioGroup
textarea        
Ext.form.field.TextArea
textfield        
Ext.form.field.Text
timefield        
Ext.form.field.Time
trigger          
Ext.form.field.Trigger

Chart components
---------------------------------------
chart            
Ext.chart.Chart
barchart        
Ext.chart.series.Bar
columnchart      
Ext.chart.series.Column
linechart        
Ext.chart.series.Line
piechart        
Ext.chart.series.Pie

It should not usually be necessary to instantiate a Component because there are provided subclasses which implement specialized Component use cases which over most application needs. However it is possible to instantiate a base Component, and it will be renderable, or will particpate in layouts as the child item of a Container: Ext.Component component

    Ext.create('Ext.Component', {
        html
: 'Hello world!',
        width
: 300,
        height
: 200,
        padding
: 20,
        style
: {
            color
: '#FFFFFF',
            backgroundColor
:'#000000'
       
},
        renderTo
: Ext.getBody()
   
});

The Component above creates its encapsulating div upon render, and use the configured HTML as content. More complex internal structure may be created using the renderTpl configuration, although to display database-derived mass data, it is recommended that an ExtJS data-backed Component such as a {Ext.view.DataView DataView}, or {Ext.grid.Panel GridPanel}, or TreePanel be used.

Defined By


Config Options

CSS Class configs

 
The base CSS class to apply to this components's element. This will also be prepended to elements within this compone…
 
An optional extra CSS class that will be added to this component's Element (defaults to ''). This can be useful for …
 

CSS Class to be added to a components root level element to give distinction to it via styling.

 

CSS class to add when the Component is disabled. Defaults to 'x-item-disabled'.

 
An optional extra CSS class that will be added to this component's Element when the mouse moves over the Element, and…
 

The class that is added to the content target when you set styleHtmlContent to true. Defaults to 'x-html'

Other Configs

 
A tag name or DomHelper spec used to create the Element which will encapsulate this Component. You do not normally …
 
This config is intended mainly for floating Components which may or may not be shown. Instead of using renderTo in th…
 
true to use overflow:'auto' on the components layout element and show scroll bars automatically when necessary, false…
 
True to automatically show the component upon creation. This config option may only be used for floating components o…
 
The base CSS class to apply to this components's element. This will also be prepended to elements within this compone…
 
Specifies the border for this component. The border can be a single numeric value to apply to all sides or it can be …
 
An optional extra CSS class that will be added to this component's Element (defaults to ''). This can be useful for …
 

CSS Class to be added to a components root level element to give distinction to it via styling.

 
The sizing and positioning of a Component's internal Elements is the responsibility of the Component's layout manager…
 
Optional. Specify an existing HTML element, or the id of an existing HTML element to use as the content for this comp…
 

The initial set of data to apply to the tpl to update the content area of the Component.

 

Defaults to false.

 

CSS class to add when the Component is disabled. Defaults to 'x-item-disabled'.

 
Specify as true to make a floating Component draggable using the Component's encapsulating element as the drag handle…
 
Specify as true to float the Component outside of the document flow using CSS absolute positioning. Components such…
 
Specifies whether the floated component should be automatically focused when it is brought to the front. Defaults to …
 
Specify as true to have the Component inject framing elements within the Component at render time to provide a graphi…
 

The height of this component in pixels.

 

Defaults to false.

 
A String which specifies how this Component's encapsulating DOM element will be hidden. Values may be 'display' : The…
 
An HTML fragment, or a DomHelper specification to use as the layout element content (defaults to ''). The HTML conten…
 
The unique id of this component instance (defaults to an auto-assigned id). It should not be necessary to use this …
 
An itemId can be used as an alternative way to get a reference to a component when no object reference is available. …
 
(optional) A config object containing one or more event handlers to be added to this object during initialization. T…
 

loader : Ext.ComponentLoader/Object

A configuration object or an instance of a Ext.ComponentLoader to load remote content for this Component.

 
Only valid when a sibling element of a Splitter within a VBox or HBox layout. Specifies that if an immediate siblin…
 
Specifies the margin for this component. The margin can be a single numeric value to apply to all sides or it can be …
 
The maximum value in pixels which this Component will set its height to. Warning: This will override any size manag…
 
The maximum value in pixels which this Component will set its width to. Warning: This will override any size manage…
 
The minimum value in pixels which this Component will set its height to. Warning: This will override any size manag…
 
The minimum value in pixels which this Component will set its width to. Warning: This will override any size manage…
 
An optional extra CSS class that will be added to this component's Element when the mouse moves over the Element, and…
 
Specifies the padding for this component. The padding can be a single numeric value to apply to all sides or it can b…
 
An object or array of objects that will provide custom functionality for this component. The only requirement for a …
 
An object containing properties specifying DomQuery selectors which identify child elements created by the render pro…
 
Specify the id of the element, a DOM element or an existing Element that this component will be rendered into. Not…
 
An XTemplate used to create the internal structure inside this Component's encapsulating Element. You do not normal…
 
Specify as true to apply a Resizer to this Component after rendering. May also be specified as a config object to b…
 

A valid Ext.resizer.Resizer handles config string (defaults to 'all'). Only applies when resizable = true.

 

A buffer to be applied if many state events are fired within a short period. Defaults to 100.

 
Specifies whether the floating component should be given a shadow. Set to true to automatically create an Ext.Shadow,…
 
An array of events that, when fired, should trigger this object to save its state (defaults to none). stateEvents may…
 
The unique id for this object to use for state management purposes. See stateful for an explanation of saving and re…
 
A flag which causes the object to attempt to restore the state of internal properties from a saved state on startup. …
 
A custom style specification to be applied to this component's Element. Should be a valid argument to Ext.core.Eleme…
 

The class that is added to the content target when you set styleHtmlContent to true. Defaults to 'x-html'

 

True to automatically style the html inside the content target of this component (body for panels). Defaults to false.

 
True to automatically call toFront when the show method is called on an already visible, floating component (default …
 
An Ext.Template, Ext.XTemplate or an array of strings to form an Ext.XTemplate. Used in conjunction with the data and…
 
The Ext.(X)Template method to use when updating the content area of the Component. Defaults to 'overwrite' (see Ext.X…
 

A set style for a component. Can be a string or an Array of multiple strings (UIs)

 

The width of this component in pixels.

Defined By

Properties

 

Read-only property indicating whether or not the component can be dragged

 
Optional. Only present for floating Components which were inserted as descendant items of floating Containers. Floa…
 
Read-only property indicating the width of any framing elements which were added within the encapsulating element to …
 
@deprecated 4.0 Replaced by getActiveAnimation Returns thq current animation if this object has any effects actively …
 
This is an internal flag that you use when creating custom components. By default this is set to true which means tha…
 
This Component's owner Container (defaults to undefined, and is set automatically when this Component is added to a C…
 

Read-only property indicating whether or not the component has been rendered.

 
Stops any running effects and clears this object's internal effects queue if it contains any additional effects that …
 
Optional. Only present for floating Components after they have been rendered. A reference to the ZIndexManager whic…
Defined By

Methods

 

Component( Ext.core.Element/String/Object config) : void

 

 

addClass( String cls) : Ext.Component

@deprecated 4.0 Replaced by {link:#addCls} Adds a CSS class to the top level element representing this component.

 

addCls( String cls) : Ext.Component

Adds a CSS class to the top level element representing this component.

 

Adds a cls to the uiCls array, which will also call addUIClsToElement and adds to all elements of this component.

 

addEvents( Object/String o, String ) : void

Adds the specified events to the list of events which this Observable may fire.

 

addListener( String eventName, Function handler, [Object scope], [Object options]) : void

Appends an event handler to this object.

 

addManagedListener( Observable/Element item, Object/String ename, Function fn, Object scope, Object opt) : void

Adds listeners to any Observable object (or Element) which are automatically removed when this Component is destroyed.

 

addStateEvents( String/Array events) : void

Add events that will trigger the state to be saved.

 

afterComponentLayout( Number adjWidth, Number adjHeight, Boolean isSetSize, Ext.Component layoutOwner) : void

 

 

alignTo( Mixed element, String position, [Array offsets]) : Component

Aligns this floating Component to the specified element

 

animate( Object config) : Object

Perform custom animation on this object. This method is applicable to both the the Component class and the Element cl…
 
Applies the state to the object. This should be overridden in subclasses to do more complex state operations. By defa…
 

beforeComponentLayout( Number adjWidth, Number adjHeight, Boolean isSetSize, Ext.Component layoutOwner) : void

Occurs before componentLayout is run. Returning false from this method will prevent the componentLayout from being ex…
 

bubble( Function fn, [Object scope], [Array args]) : Ext.Component

Bubbles up the component/container heirarchy, calling the specified function with each component. The scope (this) of…
 

capture( Observable o, Function fn, [Object scope]) : void

Starts capture on the specified Observable. All events will be passed to the supplied function with the event name + …
 

Center this Component in its container.

 

Removes all listeners for this object including the managed listeners

 

Removes all managed listeners for this object.

 

cloneConfig( Object overrides) : Ext.Component

Clone the current component using the original config values passed into this instance by default.

 

Destroys this stateful object.

 

disable( Boolean silent) : void

Disable the component.

 
Handles autoRender. Floating Components may have an ownerCt. If they are asking to be constrained, constrain them wit…
 

doComponentLayout( Object width, Object height, Object isSetSize, Object ownerCt) : Ext.container.Container

This method needs to be called whenever you change something on this component that requires the Component's layout t…
 

doConstrain( Mixed constrainTo) : void

Moves this floating Component into a constrain region. By default, this Component is constrained to be within the c…
 

enable( Boolean silent) : void

Enable the component

 

enableBubble( String/Array events) : void

Enables events fired by this Observable to bubble up an owner hierarchy by calling this.getBubbleTarget() if present….
 
This method finds the topmost active layout who's processing will eventually determine the size and position of this …
 

findParentBy( Function fn) : Ext.container.Container

Find a container above this component at any level by a custom function. If the passed function returns true, the con…
 

findParentByType( String/Class xtype) : Ext.container.Container

Find a container above this component at any level by xtype or class

See also the up method.

 

fireEvent( String eventName, Object… args) : Boolean

Fires the specified event with the passed parameters (minus the event name). An event may be set to bubble up an Ob…
 

focus( [Boolean selectText], [Boolean/Number delay]) : Ext.Component

Try to focus this component.

 

Returns thq current animation if this object has any effects actively running or queued, else returns false.

 

getBox( [Boolean local]) : Object

Gets the current box measurements of the component's underlying element.

 

Provides the link for Observable's fireEvent method to bubble up the ownership hierarchy.

 

Retrieves the top level element representing this component.

 

Gets the current height of the component's underlying element.

 

Retrieves the id of this component. Will autogenerate an id if one has not already been set.

 

getInsertPosition( String/Number/Element/HTMLElement position) : HTMLElement

This function takes the position argument passed to onRender and returns a DOM element that you can use in the insert…
 

Gets the Ext.ComponentLoader for this Component.

 

getPlugin( Object pluginId) : Ext.AbstractPlugin

Retrieves a plugin by its pluginId which has been bound to this component.

 

getPosition( [Boolean local]) : Array

Gets the current XY position of the component's underlying element.

 

Gets the current size of the component's underlying element.

 
Gets the current state of the object. By default this function returns null, it should be overridden in subclasses to…
 

Gets the state id for this object.

 

Gets the current width of the component's underlying element.

 
Gets the xtype for this component as registered with Ext.ComponentManager. For a list of all available xtypes, see th…
 
Returns this Component's xtype hierarchy as a slash-delimited string. For a list of all available xtypes, see the Ext…
 

hasListener( String eventName) : Boolean

Checks to see if this object has any listeners for a specified event

 

Checks if there is currently a specified uiCls

 

hide( String/Element/Component animateTarget, [Function callback], [Object scope]) : Ext.Component

Hides this Component, setting it to invisible using the configured hideMode.

 

is( String selector) : Boolean

Tests whether this Component matches the selector string.

 

isDescendantOf( Ext.Container container) : Boolean

Determines whether this component is the descendant of a particular container.

 

Method to determine whether this Component is currently disabled.

 

Method to determine whether this Component is draggable.

 

Method to determine whether this Component is droppable.

 

Method to determine whether this Component is floating.

 

Method to determine whether this Component is currently set to hidden.

 

Returns true if this component is visible.

 

isXType( String xtype, [Boolean shallow]) : Boolean

Tests whether or not this Component is of a specific xtype. This can test whether this Component is descended from th…
 

nextNode( String selector, Object includeSelf) : void

Returns the next node in the Component tree in tree traversal order. Note that this is not limited to siblings, and…
 
Returns the next sibling of this Component. Optionally selects the next sibling which matches the passed ComponentQ…
 

observe( Function c, Object listeners) : void

Sets observability on the passed class constructor. This makes any event fired on any instance of the passed class a…
 

on( String eventName, Function handler, [Object scope], [Object options]) : void

Appends an event handler to this object (shorthand for addListener.)

 

previousNode( String selector, Object includeSelf) : void

Returns the previous node in the Component tree in tree traversal order. Note that this is not limited to siblings,…
 
Returns the previous sibling of this Component. Optionally selects the previous sibling which matches the passed Co…
 

relayEvents( Object origin, Array events, Object prefix) : void

Relays selected events from the specified Observable as if the events were fired by this.

 

Removes all added captures from the Observable.

 

removeCls( Object className) : Ext.Component

Removes a CSS class from the top level element representing this component.

 
Removes a cls to the uiCls array, which will also call removeUIClsToElement and removes it from all elements of this …
 

removeListener( String eventName, Function handler, [Object scope]) : void

Removes an event handler.

 

removeManagedListener( Observable|Element item, Object|String ename, Function fn, Object scope) : void

Removes listeners that were added by the mon method.

 
Resume firing events. (see suspendEvents) If events were suspended using the queueSuspended parameter, then all event…
 
Ensures that all effects queued after sequenceFx is called on this object are run in sequence. This is the opposite …
 

setActive( Boolean active, Component newActive) : void

This method is called internally by Ext.ZIndexManager to signal that a floating Component has either been moved to th…
 

setAutoScroll( Boolean scroll) : Ext.Component

Sets the overflow on the content element of the component.

 

Enable or disable the component.

 

setDocked( Object dock, Object layoutParent) : Component

Sets the dock position of this component in its parent panel. Note that this only has effect if this item is part of …
 

setHeight( Number height) : Ext.Component

Sets the height of the component. This method fires the resize event.

 

setLoading( Boolean/Object/String load, Boolean targetEl) : Ext.LoadMask

This method allows you to show or hide a LoadMask on top of this component.

 

setPagePosition( Number x, Number y, Mixed animate) : Ext.Component

Sets the page XY position of the component. To set the left and top instead, use setPosition. This method fires the …
 

setPosition( Number left, Number top, Mixed animate) : Ext.Component

Sets the left and top of the component. To set the page XY position instead, use setPagePosition. This method fires …
 

setSize( Mixed width, Mixed height) : Ext.Component

Sets the width and height of this Component. This method fires the resize event. This method can accept either width …
 
Sets the UI for the component. This will remove any existing UIs on the component. It will also loop through any uiCl…
 

setVisible( Boolean visible) : Ext.Component

Convenience function to hide or show this component by boolean.

 

setWidth( Number width) : Ext.Component

Sets the width of the component. This method fires the resize event.

 

show( String/Element animateTarget, [Function callback], [Object scope]) : Component

Shows this Component, rendering it first if autoRender or {"floating are true. After being shown, a floating C…
 
@deprecated 4.0 Replaced by stopAnimation Stops any running effects and clears this object's internal effects queue i…
 

suspendEvents( Boolean queueSuspended) : void

Suspend the firing of all events. (see resumeEvents)

 
Ensures that all effects queued after syncFx is called on this object are run concurrently. This is the opposite of …
 

Sends this Component to the back of (lower z-index than) any other visible windows

 

toFront( [Boolean preventFocus]) : Component

Brings this floating Component to the front of any other visible, floating Components managed by the same ZIndexManag…
 

un( String eventName, Function handler, [Object scope]) : void

Removes an event handler (shorthand for removeListener.)

 

up( String selector) : Container

Walks up the ownerCt axis looking for an ancestor Container which matches the passed simple selector. Example: var …
 

update( Mixed htmlOrData, [Boolean loadScripts], [Function callback]) : void

Update the content area of a component.

 

updateBox( Object box) : Ext.Component

Sets the current box measurements of the component's underlying element.

Defined By

Events

 

Fires after a Component has been visually activated.

 

added( Ext.Component this, Ext.container.Container container, Number pos)

Fires after a Component had been added to a Container.

 
Fires after the component rendering is finished. The afterrender event is fired after this Component has been rende…
 
Fires before a Component has been visually activated. Returning false from an event listener can prevent the activate…
 
Fires before a Component has been visually deactivated. Returning false from an event listener can prevent the deacti…
 

Fires before the component is destroyed. Return false from an event handler to stop the destroy.

 

Fires before the component is hidden when calling the hide method. Return false from an event handler to stop the hide.

 

Fires before the component is rendered. Return false from an event handler to stop the render.

 

Fires before the component is shown when calling the show method. Return false from an event handler to stop the show.

 

beforestaterestore( Ext.state.Stateful this, Object state)

Fires before the state of the object is restored. Return false from an event handler to stop the restore.

 

beforestatesave( Ext.state.Stateful this, Object state)

Fires before the state of the object is saved to the configured state provider. Return false to stop the save.

 

Fires after a Component has been visually deactivated.

 

Fires after the component is destroyed.

 

Fires after the component is disabled.

 

Fires after the component is enabled.

 

hide( Ext.Component this)

Fires after the component is hidden. Fires after the component is hidden when calling the hide method.

 

move( Ext.Component this, Number x, Number y)

Fires after the component is moved.

 

removed( Ext.Component this, Ext.container.Container ownerCt)

Fires when a component is removed from an Ext.container.Container

 

Fires after the component markup is rendered.

 

resize( Ext.Component this, Number adjWidth, Number adjHeight)

Fires after the component is resized.

 

show( Ext.Component this)

Fires after the component is shown when calling the show method.

 

staterestore( Ext.state.Stateful this, Object state)

Fires after the state of the object is restored.

 

statesave( Ext.state.Stateful this, Object state)

Fires after the state of the object is saved to the configured state provider.

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

JQuery, How to pass parameters in get requests

Just use data option of ajax.. you can send data object to server by data option in ajax and the type which defines how you are sending it (either POST or GET)..default is get method

code

$.ajax({    url: "ajax.aspx",    type:"get", //send it through get method    data:{ajaxid:4,UserID: UserID , EmailAddress:encodeURIComponent(EmailAddress)}     success: function(response) {      //Do Something    },    error: function(xhr) {      //Do Something to handle error    }  });

and you can get the the datas by

 $_GET['ajaxid'] //gives 4   $_GET['UserID'] //gives you the sent userid

Hery – Freelance IT Trainer – 081223344506

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Form Valiidation using Html 5 and Css3

Freelance IT Trainer, Bandung, jakarta, Bali, yogya

Tutorial

In HTML5 forms got a major upgrade with the addition of some simple, yet flexible validation attributes. To support these added attributes CSS3 also added several new pseudo selectors styling controls based on their validation state.

Adding validation

To illustrate the new attributes and some of the new input types, we’ll be building up a simple sign up form. Every sign up form is essentially the same, you fill in your details and click submit. How many times has the form been reset on you after you’ve missed a required value or not provided a strong enough password?

initial

To help prevent this, the first attribute we’ll be using is the required attribute. Adding this to a input box will prevent the form from submitting until a value has been provided.

<form name="signup-form">      <label for="firstname">Firstname:</label>      <input id="firstname" name="firstname" type="text" required />            <label for="surname">Surname:</label>      <input id="surname" name="surname" type="text" required />            <label for="email">Email:</label>      <input id="email" name="email" type="text" required />            <label for="website">Website:</label>      <input id="website" name="website" type="text" />            <label for="password">Password:</label>      <input id="password" name="password" type="password" />            <input type="submit" value="Signup!" />    </form>  

The next attribute we’ll be adding is the autofocus attribute. This attribute automatically assigns focus to the form on page load. This is a simple enhancement, but one that makes life so much easier.

<input id="firstname" name="firstname" type="text" required autofocus />  

Next up is the placeholder attribute. This places a sample value or hint in the input box. Depending on the browser, clicking or typing in the input will automatically hide it, but it will re-appear if the input is emptied again

<input id="email" name="email" type="text" placeholder="jonny@schnittger.me" required />  

HTML5 also introduced a few new input types, the first one we’ll be using is the email type. This performs basic validation on the value to ensure it meets standard email format rules.

<input id="email" name="email" type="email" placeholder="jonny@schnittger.me" required />  

Another input type that was added was the url type, as with the email type it makes sure that a valid url including http:// or https:// strings are included.

<input id="website" name="website" type="url" placeholder="http://schnittger.me" />  

The final attribute we’ll be looking at is the pattern attribute. The pattern attribute allows you to specify a regular expression that will be used to validate the input value. This gives you the option of doing some pretty powerful client-side validation. In this example, we’re going to make sure the password field has at least 1 lowercase, 1 uppercase value and is at least 6 characters long.

<input id="password" name="password" type="password" pattern="^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z]).*$" placeholder="******" required />  

One attribute that has been tweaked in Chrome and Opera is the title attribute. In Chrome/Opera the title attribute will be appended to the validation error message. This means you can slightly customize the message for your users.

The final form looks like this

<form name="signup-form">      <label for="firstname">Firstname:</label>      <input id="firstname" name="firstname" type="text" title="Please enter your firstname" placeholder="Jonny" autofocus required />            <label for="surname">Surname:</label>      <input id="surname" name="surname" type="text" title="Please enter your surname" placeholder="Schnittger" required />            <label for="email">Email:</label>      <input id="email" name="email" type="email" title="Please enter your email address" placeholder="jonny@schnittger.me" required />            <label for="website">Website:</label>      <input id="website" name="website" type="url" title="Please enter the url to your website (optional)" placeholder="http://schnittger.me" />            <label for="password">Password:</label>      <input id="password" name="password" type="password" title="Please enter a password, it must contain at least 1 lowercase and 1 uppercase character and be at least 6 characters in length" pattern="^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z]).*$" placeholder="******" required />            <input type="submit" value="Signup!" />    </form>  

invalid

Customizing validation styles

CSS3 introduced several new pseudo selectors to help style forms based on their validation state. We’ll be looking at the following four

  • :invalid
  • :valid
  • :required
  • :optional

Using these selectors you can provide clear, visual guides to what exactly is incorrectly filled out in a form. Here I am styling invalid inputs with a red background and valid ones with a green background. I’m also providing a more complex selector to display and asterisk image in required inputs while maintaining the colored background. Finally I’m styling optional fields in a blue.

input:not([type=submit]):invalid {      background-color: #ffdddd;  }    input:not([type=submit]):valid {      background-color: #ddffdd;  }    input:not([type=submit]):invalid:required {      background: #ffdddd url('http://developerdrive.developerdrive.netdna-cdn.com/wp-content/uploads/2013/08/asterisk1.png') no-repeat right top;   }    input:not([type=submit]):valid:required {      background: #ddffdd url('http://developerdrive.developerdrive.netdna-cdn.com/wp-content/uploads/2013/08/asterisk1.png') no-repeat right top;   }    input:not([type=submit]):optional {      background-color: #add1ef;  }  

final

freelance IT Trainer , Hery – 081223344506

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Jquery Mobile Dynamic Listview Tutorial Complete Refferences

Freelance IT Trainer , (Hery 081223344506)

  1. jQM – Dynamically Populate Listview from JSON – JSFiddle

    jquery.mobile-1.4.0-beta.1.min.js Remove; jquery.mobile-1.4.0-beta.1.min.css Remove … <ul data-role="listview" id="movie-list" data-theme="a">. 10. 11. </ul>.

  2. How to populate a jQuery Mobile ListView with JSON data …

    stackoverflow.com/…/how-to-populate-a-jquerymobilelistview-with-jso

    Aug 5, 2013 – Solution. Yes. Its possible to have two pages and use one for displaying your data and one to show up the details of the clicked item. I had to pull in …

  3. Populating jQuery Mobile ListView with local JSON data …

    stackoverflow.com/…/populating-jquerymobilelistview-with-local-json-…

    Feb 19, 2014 – First of all, the return JSON array is wrong, values (properties) should be separated by commas. var data = [{ "name": "test", "calories": "1000", "fat": …

  4. Generate listview with json jquery mobile – Stack Overflow

    stackoverflow.com/questions/…/generate-listview-with-jsonjquerymobil

    Apr 15, 2013 – Try this code, $(document).on('pageshow', '#page', function(){ $("#page div:jqmData(role=content) #matches ul").empty(); $.getJSON("test.php" …

  5. jquery mobile json listview – all the list loaded at one time …

    forum.jquery.com/…/jquerymobilejsonlistview-all-the-list-loade…
    jQuery
    Dec 31, 2013 – 6 posts – ‎4 authors

    jQuery Support Portal. … jQuery: Write Less, Do More. jQuery · Plugins · UI · Meetups · Forum · Blog · About · Donate · All Forums · Recent Posts …

  6. jQueryMobile – JSON feed and dynamic list | John Chacko

    Apr 17, 2013 – How to dynamically populate a jQueryMobile listview from JSON data? Here is a sample application using google news feed and populating …

  7. jQuery Mobile – Listview | Intel® Developer Zone

    https://software.intel.com/en-us/html5/…/jquerymobilelistview
    Intel

    Sep 11, 2013 – Please refer to the jQuery Mobile and jQuery overview articles for …. components of the listview based on the expected JSON data format.

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Jual Rumah di Bandung

 
Dekat Cicaheum Bandung, Giri Mekar Permai Cijambe
Jual Rumah – Dekat Cicaheum Bandung, Giri Mekar Permai Cijambe
LB /LT : 80 /119 , Kamar Tidur : 3, Kamar Mandi : 2 , Carport/parkir area: Ada
Instalasi aktif terpasang :
Telepon Internet TV Kabel AC
Χ Χ Χ
Komplek Giri Mekar Permai Blok B Cijambe Ujung Berung
Jawa Barat , Bandung , Cijambe Ujung Berung
Rp 650.000.000 ( Kisaran harga 600 juta – 1 Milyar )
Tanggal Iklan : 30-Dec-14 13:46 wib. Dilihat 46 kali
* Hubungi pemilik iklan melalui Telepon/HP atau Email atau Langsung ke Lokasi
Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Hotel Murah di Bandung

Cari ,Hotel, Murah, Bintang, sekitar , dekat, dengan, dago, riau , setiabudi, trans studio, pvj mall, lembang, stasiun bandung, husein, bip, banda, kampung gajah, cimahi, jatinangor, ujung berung, cicaheum, soekarno hatta, leuwi panjang, cibaduyut, tangkuban perahu, rumah mode, cipaganti, sukajadi, supratman, gedung sate,

Bandung Hotels, hotwl murah, bandung


Rumah Aria Graha
Rates start from :
USD 76
IDR 744,800
Jl. Aria Barat 3 No 7
Bandung Indonesia
Rumah Dyandra
Rates start from :
USD 98
IDR 960,400
Jl. Pasirjaya V No. 13
Bandung Indonesia
Villa Istana Bunga 6 Bedrooms
Rates start from :
USD 621
IDR 6,085,800
Jl. Kolonel Masturi KM 9 Parompong
Bandung Indonesia

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Freelance IT and Management , Personal Trainer, Bandung, Jakarta, Bali, Yogya , 081223344506

Hery Purnama is a Freelance IT and Management , Personal Trainer, Bandung, Jakarta, Bali, Yogya , Call/ sms 081223344506, PinBB – 7DC633AA , hery.purnama@gmail.com , http://freelance-it-trainer.blogspot.com,  15 years experience as Certified Trainer

MANAGEMENT TOPICS

Hery Purnama Management Freelancer Personal Trainer :
Project Management, Marketing, CRM, HR/SDM, Asset & Logistic, Finance , Leadership, Communication, Team Building

IT TOPICS
Hery Purnama IT Freelancer Personal Trainer :
Android Jquery Mobile – phonegap, Excel VBA Macro, MS. Access VBA Programming, Google Map API V.3, Google SketchUp 3D, SMS Gateway, Sencha ExtJS, PHP Ajax Jquery, PHP Yii Framework, Code Igniter, Project Management, Microsoft Project , Oracle DBA, SQL Server DBA, MySQL DBA, Visual Foxpro, VB.Net, ASP.net, Python Desktop and Web Programming , ITIL Foundation V.3 (2011) , RDBMS – Databas Concept, Web Design Concept , UML , Corel Draw, Adobe Photoshop, Adobe Dreamweaver , Adobe Director, Adobe Fireworks, Adobe Flash, Action Script, Lingo Script, Etc.

Most of demands are for Excel VBA Macro , Project Management with MS. Project , Mobile Apps Development for Android using PHP Jquery Mobile and Phonegap

For inquiry do not hesitate to contact me at : 081.223344.506

Thanks,

Regards,
Hery Purnama
Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

SEO , Top Keyword Research 2015

Google's Hummingbird update created a lot of anxiety, but ultimately, it could be a good thing for the industry, because it frees us from the tyranny of competing for a limited number of top keywords. Essentially, the role of the Hummingbird algorithm is to better answer those longer-tail queries users are typing in Google. If your pages are optimized for these more conversational queries, you have a better chance of top rankings. Try a new, niche-based approach to keywords, which allows you to double or even triple the list of profitable keywords in your SEO arsenal.

This article explains the four steps for doing keyword research the modern way, using SEO PowerSuite or other tools.
1. Ideas:

Most search marketers simply think of the main keywords related to their businesses, plop them into a tool like Google Keyword Planner, and then run with the keyword list it delivers. However, search habits vary widely: Searchers may use hundreds of different word combinations to describe the same thing, so this tactic omits hundreds of potentially profitable keywords.

Instead, try a more creative, ideas-based approach to your research. For example, if you hear the phrase office furniture, some associations you may have are chairs, tables, equipment, cubicles, or office design.
Related articles

    5 SEO Strategies That Will Still Work in 2015
    Navigating Secure Search: From Keywords to Content [BrightEdge Share 14]
    How to Win in Organic Search: Tips from Google, Bing and Brands
    How to do SEO for Local Business, WITHOUT Content Marketing
    The 3Ps of Content Measurement: Page Rank, Traffic & Engagement

But none of those associations will show up in Google Keyword Planner, because it shows you only the most closely related search terms. To get ideas based on these niche associations, first use your brain: Come up with as many associations that you can. Check competitors' sites and blogs. You'll be able to find more keyword ideas and also spot if they target just the key phrases from the Google Keyword Planner or if they have a smart keyword strategy.

Next, turn to multiple research methods to come up with still more niche keyword ideas:

    Related searches in Google, Bing, and Yahoo
    Google auto-complete
    Yahoo Search Assist
    Competition Research harvests keywords from your top-ranking competitors' meta tags
    SEMRush provides keywords from its unique keyword database
    Word Mixer shuffles the keywords you enter to build more variants of phrases
    SEO PowerSuite's Rank Tracker automates the search-engine suggestion process

Other good sources for keyword ideas include forum discussions, dictionaries and the thesaurus, and Wikipedia topic categories and articles related to your topic. The more research methods you use, the better. Each method will generate new suggestions.
2. Words:

Now it's time to pick the keywords that are truly relevant. Go through the list and remove the terms that don't seem very relevant to your product or service – even if a keyword tool said they were. Effective as they are, automated keyword research tools are not humans, so the results need to be evaluated by you.

Why not just use the Google Keyword Planner? Certainly, it's quick and easy, but it can be misleading. For example, the average monthly searches metric is just a rough estimate, not an accurate indicator of search volume. As well, search volume can vary widely from month to month. For example, seasonal keywords like "Christmas gifts" may get 350,000 searches in December and 100 in June. Meanwhile, the competition metric reflects the number of advertisers bidding on that keyword; if you're doing organic SEO, this metric can be pretty useless.

Instead, focus on longer, less popular keyword phrases. Those long-tail phrases don't receive huge search volumes, but they are less competitive, so it's easier for you to squeeze into the top 10. They tend to be more targeted and therefore better-converting. As a bonus, they already include the competitive short-tail words, so when you optimize for long-tail, you also optimize for the shorter, "head" words.

If you're looking for keyword phrases that will convert, choose words that signal commercial intent, rather than a hunt for information. Look for quick-sale words including buy, coupon, discount, deal, cheap, or shipping. Product-description words that people use to find out more about the products they are already interested in include review, best, and top 10, as well as product categories, specific products, and brand names.
3. Analysis:

Now that you've developed a solid list of potential keywords and phrases, it's time to do some analysis. Instead of relying on the old search-volume metric, use the more robust keyword effectiveness index (KEI) and Keyword difficulty score to see how hard it’ll be to rank for a keyword. These metrics take several niche-based factors into account, thus giving you an opportunity to prioritize your keywords based on their difficulty.

Additionally, you can detect keywords with higher commercial intent by looking at their estimated cost-per-click bids. Some keywords cost multiples more compared to other related ones. This means that more people compete for these words in Google AdWords, since they bring them more conversions and sales.
4. Competition:

To finalize your list of keywords, you need to understand how hard it will be to outrank competitors for each of them. This is the best way to evaluate your true opportunities.

Here are the factors that you need to check for within the top-ranking pages in the search results for your main keywords in Google:

    Backlinks – Identify the backlinks to the search landing page. The search engines consider backlinks as votes for a certain page, so the more links your competitor has, the harder it may be to outrank this site.
    On-page SEO – Evaluate the quality of on-page optimization of the competing pages by scanning their titles, descriptions, content, and internal link anchors.
    Content – Users love unique and useful content – and so does Google. Inspect competitors' page for quality content.
    Domain authority – Finally, check the age of the competing domains, their Alexa rank, and their popularity in social media.

If you are just beginning your modern SEO strategy, you may want to remove all keywords that your competitors have ranked for, even if the KEI is good. With millions of sites competing for rankings for a given keyword, it will take you a while to rank high for the term. Also discard keywords and phrases with the worst KEI; these terms have both intense competition and low search volume, so optimizing for them is not worthwhile at this point.

Out of the remaining keywords, choose the ones with the best KEI. You should now have a list of lucrative, low-competition keywords that will bring you lots of conversions.

If you're struggling with the research, let Rank Tracker easily find these keywords for you. For more information on how to use Rank Tracker to find the best-performing keywords and phrases, read our Ultimate Guide to Keyword Research with Rank Tracker. Happy hunting


Requoted by

SISINDOTEK – IT Training & Solution Provider

Office 1 : Jl. Pelajar Pejuang 45 No.23 , Lt.2 Bandung – Jawa Barat
Office 2 : Jl. Sukasenang VI-6B Bandung – Jawa Barat 40124
Tel. 022-71242266, SMS. 0812.8733.1966
info@sisindotek.com , YM. sisindotek
Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Ms. Excel , INDIRECT function for dynamic range

INDIRECT Formula used to Total a Dynamic Range of Values

This example is based on the data shown in the image above.

The SUM – INDIRECT formula created by using the tutorial steps below is:

=SUM(INDIRECT("D" &E1& ":D" &E2))

In this formula, the nested INDIRECT function's argument contains references to cells E1 and E2. The numbers in those cells, 1 and 4, when combined with the rest of INDIRECT's argument, form the cell references D1 and D4.

As a result, the range of numbers totaled by the SUM function is the data contained in the range of cells D1 to D4 – which is 50.

By changing the numbers located in cells E1 and E2; however, the range to be totaled can be easily changed.

This example will first use the above formula to total the data in cells D1:D4 and then change the summed range to D3:D6 without editing the formula in cell F1.

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

MS Excel, Create Running total with SUM

If you’re using worksheet formulas, instead of a pivot table, there’s nothing built in that will automatically create a running total for you. Fortunately, with a simple SUM formula, you can calculate the running total in each row, to see how your bank account is doing.

Use the SUM Function

In this example, there are withdrawal and deposit amounts in cells C2:C6. We could use the SUM function to total the amounts in column C, and that would give us the current total.

sumcolumn

Instead, we’ll use the SUM function in each row, to calculate the running total. We’ll be able to see the total after each withdrawal and deposit.

The formula in cell D2 is: =SUM(C$2:C2)

sumrunningtotal01

That $ sign locks the reference to row 2, at the start of the sum, so it doesn’t change when the formula is copied down to cell D6.

The ending cell – C2 – is a relative reference, so the ending point changes for each row. For example, in cell D6, the formula shows C6 as the ending cell for the SUM formula.

sumrunningtotal02

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

MS Excel, Cara membuat saldo berjalan

Berikut adalah cara menghitung saldo berjalan  di Microsoft Excel :

  1. Langkah pertama anda membuat microsoft excel kemudian pilih worksheet yang tersedia atau anda dapat mengisikan data di workbook.
  2. Kemudian anda dapat menambahkan garis sehingga terbentuk tabel pada laporan anda. Caranya anda dapat blok semua data kemudian klik garis untuk membuat tabel.
  3. Selanjutnya pada kolom saldo anda dapat menambahkan rumus, yaitu misalnya datanya  dengan =IF(OR(D2<>0;E2<>0);SUM($D$2:D2)-SUM($E$2:E2);0) . Dengan keterangan kolom debet yang terdapat pada sel D2, kemudian kredit pada sel E2. Dan masukkan kode tersebut di sel F2. Pada dasarnya Anda dapat menyesuaikan kolom debet dan kredit dengan tabel sehingga menganti kode sesuai dengan data yang terdapat di tabel anda. Sedangkan bagi anda yang akan menambah penjumlahan saldo maka anda dapat mengarahkan kursor ke arah bawah kemudian tunggu hingga berubah menjadi +, selebihnya click and drag.

Itulahh cara yang dapat anda lakukan untuk menghitung saldo berjalan di Microsoft Excel sehingga membantu proses kerja anda lebih mudah.

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Freelance personal trainer jakarta, bandung, surabaya, semarang, bali, singapore

Hery Purnama +62.81.223344.505 , pinbb : 7dc633aa ,freelance personal trainer for management, marketing, IT, excel vba macro, android phonegap, Sencha extjs, code igniter, yii framework, google map api, google sketchup 3d, php ajax jquery, uml, rdbms concept, project management, ms project, ms access, excel for accounting, ITIL , oracle dba, sql server, VB.net , asp.net, sms gateway, marketing strategy. Pengajar freelance , 15 years experience and certified trainer Call +62.81.223344.506 for invitation or goto http://freelance-it-trainer.blogspot.com

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Excel VBA , Clear Table Formatting

Using the code on Worksheets with only one table you could just use the index number instead of the name:

ActiveSheet.ListObjects(1).TableStyle = ""

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT

Istilah akuntansi dalam Bahasa Inggris

Buat Anda yang sedang buat aplikasi Akuntansi , muingkin istilah berikut membantu

Aktiva = asset
Aktiva bersih = net asset
Aktiva lancar = current assets
Aktiva tetap = fixed assets
Aktiva tetap berwujud = tangible fixed assets
Aktiva tetap tidak berwujud = intangible fixed assets
Akumulasi = accumulation
Akumulasi penyusutan = accumulated depreciation
Akumulasi penyusutan bangunan = accumulated depreciation of building
Akumulasi penyusutan kendaraan = accumulated depreciation of vehicle
Akumulasi penyusutan mesin = accumulated depreciation of machinary
Akumulasi penyusutan peralatan = accumulated depreciation of equipmen
Akun = account
Akuntansi = accounting
Akuntansi anggaran = budgeting
Akuntansi biaya = cost accounting
Akuntansi kemasyarakatan = social accounting
Akuntansi keuangan = financial accounting
Akuntansi manajemen = management accounting
Akuntansi pemerikasaan = auditing
Akuntansi pemerintahan = government accounting
Akuntansi perpajakan = tax accounting
Arus kas = cash flow
Asuransi bayar dimuka = prepaid insurance
B
Bangunan = building
Barang dagangan = merchandise
Barang siap jual = goods available for sale
Beban = expense
Beban administrasi dan umum = administrative and general expense
Beban asuransi = insurance expense
Beban bunga = interest expense
Beban dibayar dimuka = prepaid expense
Beban gaji = salaries expense
Beban iklan = advertise expense
Beban komisi = commission expense
Beban luar usaha = non operating expense
Beban pajak = 
tax expense
Beban penjualan = selling expense
Beban penyusutan = depreciation expense
Beban penyusutan kendaraan = depreciation expense of vehicle
Beban penyusutan peralatan = depreciation expense of equipment
Beban perlengkapan = supplies expense
Beban sewa = rent expense
Beban usaha = operating expense
Beban yang masih harus dibayar = accrued expensed
Biaya angkut pembelian = freight in/transportation in/carriage inward
Biaya angkut penjualan = freight out/transportation out/carriage outward
Bukti pembelian = purchase invoice
Bukti penjualan = sales invoice
Bukti-bukti dokumen = source of document
Buku besar = ledger
Buku besar pembantu piutang = account receivable subsidiary ledger
Buku besar pembantu utang = account payable subsidiary ledger
Buku besar tambahan/pembantu = subsidiary ledger
Buku besar umum = general ledger
Buku persediaan = stock ledger sheets


D
Debitur = debtor
Debet = debt

E
Efek/surat berharga = marketable securities

F
Faktur = invoice

H
Hak atas kekayaan = equities
Hak cipta = copyright
Hak perolehan = historical cost/at cost
Harga pokok penjualan = cost of goods sold

I
Iklan dibayar dimuka = prepaid advertising
Ikhtisar laba rugi = income summary
Investasi tambahan = additional investment

J
Jatuh tempo = maturity
Jurnal = Journal
Jurnal khusus = special journal
Jurnal koreksi = correction entries
Jurnal pembalik = reversing entries
Jurnal penerimaan kas = cash receipt journal
Jurnal pengeluaran kas = cash disbursement/cash payment journal
Jurnal penjualan = sales journal
Jurnal penutup = closing entries
Jurnal penyesuaian = adjustment entries
Jurnal umum = general entries

K
Kartu persediaan = stock card
Kartu piutang = debtors account
Kas di bank = cash in bank
Kas di tangan = cash on hand
Kekayaan = property
Kekayaan bersih = net worth
Kertas saham = worksheet
Keuntungan saham = dividend
Kewajiban = liabilities
Kewajiban jangka panjang = long term liabilities
Kewajiban lancar/jangka pendek = current liabilities
Konsep kesatuan usaha = business unit entity concept
Kredit = credit

L
Laba bersih = net income
Laba ditahan = retained earnings
Laba kotor = gross profit
Laba operasional = operating income
Laba penjualan aktiva = gain on sale of assets
Laba usaha = operating income
Laporan = report form
Laporan akuntansi = accounting statement
Laporan keuangan = financial statement
Laporan laba rugi = income statement

M
Merek dagang = trademark
Mesin = machinary
Modal = capital
Modal akhir periode = ending capital
Modal awal periode = beginning capital
Modal pemilik = owner's equity
Modal pinjaman = debt capital
Modal saham = capital stock

N
Nama akun = account title
Nama baik = goodwill
Neraca = balance sheet
Neraca saldo = trial balance
Neraca saldo setelah pentupan = post closing trial balance
Neraca saldo setelah penyesuaian = adjusted trial balance
Nilai buku = book value
Nilai jatuh tempo = maturity value
Nilai masa kini = current value
Nilai residu = residual value
Nota debet/kredit = debt/credit memo

O
Obligasi utang = bond payable

P
Pabrik = manufacturing
Pajak penghasilan = income tax
Pembelian = purchases
Pembelian bersih = net purchase
Pembukuan = book keeping
Pembukuan berpasangan = double entry book keeping
Penafsiran = interpeting
Pencatatan = recording
Pendapatan = income/revenue
Pendapatan bunga = interest income/revenue/earned
Pendapatan jasa = fees income
Pendapatan jasa diterima dimuka = unearned service revenue
Pendapatan komisi = commission revenue
Pendapatan luar usaha = non operating revenue
Pendapatan sewa = rent income/revenue
Pendapatan sewa diterima dimuka = unearned rent
Pendapatan usaha = operating revenue
Pendekatan neraca = balance sheet approach
Pengelompokan = classifying
Pengeluaran = expenditure
Pengendalian persediaan = stock control
Pengikhtisaran = summarizing
Pengukuran = measuring
Penjualan = sales
Penjualan bersih = net sales
Penjualan kredit = sales on credit/credit sales
Penjualan tunai = cash sales
Penyusutan = depreciation
Peralatan = equipment
Periode akuntansi = accounting period
Periode fiskal = fiscal period
Perlengkapan = supplies
Persamaan dasar akuntansi = accounting equation
Persediaan akhir barang dagangan = ending inventory/stock
Persediaan awal barang dagangan = beginning inventory/stock
Perusahaan dagang = commercial enterprise/trading company
Perusahaan jasa = service enterprise
Perusahaan perorangan = proprietorship/ownership
Piutang bunga = interest receivable
Piutang usaha = account receivables
Pos-pos neraca = balance sheet items
Potongan dagang = trade discount
Potongan pembelian = purchase discount/discount received
Potongan penjualan = sales discount/discount allowed
Potongan tunai = cash discount
Prive = drawing/withdrawl

R
Retur pembelian = purchase return
Retur penjualan = sales return
Rugi bersih = net loss
Rugi operasional = operating loss
Rugi penjualan aktiva = loss on sale of assets

S
Saham = stock
Saldo akun = account balance
Saldo sisa = balance
Sewa dibayar dimuka = prepaid rent
Sistem akuntansi = accounting system
Sistem berkala/terus-menerus = perpetual system
Suku bunga = interest rast
Syarat pembayaran = credit term

T
Tanah = land
Tanda pemeriksaan = check mark
Tata buku berpasangan = double entry
Transaksi = transaction

U
Utang = debt
Utang bank = bank loan
Utang bunga = interest payable
Utang gaji = salaries payable
Utang hipotik = mortgage
Utang pajak = tax payable

W
Wesel bayar = notes payable
Wesel tagih = notes receivable

Hery Purnama – 081.223344.506 – inhousetrainer@yahoo.com.
Freelance IT Trainer, Trainer Excel VBA Macro, Trainer Sencha ExtJS, Trainer Google Map API, Trainer SPSS, Trainer MS Project, Trainer Primavera, Trainer Google Sktechup 3D, Trainer Android Phonegap, Trainer Oracle, Trainer SQL Server, Trainer MySQL, Trainer PHP Jquery Mobile , Trainer Java, Trainer HTML5 Javascript, Trainer SEO Internet Marketing, Trainer Project Management, Trainer SMS Gateway, Trainer CMS WordPress, ITIL, COBIT