Showing posts with label Blog. Show all posts
Showing posts with label Blog. Show all posts

Sunday, March 31, 2013

Penyebab No data Sites Linking In ALEXA

 
Penyebab NO Data Alexa Traffic Rank

Apa Penyebab No data Sites Linking In pada ALEXA Rank ??

Apa Penyebab No data pada ALEXA Rank ??

Sesuai dengan judul di atas  Penyebab No data Sites Linking In ALEXA disini saya akan memberitau sedikit tentang Alexa Rank,

Apa Alexa Traffic Rank itu ?

dan Apa Kegunaan Alexa Traffic Rank ?

Alexa Traffic Rank  adalah Sebuah peringkat yang di berikan oleh Alexa kepada sebuah blog atau sebagai cerminan Traffic dari pengunjung Blognya sendiri, dimana yang Traffic Alexa Ranknya semakin kecil maka Sebuah blog atau website itu akan semakin bagus, dan juga sebaliknya, apabila Traffic Alexa sebuah blog semakin besar. artinya traffic pengunjung blog itu pun kurang bagus,

Alexa Traffic Rank setelah 3 Bulan pembuatan Blog atau website yang menggunakan Alexa Traffic sebagai sumber data traffic blog atau websitenya, yang artinya jika umur blog atau website belum sampai 3 bulan maka akan mendapatkan hal semacam in, (Blog saya juga) hehe. jadi yang perlu kita lakukan hanya terus bersabar dan berdo'a serta rajin blogwalking sesama blogger, dan sering berkomentar di blog lain,

Sama seperti Blognya Kamar Sebelah ini,
Blog Kamar Sebelah di buat tepat pada tanggal 17 Maret 2013 dan sampai pada Artikel ini ditulis tanggal 01 April 2013 Linking In ALEXA Traffic Blog Kamar sebelah masih NO Data, hehehe
Penyebab No Data Alexa

Mungkin dengan keterangan tentang Penyebab No data Sites Linking In ALEXA yang sangat sinkat ini kita sudah paham dan bisa untuk mengatasinya, saya berharap begitu hehe.

dan untuk siapa saja yang ingin me-Review Alexa Traffic blognya Kamar Sebelah silahkan Sobat Klik Link ini, silahkan sobat login dengan Akun Alexa sobat, atau bisa juga menggunakan Facebook, dan isilah Reviewes yang membangun untuk kami, dan jangan lupa bagi siapa saja sobat blogger yang sudah merivew Blog Kamar Sebelah agar mengkinfirmasikannya ke kami, bisa tinggalkan komentarnya di bawah dan kami akan Me-Review Alexa Traffic Blognya sobat, Terima Kasih, salam Blogger :))

Thursday, March 21, 2013

Template SEO Friendly Om-Dayz Cloned

Sesuai dengan judul Template SEO Om-Dayz Cloned, Template Ini sangat SEO Friendly,

Template ini memiliki fitur sebagai berikut
1. SEO Friendly
2. Fast Loading
3. Elegant
4. 2 Column Post
5. Without Sidebar
6. 2 Column Footer Widget
7. Loading Animation
8. Dark
9. etc. .......

Berikut penampakannya :

Template SEO Friendly 

Silahkan Download Template SEO Om-Dayz Cloned di sini : Download Atau Mirrornya Disini !
Untuk Demo Template SEO Om-Dayz Cloned lihat di Sini Demo

Sumber : http://www.cyber4rt.com/2013/03/om-dayz-cloned-template.html,
http://www.hack4rt.us/2013/03/om-dayz-cloned-template.html?m=1

Keyword : Template SEO Om-Dayz Cloned, Template SEO, Free Template, Free SEO Template, Template SEO terbaru, SEO Friendly Template


Wednesday, March 20, 2013

Domain Gratis 2013 dari CO.DE

Sesuai Judul kali ini Cara menapatkan Domain Gratis 2013 dari CO.DE, saya yakin setiap orang khususnya yang sudah mengerti atau memunyai Blog / Website tergiur dengan namanya Domain Gratis, Apalagi domain gratis yang sedikit unik atau beda dari ada yang lain, itu juga termasuk saya, hehee..

Well, langsung saja pada Intinya Bagaimana  Cara menapatkan Domain Gratis 2013 dari CO.DE yang akan saya terangkan step by stepnya :D

Pertama untuk mendapatkan Domain gratis dari CO.DE tentunya anda harus mempunyai Account di website CO.DE, bagi yang belum silahkan daftar di website CO.DE

silahkan isi data Anda dengan sebenar-benarnya .
Lihat gambar Untuk lebih Jelasnya !
Domain Gratis 2013 dari CO.DE
Setelah Data sudah di isi lanjutkan dengan mengklik Tombol Register Now For Free

Jika sudah Success, silahkan Buka Email yang Anda daftarkan tadi, Password Account anda akan di kirim Via Email Soalnya :D
Domain Gratis 2013 dari CO.DE

Langkah Selanjutnya silahkan Anda login Menggunakan Email dan Password yang telah di berikan oleh pihak CO.DE tadi,
Setelah Login, Klik Menu New Project >> Webspace Create dan Isilah data Sesuai ke inginan Anda dan Klik Next
Lihat Gambar Untuk lebih jelasnya !
Domain Gratis 2013 dari CO.DE

Selanjunya Anda akan di suruh memilih domain yang Anda suka dan pastinya Gratiss tisss :D dan jika sudah cocok klik Next lagi !
Domain Gratis 2013 dari CO.DE

Jika sudah dan selamat Anda telah berhasil mendaatkan Domain Gratis dari CO.DE
Domain Gratis 2013 dari CO.DE

Selanjutnya tinggal Anda edit Suka-suka anda, mau di bikin seperti apa terserah anda bukan terserah saya :D
Domain Gratis 2013 dari CO.DE


Note :
Untuk Subdomain .co.de saat ini sedang tidak tersedia, jadi anda register Free Domain yang lain dari web CO.DE juga, "co.de domain registrations are not possible at the moment"

Setelah Mendaftar silahkan menunggu beberapa jam sebelum Domain anda UP

Ini contoh Domain Yang saya buat dari CO.DE
http://kamarsebelah.com.nu/

Disarankan setelah Login Segera mengganti Password Sefault Anda, dan untuk domain gratis dari CO.DE ini kita tidak bisa mengatur DNS servernya, so.. jika ingin mengedit website anda bisa menggunakan FileZilla, jika belum mempunyai FileZilla Bisa Anda Download di Sini !!

Domain Gratis CO.DE


Sekian Tutor yang sangat Cupu dari saya tentang Info Domain Gratis terbaru 2013, Tutor ini dihususkan bagi yang Newbie saja, dan yang master lewat dulu. jika ada pertanyaan silahkan tinggalkan komentarnya dan dengan senang hati saya akan memberikan solusi pertanyaan anda :D Terima Kasih.


Monday, March 18, 2013

Meta Tag Super SEO Ampuh Optimalkan SEO Blog

Sesuai dengan Judul Meta Tag Super SEO Ampuh Optimalkan SEO Blog 

dimana kita akan membahas tentang cara mengedit Meta Tag agar Lebih SEO lagi, Sebelumnya kita sudah pernah membahas Tentang Pengertian SEO itu sendiri, bagi yang besum silahkan Baca Apa yang dimaksud dengan SEO (Search Engine Optimization),
Kita Mengetahui Bahwa salah satau pendukun SEO Blog Itu adalah Meta Tag, Gunakan Meta Tag Berikut pada Blog Anda dan rasakan perbedaanya :D meta tag ini di jamin Ampuh 100% Untuk optimalkan Seo Blog Anda,
Langsung saja cara Mengubah Meta Tag Menjadi Lebih SEO :
Pertama Anda Harus Login ke Akun Blogger anda
Setelah Login Pilih Menu template dan Klik Edit HTML dan jangan lupa centang Expand Widget Templates,
Selanjutnya Silahkan Anda cari Kode Ini : <b:include data='blog' name='all-head-content'/>
Gunakan CTRL+F untuk lebih mudah,
Setelah Ketemu, silahkan Copy semua Kode di bawah ini dan Letakkan Tepat di bawah Kode <b:include data='blog' name='all-head-content'/>

