Web browser gw begini, Internet explorer, Netscape, Firefox, Konqueror, Lynx, Flocks, Opera, Safari, Chrome

Setelah mencoba beberapa rasa web browser:
  1. Internet Explorer versi 1 sampe 8 di win
  2. Netscape 7 sampai 9 di win
  3. Firefox versi 1 sampai 3 di win & 2 dan 3 di linux & 3 di mac
  4. Konqueror di linux, entah versinya
  5. Lynx entah versi berapa
  6. Flocks versi 1 dan 2 di win
  7. Opera versi 6 sampai 9 di win & 7 sampai 9 di linux
  8. Safari versi 3 dan 4 di win & versi 3 di mac
  9. Chrome versi 1 di win
Dulu, jaman web browser cuma ada IE dan Netscape, gw suka IE karena lebih kenceng dari Netscape. Itu kayanya cuma sugesti aja deh, paling beda seperberapa detik aja. Tapi yah.. kondisinya kaya perang antara IE dan Firefox di tahun 2000an sekarang ini. Berarti IE itu udah hidup dari generasi awal2 dan sampai sekarang, dan tetap menjadi browser yang selalu menjadi perhatian. Sayang netscape udah tidak melakukan inovasi lagi. Netscape sudah terhenti di versi 9, mungkin kalah pamor dengan beberapa browser muda.

Ketika mencoba sistem operasi linux, pertama kali saya melihat web browser selain internet explorer & netscape. Namanya Konqueror, awalnya malah saya pikir itu tools untuk exploring direktori di linux, seperti windows explorer di windows. Ternyata konqueror juga menjadi web browser bawaannya. Ya kalo dipikir-pikir sih windows explorer juga bisa berubah menjadi internet explorer kan. Intinya konqueror tidak menjadi favorit bagi saya. Gatau kenapa ya, segala aplikasi di linux gw kurang nyaman makenya, apalagi yang GUI, hiiiii ga enjoy deh eikeeh. Emang sih tampilan bisa bagus, malah kadang lebih bagus dan keren dari windows / mac. Tapi aduh.... ga bisa kerja gw hihi. Linux mah paling enak cuma di console based aja. Oiya gw pernah browsing pake lynx. Tapi dalam kondisi tertentu aja, misalnya untuk ngeliat kondisi accessibility suatu website. Lucu deh.

Selanjutnya Flocks, nah flocks ini cocok banget untuk elo yang "gaul". Cyaaah gaul, maksud gw untuk orang yang punya banyak account di beberapa situs social networking. Elo bisa memanage account2 lo pake flocks dengan lebih enak. Mau nulis blog tinggal ini, buka ini tinggal ini, upload foto tinggal ini, upload video tinggal itu.. ya gitu deh... gaul.


Kalo Opera, pertama kali make di lingkungan linux. Awalnya gw pikir opera adalah aplikasi yang lebih fokus menjadi web browser ketimbang konquer. Opera mulai gw suka setelah versi 8.
  • Karena dia doang yang punya multi tab save session.
  • Dia juga bisa dibilang paling kenceng untuk browsing waktu itu.
  • Download juga jadi kenceng dan lebih jarang putus dibanding web browser lain.
  • Opera juga bisa melakukan save web page beserta CSSnya. Jadi web yang kita buka, bisa terlihat sama seperti kita buka di internet. Dulu cuma opera doang lho yang bisa gini.
  • Dari sisi aplikasi, dia juga paling cepet enginenya, mau save, mau open browser, close browser, lebih kenceng dibanding lainnya.
  • Yang versi 9, tampilannya lebih ganteng, banyak inovasi-inovasi.
  • Sekarang gw pake Opera cuma untuk testing kerjaan gw masalah xhtml/css web browser compatibility dan kalo kepaksa browsing di tube gw.

Safari, pertama kali nyobain di safari versi 3 nya windows. Maklum bang, aye kaga perna punya mac, baru nyobain safari di mac juga setelah nyobain safari 3 di windows. Safari ga bisa memenuhi kebutuhan teknis gw. Tapi memang ada taste tersendiri ketika menggunakan safari. Elo udah nyobain yang versi 4 belum? Cobain deh.. Lebih ganteng lagi tu. Tadinya gw pake safari untuk bacain RSS, tapi eh.. waktu untuk mbaca2 udah berkurang. Tadinya juga gw testing browser compatibility pake safari, terus akhir2 ini safari dalam beberapa kondisi sudah sama dengan firefox.

Chrome, browser termuda kita. Inovasi enginenya bagus banget. Apalagi kalo udah ada addons, bakalan ganteng banget tu kayanya. Untuk sekarang chrome belum bisa memenuhi kebutuhan teknis gw. Chrome cuma gw pake untuk browsing aja.

Akhirnya, dari semua sisi kenyamanan, keampuhan, gw masih tetep megang firefox yang disertai beberapa add ons yang udah gw customize. Firefox sebenarnya mirip dengan netscape, mozila, chrome, safari, flocks. Bedanya sekaligus kelebihannya, firefox punya addons. Addons inilah yang membuat gw jatuh cinta ke firefox. Ini gw latin addons yang berguna bagi gw:


Gw coba ngasih penjelasan ke beberapa addons yang penting banget bagi gw:
  1. Download Helper, untuk download content2 video / mp3 yang sering nongol di web tapi ga bisa di download otomatis.
  2. CSS Viewer, kalo ini lebih ke teknis sih, kita bisa ngeliat di area tertentu, CSS seperti apa yang diterapkan
  3. Web Developer, ini teknis juga, kita bisa nelanjangin web page yang lagi kita liat. Misalnya kita lepas CSS nya, kita disable images, kita hapus cookies, kita resize browsernya dll
  4. HTML Validator, wah ini penting banget kerjaan gw. Untuk ngeliat (x)html yang gw bikin udah valid atau belum secara localy real time.
  5. MeasureIt, kalo ini untuk ngukur2 sesuatu di area web page
  6. flashblock, ini untuk ngeblock content2 flash yang kadang otomatis langsung load dan bikin browsing terasa berat.
  7. Session Manager. Gw tipe orang yang multitasking, jadi gw suka buka tab banyak banget. Ketika laptop mati dan gw nyalain lagi, gw pengen apa yang sebelumnya gw buka masih bisa diliat. Nah session manager ini bisa melakukan hal itu.
Itu aja yang paling penting.

Barusan gw ketemu browser baru hehe..
Browser ini dibuka melalui SAP GUI.
Tampilannya kaya gini:



lucu ya.. bisa browsing internet melalui SAP GUI.
Tapi ini bisa begini karna SAP GUI "minjem" enginenya internet explorer yang kepasang di tempat gw.

Lo pernah denger engine Webkit ga?
WebKit is an open source web browser engine. WebKit is also the name of the Mac OS X system framework version of the engine that's used by Safari, Dashboard, Mail, and many other OS X applications. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE. This website is also the home of S60's S60 WebKit development.
Kali aja lo ga suka dengan semua browser yang ada dan punya inovasi untuk bikin browser versi lo sendiri dan punya segala sesuatu yang lo butuhkan.

Penggunaan web browser bagi gw sangat penting. Karena terkait aktifitas gw, gaya hidup gw, dan yang tak kalah penting adalah pekerjaan gw. Gw masih bisa nulis di blog atau bisa belajar dan bekerja karna gw pake web browser yang ada koneksi internet, koneksi gw dapet karna gw ada duit, duit gw dapet karna gw kerja... kerja bisa ada duitnya karena ada sistem bisnis atau ketertarikan antara halah..... ya kira-kira begitulah perputaran duitnya. *loh kok jadi ngomongin duit.

Web browser punya kelebihan dan kekurangan masing-masing. Gw ga punya browser favorit, tapi kalo dari kebutuhan, gw masih make Firefox, Internet Explorer, Opera dan kadang Safari.


Gimana dengan elo?
Punya web browser favorit?
Kelebihannya apa?

Syntax highlighter untuk blogspot

Inget postingan gw yang sok-sokan ngeluh karena blogspot ga bisa syntax highligting?

Akhirnya gw dapet solusi masalah syntax highligter!!
Seneng gw cuy!!

Jadinya coding2 kita di blog bisa terlihat lebih cantik.
Liat ke sini deh.

Sekarang gw coba java code:

public void printHello(){
Haha.javacode.kayagini("Tapi masih ada satu ni yang kurang");
WRITE 'ABAP CODE ga ada sih, tapi bisa diganti Java'.
}


Gw cobain ABAP code:







Asik kan cuy...
Mau blogspot atau lo di server manapun,
sekarang udah bisa syntax highligting.