Code Meta Tag Super SEO :
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<title><data:blog.pageName/></title>
<b:else/><b:if cond='data:blog.pageType == &quot;index&quot;'>
<title><data:blog.pageTitle/></title>
<b:else/>
<title><data:blog.pageName/></title>
</b:if></b:if>

<b:if cond='data:blog.pageType == &quot;index&quot;'>
<meta content='Deskripsi Blog Anda Silahkan EDIT' name='description'/>
<meta content='KeyWord SEO Blog Anda Disini' name='keywords'/>
<b:else/>
</b:if>

<meta expr:content='data:blog.pageName' name='subject'/>
<meta expr:content='data:blog.pageName' name='abstract'/>
<meta content='Judul BLOG Anda' name='copyright'/>
<meta content='NAMA ANDA' name='author'/>
<meta content='UTF-8' name='charset'/>
<meta content='INDEX, FOLLOW' name='ROBOTS'/>
<meta content='all,INDEX,FOLLOW,noodp,noydir' namd='Robots'/>
<meta content='1 days' name='revisit'/>
<meta content='1 Days' name='revisit-after'/>
<meta content='ID' name='language'/>
<meta content='ID' name='geo.country'/>
<meta content='Indonesia' name='geo.placename'/>
<meta content='ID' http-equiv='content-language'/>
<meta content='no-cache' http-equiv='cache-control'/>
<meta content='no-cache' http-equiv='pragma'/>
<meta content='global' name='distribution'/>
<meta content='blogger' name='generator'/>
<meta content='general' name='rating'/>
<meta content='global' name='target'/>
<meta content='index,follow,snipet' name='googlebot'/>
<meta content='follow, all' name='Googlebot-Image'/>
<meta content='noodp' name='robots'/>
<meta content='follow, all' name='msnbot'/>
<meta content='follow, all' name='alexabot'/>
<meta content='follow, all' name='Slurp'/>
<meta content='follow, all' name='ZyBorg'/>
<meta content='follow, all' name='Scooter'/>
<meta content='all' name='audience'/>
<meta content='all' name='Spiders'/>
<meta content='all' name='Webcrawlers'/>

Keterangan : Silahkan Anda Ganti dan Sesuaikan Tulisan Warna Merah Dengan blog Anda,

dan langkah Terakhir silahkan Save Template Anda.
Jika ada yang kurang paham Tentang Meta Tag Super SEO Ampuh Optimalkan SEO Blog Bisa meninggalkan komentarnya di bawah ini, terima kasih :)

Friday, November 16, 2012

Verifikasi Blog ke Akun Pinterest

Bismillah. Alhamdulillah. Pada tanggal 24 Oktober 2012, pihak Pinterest mengumumkan penambahan fasilitas terbarunya yaitu verifikasi website yang ditulis pada halaman support.pinterest.com. Jika diterjemahkan secara bebas pengumuman itu berbunyi "Akun dengan situs terverifikasi berarti telah mengkonfirmasi kepemilikan situs web mereka menggunakan proses verifikasi otomatis yang kami sediakan. Situs terverifikasi menetapkan hubungan antara situs web dengan akun di Pinterest. Akun dengan situs terverifikasi ditandai dengan tanda centang yang ditampilkan disamping alamat situs web di halaman profil mereka dan di bawah nama mereka dalam hasil pencarian."
Verifikasi Blogger ke Akun Pinterest

Kesulitan Verfikasi Pengguna Blogger

Bagi para pengguna hosting berbayar, proses verifikasi blog atau situs ke akun Pinterest tidaklah terlalu sulit. Namun bagi para pengguna blog gratisan terutama pengguna Blogger (a.k.a Blog*spot) hal ini cukuplah rumit. Karena ada beberapa kesulitan dan persyaratan untuk melakukan verifikasi blog ke akun Pinterest, diantaranya:
  • Pinterest tidak menyediakan teknik verifikasi melalui meta tag tetapi menggunakan file tersendiri yang disediakan pihak Pinterest.
  • File verfikasi harus diupload pada root dan bukan pada subfolder (subdirectory) di halaman blog atau situs yang anda kelola.
  • Link atau URL halaman verifikasi dari pihak Pinterest yang telah diupload pada blog harus dapat diakses dengan lokasi seperti ini "http://www.contoh.com/pinterest-45776.html" dan tidak boleh dalam lokasi lain, misal "http://www.contoh.com/p/pinterest-45776.html" atau "http://www.contoh.com/blog/pinterest-45776.html"
Namun bukan berarti tidak ada jalan untuk melakukan proses verifikasi blog ke akun Pinterest, seperti pepatah "Banyak jalan menuju ke Roma". Sedankan bagi para pengguna hosting berbayar, silahkan mengikuti petunjuk yang telah disediakan pihak Pinterest pada artikel mereka berjudul "How do I verify my website?".

Verifikasi Pinterest untuk Pengguna Blogger

Kenapa pihak Pinterest menggunakan satu metode saja dalam melakukan verifikasi blog? Dan kenapa tidak menggunakan metode sisipan Meta Tag seperti halnya pihak-pihak lain? Entahlah, itu semua kebijakan mereka. Kita hanya pengguna yang cukup senang dengan layanan gratis Pinterest. Bagi para pengguna blog gratisan terutama pengguna Blogger, silahkan ikuti langkah dibawah ini dalam melakukan proses verifikasi blog ke akun Pinterest.
Langkah 1
Login ke Pinterest
Langkah 2
Masuk ke menu Setting Profile
Verifikasi Blogger ke Akun Pinterest
Langkah 3
Scroll halaman sampai ditemukan lokasi Website. Isi dengan alamat blog anda, kemudian klik tombol "Verify Website"
Verifikasi Blogger ke Akun Pinterest
Langkah 4
Sebuah halaman proses verifikasi terbuka, kemudian cari link pada bagian "Can I verify?" kemudian klik link pada kalimat "click here for instructions"
Verifikasi Blogger ke Akun Pinterest
Langkah 5
Sebuah informasi langkah verfikasi terbuka, yang terdiri dari 3 langkah. Klik link "Download the HTML verification file" kemudian simpan file tersebut pada komputer anda
Verifikasi Blogger ke Akun Pinterest
Langkah 6
Buka file hasil unduhan (misal; pinterest-45776.html) menggunakan native text editor (misal; notepad)
Langkah 7
Login ke Blogger
Langkah 8
Masuk ke dasbor blog dan pilih menu "Laman"
Langkah 9
Klik menu "Laman Baru" dan klik "Laman kosong" untuk membuat sebuah halaman baru pada blog
Verifikasi Blogger ke Akun Pinterest
Langkah 10
Teks Editor Blogger terbuka. Isi judul halaman sesuai dengan nama file hasil unduhan dari Pinterest (misal; pinterest-45776). Hati-hati! Jangan disertakan ekstensi file-nya, misal; jangan diberi judul "pinterest-45776.html", cukup "pinterest-45776". (Nama file berbeda-beda sesuai dengan pemberian dari pihak Pinterest)
Verifikasi Blogger ke Akun Pinterest
Langkah 11
Pindahkah mode teks editor blog ke mode HTML, jangan di mode Compose. Copy file unduhan yang telah dibuka menggunakan notepad tadi, dan paste pada isi halaman di teks editor blog.
Langkah 12
Klik tombol "Publikasikan"
Langkah 13
Buka blog anda pada tab baru dan pastikan halaman yang baru saja diterbitkan tersedia. misal;
http://contoh.blogspot.com/p/pinterest-45776.html
Langkah 14
Jika halaman yang baru saja diterbitkan sudah tersedia, kembali ke dasbor blog. Pilih menu "Setelan" dan pilih submenu "Preferensi penelusuran"
Langkah 15
Masuk ke bagian "Kesalahan dan Pengalihan" kemudian klik link "Edit" pada bagian "Pengalihan Khusus"
Verifikasi Blogger ke Akun Pinterest
Langkah 16
Tambahkah link pengalihan. Misal:
Dari: /pinterest-45776.html
Kepada: /p/pinterest-45776.html
Proses pengalihan ini ditujukan agar Pinterest tidak menuju kehalaman yang salah. Jika halaman tidak dialihkan, maka Pinterest akan menampilkan "error 404" yang berarti halaman tidak ditemukan.
Langkah 17
Klik link "Simpan" dan klik tombol "Simpan perubahan"
Langkah 18
Buka halaman baru pada blog anda dengan menuliskan alamat URL sesuai dengan pengalihan, misal;
http://contoh.blogspot.com/pinterest-45776.html
Maka halaman harus dialihkan menuju ke:
http://contoh.blogspot.com/p/pinterest-45776.html
Langkah 19
Jika halaman verifikasi tersebut sudah terbuka pada blog anda, scroll halaman hingga ditemukan tombol merah "Go To Pinterest" dan kemudian klik tombol tersebut
Verifikasi Blogger ke Akun Pinterest
Langkah 20
Halaman verifikasi seperti sebelumnya akan terbuka kembali, kemudian klik link "Click here to complete the process"
Verifikasi Blogger ke Akun Pinterest
Langkah 21
Tunggu sebentar karena Pinterest sedang melakukan proses verifikasi pada blog kita. Jika proses verifikasi berhasil maka akan muncul keterangan "We successfully verified your website!". Hal ini berarti proses verifikasi blogger pada ke akun Pinterest berhasil.
Verifikasi Blogger ke Akun Pinterest
Langkah 22
Klik link "Go to your profile" untuk memastikan bahwa tanda centang (checklist) telah tampil disamping URL blog pada halaman profile Pinterest anda.
Verifikasi Blogger ke Akun Pinterest
Langkah 23
Pastikan lagi bahwa tanda cheklist tampil disamping URL blog anda dibawah photo profile dengan melakukan pencarian dengan kata kunci nama anda pada halaman Pinterest
Verifikasi Blogger ke Akun Pinterest
Langkah 24
Jika tampil berarti anda telah berhasil. Waktunya untuk ngopi sinambi leyeh-leyeh ngrungokno ladrang jowo...

Kesimpulan

Proses verifikasi blog ke akun Pinterest telah berhasil dan mudah-mudahan berhasil. Jika sudah berhasil waktunya kita memikirkan "Untuk apa proses verifikasi ini? Apakah berpengaruh terhadap posisi blog kita dimata mesin pencari?" Entahlah... Kita hanya menikmati dan menjalani proses sebagai seorang penulis dan pengelola blog, mengenai manfaat jelas ada namun mungkin belum kita rasakan...
Selamat mencoba dan semoga berhasil. Happy blogging :)

Monday, June 18, 2012

Kreatifitas Blogger yang Kebablasan

Bismillah. Sungguh sangat disayangkan dengan tingkah laku Blogger Cloning jika kemudian hasil cloning-nya tersebut diperjualbelikan. Saya secara pribadi sebagai seorang penulis tutorial blog juga tidak bisa memungkirinya, kadang atau bahkan sering melakukan CTRL-U untuk melihat source code yang digunakan, dipelajari bagaimana cara kerjanya dan kemudian direkayasa sesuai imajinasi yang kita miliki. Namun "TIDAK PERNAH MENJUALNYA" karena hal itu merugikan pelaku cloning.
Cloning sama dengan Plagiat

Kerugian Pelaku Cloning

[1] Hilang Kehormatan
Berapa yang sudah anda peroleh dari jual beli hasil cloning? Itu tidak sebanding dengan hilangnya rasa hormat blogger lain. Bukankah blogger yang hebat itu adalah blogger yang dihormati sepanjang hari, bulan, tahun, bahkan bertahun-tahun? Apa yang kamu lakukan hari ini bisa saja mengakhiri semua mimpimu dimasa datang.

[2] Mematikan Kreatifitas
Bukankah dengan cloning anda tidak perlu bersusah payah mengumpulkan ide dan kemudian mengaplikasikannya? Hal termahal dari seorang blogger adalah "IDE". Dan ide itu bukanlah hal yang tiba-tiba datang menghampiri, perlu ilmu pengetahuan yang cukup, perlu sejumlah sahabat, perlu kemampuan dan masih banyak faktor lain untuk menumbuhkan ide dalam diri. Cukupkah semuanya hanya sampai ke ide? Tidak... Ide harus direalisasikan kedalam bentuk real agar orang lain bisa menikmati bahkan mengagumi hasil ide kita. Untuk merealisasikan ide maka kita membutuhkan disiplin ilmu tertentu dan itu berarti menuntut kita untuk belajar tentang ilmu yang bersangkutan dengan ide yang akan direalisasikan. Ketika ide mampu terealisasikan maka itulah kreatifitas.

[3] Terjebak
Seorang blogger yang sudah menikmati tindakan cloning akan terjebak didalamnya. Ia akan sulit keluar dari lingkaran cloning dan itu sama dengan mematikan kreatifitas dalam diri. Seorang blogger yang terkungkung dalam jebakan cloning akan diam menunggu mangsa atau justru haus untuk mencari target, ketika menemukan target ia tidak akan peduli lagi dengan sekitarnya. Seperti itulah yang kemudian terjadi dalam dirinya, terulang dan berulang-ulang. Bukankah yang demikian sama dengan terjebak? Diam, mencari namun tetap tidak bisa keluar.

[4] Stagnan
Blogger cloning akan merasakan stagnan dalam dirinya disaat ia sudah merasa lelah untuk melakukan cloning. Stagnan atau tidak ada perubahan justru akan membentuk blogger paling ego dan paling sombong karena tidak bisa merasakan orang lain atau bahkan tidak mampu menghargai kreatifitas orang lain. Harus diingat bahwa banyak blogger selain diri kita bisa melakukan cloning namun mereka tidak mengambil keuntungan dari cloning tersebut, karena mereka sadar, cloning tidak akan membuat dirinya berkembang dan dihormati.

[5] Keras Hati
Bukankah Cloning itu tidak ada Undang-Undangnya? Itulah yang akan sering digunakan sebagai alasan. Blogger syarat dengan blogosphere yaitu semangat untuk saling menghargai satu sama lain. Jangankan total mencuri (cloning) satu bagian saja kita mesti meminta ijin sang pemilik, karena blogger sebenarnya tahu bahwa mengambil secara keseluruhan sama dengan merampoknya. Satu bagian saja itu terkadang sang pemilik dengan berat hati memberikan ijin walau pemilik tahu mereka sudah mengambilnya. Disinilah terjadi interaksi yang membentuk peraturan-peraturan tidak tertulis, dan interaksi inilah yang akan memperat tali persahabatan antar blogger. Saling mempercayai dan menghormati merupakan kekuatan blogosphere yang tak ternilai harganya. Berlaku sebaliknya untuk para pelaku cloning, mereka sudah tidak peduli lagi apa yang terjadi yang penting diri sendiri sudah berhasil melakukan cloning, bukankah yang demikian adalah sebaliknya? Itu sama dengan menciptakan permusuhan. Dan permusuhan adalah hal yang tidak akan pernah selesai sampai kapanpun. Pepatah menyebutkan "Musuh satu terlalu banyak namun kawan seribu terlalu sedikit"

Benarkan Harga Desain Blogku Rp. 20.000?

Heran... Itulah yang terpikirkan olehku. Ada apa dengan Blogger Indonesia? Jika memang mampu melakukan cloning maka hindari blog lokal karena itu jelas sangat merugikan keberadaan blogger lokal. Itu sama dengan saling menjatuhkan sesama teman. Kapan kita akan dihormati dan disegani blogger Internasional kalau ternyata didalamnya kita saling menjatuhkan? Blogger Tune-Up terbuka dan memperbolehkan untuk diambil source codenya, baik itu berupa tutorial atau plugin dan diperbolehkan untuk diperjual belikan dengan atau tanpa backlink seperti tertuang dalam halaman Perizinan & Syarat Penggunaan. Namun bukan berarti diperbolehkan diambil secara total dengan brangkas-brangkasnya. Kalau misal bermunculan tampilan seperti Blogger Tune-Up itu justru akan membingungkan para pengunjung. Kejadian yang lalu bisa terulang lagi ketika seorang pembeli template marah-marah di email saya dengan tuduhan saya melakukan cloning atas blognya. Dilain kejadian ada blogger meminta pertanggungjawaban karena blognya tidak berjalan dengan baik. Saya belum pernah menjual template tapi kenapa saya yang kena getahnya? Rugi 2 kali, rugi karena di cloning, dan rugi dimarahi orang lain. Saya hanya berharap pengertiannya dari para blogger Indonesia, sampai hari ini saya tidak melakukan tindakan apa-apa karena saya masih berfikir jauh dan masih merasa kita sama-sama dari Indonesia, entahlah jika cloning dilakukan oleh blogger negara lain, mungkin saya juga tidak akan berdiam diri.