Thanks to alex.gorbatchev for make it happend.
Menurut gw ini tools wajib banget bagi programmer yang suka share ilmu codingnya..


Gimana menurut lo pada?




Regards,
tomfreakz

Membuat SAP tcode untuk Report Painter dan Report Writer

Pada saat kita mengcustomize report melalui report painter (tcode: GRR1) atau report writer (tcode: GR31), kita menyimpan program tersebut pada report group yang perlu kita create juga. Anggaplah kita membuat report melalui report writer dengan nama ZWRE yang tergabung dalam report group bernama ZGRE.

Sekarang bagiamana membuat SAP tcode untuk Report Painter dan Report Writer?
Untuk menjawab itu kita lihat dulu kenapa kita harus pake report group? Kalo dari si help.sap.com begini:
Once you have created a report you have to create a report group for this report or assign the report to an existing report group. A report group can contain one or more reports. When reports use the same characteristics and share the same data, data is selected faster and processing time is quicker since report data is only selected once for all reports within a report group.
Program pada report group ini dapat kita execute melalui tcode GR55, kemudian kita ketik nama report groupnya, misalnya ZGRE, barulah kita execute, dan selanjutnya barulah muncul selection screen.



Nah sekarang gimana caranya agar user dapat langsung mengetik tcode kemudian selection screen muncul?
Bagaimana membuat SAP tcode untuk Report Painter dan Report Writer?

Melalui tcode: SE93 (Maintain Transaction) kita buat tcode baru untuk report group kita. Kita isi transaction code dengan Z_RE. Short text sebagai penjelasan tcodenya dan kita pilih Transaction with parameters (parameter transaction) seperti pada gambar:


Pada screen selanjutnya, untuk Default values for, pilih radio button "Transaction", isikan dengan START_REPORT, dan tick pada Skip initial screen. Pilih Inherit GUI attributes

Pada table di bawah, isikan Name of screen field dengan:
D_SREPOVARI-REPORTTYPE, isikan valuenya RW
D_SREPOVARI-REPORT, isikan dengan ZGRE (nama report writer kita tadi).



Selanjutnya kita save, selesai.

Kita bisa menjalankan report kita dengan mengetikan tcode: Z_RE.

Mungkin lo pada penasaran, kok gw bisa tau sih caranya gitu?! Dari mane itu? Dari dukun? Wangsit? Mama Loren? Mimpi ketemu moleykat? Cyaah moleykat tulisannya.

Kita bisa tau itu karena ceritanya gini men.

Awalnya, gw terbesit untuk nyari di menu Environment > Technical Information, seperti mencari object name pada smartforms. Dari situ kita bisa melihat nama programnya. Tapi sayang, namanya seperti ini: GP091XH9T0A646RMNZJAIG74R5F110.

Nama itu seperti nama yang di generate suatu waktu saja. Karena waktu sudah hampir habis, gw coba untuk bikin tcodenya dan tcode itu memanggil program dengan nama GP091XH9T0A646RMNZJAIG74R5F110 *doh ga enak banget nama programnya*.

Beberapa menit kemudian boss gw ngasih solusi bagaimana cara bikin tcode untuk report painter/writer tersebut. Dia bilang bla bla bla (sama dengan yang gw jelasin diatas). Disitu gw mikir, kok dia bisa tau sih? Apa karna emang ada di training material dengan topik tertentu? Atau ada di http://help.sap.com/? Atau ada di https://www.sdn.sap.com/irj/sdn? Atau ada di tempat dimana cuma orang yang punya SAP id yang bisa tau informasinya? Akhirnya gw tanya sama temen gw yang jadi team lead abaper disana dan bertanya gimana si boss ini bisa tau caranya. Gw nebak, di googling ya? Trus dia jawab, "Blum sempet googling tuh", programnya di-"DEBUG". Buset!!... tapi logis sih.

Jadi kebetulan, untuk kasus spek report painter ini, functionalnya biasanya memberikan clue "tolong buat report seperti yang udah ada di SAP standard." Misalnya namanya S_ALR_0811990099. Nah jadinya kita mendebug program ini. Akhirnya gw cobain debug dengan cara melakukan tcode /h, baru kemudian memasukan tcode report standard SAPnya. Eh yang ada pusing sendiri wakakakak, setelah gw coba debug 4 kali... gw ga ngerti... apa yang bisa jadi clue? Akhirnya gw coba pikir lagi, gw baru ngeh kalo S_ALR_0811990099 adalah tcode. Akhirnya gw lari ke tcode: SE93, kemudian gw display. Dan disitulah kira-kira TKP yang bisa menjadi acuan bagi kita semua.