Saturday, April 7, 2012

Integrasi Google Analytics Pada Blogger

Sejak Blogger memperkenalkan tampilan Dinamis semakin hari BlogSpot semakin mendekati platform blog yang sesuai dengan keinginan penggunanya. Semakin menarik, semakin lengkap dan semakin mudah, mungkin itulah yang ingin diberikan developer Blogger kepada penggunanya. Walau kadang perubahan tersebut cukup merepotkan penggunanya dalam melakukan update kode. Salah satu kemudahan yang sekarang diberikan adalah integrasi Google Analytics pada Blogger. Sebelumnya para pengguna BlogSpot harus memasukan kode Web Analytics secara manual kedalam template, namun sekerang Blogger menyediakan form khusus yang lebih sederhana. Bagi sebagian Blogger hal tersebut tidaklah jadi masalah, apalagi pengguna baru platform BlogSpot mungkin tidak menyadari perubahan tersebut. Bagi anda yang termasuk pengguna lama template Blogger, walaupun Dasbor Blogger menyediakan form untuk memasukan ID Properti Web Google Analytics namun jika pada templatenya tidak tersedia kode (X)HTML integrasi dengan Google Analystics maka hal tersebut menjadi percuma.
Google Analytics

Kode JavaScript Google Analytics

Saat Blogger belum mengintegrasikan antara Google Analytics dengan Blogger maka pengguna harus memasukan kode secara manual pada template blog seperti dibawah ini:
Versi Lama
<script type='text/javascript'>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type='text/javascript'>

try {
var pageTracker = _gat._getTracker("UA-XXXXXXX-XX");
pageTracker._trackPageview();
} catch(err) {}

</script>
Versi Baru
<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-XX']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

</script>
Namun sejak Blogger melakukan beberapa perbaikan terutama setelah rilis resmi tampilan dinamis maka memasukan kode Google Analytics sudah tidak perlu dilakukan secara manual. Kode JavaScript diatas sudah tidak perlu lagi dimasukan secara manual ke dalam template.

Kode (X)HTML Google Analytics

Setelah Blogger merilis tampilan dinamis, maka beberapa kode baru ditambahkan kedalam template blogger, dari mulai threaded comments, HTML5 dan lain sebagainya. Dan salah satu penambahan kode yang hampir tidak terperhatikan adalah Google Analytics. Dibawah ini adalah kode (X)HTML Google Analytics yang terdapat pada template terbaru:
<b:include data='blog' name='google-analytics'/>
Untuk itu bagi para pengguna blogger lama, pastikan bahwa kode diatas tersedia pada template blog anda. Posisinya biasanya ditempatkan tepat di atas tag </body>. Jika kode diatas sudah tersedia, maka untuk mengintegrasikan antara Blogger dengan Google Analitycs silahkan lanjutkan membaca pada langkah selanjutnya.

Memasukan ID Property Web Google Analytics

Setelah memastikan kode (X)HTML Google Analytics tersedia pada template Blogger, selanjutnya kita hanya cukup memasukan ID Properti Web Google Analytics yang dapat kita peroleh pada situs Google Analitycs. Biasanya format ID-nya seperti dibawah ini (nomor ID dibawah hanya contoh):
Nomor Properti: UA-9989123-6
Google Analytics
Setelah ID Properti Web Google Analytics kita peroleh, maka cukup masukan ID tersebut pada Blogger.
Langkah 1
Login ke Blogger
Langkah 2
Pilih Blog anda dan pilih menu "Setelan" pada sidebar kiri (dasbor versi baru rilis bulan April 2012)
Langkah 3
Pilih menu "Lainnya" dan cari "Google Analytics - ID Properti Web Analytics" (perhatikan gambar di bawah ini):
Google Analytics
Langkah 4
Masukan ID Property Web Google Analytics pada kotak di sampingnya, kemudian klik tombol "Simpan Setelan"
Langkah 5
Preview Blog anda

Memeriksa Google Analytics

Untuk memastikan bahwa Google Analytics sudah terintegrasi pada blog, buka blog, kemudian gunakan kombinasi tombol CTRL + U untuk melihat source code halaman blog, dan telusuri (scroll - gulung layar) kebawah hingga di temukan kode dibawah ini:
<script type='text/javascript'>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-XX']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = (document.location.protocol == 'https:' ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
Jika kode diatas ditemukan berarti blog anda sudah terintegrasi dengan Google Analitycs. Happy Blogging :)

Saturday, March 31, 2012

Unsur Dasar Desain Web Responsif

Para desainer web dunia sedang hangat membahas tentang desain web responsif. Pada tingkatan tertentu, popularitas konsep desain web yang responsif menjadi agenda utama, hal ini karena semakin banyaknya pengguna di tambah beragamnya perangkat keras akses internet yang digunakan pengguna untuk mengakses halaman web. iPad, iPhone, perangkat mobile Android, desktop, netbook dan lain-lain. Ini memaksa kita masuk ke dalam sebuah masa di mana desain web harus berfungsi dalam banyak cara dan banyak perangkat. Mari kita sama-sama telusuri pengertian dan prinsip di balik desain web responsif.

Fitur Inti Desain Web Responsif

Agar desain web kita dianggap "responsif," maka perlu untuk memahami tiga fitur kunci dalam merancang web responsif. Desainer dan pengembang web, Ethan Marcotte menuliskan bahwa konsep desain web responsif memiliki tiga fitur kunci, yaitu:
  1. Situs yang akan dibangun harus memiliki kerangka dasar fleksibel (flexible grid).
  2. Gambar yang dimasukkan ke dalam desain harus mampu fleksibel sendiri.
  3. Pandangan yang berbeda (different view) harus diaktifkan pada konteks yang berbeda melalui media query.
Tiga kunci dasar desain web responsif diatas harus diperhatikan dengan seksama agar hasil akhir web benar-benar responsif. Jika kemudian kita mendesain web tanpa tiga kunci dasar tadi maka hasil akhir web bukanlah web responsif. Berarti desain cacat...

Grid Fleksibel

Istilah grid ini berkaitan dengan desain web yang cukup tumit. Mengharuskan situs web yang anda desain menggunakan grid fleksibel bukan berarti bahwa itu membatasi anda untuk memilih berbagai bentuk dan ukuran dalam penyesuaian dengan sistem jaringan yang kompleks di luar sana. Namun sebaliknya grid fleksibel membantu kita untuk mendesain web yang lebih mudah dan fleksibel dengan berbagai pandangan.
Mendefinisikan parameter sendiri untuk kolom (column), jarak (spacing) dan kontainer (container) merupakan solusi terbaik untuk desain web yang akan menghasilkan halaman web fleksibel dan mampu menyesuaikan dengan sistem di luar sana. Bahkan, sistem grid yang ada sebagian besar, terbatas hanya menggunakan CSS class untuk menentukan ukuran (size), ruang (space) dan keselarasan (alignment). Ketika anda mencoba untuk menempatkan objek di batas-batas ini ke dalam desain web responsif yang anda buat, itu justru akan membuat proses menjadi lebih rumit dan akan memakan banyak waktu dibandingkan dengan koding grid buatan anda sendiri.
Apakah anda menggunakan sistem grid premade (bahan mentah sebagai acuan) atau membuat kustom grid sendiri, hal ini merupakan aspek penting dari sebuah sistem grid fleksibel dalam menyusun mekanisme ukuran, tata letak dan jarak. Bagi seorang desainer web, ini berarti meninggalkan satuan ukuran pixel yang telah lama menemani hari-hari kita dalam mendesain web dan menggantinya dengan layout web yang menggunakan satuan ukuran presentase dan em, yang merupakan satuan unit ukuran relatif.
Namun, hal ini bukan berarti kita meninggalkan satuan pixel dalam pembuatan layout web dengan perangkat lunak editing gambar (misal; Photoshop, Fireworks dan lain-lain). Sebaliknya, ini merupakan tantangan kepada para desainer web untuk kembali belajar dasar-dasar perhitungan matematika. Perhitungan matematika merupakan bagian dari proses desain web responsif yang digunakan sebagai proses konversi dari satuan pixel ke dalam layout web dengan menggunakan satuan unit pengukuran relatif (persen dan em).

Gambar Fleksibel

Gambar yang bergerak dan berskala dengan grid fleksibel adalah kunci berikutnya dalam mendesain web responsif. Maksudnya, ukuran gambar dan posisi gambar akan berubah sesuai dengan pandangan browser. Hal ini merupakan kisah klasik yang membuat para desainer web cukup mengerutkan dahi pertanda pusing tingkat kelurahan. Kenapa? Karena gambar yang diload oleh browser adalah gambar dengan ukuran maksimal, ini membuat loading page (pemuatan halaman) cenderung menjadi lebih berat, sedangkan desainer web hanya bisa mengubah ukuran skala gambarnya saja dari atribut HTML width dan height tanpa mampu menurunkan ukuran gambar yang sebenarnya. Perubahan skala gambar mengikuti pandangan dari perangkat browser di tujukan untuk penyesuaian dan memberikan ruang teks artikel pada halaman tersebut. Dan perubahan skala gambar bukanlah cara terbaik untuk mempercepat loading page web responsif. Mungkin inilah saatnya bagi para desainer web untuk mengkaji ulang penggunaan gambar-gambar yang terlalu berlebihan pada desain web-nya.
Sebuah alternatif lain dalam masalah gambar adalah dengan menggunakan CSS. Properti CSS overflow (misal; overflow: hidden) memberikan kemampuan cropping gambar dinamis yang mampu menyesuaikan gambar dengan wadah (frame) ketika terjadi perubahan pandangan. Selain itu ada juga yang menggunakan metode penyediaan berbagai ukuran gambar pada servernya, sehingga mampu melayani berbagai ukuran gambar yang tepat sesuai dengan permintaan dari agen perangkat browser dengan memanfaatkan fitur deteksi side-server atau side-client seiring dengan berkembangnya metode DOM.
Dan cara terakhir untuk mengakali beratnya loading page akibat ukuran gambar adalah dengan metode menyembunyikan gambar. Hal ini diterapkan pada halaman situs yang memfokuskan web pada konten non-gambar, menggunakan metode stylesheet media query yang menetapkan property display: none pada gambar. Atau menerapkan sebuah subset pada opsi penggantian gambar dengan menggunakan class seperti optional-img sebagai sebuah cara pemilihan gambar melalui selektor CSS yang spesifik didalam stylesheet. Sederhananya, menggunakan opsi pengganti gambar asli dengan gambar yang lebih kecil melalui CSS.

Media Query

Media Query adalah fitur yang paling menarik untuk di bahas (namun paling menakutkan untuk desainer web yang belum terbiasa) dalam proses desain web responsif. Terkadang, para desainer web terbawa arus dengan berkonsentrasi hanya pada media query, tanpa memikirkan komponen inti dari sebuah desain web responsif, bahkan meninggalkan komponen opsional halaman fleksibel. Hal ini justru membuat media query hampir tak berpengaruh terhadap situs web jika meninggalkan prinsip dasar HTML dan CSS yang meliputi grid fleksibel dan gambar fleksibel. Media Query memungkinkan para desainer untuk membuat beberapa layout menggunakan dokumen HTML yang sama secara selektif melalui stylesheet berdasarkan fitur agen pengguna (user agent), seperti misalnya ukuran jendela browser, orientasi layar (landscape atau portrait), resolusi layar, warna (kemampuan menampilkan sejumlah warna pada layar), dan lain sebagainya.
Berikut adalah contoh media query yang melayani stylesheet tergantung pada lebar viewport (pandangan):
<link rel="stylesheet" media="(max-device-width: 320px)" href="mobile.css" />
<link rel="stylesheet" media="(min-width: 1600px)" href="widescreen.css" />
Media Query tidak dikhususkan untuk memberikan solusi untuk mobile atau solusi untuk tablet (kadang para desainer web pemula berfikir demikian). Sebaliknya, media query dan desain responsif mengajak kita untuk berfikir keluar dari batasan ukuran atau resolusi layar dan mulai membangun website fleksibel yang mampu menyesuaikan diri (secara teoritis) dengan semua media yang beragam.

Apakah Bisa Desain Web Responsif

Seperti telah ditulis diatas mengenai tiga fitur kunci dari desain web responsif, itu hanyalah hal kecil jika dibandingkan dengan semangat anda. Dari 90% desain web responsif yang terbaik adalah dengan memulainya untuk belajar mendesainnya. Well-formed HTML dan tata letak fleksibel harus menjadi bagian penting yang harus diperhatikan dari web desainer modern. Apa yang telah disampaikan oleh Marcotte mengenai aturan desain web responsif hanyalah untuk menunjukan kepada kita cara baru dalam penerapan praktek-praktek mendesain yang terbaik yang harus kita kerjakan. Dalam konteks modern, mengingat bahwa kebutuhan akan layout fleksibel, hal penting yang harus dilakukan sekarang adalah kemampuan dalam mengakomodasi susunan terbaik yang lebih luas sesuai dengan situasi saat ini, kita memerlukan desain yang fleksibel dan fluid. Desain web responsif memaksa kita meluangkan banyak waktu untuk melakukan hal yang benar, bukan hanya bagaimana kita menulis kode, namun bagaimana kita memahami ide-ide baru dan menciptakannya menjadi desain yang segar.

Kami Masih Belum Mengerti

Siapapun yang telah meluangkan banyak waktu dalam mengerjakan konten fleksibel dan merealisasikannya melalui media query maka ia akan menyadari bahwa ini belum mampu memberikan solusi terbaik dalam membangun website yang siap melayani setiap user agent. Pengguna menjelajah web dengan niat berbeda yang terkadang mempunyai keinginan dan kebutuhan yang berbeda-beda, tergantung dari perangkat yang digunakan. Seorang pengguna dengan mobile web browser kemungkinan besar akan tertarik untuk mengakses informasi utama secepat mungkin. Misal; untuk restoran, pengguna mungkin hanya ingin menelusuri menu, nomor telephone untuk pemesanan, alamat, dan sebagainya. Dalam kondisi seperti ini, memuat seluruh halaman situs dan kemudian menyembunyikannya sebanyak 90% bagian halaman, jelas bukan solusi ideal.

Arah Yang Baik

Apa yang membuat desain itu harus responsif, kemudian, apakah langkahnya sudah benar. Banyak situs dibuat untuk memperoleh desain responsif yang terbaik, dan setiap desainer tentunya harus mampu menemukan solusi dan mencari cara untuk mengoptimalkan desain mereka. Desainer akan terus membuat kemajuan untuk menemukan solusi dan menemukan desain yang mampu bekerja dengan baik pada berbagai perangkat dan situasi, sehingga mampu menampilkan web dengan cara yang paling ideal dan intuitif. Hal ini karena kedua belah pihak (desainer dan pengguna) mengarahkan ke arah yang terbaik, ini memberi banyak kesempatan untuk membangun web yang lebih dinamis, menarik dan indah.

Dan itu adalah sesuatu yang sangat berharga... Selamat berkarya...

Pranala Luar :
[1] Kumpulan Situs Responsif
[2] 960 Grid System
[3] 978 Grid System
[4] Fluid Baseline Grid System
[5] Tiny Fluid Grid System

Tuesday, March 6, 2012

Penamaan Warna CSS3

Tabel di bawah menyediakan daftar warna X11 yang didukung oleh browser populer dengan penambahan warna abu-abu (gray/grey) varian dari SVG 1.0. Daftar yang dihasilkan persis sama dengan kata kunci warna SVG 1.0. Dua kotak warna sel tabel di sebelah kiri menggambarkan pengaturan warna latar belakang dengan dua cara; kolom pertama menggunakan nilai warna dengan nama, dan kolom kedua menggunakan nilai warna dengan numerik.

Tabel Warna CSS3

 N a m a NumerikNama WarnaHexDesimal