Yaudah dari tcode itu kita bisa display kan, kita samain aja konfigurasinya.

Gitu cuy... tenang cuy.. gw bukan orang jago.. gw cuma orang yang suka penasaran dengan orang lain yang membuat gw suka bertanya dalam hati "Kok dia tau sih? Apa yang membuat dia tau?".

Deklarasi Internal table dan work area di ABAP

Sekali-sekali ngeblog tentang kerjaan boleh kan? Kali ini gw mau coba share tentang ABAP. Nah apa itu? Singkatnya, ABAP adalah bahasa pemrograman di SAP. Kalo kita bikin program di SAP, baik berupa Report, Interface, Conversion, Extension, Forms (RICEF), nah itu codingnya pake bahasa ABAP. Contoh lain, lo bikin Twitter.com pake rubyonrails.

Kadang susah untuk bisa sharing mengenai ABAP karena menjelaskannya dengan tulisan agak sulit. Nulisnya juga ga enak di blogspot, ga ada indentnya, ga ada syntax highlightingnya (banyak alasan). Gw penasaran, gimana sih caranya? Nanti kalo udah nemu caranya atau elo tau caranya tolong kasih tau gw ya. Biar kita bacanya bisa lebih enak dan otomatis sharing knowledgenya juga bisa lebih baik.

Latar Belakang

Dalam kesempatan ini, gw coba share mengenai Internal table (itab) dan work area (wa) dalam lingkungan SAP ABAP. Nah sekarang ape sih gunanya dua cecunguk itu? Nah coba kita flashback dari latar belakangnya dulu. Dalam pemrograman, ada kalanya kita berhadapan dengan pengolahan database. Ada kalanya kita membuat suatu report yang mengambil data dari beberapa table di database, kemudian kita join, atau lakukan beberapa perhitungan, kemudian ditampilkan di screen. Dalam melakukan perhitungan ini, kita butuh variable yang dapat menyimpan kumpulan data dari table tersebut. Nah disinilah kita gunakan internal table. Contoh praktisnya misalnya:


SELECT *
FROM kendaraan
INTO TABLE it_kendaraan.

Dari code diatas, dapat diartikan kita menyimpan semua data dari table kendaraan ke internal table it_kendaraan. Gimana? Udeh jelas kan mengenai internal table?

Pada saat kita sedang melakukan pengolahan data-data tersebut, kita biasanya butuh memprosesnya satu-satu. Untuk itulah kita butuh work area. Misal dari table kendaraan itu terdapat atribut: No kendaraan, nama kendaraan, jenis kendaraan, warna, harga. Nah misal kita ingin merubah semua harga kendaraan bertambah 10 rupiah. Gimana caranya?

Data yang ingin kita olah, dapat kita ambil / copy per rownya dari internal table. Nah 1 row ini kita letakan di work area. Setelah itu work area inilah yang kita olah, kita lakukan penjumlahan. Misalnya dalam kasus kita
wa_kendaraan-harga. Selanjutnya bisa kita replace valuenya kembali ke internal table.

LOOP AT it_kendaraan TO wa_kendaraan.

wa_kendaraan-harga = wa_kendaraan-harga +10.

MODIFY it_kendaraan FROM wa_kendaraan.

ENDLOOP.

Dalam code diatas tiap row dari internal table kita loop, kita pindahkan dulu ke wa_kendaraan. Kemudian dari work area itu kita lakukan penjumlahan.Selanjutnya dari work area kita replace balik ke internal table.

Dari cerita ini, bisa kita simpulkan:


Work area (wa)
Mempunyai tipe data structure seperti pada pemrograman lainnya. Sebuah variable yang bisa mempunyai beberapa atribut.

Internal table (itab)
Gambarannya sama dengan table. Bedanya, kalo table ada secara fisik di database. Sedangkan itab hanya terbentuk di memory saat run-time program. Mungkin prinsipnya sama dengan structure yang punya lebih dari satu row.