aliceblue#f0f8ff240,248,255
antiquewhite#faebd7250,235,215
aqua#00ffff0,255,255
aquamarine#7fffd4127,255,212
azure#f0ffff240,255,255
beige#f5f5dc245,245,220
bisque#ffe4c4255,228,196
black#0000000,0,0
blanchedalmond#ffebcd255,235,205
blue#0000ff0,0,255
blueviolet#8a2be2138,43,226
brown#a52a2a165,42,42
burlywood#deb887222,184,135
cadetblue#5f9ea095,158,160
chartreuse#7fff00127,255,0
chocolate#d2691e210,105,30
coral#ff7f50255,127,80
cornflowerblue#6495ed100,149,237
cornsilk#fff8dc255,248,220
crimson#dc143c220,20,60
cyan#00ffff0,255,255
darkblue#00008b0,0,139
darkcyan#008b8b0,139,139
darkgoldenrod#b8860b184,134,11
darkgray#a9a9a9169,169,169
darkgrey#a9a9a9169,169,169
darkgreen#0064000,100,0
darkkhaki#bdb76b189,183,107
darkmagenta#8b008b139,0,139
darkolivegreen#556b2f85,107,47
darkorange#ff8c00255,140,0
darkorchid#9932cc153,50,204
darkred#8b0000139,0,0
darksalmon#e9967a233,150,122
darkseagreen#8fbc8f143,188,143
darkslateblue#483d8b72,61,139
darkslategray#2f4f4f47,79,79
darkslategrey#2f4f4f47,79,79
darkturquoise#00ced10,206,209
darkviolet#9400d3148,0,211
deeppink#ff1493255,20,147
deepskyblue#00bfff0,191,255
dimgray#696969105,105,105
dimgrey#696969105,105,105
dodgerblue#1e90ff30,144,255
firebrick#b22222178,34,34
floralwhite#fffaf0255,250,240
forestgreen#228b2234,139,34
fuchsia#ff00ff255,0,255
gainsboro#dcdcdc220,220,220
ghostwhite#f8f8ff248,248,255
gold#ffd700255,215,0
goldenrod#daa520218,165,32
gray#808080128,128,128
grey#808080128,128,128
green#0080000,128,0
greenyellow#adff2f173,255,47
honeydew#f0fff0240,255,240
hotpink#ff69b4255,105,180
indianred#cd5c5c205,92,92
indigo#4b008275,0,130
ivory#fffff0255,255,240
khaki#f0e68c240,230,140
lavender#e6e6fa230,230,250
lavenderblush#fff0f5255,240,245
lawngreen#7cfc00124,252,0
lemonchiffon#fffacd255,250,205
lightblue#add8e6173,216,230
lightcoral#f08080240,128,128
lightcyan#e0ffff224,255,255
lightgoldenrodyellow#fafad2250,250,210
lightgray#d3d3d3211,211,211
lightgreen#90ee90144,238,144
lightgrey#d3d3d3211,211,211
lightpink#ffb6c1255,182,193
lightsalmon#ffa07a255,160,122
lightseagreen#20b2aa32,178,170
lightskyblue#87cefa135,206,250
lightslategray#778899119,136,153
lightslategrey#778899119,136,153
lightsteelblue#b0c4de176,196,222
lightyellow#ffffe0255,255,224
lime#00ff000,255,0
limegreen#32cd3250,205,50
linen#faf0e6250,240,230
magenta#ff00ff255,0,255
maroon#800000128,0,0
mediumaquamarine#66cdaa102,205,170
mediumblue#0000cd0,0,205
mediumorchid#ba55d3186,85,211
mediumpurple#9370db147,112,219
mediumseagreen#3cb37160,179,113
mediumslateblue#7b68ee123,104,238
mediumspringgreen#00fa9a0,250,154
mediumturquoise#48d1cc72,209,204
mediumvioletred#c71585199,21,133
midnightblue#19197025,25,112
mintcream#f5fffa245,255,250
mistyrose#ffe4e1255,228,225
moccasin#ffe4b5255,228,181
navajowhite#ffdead255,222,173
navy#0000800,0,128
oldlace#fdf5e6253,245,230
olive#808000128,128,0
olivedrab#6b8e23107,142,35
orange#ffa500255,165,0
orangered#ff4500255,69,0
orchid#da70d6218,112,214
palegoldenrod#eee8aa238,232,170
palegreen#98fb98152,251,152
paleturquoise#afeeee175,238,238
palevioletred#db7093219,112,147
papayawhip#ffefd5255,239,213
peachpuff#ffdab9255,218,185
peru#cd853f205,133,63
pink#ffc0cb255,192,203
plum#dda0dd221,160,221
powderblue#b0e0e6176,224,230
purple#800080128,0,128
red#ff0000255,0,0
rosybrown#bc8f8f188,143,143
royalblue#4169e165,105,225
saddlebrown#8b4513139,69,19
salmon#fa8072250,128,114
sandybrown#f4a460244,164,96
seagreen#2e8b5746,139,87
seashell#fff5ee255,245,238
sienna#a0522d160,82,45
silver#c0c0c0192,192,192
skyblue#87ceeb135,206,235
slateblue#6a5acd106,90,205
slategray#708090112,128,144
slategrey#708090112,128,144
snow#fffafa255,250,250
springgreen#00ff7f0,255,127
steelblue#4682b470,130,180
tan#d2b48c210,180,140
teal#0080800,128,128
thistle#d8bfd8216,191,216
tomato#ff6347255,99,71
turquoise#40e0d064,224,208
violet#ee82ee238,130,238
wheat#f5deb3245,222,179
white#ffffff255,255,255
whitesmoke#f5f5f5245,245,245
yellow#ffff00255,255,0
yellowgreen#9acd32154,205,50
Tabel diatas diambil dari W3C Modul Warna CSS3. Klik disini untuk mengunduh tabel.

Catatan: Internet Explorer 6 (atau versi lebih rendah) hanya mampu menafsirkan warna abu-abu (gray/grey) dengan benar: darkgray, darkslategray, dimgray, gray, lightslategray, slategray, lightgrey.

Tuesday, February 28, 2012

Memahami Threaded Comments Blogger

Sejak Blogger meluncurkan Threaded Comments, banyak sekali para pengguna BlogSpot berbondong-bondong beralih ke komentar versi "Balas" ini. Namun tidak sedikit yang berakhir kecewa karena ternyata Threaded Comments tidak bisa bekerja dengan baik, bahkan ada yang sampai akhirnya beralih ke pihak ketiga penyedia layanan komentar karena sulitnya integrasi Threaded Comments pada template Blogger. Apa dan bagaimana sebenarnya Threaded Comments? Kita akan bahas (tuntas) untuk bisa memahami tentang fasilitas Threaded Comments pada Blogger dengan harapan mempermudah para blogger untuk melakukan modifikasi kode pada templatenya.
Fix Problem Reply Threaded Comments
Sebelum membahas tentang kode-kode yang memusingkan, mari kita pahami dulu perbedaan mendasar antar template yang telah dikeluarkan oleh Blogger. Blogger telah mengeluarkan beberapa versi template. Untuk mempermudahnya maka kita definiskan; versi kesatu kita sebut sebagai template Tata Letak yang menggunakan HTML4; dan versi kedua kita sebut sebagai template Perancang yang sudah menggunakan HTML5. Sedangkan versi Classic, versi Dynamic View dan versi Mobile tidak akan dibahas agar materi tidak terlalu melebar.

Dibawah ini akan diulas sekelumit tentang perbedaan mendasar namun penting untuk diketahui, antara template blogger versi Tata Letak (HTML4) dengan template versi Perancang (HTML5).

Header Document

Inilah perbedaan awal template blogger, jika kita menggunakan template versi Tata Letak berarti kita menggunakan HTML4. Jika kita menggunakan template versi Perancang berarti kita menggunakan HTML5. Silahkan perhatikan Header Document dibawah ini:
Versi Tata Letak - HTML4
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
Versi Perancang - HTML5
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
Catatan : Mengenai detail tag yang digunakan pada HTML5 akan dibahas pada artikel terpisah

CSS Widget Default

Perbedaan selanjutnya adalah stylesheet default yang disertakan (tanpa penawaran) pada template.
Versi Tata Letak
Stylesheet versi Tata Letak yang disertakan pada template tidak mengandung kode css untuk Threaded Comments.
<link type='text/css' rel='stylesheet' href='http://www.blogger.com/static/v1/widgets/2002994779-widget_css_bundle.css' />
Versi Perancang
Stylesheet versi Perancang yang disertakan pada template sudah terintegrasi kode css untuk Threaded Comments.
<link type='text/css' rel='stylesheet' href='http://www.blogger.com/static/v1/widgets/4132898751-widget_css_2_bundle.css' />

Kode Internal Template Threaded Comments

Sebenarnya antara template versi HTML4 dengan versi HTML5 tidak terlalu banyak perubahan dari sisi code (X)HTML-nya untuk fasilitas Threaded Comments. Perhatikan kode Threaded Comments dibawah ini dan bandingkan.

Versi Tata Letak - HTML4
<b:includable id='threaded_comment_js' var='post'>
<b:includable id='comment-form' var='post'>
<b:includable id='threaded_comments' var='post'>
<b:includable id='threaded-comment-form' var='post'>
<b:includable id='threaded_comment_css'>
<b:includable id='comments' var='post'>
Versi Perancang - HTML5
<b:includable id='threaded_comment_js' var='post'>
<b:includable id='comment-form' var='post'>
<b:includable id='threaded_comments' var='post'>
<b:includable id='threaded-comment-form' var='post'>
<b:includable id='comments' var='post'>
Dari perbandingan diatas maka akan ditemukan satu includable saja yang berbeda. Pada versi HTML4 terdapat <b:includable id='threaded_comment_css'> sedangkan pada versi HTML5 tidak ada karena stylesheet-nya sudah terintegrasi pada stylesheet default bawaan template (lihat penjelasan CSS Widget Default). Sedangkan ketika kita buka satu-satu bagian includable tersebut diatas maka ada perbedaan mendasar hanya pada bagian dalam kode dari <b:includable id='threaded_comment_js' var='post'> seperti dijelaskan selanjutnya.

Lokasi Penempatan Threaded Comments

Dimana lokasi penempatan Threaded Comments? Sebelum beralih ke Threaded Comments kita telusuri lebih dulu lokasi penempatan comments sebelum keluar versi Threaded Comments.
Lokasi Kode Sebelum Versi Threaded Comments
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<b:include data='post' name='comments'/>
</b:if>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:include data='post' name='comments'/>
</b:if>
Perhatikan kode <b:include data='post' name='comments'/> itu adalah lokasi penempatan komentar dan form komentar. Pada template, kode tersebut terdapat pada 4 (empat) lokasi, jadi bukan hanya 2 (dua).

Lokasi Kode Sesudah Versi Threaded Comments
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<b:if cond='data:post.showThreadedComments'>
<b:include data='post' name='threaded_comments'/>
<b:else/>
<b:include data='post' name='comments'/>
</b:if>
</b:if>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:post.showThreadedComments'>
<b:include data='post' name='threaded_comments'/>
<b:else/>
<b:include data='post' name='comments'/>
</b:if>
</b:if>
Perhatikan kode diatas lalu bandingkan dengan versi sebelum Threaded Comments, ada penambahan beberapa kode. Jika kita telusuri pada template, maka akan ditemukan 2 (dua) lokasi penempatan komentar.
Jika kode komentar template anda masih menggunakan versi awal (sebelum threaded comments) maka kode tersebut harus diganti dengan kode versi Threaded Comments. Namun ingat, bahwa kode tersebut terdapat pada 2 (dua) lokasi, gantilah kedua-duanya. Seperti dijelaskan pada artikel sebelumnya.

JavaScript Threaded Comments

Bagian inilah yang memiliki perbedaan sangat menonjol setelah dibuka dan dibandingkan. Namun tidak akan dibahas mendetail (lain waktu jika tidak malas). Dan ini merupakan salah satu solusi yang ditemukan Blogger Tune-Up ketika mendapati masalah Reply Threaded Comment tidak bekerja dengan baik, yaitu menukar JavaScript versi HTML4 dengan JavaScript versi HTML5.
Versi Tata Letak - HTML4
<b:includable id='threaded_comment_js' var='post'>
<script defer='defer' expr:src='data:post.commentSrc' type='text/javascript'/>
<script type='text/javascript'>
(function() {
var items = <data:post.commentJso/>;
var msgs = <data:post.commentMsgs/>;
var postId = &#39;<data:post.id/>&#39;;
var feed = &#39;<data:post.commentFeed/>&#39;;
var authorName = &#39;<data:post.author/>&#39;;
var authorUrl = &#39;<data:post.authorUrl/>&#39;;
var blogId = &#39;<data:top.id/>&#39;;
var baseUri = &#39;<data:post.commentBase/>&#39;;

// <![CDATA[
feed += '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
var cursor = null;
if (items && items.length > 0) {
cursor = parseInt(items[items.length - 1].timestamp) + 1;
}

var bodyFromEntry = function(entry) {
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
return '<span class="deleted-comment">' + entry.content.$t + '</span>';
}
}
}
return entry.content.$t;
}

var parse = function(data) {
cursor = null;
var comments = [];
if (data && data.feed && data.feed.entry) {
for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
var comment = {};
// comment ID, parsed out of the original id format
var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
comment.id = id ? id[2] : null;
comment.body = bodyFromEntry(entry);
comment.timestamp = Date.parse(entry.published.$t) + '';
if (entry.author && entry.author.constructor === Array) {
var auth = entry.author[0];
if (auth) {
comment.author = {
name: (auth.name ? auth.name.$t : undefined),
profileUrl: (auth.uri ? auth.uri.$t : undefined),
avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
};
}
}
if (entry.link) {
if (entry.link[2]) {
comment.link = comment.permalink = entry.link[2].href;
}
if (entry.link[3]) {
var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
if (pid && pid[1]) {
comment.parentId = pid[1];
}
}
}
comment.deleteclass = 'item-control blog-admin';
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
console.log(entry.gd$extendedProperty[k].name + ' - ' + entry.gd$extendedProperty[k].value);
if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
}
}
}
comments.push(comment);
}
}
return comments;
};

var paginator = function(callback) {
if (hasMore()) {
var url = feed;
if (cursor) {
url += '&published-min=' + new Date(cursor).toISOString();
}
window.bloggercomments = function(data) {
var parsed = parse(data);
cursor = parsed.length < 50 ? null
: parseInt(parsed[parsed.length - 1].timestamp) + 1
callback(parsed);
window.bloggercomments = null;
}
url += '&callback=bloggercomments';
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
};
var hasMore = function() {
return !!cursor;
};
var getMeta = function(key, comment) {
if ('iswriter' == key) {
var matches = !!comment.author
&& comment.author.name == authorName
&& comment.author.profileUrl == authorUrl;
return matches ? 'true' : '';
} else if ('deletelink' == key) {
return baseUri + '/delete-comment.g?blogID=' + blogId + '&postID=' + comment.id;
} else if ('deleteclass' == key) {
return comment.deleteclass;
}
return '';
};

var replybox = null;
var replyUrlParts = null;
var replyParent = undefined;

var onReply = function(commentId, domId) {
if (replybox == null) {
// lazily cache replybox, and adjust to suit this style:
replybox = document.getElementById('comment-editor');
if (replybox != null) {
replybox.height = '250px';
replybox.style.display = 'block';
replyUrlParts = replybox.src.split('#');
}
}
if (replybox && (commentId !== replyParent)) {
document.getElementById(domId).insertBefore(replybox, null);
replybox.src = replyUrlParts[0]
+ (commentId ? '&parentID=' + commentId : '')
+ '#' + replyUrlParts[1];
replyParent = commentId;
}
};

var tok = 'comment-form_';
var hash = window.location.hash || '';
var startThread = hash.indexOf(tok) == 1 ? hash.substring(tok.length + 1) : undefined;

// Configure commenting API:
var configJso = {
'maxDepth': 2
};
var provider = {
'id': postId,
'data': items,
'loadNext': paginator,
'hasMore': hasMore,
'getMeta': getMeta,
'onReply': onReply,
'rendered': true,
'initReplyThread': startThread,
'config': configJso,
'messages': msgs
};

var render = function() {
if (window.goog && window.goog.comments) {
var holder = document.getElementById('comment-holder');
window.goog.comments.render(holder, provider);
}
};

// render now, or queue to render when library loads:
if (window.goog && window.goog.comments) {
render();
} else {
window.goog = window.goog || {};
window.goog.comments = window.goog.comments || {};
window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
window.goog.comments.loadQueue.push(render);
}
})();
// ]]>
</script>
</b:includable>
Versi Perancang - HTML5
<b:includable id='threaded_comment_js' var='post'>
<script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
<script type='text/javascript'>
(function() {
var items = <data:post.commentJso/>;
var msgs = <data:post.commentMsgs/>;
var config = <data:post.commentConfig/>;

// <![CDATA[
var cursor = null;
if (items && items.length > 0) {
cursor = parseInt(items[items.length - 1].timestamp) + 1;
}

var bodyFromEntry = function(entry) {
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
return '<span class="deleted-comment">' + entry.content.$t + '</span>';
}
}
}
return entry.content.$t;
}