Di ABAP kita bisa mendeklarasikan internal table (itab) dan mengisi itab itu dengan data yang kita masukan melalui work area. Data ini bisa berupa data hasil query database, atau dimasukan manual dengan cara kita tulis di codenya. Pada contoh dibawah ini diberikan cara memasukan data ke internal table secara manual.

Oke langsung praktek aje ye boss. Studi kasusnya gini:
Misal kita perlu menampilkan daftar nilai siswa. Data nilai dimasukan secara hardcode di program kemudian ditampilkan. Simple kan?? Nah, biar rada ribet dikit, kita coba iseng menggunakan 2 itab. itab A digunakan untuk memasukan data, kemudian dipindahkan ke itab B, selanjutnya dari itab B itu data ditampilkan.

Cukup jelas?
Kalo belom silahkan tunjuk tangan, dan kasih komentar di blog post ini.

Langsung gw jabarin source codenya:
Sori kalo ngga ga enak bacanya karna ga ada indent

REPORT ztestx.
*Test program to get data into internal table using work area

*************** Types and Data declaration ****************

*Types declaration
TYPES: BEGIN OF ty_a,
name(10) TYPE c,
mark TYPE i,
END OF ty_a.

*Data declaration based on types
DATA:
* Work area
wa_a TYPE ty_a,

* Internal table
it_a TYPE TABLE OF ty_a.


*************** Begin of program ****************

*Make sure internal table is empty
REFRESH it_a.
CLEAR it_a.

*Insert content to itab through work area
*and make sure the work area is empty for each insertion

CLEAR wa_a.
wa_a-name = 'Thomas'.
APPEND wa_a TO it_a.

CLEAR wa_a.
wa_a-name = 'Megan'.
APPEND wa_a TO it_a.

CLEAR wa_a.
wa_a-name = 'Fox'.
APPEND wa_a TO it_a.


*Loop itab and insert each mark fields
LOOP AT it_a INTO wa_a.
wa_a-mark = 90.
MODIFY it_a FROM wa_a.
ENDLOOP.



*Let say we want to move all the content in it_a to another internal
*table named it_b using work area. First we declare it_b and *wa_b

DATA:
wa_b LIKE wa_a,
it_b LIKE it_a.


*Insert all data in it_a to it_b using work area
LOOP AT it_a INTO wa_a.
CLEAR wa_b.
wa_b-name = wa_a-name.
wa_b-mark = wa_a-mark.
APPEND wa_b TO it_b.
ENDLOOP.


*Delete all content in it_a.
FREE it_a.

*Display all content from it_b.
LOOP AT it_b INTO wa_b.
WRITE:/ wa_b-name,
wa_b-mark.
ENDLOOP.

*************** End of program ****************


Kuncinya pertama pada saat deklarasi:
Kita buat tipe data structure dengan 2 atribut:

*Types declaration
TYPES: BEGIN OF ty_a,
name(10) TYPE c,
mark TYPE i,
END OF ty_a.

Kita buat data yang bertipe structure tadi.


*Data declaration based on types
DATA:
* Work area
wa_a TYPE ty_a,


Kita buat juga itab dengan tipe table dari tipe struktur tadi.


* Internal table
it_a TYPE TABLE OF ty_a.





Coba kita sedikit bahas melalui beberapa screen shoot. Ini adalah screenshoot pada saat debug. Dalam screen shoot ini, sebuah itab kita debug dan lihat valuenya pada saat runtime. Disini kita dapat melihat kondisi itab it_a ketika cursor melalui 1x loop pada pengisian mark (kondisi sekarang telah berada di loop kedua).


Ini adalah kondisi itab it_b ketika di assign data dari itab it_a. Disini diperlihatkan it_a sedang dalam loop ke 1. Kita dapat melihat itab it_b masih kosong pada baris ke 2 dan selanjutnya.


Dibawah ini adalah kondisi itab it_b ketika semua telah diisi data dari itab it_a.


Ini adalah kondisi itab it_b ketika di assign data dari itab it_a. Disini diperlihatkan loop pertama dari inserting data dari it_a ke it_b. Work area wa_b pada atribut name barusan di assign dari wa_a-name, yaitu "Thomas".



Gimana? Udah kebayang kan mengenai apa itu internal table dan apa itu work area di SAP - ABAP? Kalo belum ya boleh bertanya di comment. Kalo gw ngerti pasti gw jawab.

Source code juga bisa diambil dari sini.