var parse = function(data) {
cursor = null;
var comments = [];
if (data && data.feed && data.feed.entry) {
for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
var comment = {};
// comment ID, parsed out of the original id format
var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
comment.id = id ? id[2] : null;
comment.body = bodyFromEntry(entry);
comment.timestamp = Date.parse(entry.published.$t) + '';
if (entry.author && entry.author.constructor === Array) {
var auth = entry.author[0];
if (auth) {
comment.author = {
name: (auth.name ? auth.name.$t : undefined),
profileUrl: (auth.uri ? auth.uri.$t : undefined),
avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
};
}
}
if (entry.link) {
if (entry.link[2]) {
comment.link = comment.permalink = entry.link[2].href;
}
if (entry.link[3]) {
var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
if (pid && pid[1]) {
comment.parentId = pid[1];
}
}
}
comment.deleteclass = 'item-control blog-admin';
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
}
}
}
comments.push(comment);
}
}
return comments;
};

var paginator = function(callback) {
if (hasMore()) {
var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
if (cursor) {
url += '&published-min=' + new Date(cursor).toISOString();
}
window.bloggercomments = function(data) {
var parsed = parse(data);
cursor = parsed.length < 50 ? null
: parseInt(parsed[parsed.length - 1].timestamp) + 1
callback(parsed);
window.bloggercomments = null;
}
url += '&callback=bloggercomments';
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
};
var hasMore = function() {
return !!cursor;
};
var getMeta = function(key, comment) {
if ('iswriter' == key) {
var matches = !!comment.author
&& comment.author.name == config.authorName
&& comment.author.profileUrl == config.authorUrl;
return matches ? 'true' : '';
} else if ('deletelink' == key) {
return config.baseUri + '/delete-comment.g?blogID='
+ config.blogId + '&postID=' + comment.id;
} else if ('deleteclass' == key) {
return comment.deleteclass;
}
return '';
};

var replybox = null;
var replyUrlParts = null;
var replyParent = undefined;

var onReply = function(commentId, domId) {
if (replybox == null) {
// lazily cache replybox, and adjust to suit this style:
replybox = document.getElementById('comment-editor');
if (replybox != null) {
replybox.height = '250px';
replybox.style.display = 'block';
replyUrlParts = replybox.src.split('#');
}
}
if (replybox && (commentId !== replyParent)) {
document.getElementById(domId).insertBefore(replybox, null);
replybox.src = replyUrlParts[0]
+ (commentId ? '&parentID=' + commentId : '')
+ '#' + replyUrlParts[1];
replyParent = commentId;
}
};

var hash = (window.location.hash || '#').substring(1);
var startThread, targetComment;
if (/^comment-form_/.test(hash)) {
startThread = hash.substring('comment-form_'.length);
} else if (/^c[0-9]+$/.test(hash)) {
targetComment = hash.substring(1);
}

// Configure commenting API:
var configJso = {
'maxDepth': config.maxThreadDepth
};
var provider = {
'id': config.postId,
'data': items,
'loadNext': paginator,
'hasMore': hasMore,
'getMeta': getMeta,
'onReply': onReply,
'rendered': true,
'initComment': targetComment,
'initReplyThread': startThread,
'config': configJso,
'messages': msgs
};

var render = function() {
if (window.goog && window.goog.comments) {
var holder = document.getElementById('comment-holder');
window.goog.comments.render(holder, provider);
}
};

// render now, or queue to render when library loads:
if (window.goog && window.goog.comments) {
render();
} else {
window.goog = window.goog || {};
window.goog.comments = window.goog.comments || {};
window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
window.goog.comments.loadQueue.push(render);
}
})();
// ]]>
</script>
</b:includable>
Demikianlah saya coba memahami apa yang ingin disampaikan oleh kode-kode (X)HTML Blogger. Mohon koreksinya jika ada kesalahan pemahaman. Selamat berpusing ria dan Happy Blogging :)

Friday, December 16, 2011

Autolink Mini MP3 Player for Blogger Version 2.0

Bismillah. Alhamdulillah. Plugin Autolink Mini MP3 Player for Blogger Version 2.0 adalah pengembangan dan perbaikan dari Autolink Mini MP3 Player for Blogger Version 1.0. Terima kasih untuk para pembaca setia Blogger Tune-Up atas kritik, saran dan masukannya sehingga Autolink Mini MP3 Player for Blogger terus dikembangkan dengan harapan akan semakin mendekati kebutuhan para Blogger tanah air. Secara garis besar plugin Mini Music Player kali ini masih berbasis dari script plugin sebelumnya dan dengan player yang sama pula. Lalu apa pengembangannya? Hanya sedikit tapi lumayanlah lebih bagus dari sebelumnya...
Autolink Mini MP3 Player for Blogger Version 2.0

Update 15-12-2011 Autolink Mini MP3 Player Versi 2.0

  • Seluruh file diletakan pada server Google, sehingga loading lebih cepat (mudah-mudahan akun Blogger Tune-Up di Google Code tidak ditutup lagi)
  • Disertakan pengaturan penggantian keterangan file MP3 yang ada dibawah player
  • Disertakan pengaturan penggantian keterangan file MP3 yang ada dibawah player saat mouse diatas link Unduhan (hover)

Kekurangan Autolink Mini MP3 Player Versi 2.0

  • Background Keterangan file MP3 yang ada dibawah Player masih belum bisa di setting sesuai keinginan
  • Baru bisa mengenali file dengan ekstensi .mp3 saja, untuk .ogg, .wav, dan .swf (khusus untuk .swf sebenarnya tidak diperlukan player) belum bisa mengenalinya
  • Mohon bantuan untuk menemukan kelemahan dan kekurangan lainnya

Integrasi Autolink Mini MP3 Player Versi 2.0

Langkah 1
Login ke Blogger
Langkah 2
Masuk ke "Rancangan - Edit HTML"
Langkah 3
Cari kode dibawah ini (pilih salah satu saja):
</head>
atau:
</body>
Langkah 4
Masukan (copy paste) kode dibawah ini diatas kode pada langkah 3:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">//<![CDATA[
var unduhan ="Download";
var mos = "Right click - Save Target As for download";
//]]>
</script>
<script type="text/javascript" src="http://henscripts.googlecode.com/svn/trunk/minimusicplayer.min.js"></script>
Langkah 5
Simpan template...

Setting Keterangan Autolink Mini MP3 Player Versi 2.0

  • var unduhan ="Download"; ubahlah kata "Download" sesuai dengan keinginan anda (misal; Unduh, Sedot, Hisap, Sikat dan lain sebagainya). Kata ini akan muncul sebagai keterengan pada bagian bawah player.
  • var mos = "Right click - Save Target As for download"; ubahlah kata "Right click - Save Target As for download" sesuai dengan kalimat yang anda sukai. Kalimat ini akan muncul pada saat mouse berada diatas keterangan file yang berada dibawah player.

Memasukan File MP3 pada Artikel/Widget

Untuk memasukan file MP3 pada artikel blog atau widget, caranya sama saja seperti versi sebelumnya. Silahkan baca disini.

Selamat mencoba dan semoga berhasil. Happy Blogging :)