Monday, 21 August 2017

Menampilkan Data MySQL Di ComboBox Menggunakan Java

Ada beberapa teman-teman yang request ke Saya tentang tutorial yang berkaitan dengan database.

Salah satu dari sekian request adalah bagaimana cara menampilkan data yang berasal dari database ke ComboBox menggunakan Java Netbeans.

Untuk itu kalian bisa ikutin tutorial ini agar bisa paham bagaimana cara menampilkan data MySQL di ComboBox.

Buat Database


Buat sebuah database yang simple saja yang penting bisa untuk input data dan datanya di tampilkan di ComboBox.

Di project ini saya gunakan database yang sudah ada saja, yang pernah saya gunakan di tutorial CRUD Java MySQL.

Kalian persiapkan saja database yang mau digunakan sendiri. Usahakan ada datanya ya :D

Buat Design 


Silakan buat design yang seperti sama dengan design dibawah ini (atau sesuaikan saja dengan yang mau kalian buat)

Output combobox

 Implementasi Java



Buat satu class java baru dengan nama ComboBoxConnection. Didalam class baru ini akan ada beberapa method yang harus dibuat agar rencana menampilkan data dari MySQL ke ComboBox bisa berjalan lancar, antara lain :
  1. getConnection()
  2. showIdOnCombo(javax.swing.JComboBox cb)
Full code dari class ComboBoxConnection.java adalah sebagai berikut, silakan ketik di class yang kalia buat/siapkan

Setelah membuat class yang baru, silakan masuk ke TAB design (lihat gambar dibawah ini)
tab design
 kemudian cari kode initComponents(), ketikan kode berikut dibawah kode initComponents() :


Selesai. Jalankan programnya, semoga berhasil. Jika ada masalah silakan ditanyakan di kolom komentar.

Ps :
  • Pastikan nama databasenya benar.
  • Pastikan nama tabel yang akan ditampilkan datanya benar.

Sunday, 6 August 2017

Menentukan Dua Buah Kata Termasuk Anagram Atau Tidak Dengan Java

Anagram adalah salah satu jenis permainan kata yang huruf-huruf di kata awal biasanya diacak untuk membentuk kata lain atau sebuah kalimat. Anagram sering dipakai sebagai kode. Permainan yang menggunakan anagram antara lain adalah scrabble dan boggle. Dalam kedua permainan ini, pemain berusaha membentuk kata-kata dari huruf yang disediakan [source wiki]

Contohnya :

ABC  dengan BCA atau ACB atau BAC adalah Anagram

Kenapa demikian?

Karena setiap satu huruf di kata pertama, dimiliki oleh kata kedua dengan jumlah yang sama. Jadi jika kata pertama mengandung huruf A sebanyak 1, maka dikata kedua juga harus memiliki huruf A sebanyak 1. Jika dikata pertama mengandung huruf B sebanyak 2, maka dikata kedua juga harus memiliki huruf B sebanyak 2, begitu seterusnya.

ABC dengan BBA atau ABBC atau ABCA atau ABA atau BAA bukan merupakan Anagram


Seperti yang dijelaskan pada contoh kasus yang Anagram, pada contoh kasus yang kedua ini, huruf yang ada pada kata pertama dan kata kedua itu sama, namun jumlahnya berbeda (pasti ada yang berbeda jumlahnya). Itulah yang membedakan kenapa pada contoh kedua ini bukan merupakan Anagram

Bagaimana penerapannya dalam java?


Berikut ini saya akan berikan 2 method yang dapat digunakan untuk mencari apakan dua kata termasuk Anagram atau tidak.

Method I


Pada method ini yang pertama dilakukan adalah mengurutkan kata pertama dan kata kedua dari awal sampe akhir (urutan berdasarkan abjad a-z).

Yang digunakan untuk mengurutkan adalah kode Arrays.sort(chars1). Maka dari inputannya bca akan berubah menjadi abc. Tujuannya adalah biar program mundah mendeteksi berapa jumlah setiap hurufnya jika sudah di urutkan.

Jadinya akan begini :

CCABD dan BACD, setelah dilakukan sort maka akan menjadi ABCCD dan ABCA, maka sudah ketahuan kalau kedua kata itu bukan merupakan Anagram

Yang menetukan jumlahnya sama atau tidak adalah pada bagian if yaitu Arrays.equals(chars1, chars2).

Baca juga : Menampilkan Gambar Dari Database MySQL Menggunakan PHP 

Paham kan ya?

Method II


Pada method yang kedua ini saya rasa lebih kompleks dari pada method yang pertama karena lebih banyak main logic dari pada fungsi yang sudah ada di java.

Yang pertama adalah melakukan pengecekan jumlah kata pertama dan kata kedua harus sama jumlahnya, jika beda jumlahnya sudah dipastikan itu bukan Anagram.

Baca juga : Membuat Kakulator Sederhana Dengan Java Netbeans (Di Sertai Penjelasan Secara Lengkap)

Yang kedua melakukan pengecekan setiap hurufnya antara kata pertama dan kata kedua, sebelum ditentukan apakah itu anagram atau bukan

Yang terakhir menentukan Anagram atau tidaknya.

Pada method ini juga dapat mengetahui huruf mana saja yang menyebabkan dua buah kata itu tidak Anagram dan berapa jumlahnya.

Bagaimana jika ada huruf besar dan kecil?


Tidak masalah, jika kasus kalian mengharuskan antara huruf besar dan kecil adalah sama maka gunakan fungsi .toLowerCase().

Jika kasus kalian mengharuskan membedakan antara huruf besar dan kecil maka fungsi .toLowerCase() tidak perlu digunakan.

Cara Pemakaian Method



Hasilnya 


Hasil yang Anagram

Hasil bukan Anagram


Sekian tutorial kali ini, kalian bisa gunakan yang mana saja boleh, keduanya sama dapat menentukan dua buah kata itu Anagram atau tidak.

Saturday, 5 August 2017

Menampilkan Gambar Dari Database MySQL Menggunakan PHP

Sebenarnya postingan tentang cara menampilkan data gambar dari database MySQL munggunakan PHP sudah ada di dalam postingan tertentu di blog ini, cuma dengan alasain efesian dan pemahaman per artikelnya, saya putuskan untuk memisahkan saja.

Jika teman-teman belum mempunyai data di dalam database atau belum tau caranya bagaimana insert /memasukan data ke database MySQL, silakan teman-teman baca postingan saya tentang : Cara Insert Data Gambar ke Database MySQL menggunakan PHP

 Artikel kali ini hanya membahasa masalah bagaimana cara menampilkan data gambar dari database MySQL dan mengasumsikan teman-teman sudah punya data yang ingin ditampilkan.

Siapkan database yang sudah berisi data gambar


Disini saya akan asumsikan teman-teman sudah punya databasenya. Tapi jika belum kalian bisa buat di localhost dengan table yang sederhana yaitu  cukup mengandung attribute Id dan Image saja.

Baca juga : Tutorial CRUD (Create, Read, Update, Delete) Menggunakan PHP Dan MySQL 

Ingat : Untuk menggunakan cara display data dengan artikel ini, syaratnya adalah type data image yang didatabase itu bukan tipe blob melainkan type varchar. Kenapa demikian karna kita hanya menyimpan path si gambar saja, buka file gambarnya. Untuk itu silakan baca link yang tadi saya berikan diatas.

Class Connection


Seperti biasa saya akan buatkan class koneksinya agar satu program ini bisa dimengerti dari mana datanya setiap kode2 nya.

Silakan buat class php baru, beri nama Connection.php, kemudian ketikan kode dibawah ini :

Perhatikan kode dibatas pada bagian $dbname. Pada attribute $dbname isikan dengan nama database kalian masing-masing

Class Display Data


Pada class yang akan saya berikan ini adalah proses terjadinya pemanggilan data image dari database. Silakan buat class php baru, berikan nama DisplayImageFromDatabase.php kemudian ketikan kode dibawah ini :

Perhatikan :

Jika kalian HANYA ingin menampilkan pathnya saja, kalian bisa gunakan kode ini :

echo $data['image'];

Namun jika kalian ingin menampilkan gambar berdasarkan path yang tersimpan didatabase, maka kalian harus simpan $data['image'] didalam tagline image (<img src .... />), lihat kode dibawah ini :

<img src="<?php echo $data['image']?>" width="20%">

Kenapa image bisa tampil padahal cuma nama pathnya aja, dari nama gambarnya didapatkan?


Mungkin dari teman-teman ada yang bertanya seperti itu. Begini kalo kalian perhatikan gambar dari database saya dibawah ini :

path gambar
Pada bagian yang saya warnai kuning itu adalah nama path si gambar yang ada didalam folder project php nya. setelah itu akan ada tanda slash (/) setelah tanda slash akan ada nama si image yang berhasil diupload ke database.

Baca juga : Menampilkan Data Di Android (Retrofit 2.0 GET) Dari Server PHP + MySQL 

Hanya seperti itu saja?


Ya, umunya seperti itu. Tapi satu lagi jangan sampe kelewat, yaitu antara class DisplayImageFromDatabase.php dan folder tempat menyimpan gambar yang berhasil di upload harus satu arah(satu folder), tidak boleh berbeda tempat. Lihat gambar dibawah ini :

struktur folder project
Antara DisplayImageFromDatabase.php dan folder gambar (imagefromandroid dan images) berada pada satu garis lurus yaitu di folder project InsertImage

Jadi ketika class DisplayImageFromDatabase ingin menampilkan gambar dari path images/namagambar.jpg, maka diakan akan mencari folder images dengan nama gambar yang ada didalamnya namagambar.jpg.

Paham kira kira kan ya?

Sebenarnya boleh berlainan folder antara class pemanggila gambar dan directory gambarnya, tapi untuk pembelajaran awal mending pakai cara diatas saya yang satu folder, biar cepet running programnnya hehehe.

Hasil Akhir


Design untuk tampilan saya buat sembarangan saja biar kalian bisa focus ke inti bagaimana cara menampilkan datanya. Kalo masalah design cuma utak atik HTML, CSS nya saja.

Hasil akhir

Sekian tutorial kali ini. Semoga bermanfaat.

Wednesday, 2 August 2017

Tanggapan : Kuliah Jurusan IT/Komputer Hanya Sia-Sia Belaka

Entah dari mana awal artikel ini muncul, penulis yang membuat artikel ini jujur saya katakan HEBAT! Kenapa Saya berkata demikian, ya karena dari cerita yang dia sampaikan bahwa dia yang dari office-boy secara otodidak belajar programming sampai pada akhirnya membuat produk aplikasi sendiri yang dipakai di sebuah hotel, disamping itu dia menjadi Manager, trainer, dll.


Tapi tau kah kalian, apa yang dia sampaikan diartikel ini tidak sangat tidak tercermin karakter positif dan semangat memotivasi mereka-mereka yang sedang kuliah IT.

Sumber tulisan saya dapat dari kaskus, silakan lihat disini

Mari kita baca artikelnya dan langsung saya tanggapi (saya akan tanggapi dari perspektif berbeda tidak hanya berkaitan dengan IT).

----

Tahukah Anda mengapa kuliah Jurusan Komputer sia-sia belaka? Tahukah Anda mengapa sarjana komputer tidak lebih pandai daripada pedagang, programer dan teknisi komputer di pinggir jalan? Semua itu berawal dari salah kaprah tentang ilmu informatika dan teknik komputer. Banyak orang menyangka ketrampilan menangani peranti lunak dan piranti keras komputer hanya ada di bangku kuliah. Lalu dijadikan bekal untuk cari kerja. Nyatanya semua itu salah kaprah, kenapa?

Untuk menjawab pertanyaan sederhana itu mari perhatikan beberapa hal di bawah ini:

1) ORANG TUA MURID BUTA DUNIA KOMPUTER


Sejak awal 1990 banyak orang tua murid menargetkan anak jago komputer. Demi menyaksikan kehebatan mesin komputer merajai meja kerja. Anak anak pun berduyun ambil kuliah jurusan komputer. Pebisnis menyambut gembira dengan membuka akademi dan perguruan tinggi jurusan komputer. Tarian Iklan jurusan komputer menghembuskan mimpi mimpi indah. Seakan penyandang gelar diploma dan sarjana komputer adalah jaminan masa depan cerah. Nyatanya setelah lulus kuliah koq beda jauh, kenapa?

Karena hanya latah ikut-ikutan arus besar tanpa memahami dunia komputer yang sejatinya hanya alat mempermudah pekerjaan melalui bantuan teknologi.

Tanggapan saya (General):

Pertama, saya tidak heran jika banyak orang tua ditahun 1990 ingin anaknya sekolah yang tinggi agar tidak sama dengan orang tuanya yang sama sekali tidak berpendidikan, saya saja yang lahir 1992 orang tua saya tetap memotivasi saya agar saya sekolah, jadi anak yang berpola pikir bagus.

Kedua, orang tua mana yang tidak bangga ketika melihat anaknya sukses menyelesaikan pendidikannya? Apalagi menyelesaikan level sarjana (bagi mereka para orang tua yang tidak bersekolah).

Ketiga, memang dari para orang tua banyak yang bilang "Sekolahlah yang tinggi, biar kamu jadi orang sukses", salahnya dimana pak? Menurut saya sih itu wajar karna semangat orang tua yang ingin anaknya sekolah. Wajar karna orang tua dulu tidak pernah yang namanya memiliki pengetahuan bagaimana persaingan dunia kerja sekarang ini. Dulu banyak sekolah yang lulus langsung kerja, banyak sekolah ikatan dinas. Jadi mungkin tolak ukur orang tua dulu itu ya seperti itu.

Orang tua saya tidak menargetkan saya harus kuliah jurusan IT, Ekonomi, Kimia, Mesin, dll. Semua itu adalah pilihan saya nantinya ketika kuliah. Orang tua saya hanya bilang "Pendidikan itu investasi", orang tua sayapun bilang sukses itu kerja keras dan doa, tidak ada kerja keras setinggi apapun sekolahmu akan gagal. Sekedar informasi orang tua saya hanya tamat SMP (Bapak), Ibu (Tidak lulus SD) cuma mereka punya mimpi semua anaknya harus sekolah, karna dari sekolah-lah kamu akan "Berinvestasi Masa Depan".

Pertanyaannya, orang tua - orang tua yang Bapak katakan pada tahun 1990 itu bapak lihat dimana? Dari sudut pandang mana, apakah sudah lihat sudut pandang lainnya? Apakah sudah lihat semua background para orang tua, apakah hanya ke jurusan IT/Komputer saja? Orang tua saya saja (saya yakin) pada tahun itu belum kenal kata Programmer.

Ya mungkin yang Anda lihat itu yg orang tuanya sudah jadi Manager/Supervisor/CEO yang sudah pasti kenal komputer dan programmer kemudian memaksa anaknya kuliah di jurusan IT (Kalau begini saya setuju dengan kata Anda, SALAH KAPRAH!)

2) TIDAK PERLU KULIAH AGAR TRAMPIL KOMPUTER


Ijinkan saya berbagi pengalaman pribadi. Jika ingin trampil komputer banyak cara: kursus 2 bulan atau belajar sambil jalan di tempat kerja. Lain lagi jika ingin berkarir di bidang komputer (IT/MIS/EDP). Setidaknya perlu waktu 2 tahun praktek langsung sebagai programer (piranti lunak/software) ataupun teknisi (piranti keras/hardware). Waktu 2 tahun itu di luar masa kuliah jika ambil jurusan komputer. Mengapa? Sarjana komputer lulusan Indonesia, Australi, Amerika sama sama cuma tau teori. Praktek NOL BESAR.

Kebetulan saya jadi programer sejak 1985. Jadi programer secara otodidak di kantor. Ketika itu saya bekerja sebagai Office Boy di perusahaan patungan Pertamina-Spinneys London. Kantornya di Gedung Patra Jasa lantai 14 Jakarta Selatan. Untuk meningkatkan pengetahuan dunia programming kemudian saya ambil kursus-kursus di samping baca-baca buku atas biaya kantor.

Sejarah membuktikan beberapa murid dan anak buah saya di kemudian hari adalah sarjana komputer. Baik lulusan Indonesia maupun lulusan luar negeri. Di antaranya ada puluhan manager dan eksekutif Eropa belajar komputer kepada saya. Mereka pekerja asing (expatriate) di Indonesia. Padahal saya bukan sarjana komputer.

Background saya? Tidak ada kaitan dengan teknik dan komputer. Saya jebolan sekolah guru SPG TEGAL 1981 dan Drop Out Fakultas Sastra Inggris UKI Jakarta 1983. Jadi Office Boy 1983-1984. Jadi programer secara otodidak sejak 1985. Tahun 1990 jadi system developer dan Manager MIS. Tahun 1991 saya ciptakan aplikasi sistem managemen perhotelan yang laku dijual kepada hotel-hotel chain. Salah satunya adalah Accor-Ibis Indonesia. Software bernama “FOSYS+” buatan saya bercokol di Ibis Cikarang sejak 1993-2010. Pada 1993 harga (price list) FOSYS+ berkisar 75 juta, 25% dari harga software import.

Kata orang-orang hotel FOSYS+ adalah software made in putra Indonesia yang pertama beredar di pasar software hotel management system / Front Office System. Beroperasi dengan PC sementara waktu itu masih jamannya mainframe.

Ciri khas FOSYS adalah tampilan ROOM-BOX inquiry. Tampilan kotak-kotak di layar komputer untuk baca status kamar sebagai ganti tampilan berupa listing. Sejak itu menjadi acuan umum para developer jagoan sistem hotel dalam dan luar negeri. Puluhan tahun saya ketemu programer dan user sistem reservasi perhotelan. Mereka sering tanya, bahas atau pamer kehebatan ROOM-INQURY. Mereka tidak tau si pencipta tampilan ROOM-BOX adalah saya (agil) bekas Office Boy yang otodidak jadi programer.

Pengalaman kocak juga pernah saya alami. Sekitar periode 1986-2001 saya jadi pengajar kursus private komputer untuk kaum profesional di perusahaan-perusahaan swasta nasional dan asing. Di antaranya di bidang Real Estate dan Penerbangan Swedia, semua di Jakarta. Karena waktu itu komputer dianggap mesin ajaib, eh banyak cewek melakukan approach kepada diri saya padahal tahu saya sudah beristri. Bahkan anak big boss ada nekat ngajak love affair. Mereka cantik-cantik, muda-muda dan tajir-tajir. Duh, ampun godaan hebat bener, hahahaha…

Tanggapan :

Setuju!! Belajar tidak perlu dari dunia sekolah/kuliah. Bisa dari Internet, semua ada. Belajar programming tidak perlu kuliah IT, belajar Saham tidak perlu sekolah, pengen belajar rangkaian listrik tidak perlu sekolah elektro, semuanya bisa cukup otodidak dan kursus-kursus saja. Saya setuju dengan ini, malah sangat setuju.

Pertanyaan saya simple Pak, Nanti jika anak Anda sudah dewasa, tolong jangan disekolahkan, cukup kursus saja, maka meraka pasti akan bisa dan menjadi expertise apa yang mereka dalami. Saya tunggu infonya ini. hehehe

Anda jurusan sekolah guru SPG tegal dan (anggap saja) lulusan Fakultasi sastra inggris UKI Jakarta, pertanyaan saya, kenapa harus sampai kuliah dan menggambil Fakultas sastra padahal di internet/buku-buku perpustakaan banyak materinya? (Orang bodoh secara mental mungkin akan bertanya begini).

Bahkan Paman saya yang tidak lulus SMP, sekarang bahasa ingrrisnya lancar banget, pernah saya dengar dia bertengkar dengan orang Australia (Bapak pasti tahu bagaimana gaya bicara orang australia yang lengket, susah didengar). Paman saya tidak perlu tuh Fakultas Sastra, bisa Anda jawab?

Paman saya bisa karna ada niat, doa dan kerja keras makanya bisa. Sama dengan Anda Ada niat, doa dan kerja keras juga belajar progamming makanya Anda bisa jadi programmer handal.

Jadi tolong kalao mau menilai sesuatu itu dari 2 sisi, jangan hanya sisi Anda saja yang dilihat, biar jatuh-jatuhnya artikel Anda itu memotivasi banyak orang yang sedang putus asa dengan jurusan yang Dia ambil.

Saya sebagai orang yang bertuhan, saya percaya Tuhan yang menentukan semua kesuksesan itu dari jalan yang kita tidak rencanakan. Kita kuliah IT belum tentu suksesnya di IT, bisa jadi pebisnis property yang sukses, dll.

Jika Anda bilang begini, percuma kuliah IT toh akhirnya jadi pebisnis property juga. Ya sama halnya dengan Anda, percuma kuliah keguruan dan sastra toh akhirnya jadi programmer. Kenapa gak dari dulu aja ngambil kuliah IT. Adil kan?

Kita hanya berencana mau ngambil kuliah apa, tapi Tuhan menentukan kesuksesan kita dibidang mana, tentunya dengan kerja keras juga.

Tapi saya kagum dengan Anda, sebegitu hebatnya Anda bisa membuat aplikasi sendiri dan bahkan mengajari training anak-anak sarjana. Langka mas.

Yang saya herankan, harusnya Bill Gates dan Mark Zuckerberg harusnya menulis artikel seperti Anda, dan saya herankan Bill Gates menyuruh orang untuk kuliah agar tidak seperti dia yang DO (drop out).  Padalah mereka sudah punya product yang dipakai dunia, kok masih peduli dengan orang-orang agar kuliah, harusnya suruh otodik aja sih kalo menurut saya.

3) BANYAK SARJANA KOMPUTER TIDAK MAMPU JADI PROGRAMMER, HANYA JADI INSTALLATOR


Bukan rahasia lagi bahwa banyak sarjana komputer hanya tau teori. Bikin program aplikasi nol besar. Walaupun bisa bikin hanya mampu dioperasikan oleh diri sendiri, sering error, sulit dikembangkan. Mereka hapal Flow Chart, Alogaritma dan Diagram Data Flow tapi gagal menerjemahkannya dalam praktek programming. Jagankan bikin program untuk dijual secara umum, untuk dipakai di tempat kerja sendiripun tidak mampu. Hal ini menunjukkan bahwa dibutuhkan waktu praktek langsung. Umumnya dua tahun untuk jadi programer handal.

Sebuah majalah khusus komputer Indonesia dua tahun lalu melaporkan hasil penelitian bahwa hanya sekitar 10% orang IT yang mampu jadi progmmer. Sisanya hanya jadi installator. Maksudnya hanya instal system Windows dan software lainnya. Ini beda jauh dengan era 1980an di mana pekerja IT/MIS/EDP 70% adalah programmer. Padahal bikin sistem sejak 2000 jauh lebih mudah karena tersedia ribuan library untuk source code (source program). Sedangkan pada era 1980an source code hampir 80% bikin sendiri. Ketika mesin komputer sangat sentitif (mudah error), barang baru dan aneh, hanya orang komputer yang dapat mengoperasikannya.

Sebaliknya banyak programer tanpa latar belakang pendidikan komputer. Dalam hal ini berlaku hukum” kuasai sitem sebelum Anda merancang sebuah sistem“. Misalnya jika Anda ingin membuat sistem akuntansi maka Anda harus pelajari sistem akuntansi: jurnal keuangan, arus kas, rugi-laba, neraca.

Mungkin sudah watak manusia ketika baru melek komputer, apalagi pegang ijasah dan gelar, terus petentang-petenteng menyangka diri sudah jago. Padahal dunia komputer meluputi banyak jurusan dan jenis ketrampilan. Misal programmer jagoan belum tentu pandai merangkai hardware, teknisi senior bisa jadi buta sama sekali tentang programming. Programming di sini saya maksud adalah merancang program dengan Progamming Language (bahasa pemograman) baik low-level maupun high-level, dari mulai Assembler, C, BASIC, dll.

SALAH KAPRAH: Banyak salah kaprah disangka jago bikin sistem dengan Microsoft-Excel sudah jadi programmer, ah itu kan cuma spreadsheet yang diprogram dengan Macro-coding. Atau jago ngehack (hacking/hacker) disangka pasti jagoan programmer - lho itu kan cuma merusak/mencuri bangunan sistem dari suatu lubang, bukan membangun sebuah sistem yang dibuat programmer untuk dinikmati umum. Programmer itu , setidaknya, merancang sistem dari nol hingga menghasilkan executable file (.exe) yang telah diuji oleh user, terbukti running well ketika diinstall dan implementasi, termasuk error handling, selama bertahun-tahun di tempat berbeda-beda.

Tanggapan :

Ya saya sependapat kalo dikelas itu banyak Teori yang datang, praktek sedikit. Tapi satu hal yang perlu Anda garis bawahi, jangan pernah menyalahkan peserta didik, karna kurikulum itu lahir dari institusinya.

Jika di institusinya mengajarkan hanya teori, flowchar, algoritma ya output siswanya (bagi mereka yang kurang suka explorasi materi sendiri) jadi seperti itulah.

Untuk kasus seperti point ini, Bapak yang sudah jago dan tau apa-apa saja yang perlu di pelajari agar bisa jadi programmer handle seperti Bapak harusnya yang dikritisi itu Institusinya pak, saya rasa akan lebih tepat sasaran pak.

Tentang yang salah kaprah :

ini ditujukan kesiapa ya? Mereka yang kuliah jurusan IT apa Non IT?

Kalau jurusan Non IT wajar sih pak, Saya aja pernah dibilangin begini, "Kamu kan jurusan information, benerin TV sayalah, ANTV nya gak nangkep" ada juga yang bilang gini kesaya "Kamu kan jurusan IT, boleh minta tolong gak pasangin CPU saya kemarin habis saya bongkar gak bisa saya pasang lagi"

Oalah, saya selama kuliah hanya main coding-coding doalng belum pernah yang namanya bergelut dibidang hardware sekarang malah disuruh benerin hardware. Jujur saya pak, saya gak bisa pasang CPU dari awal, kalo bongkar bisa. hahaha.

Dikiranya baru ngelihat ngoding dikit aja, dikira jago semua IT. Dan yang paling extreme ya pak, "Kamu kan anak IT, tolong hack facebook temen aku dong" hahahaha Hands up


Kalo ditujukan ke orang IT, sebegok-begoknya orang yang pernah kuliah IT, pasti tau bedanya pak, mana programmer bahasa A, B, C, Mana Yang expert di jaringan/hacking dan mana yang jago Instalator software/hardware. Itu semua punya bidang masing-masing pak.

Oya pak, itu Bapak bisa .exe saya gak bisa pak jujur, tapi saya bisa .apk (application package file) hahaha. Temen saya gak bisa .apk pak, bodoh banget ya, tapi dia jago bikin .ipa (iOS App Store Package):v

Jadi kedepannya mohon buat artikel itu yang memotivasi lah, sesuaikan dengan perkembangan teknologi yang semakin maju dari masa ke masa. Boleh membanggakan diri untuk memotivasi mereka yang tidak sekolah agar mau sekolah, mereka yang tidak bisa apa-apa jadi bisa berbuat sesuatu yang bermanfaat.  Jadi intinya sesuatu yg bisa kita lakukan dijadikan motivasi ke orang lain agar mereka lebih focus ke apa yang mereka sedang perbuat.

4) SYARAT BERKARIR DUNIA KOMPUTER


Banyak orang tidak tahu bahwa untuk terjun ke dalam dunia komputer perlu syarat pokok sbb: kuat dalam ilmu pasti/matematika, kuat melek/begadang sampai pagi, suka seni. Orang bilang komputer adalah paduan antara ilmu pasti dan keindahan seni. Ilmu pasti karena berurusan dengan rancangan angka-angka dan logika yang harus tepat-akurat. Seni karena perlu imaginasi daya cipta bekerja di alam awang-awang untuk mewujudkan rangkaian imjinasi digital dalam batok kepala jadi nyata di layar komputer.

Syarat tambahan: siap-siap dicap sebagai orang gila karena kebanyakan orang IT adalah workaholik (gila kerja), susah diatur, eksentrik, suka ketawa sendiri di depan komputer, hehe…
Dengan uraian di atas maka saya berpendapat, mohon maaf, bahwa kuliah jurusan komputer di Indonesia lebih banyak sia-sia. Karena kebanyakan hanya latah, tidak paham syarat pokok berkarir di bidang komputer, gagal menjadi teknisi/programer handal, tidak menjamin dapat pekerjaan. Oleh karena itu hendaknya berpikir ulang jika akan ambil kuliah Jurusan Komputer. Dan jika terlanjur salah pilih masuk Jurusan Komputer maka tak ada kata terlambat untuk cabut dan pindah ke jurusan yang benar-benar Anda sukai/cintai.

Bagi Anda yang bingung ataupun tersinggung dengan artikel ini silakan periksa latar belakang Bill Gates si raja software pencipta MS-DOS dan MS-Windows system, dia cuma drop out dari Harvard University yang tidak tidak hubungan dengan pendidikan formal komputer. Inilah bukti pendidikan formal bukan segala-galanya apalagi sekedar tujuan untuk tidak gagap teknologi. Jika di Indonesia banyak iklan nipu Orang Tua Murid tentang Kuliah Jurusan Komputer, jangan heran deh…!

Tanggapan :

Setuju pak, Cap-cap seperti itu pernah saya alami, karna begadang terus sampe kelopak mata bagia bawah menghitam ahahaha. Satu lagi pernah juga disebut pesugihan karna selalu begadang tiap malam (dikira jagain lilin kali biar gak mati :v). Setiap pekerjaan punya resiko tersendiri, siap atau tidak siap, ya harus di jalani.

Buat kalian yang mengisa salah jurusan (misalnya sudah semester 7, dikit lagi mau lulus) harus pindah kah? gak sia-sia biaya dan waktu? Ya kalo orang kaya sih gak masalah, kalo orang seperti saya?

Ya kalo masih semester 1,2,3 sih kayaknya masih lebih baik pindah jurusan yang sehati aja, biar enak belajarnya.

Oya kenapa gak nyaranin kursus atau otodidak aja ya pak seperti yang bapak singgung di awal-awal artikel? Kan kalo orang yang punya minta dibidang tertentu, otodidak pun cukup untuk menjadi orang hebat. Contohnya bapak sendiri, dari otodidak jadi programmer hebat

Bill Gates memang kena DO, tapi pernah baca gak kalo Bill Gates justru menyarankan orang-orang agar kuliah biar tidak seperti dirinya DO? Pernah baca gak?

Tapi setidaknya Bill Gates tidak mengatakan pendidikan itu sia-sia untuk jurusan tertentu, itulah bedanya Bill Gates dengan Anda, pak. Tidak ada pendidikan yang sia-sia.

Untuk masalah iklan kampus yang dibesar-besarkan dan kata Anda tipu-tipu orang tua murid. Namanya juga bisnis pak, mereka pasti menampilkan iklan terbaik menurut mereka untuk menarik mahasiswa baru sebanyak-banyaknya.

Begitu juga sama halnya dengan mereka yang sedang mempromosikan produk, pastilah mereka berbica yang agak lebay biar calon pelanggannya pecaya, ya kan? Itu strategi marketing, pak. Kalo malasah disalam kampus tersebut bagus atau tidaknya, saya no comment ya.

Sesungguhnya mencintai suatu ilmu/ketrampilan adalah separuh jalan menuju pintu-pintu sukses jika digeluti dengan sungguh hati.


Tanggapan :

Mantep sekali kata-kata mutiaranya. "Ketika separuh kesuksesan datang, jangan hanya melihat sesuatu dari satu sisi, cobalah lihat sesuatu dari sisi lainnya, maka Anda pasti akan paham bahwa apa yang orang-orang alami tidak semua seperti yang Anda tuliskan. Lebih baik memotivasi dari pada mendiskriminasi orang dengan jurusan tertentu"


Entah kenapa dari artikel yang Bapak tulis saya berpendapat bahwa Anda justru menyombongkan diri sendiri dengan merendahkan apa yang dilakukan orang (Khusunya mereka yang kuliah IT) dan tanpa ada motivasi (aura positif) sedikitpun.

Akhir Kata


Pada point banyak orang yang kuliah IT gagal menjadi programmer dan bahkan ada banyak yang menghindari dunia IT (khusunya programmer) sebagai pekerjaannya, saya setuju, karna dari teman-teman saya juga banyak yang tidak mau jadi programmer

Ada yang bilang karena bukan passion nya, ada yang bilang tidak tertarik karna susah, ada yang bilang tidak bisa pemrograman. Intinya mereka tidak mau mencoba dan rasa ingin tahu tentang dunia programming, dan intinya lagi mereka tidak minat.

Dari yang tidak mau mendalami pemrograman (dari bangku kuliah), maka akan masuk ke fase tidak suka dengan mata kuliah pemrograman, kemudia masuk ke fase bukan passion dan yang terakhir tidak akan mengambil pekerjaan sebagai programmer

Tapi mau diapakan lagi, pak. Orangnya sudah tidak mampu untuk menjadi programmer.

Mau bilang "Kenapa tidak pindah jurusan?", saya sudah bahas diatas tadi, silakan baca-baca lagi.

Sebenarnya kalo mau adil ya, tidak cuma di IT aja terjadi hal seperti ini, di jurusan lain juga banyak. Teknik Mesin misalnya, jika mau mengambil persentasi ya pak, berapa banyak lulusan Mesin yang bekerja sesuai bidangnya?

Contoh lain, jurusan Design, Kebumian, berapa persen diantara mereka yang bekerja sesuai bidangnya? ya pasti ada banyak juga pak.

Mereka mungkin juga punya beragam alasan, ada yang bilang karna susah nyari kerja di bidang ini, susah diterima makanya nyari perusahaan yang beda bidang keilmuan, ada yang bilang kurang tertarik, dll.

Ada juga yang seorang guru, malah bisa jadi milliuner hanya karna dia suka design.

Jadi intinya, sukses itu kerja keras + Doa + restu Tuhan, manusia hanya bisa berencana

Apakah saya tersinggung karna artikel Bapak ini? Sama sekali tidak, cuma menyadari kenyataan dilapangan, iya. Tapi kenyataan-kenyatan seperti ini banyak juga terjadi dijurusan yang lain, tidak hanya IT.

Satu hal lagi, dari artikel yang bapak tulis, saya bisa tahu bahwa masih banyak orang yang hanya melihat dari satu sisi, dan sisi itu memiliki sudut yang sempit.

"Judging a person doesn't define who they are, but it defines who you are"

Tutorial Android Zoom In dan Zoom Out Pada Gambar

Salah satu kebutuhan pada saat memasang gambar di aplikasi kita adalah dapat melakukan Zoom In dan Zoom Out. Jadi nantinya gambar yang kita pasang di aplikasi, bisa di Zoom dengan menggunakan 2 jari tangan yang di gesek secara bersamaan

Baca juga : Push Notification Menggunakan Firebase Cloud Messaging, Firebase Push Notification

Proses Zoom in dan Zoom out ini terjadi saat view tertentu mendapat response di onTouchListenernya.

 Tidak ada library khusus yang kita gunakan dalam membuat fungsi Zoom In dan Zoom Out, hanya membuat class yang akan kita jadikan View menampilkan Imagenya.

TouchImageView.java


Buat class baru, beri nama sebagai TouchImageView, kemudian ketikan kode dibawah ini :

Class diatas inilah yang akan kita jadikan View di XML untuk menampilkan image agar bisa dilakukan Zoom In dan Zoom Out.

activity_main.xml


Kemudian buat sebuah file XML beri nama activity_main yang isinya adalah view yang sudah kita buat tadi. Contohnya seperti dibawah ini :

Perhatikan nama View tersebut berisi nama package si class. Dimana kita menampatkan class TouchImageView maka package tersebutlah yang akan muncul di View yang kita buat.

Baca juga : Tutorial Membuka Tab Tertentu Pada Sliding Tab 

MainActivity.java


Pada class MainActivity, class dimana kita akan menampilkan si Image dan sudah bisa di Zoom In dan Zoom Out. Kodenya seperti dibawah ini :

Pada code diatas, kita hanya bertugas menampilkan imagenya saya, tidak ada proses lain, karna untuk fungsi Zoom In dan Out sudah dikerjakan oleh class TouchImageView.

Library Glide


Sebenarnya menggunakan library tidak keharusan dalam tutorial saya ini, tapi jika kalian ingin menggunakannya, silakan compile gradlenya seperti dibawah ini :

Sekian tutorial tentang bagaimana cara melakukan Zoom in dan Zoom Out di Image Android. Terima kasih.

Membuat Widget Melayang Pojok Kanan Blog Dengan Tombol Close

Kali ini saya akan membuat tutorial agak berbeda dari biasanya, tapi masih ada hubungannya dengan pemrograman, ada coding-codingnya gitu lah.

Akhir-akhir ini saya sering ngulik koding tentang template blogger, ya bagi teman-teman yang sudah berkecimpung didunia pemrograman template blogger pasti paham maksud saya.

Baca juga : Membuat bentuk Tabel Keren Dengan Library DataTables

Template blogger tidak hanya sekedar mengambil template yang sudah jadi. Bagi yang suka berimprovisasi dan ingin membuat perubahan dibeberapa UI (user interface) blog nya, maka mau tidak mau harus berurusan dengan kodingan si template.

Saya sendiri mempelajari kodingan template blogger butuh waktu yang lama, karna memang hanya bisa ngulik nya diwaktu senggang saja (Atau jika otak sedang mument karna project di Android :D). Tapi sejauh ini saya lumayan paham posisi dan dimana saya harus mengedit koding untuk mencapai UI yang saya inginkan.

Baca juga : Tutorial CRUD (Create, Read, Update, Delete) Menggunakan PHP Dan MySQL 

Yang terakhir saya kerjakan adalah menampilkan widget di pojok sebelah kanan blog dengan ada tombol close nya. Kebetulan widget yang saya tampilkan adalah fans page dari blog ini yaitu It Has Beginning. Contoh jadinya bisa lihat diblog atau digambar dibawah ini :

Hasil akhir
Jika dari teman-teman ada yang tertarik untuk membuat semacam tampilan seperti blog saya ini, maka silakan ikuti langkah-langkah dibawah ini :

Pasang CSS


Agar tampilan yang dibuat sesuai dengan keinginan kita, maka dalam ilmu pemrograman web kita harus menambahkan style tersendiri. Bahasa yang digunakan yaitu Cascading Style Sheet (CSS). Caranya pemasangannya adalah :

- Masuk ke Dashboard blogger
- Pilih menu Template/Tema
- Pilih Edit HTML
- Cari tagline </head> di antara sekian banyak kodingan template (gunakan Ctrl+F)
- Paste kode dibawah ini tepat diatas kode tagline </head>

<!-- start css box bojok blog-->
<style type="text/css">
#fbLikeBox{background-color:#FFFFFF;border:4px solid rgb(210,210,210);bottom:0;border-bottom:210;float:left;height:auto;margin-bottom:10px;margin-right:5px;position:fixed;right:0;width:auto;z-index:10}
.fbLikeBox-close{color:#333!important;position:absolute;top:1px;right:1px;width:20px;height:20px;line-height:20px;text-align:center;font-size:11px}
.slideUpfbLikeBox{animation-name:slideUpfbLikeBox;-webkit-animation-name:slideUpfbLikeBox;animation-duration:1s;-webkit-animation-duration:1s;animation-timing-function:ease;-webkit-animation-timing-function:ease;visibility:visible!important}
@keyframes slideUpfbLikeBox{0%{transform:translateY(100%)}50%{transform:translateY(-8%)}65%{transform:translateY(4%)}80%{transform:translateY(-4%)}95%{transform:translateY(2%)}100%{transform:translateY(0%)}}
@-webkit-keyframes slideUpfbLikeBox{0%{-webkit-transform:translateY(100%)}50%{-webkit-transform:translateY(-8%)}65%{-webkit-transform:translateY(4%)}80%{-webkit-transform:translateY(-4%)}95%{-webkit-transform:translateY(2%)}100%{-webkit-transform:translateY(0%)}}
</style>
<!--- end css box pojok blog-->

Disana ada beberapa attribute yang bisa kalian ganti-ganti sesuai dengan keinginan, yaitu ada untuk background, margin, padding, ketebalan garis, dll. Silakan ganti-ganti.

Untuk mengatur jarak antara sisi kanan/kiri/atas/bawah dengan kotak widget, silakan rubah angka yang ada di attribute margin-right/left/top/bottom

Baca juga : Tutorial Insert Data Menggunakan PHP PDO + MySQL 

Untuk mengatur ketebalan garis border kotan, silakan ganti angka yang ada pada attribute border, dll (silakan pelajari lagi tentang CSS)

Pasang Fanspage


Pada bagian ini kita akan langsung memasang fanspage kita, ikuti langkah-langkah dibawah ini :

- Langkah-langkahnya masih sama dengan yang sebelumnya
- Temukan tagline </body>
- Paste kode dibawah ini diatas tagline </body>

<!-- start pojok widget-->
<div class='slideUpfbLikeBox' id='fbLikeBox'>
    <a class='fbLikeBox-close' href='#fbLikeBox-close-like-box' onclick='hide(&apos;fbLikeBox&apos;)' title='Close'><i class='fa fa-times' /></a>
    <div class='fb-like-box ' data-header='false' data-height='62' data-href='https://www.facebook.com/ithasbeginning' data-show-faces='true' data-stream='false' data-width='230'><span style='height: 62px; width: 187px; '><iframe allowTransparency='true' frameborder='0' scrolling='no' src='//www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fithasbeginning&amp;width=230&amp;height=62&amp;show_faces=false&amp;colorscheme=light&amp;stream=false&amp;border_color&amp;header=true' style='border:none; overflow:hidden; width:230px; height:62px;'/>
</span></div>
</div>
<script type='text/javascript'>
function show(target) {
    document.getElementById(target).style.display = &#39;block&#39;;
}

function hide(target) {
    document.getElementById(target).style.display = &#39;none&#39;;
}
</script>
<!-- end pojok widget-->

Dalam kodingan diatas ada setidaknya 3 bahasa pemrograman yang dikombinasikan, antara lain HTML, PHP dan JavaScript. Silakan pelajari-pelajari ketiga bahasa pemrograman tersebut.

Pada kode yang berwarna kuning, silakan ganti menjadi nama fans page kalian (nama paling akhir setelah url www.facebook.com) ex : www.facebook.com/ithasbeginning.

Sekian tutorial tentang cara membuat widget di pojok kanan blog, semoga bermanfaat.

Tuesday, 1 August 2017

Android Tutorial Membuat Swipe Untuk Refresh

Di design UI (User Interface) saat ini banyak dijumpai cara untuk merefresh suatu page dengan cara swipe dibawah atau geser kebawah.

Dengan kita menggeser atau mengusap layar kebawah maka akan ada sebuah view loading yang muncul untuk melakukan refresh data.


Biasanya proses ini diperlukan di suatu page untuk proses pembaharuan data atau reload ulang page atau bisa juga sebagai pertanda loading ketika data masih di panggila dari API.

Baca juga : Menampilkan Data Di Android (Retrofit 2.0 GET) Dari Server PHP + MySQL 

Pada android view ini dinamakan SwipeRefreshLayout. Sebuah view yang tersedia dari material design Goole. Jika sudah di implement di aplikasi, kira-kira tampilannya seperti gambar dibawah ini :

Swipe Refresh

Untuk memunculkan tampilan seperti gambar diatas, ikuti langkah-langkah dibawah ini :

Compile library


Compile library support untuk mendapatkan material design yang terbaru. ( Kalian bisa gunakan versi terbarunya)

Jika saat membuat project di Android studio library support sudah ada, maka tidak perlu lagi ditambahkan di gradlenya.

Layout


Pada bagian layout kita tempatkan kontent/view yang ingin berubah datanya ketika proses refresh berhasil. Seperti pada contoh activity_main.xml dibawah ini

Dapat kita lihat TextView untuk men-set nama ada didalam SwipeRefreshLayout. Kalian bisa sesuai view didalam SwipeRefreshLayout sesuai dengan kebutuhan kalian.

File Java


Pada class java dibuat proses bagaimana cara melakukan refresh layout dan apa yang harus dilakukan ketika sudah berhasil melakukan refresh. Proses tersebut akan di contohkan pada class MainActivity.java dibawah ini

Seperti yang dapat kita lihat, pada saat membuat class di java yang didalamnya akan mengimplementasikan SwipeRefreshLayout, kalian harus melakukan implements SwipeRefreshLayout.OnRefreshListener. Setelah itu override method bawaannya yaitu onRefresh()

Baca juga : Membuat Desain Form Register, Validasi dan Re-type Password di Android  

Lakukan dan susuaikan method/view seperti yang kalian inginkan di project kalian, artikel diatas hanya contoh bagaimana cara membuat Swipe Refresh Layout.

Sekian tutorial kali ini, terima kasih.

Thursday, 27 July 2017

Tutorial Membuka Tab Tertentu Pada Sliding Tab

Beberapa programmer (khususnya bagi mereka yang baru belajar android), pada pembuat Sliding Tab, Sliding tab akan membawa mereka ke satu kondisi yang sulit. Salah satu kesulitannya adalah bagaimana membukan Tab-Tab tertentu pada Sliding Tab

Sebenarnya adda banyak cara untuk mengatasinya. Salah satu cara yang simple yaitu dengan menggunakan SharedPreference. SharedPreferences akan menyimpan index terahir dari tab yang terbuat/dibuka. Ketika user membuat activity tempat dimana sliding tab ditempatkan, SharedPreference akan mengeluarkan index yang sudah disimpan sebelumnya, kemudia index tersebut akan di cocokan dengan index-index pada item tab sliding tab.


Saya harap kalian mengerti apa yang saya maksud di penjelasan di atas hahaha (memang agak susah menjelaskannya)

Untuk lebih jelasnya, mari kita mulai langkah-langkahnya

Saya menggunakan PROJECT INI untuk mengimplementasikan cara membuka Tab-Tab tertentu. Tapi kalian bisa langsung praktekan di project kalian masing-masing.

Apa yang harus kalian lakukan di setiap class Fragment Item Tab?


Di setiap fragment, kalian harus menyimpan indexnya di SharedPreference. Karena nanti index tersebut yang akan mengarahkan kalian ke Tab-Tab tertentu.

Sebagai contoh, lakukan hal dibawah ini pada fragment kalian :

Pada contoh kasus project ini : Jika saya menekan Button, maka aplikasi akan me-refresh activity, tapi tetap membuka tab/fragment saat ini, paham kan? (Biasanya kan kalo tidak diatur pake SharePreference, ketika baru pertama kali masuk, pastilah yang terbuka pertama kali adalah Tab Kiri)

Apa yang harus dilakukan di class Activity Kalian?


Class Activity yang saya maksud adalah page dimana kalian menempatkan/mendeklarasikan Sliding Tab. Di dalam onCreate() lakukan seperti pada code dibawah ini :

Pada kode diatas, SharedPreference akan mengeluarkan index yang telah disimpan dari spesific fragment.

Baca juga : Tutorial menggunakan recyclerview pada android

Jika SharedPreference berisi nilai null, Aplikasi akan membuat Tab defaultnya. Tapi jika SharedPreference berisi nilai index, maka tab akan terbuka sesuai dengan index yang ada di SharedPreference tadi

Apa yang harus dilakukan setelah aplikasi ditutup (user keluar dari aplikasi)?


Itu tergantung dari kebutuhan aplikasi. Jika aplikasi kalian mengharuskan membuka tab terakhir yang dibuat oleh user, maka kalian tidak perlu lagi melakukan apa-apa pada kodingan kalian, karena kode diatas yang saya posting akan membuat tab terakhir yang dibuka oleh user.

Tapi jika aplikasi kalian mengharuskan membuka default tab nya setelah user keluar dari aplikasi, maka kalian harus menambahkan beberapa kode di bagian method onDestroy(). Lihat contoh dibawah ini :

Itu berarti, Ketika aplikasi ditutup oleh user (user keluar aplikasi), SharedPreference akan kembali menyimpan default indexnya, yaitu = 1. Selesai! Semoga mudah dipahami apa yang telah saya sampaikan. Terima kasih

Tutorial Sliding Tab Menggunakan Material Design

Kali ini saya akan membagikan sebuah tutorial tentang Sliding Tab. Pada proses pembuatannya kita tidak memerlukan library luar, tapi hanya menggunakan library design:support (Library Support Material Desain dari Google)

Baca juga : Membuat Spesific Tab Pada Sliding Tab

Dengan menggunakan material design dari Google, membangun sebuah UI yang bagus menjadi lebih gampang dari sebelumnya. Hal ini akan berdampak pada berkurangnya stres para developer hahaha. Lihat Gambar dibawah ini

The result
Jika kalian tertarik dengan hasil akhirnya (seperti yang terlihat pada gambar diatas) dan ingin mengimplementasikannya pada project kalian, maka ikutilah langkah-langkah dibawah ini :

1.  Library


Compile library design:support di build.gradle(app : Module) :

compile 'com.android.support:design:25.0.0'

2. Membuat Directory Color


Buat sebuah folder baru di directory res dan berikan nama menjadi color (Ini adalah pembuatan directorynya bukan file xml, 2 hal tersebut berbeda)

Directory color

Didalam directory color, buat sebuah file xml baru. Beri nama sebagai tab_selector.xml. Selector ini digunakan untuk mewarnai text pada setiap judul tab.

Ada terdapat dua warna, jika ada satu tab yang dipilih, maka warnanya akan berubah menjadi putih, jika tidak maka warnanya tetap menjadi gray.

3.  Colors.xml


Untuk bacground dari TabLayout dan warna warna garil selectornya, kalian dapat memilih dari file colors.xml.

4. Membuat Fragments


Buat 3 Fragment, karena jumlah dari item tab adalah 3. Tab 1 untuk Home, Tab 2 untuk Timeline, Tab 3 untuk Profile.

fragment_first.xml

FirstFragment.java

Juga buat fragment selanjutnya untuk SecondFragment.java dan ThirdFragment.java.

5. Buat SlidingTabAdapter.java


Adapter ini digunakan untuk men set item tab kalian. Tab Home untuk FirstFragment, Tab Timeline untuk SecondFragment dan Tab Profile untuk ThirdFragment.

Jangan lupa untu return size dari jumlah fragment kalian. Jika kalian menggunakan 3 fragment, maka return 3 didalam method getCount().


6. Modifikasi MainActivity.java


Di project ini saya menggunakan MainActivity sebagai class tempat dimana saya menaruh SlidingTabAdapter. Kalian dapat merubahnya menjadi class pilihan kalian masing-masing.

Paste kode dibawah ini :

Dari kode diatas :

Code getSupportActionBar().setElevation(0) digunakan untuk menyembunyikan garis pembatas antara actionbar dan tab layout.

Kode :

private TabLayout.Tab home;
private TabLayout.Tab timeline;
private TabLayout.Tab profile;

digunakan untuk men set/mendefinisikan item dari tab-tab kalian. Itu berart kalian membuat 3 item tab..

Kode :

home = tabLayout.newTab();
timeline = tabLayout.newTab();
profile = tabLayout.newTab();

berarti home, timeline dan profile sebagai tab baru.

Kode :

tabLayout.addTab(home, 0);
tabLayout.addTab(timeline,1);
tabLayout.addTab(profile,2);

Berarti kalian harus mendefinisikan index dari item tab. Index tersebut akan digunakan di SlidingTabAdapter untuk me return sebuah fragment. Sebagai contoh, di index 0, kalian akan mereturn FirstFragment, index 1 akan mereturn SecondFragment dan index 3 akan mereturn ThirdFragment.

Baca juga : Tutorial cara POST data menggunakan Retrofit 2 (Contoh kasus : proses login)

Untuk penjelasan lainnya kalian bisa baca langsung di class MainActivity, saya sudah beri komentar-komentar di kodenya. Semoga tutorial ini membantu. Terima kasih.

Silakan like fans page kami untuk mendapatkan informasi terbaru :

 
Link Download Project

Memahami Fungsi Method Getter dan Setter Pada Java

Berhubung ini adalah postingan artikel putuguna[dot]com yang ke 100, untuk itu saya akan membahas salah satu fungsi dalam bahasa pemrograman Java, yaitu Getter dan Setter.

Apa itu Setter?


Disini saya tidak akan memberikan pengertian secara teori yang banyak di jumpai di beberapa website. Saya akan memberikan arti menurut versi saya (yang mudah dipahami).

Baca juga : Tutorial cara membuat program perhitungan nilai grade (A,B,C,D,E) ada java Netbeans

Setter adalah sebuah method yang digunakan untuk memberikan nilai pada suatu attirubte, object, list, entity, dllnya. Method setter tidak memiliki pengembalian nilai, cirinya method ini method ini berisi kata void pada awal penulisan method.

Contohnya :

Versi method setter pertama


Pada code diatas, variable (boleh) ditulis secara global (tidak harus didalam method, tergantung kebutuhan). Disamping itu method setter memiliki parameter dalam contructornya, sebagai acuan value yang boleh di masukan. Kebetulan dalam contoh diatas, saya menggunakan Type Data String sebagai acuannya.

Versi method setter kedua


Pada versi kedua ini, tidak ada variable global yang digunakan. Tapi value yang didapat dari paramter countruktor itu diloah langsung didalam methodnya.

Kalian bisa gunakan keduan method setter tersebut tergantung kebutuhan koding kalian.

Intinya method setter kegunaannya sebagai pemberi nilai pada attribute atau object tertentu, kalian akan melihat banyak model dan penamaan method ini. Kalian akan tau method ini apakah setter atau bukan tergantung dari isi si method yang bersangkutan.

Apa Itu Getter?


Method getter adalah kebalikan dari setter yaitu pengambilan nilai dari suatu object atau attribute yang sudah berisi nilai.

Baca juga : Tutorial cara mendapatkan bilangan acak (random) dari sebuah list menggunakan Java Netbeans

Ada dua macam tipe method ini, yaitu :

Menggunakan pengembalian nilai


Maksud dari pengembalian nilai ini adalah method yang bersangkatan menjadikan dirinya sebagai nilai dari sebuah object/type data. Untuk menjadikan dirinya sebagai nilai, maka type method ini tidak boleh void tapi harus ber-type data tertentu (Bisa object, string, int, boolean, dll)

Contoh :

Lihat method diatas, method getter ini type String, dia akan mengambil nilai dari suatu attribute/object untuk dijadikan nilai dirinya sendiri.

Pada kasus ini, method getName() mengambil nilai dari attribute global name sebagai nilai si method itu sendiri.

Maka otomatis, ketika diprintout, method getName() akan berisikan nilai di attribute name.

Tanpa pengembalian nilai


Jika tanpa pengembalian nilai, berarti datanya diolah didalam method, bukan si method tersebut yang bernilai tertentu, melainkan didalam method tersebut ada nilai tertentu.

Contoh :

Jika dipanggila si methdo getName() maka dia akan menampilkan value dari attribute name, yaitu "Anton".

Method getter intinya jika fungsi method ada pengembalian nilai, maka dia adalah method getter. Disamping itu ciri lainnya lihat flow code didalam method tersebut apakah terlihat seperti proses menampilkan nilai dari suatu object/attribute atau bukan, jika benar, maka method tersebut adalah method getter.

Masalah penamaan method itu bebas, tidak ada yang mebatasi, jadi harus pintar-pintah membaca flow code.

Contoh Program

Berikut ini saya berikan contoh program dari method getter dan setter, semoga dengan melihat contoh program berikut, kalian bisa paham dengan apa yang saya jelaskan diatas tadi.

Jika di print hasil yang diperoleh oleh method getter sama dengan value yang di set pada method setter, lihat gambar dibawah ini :

Hasil akhir
Oke demikian yang dapat saya sampaikan, semoga kalian mengerti dengan apa yang saya jelaskan.

Cara Pindah Dari Activity Ke Fragment dan Fragment Ke Activity

Bagi mereka yang baru pertama kali belajar pemrograman Android hal yang dipelajari pertama kali adalah perkenalan komponen-komponen yang ada didalamnya seperti Java class, XML, Activity, Fragment, Adapter, dll


Setelah itu barulah proses belajar bagaimana pergi dari satu Activity ke Activity lainnya menggunakan Intent, setelah itu barulah belajar tentang bagaimana switch dari Activity ke Fragment, begitupun sebaliknya dari Fragment ke Activity.

Bagi yang belum tahu proses switch antara activity, silakan baca disini : Cara Pindah Activity Menggunakan Intent

Pindah Activity Ke Fragment


Disini ada dua cara bagaimana melakukan switch dari Activity Ke Fragment, antara lain :

1. Gunakan Activity Untuk Menampung Fragment


Sebuah fragment yang bisa tampil menjadi UI (user interface) sudah memiliki activity sendiri saat kita set si fragment tersebut sebagai UI.

Baca juga : Tutorial Java browse image dan menampilkannya di JLabel Netbeans

Namun agar lebih mudah untuk dipahami, pada cara pertama ini kita buatkan kembali activity untuk si fragment, jadi ketika kita mau meng-akses si Fragment, kita cukup memanggil si Activitynya yang sudah kita buat sebelumnya.

Contoh :

Buat layout activity_main.xml

Layout activity_main.xml akan digunakan pada class MainActivity. Kodingan untuk class MainActivity.java adalah sebagai berikut :

Nah, diatas itu adalah class untuk tempat kita pertama kali akan memanggil si Fragment. Langkah selanjutnya adalah kita buat Si Fragment nya dan Activity si Fragment.

Buat sebuah class Fragment (Ciri-ciri fragment adalah selalu mengextends Fragment setelah nama class) NameFragment.java, kodenya seperti dibawah ini :

Kemudian buat layout si NameFragment yaitu fragment_name.xml, kodingannya seperti dibawah ini :

Oke, class fragment kita sudah jadi. Lalu bagaimana agar dari MainActivity.java bisa memanggil NameFragment.java? Perhatikan baik-baik ulasan selanjutnya.

Seperti yang sudah saya sampaikan di deskripsi awal, kita akan membuatkan activity untuk si NameFragment agar mudah di panggil. Paham ya, caranya begini :

Buat layout activity_for_fragment_name.xml

Perhatikan layout diatas, didalam tag ada sebuah attribute class, yang isinya adalah Class Fragment. Dari mana dapat class Fragment com.putuguna.fragmenttoactivity.NameFragment? Itu adalah nama Fragment yang sudah kita buat sebelumnya yaitu NameFragment.

com.putuguna.fragmenttoactivity.NameFragment terdiri dari nama package project dan nama class.
com.putuguna.fragmenttoactivity : nama package project yang kita buat
NameFragment : nama class Fragment yang kita dibuat

Lalu buat class java untuk si Activity NameFragment, berikan nama classnya dengan nama ActForFragmentNameActivity.java, kodingannya seperti dibawah ini :

Seperti yang bisa kita lihat didalam classnya cuma ada deklarasi layout, tidak ada lainnya. Ketika class ini sudah keload, dengan menggunakan attribute class yang ada di tagline fragment, maka secara otomatis akan meload class fragmentnya.

Baca juga : Perbedaan Activity dan Fragment di Android

Cara Pemanggilan NameFragment dari MainActivity

Pada saat proses inilah akan terasa mudahnya, cara pemanggilannya sama persis seperti Intent di Activity. Didalam onClick Button/View lainnya panggil intent nama class Activity si Fragment :

Potongan koding tersebut ada di class MainActivity pada bagian onClick nya. Simple kan?

2.  Tanpa Menggunakan Class Activity


Pada bagian ini akan saya posting besok ya, karena sekarang saya sudah mengantuk, besok kerja hehehe.

Tapi pokok proses pemanggilannya begini :

Kalo belum paham juga, tunggu saya posting artikel lengkapnya.

Pindah Dari Fragment ke Activity


Pada proses perpindahan dari Fragment ke Activity bisa saya katakan mudah, hampir sama persis dengan perpindahan Activity ke Activity.

Caranya sebagai berikut, simpan kode dibawah ini di onClick si Button atau View yang ingin digunakan :

Yang perlu diperhatikan adalah :

.... new Intent(getActivity(), .....), getActivity() disini sebagai pengganti Activity si Fragment, Karena intent mengharusnya Activity sebagai awal sebelum menuju ke Activity tujuannya, makanya kita gunakan getActivity() untuk mengambil Activity si Fragment. Semoga paham ya.

Kemudian pada bagian getActivity().startActivity(intent), sama juga karna untuk men-switch page menggunakan intent, maka harus menggunakan activity. Karena ini fragment, maka didepan sebelum startActivity() kita gunakan getActivity() untuk menggambil Activity si Fragment.

Oke demikian yang bisa saya sampaikan, semoga penjelasan saya mudah dipahami bagi teman-teman yang sedang belajar pemrograman Android. 

Friday, 24 March 2017

Menambahkan Fragment Secara Dinamis Pada ViewPager Android Berdasarkan Jumlah Item Pada List

Viewpager adalah sebuah view yang dapat menampung banyak fragment, namun masih dalam satu activity.

Jika kalian masih rada-rada bingung apa sih perbedaan fragment dan activity, kalian dapat membacanya dipostingan saya sebelumnya :
  1. Perbedaan Android Fragment dan Activity
  2. Belajar Menggunakan Android Fragment 
  3. Cara Pindah Activity menggunakan Intent
Kembali ketopik yaitu cara membahkan fragment pada viewpager secara dinamis sesuai dengan jumlah item pada list.

Maksudnya dinamis disini adalah :

Misalnya dalam sebuah list terdapat 10 item, maka nantinya jumlah fragment yang akan tampil di viewpager tersebut adalah 10

Jadi nanti, user tinggal geser-geser saja untuk melihat jumlah keseluruhan (tampilannya seperti sliding tab, tapi tidak ada tabnya)

Biar tidak bingung mari kita buat programnya satu persatu.

Hasil akhir
Oya sebelum masuk ke kodingan, dulu saya pernah membuat tutorial membuat tampilan dengan view pager namun fragmentnya dibuat static. Artinya jumlah fragment sudah ditentukan dari awal. Kalian bisa baca tutorialnya di : Membuat splash screen menggunakan viewpager dengan indicator.

File Drawable


Pada folder drawable, kita akan membuat file xml yang akan di gunakan sebagai pendanda indikator (titik-titik pada bagian bawah layar) yang sedang aktif.

Indicator viewpager
Buat file-file xml berikut ini dan tempatkan di directory res/drawable pada project yang kalian buat

selected_item.xml

nonselected_item.xml

Layouting


Project ini menggunakan 2 buat layout, yaitu untuk activity dan fragment :
  1. activity_main.xml 
  2. fragment_dinamis.xml

activity_main.xml

File ini berisi view viewpager beserta indikatornya (titik-titik penanda fragment). Kodenya seperti dibawah ini :

fragment_dinamis.xml

File ini berisi attribute-attribute yang akan di tampilkan pada fragment, biasanya sesuai dengan item yang ada di list datanya. Pada project ini saya hanya menggunakan textview sebagai penanda nomor fragment (kalian bisa edit sesuai dengan kebutuhan). Kodenya seperti dibawah ini :

Kodingan di java


Pada file javanya, akan digunakan 3 class, antara lain :
  1. DinamisFragment.java
  2. FragmentAdapter.java
  3. MainActivity.java
 
DinamisFragment.java

Class ini adalah class fragment. Kita hanya menyiapkan satu fragment sisanya nanti kita kondisikan sesuai jumlah item pada listnya. Jika listnya lebih dari satu, maka fragmentnyapun akan lebih dari satu. Kodingannya seperti dibawah ini :

Tidak ada yang special dari kodingan fragment diatas, hanya set-set biasa aja. Loginya penambahan fragment akan terjadi di adapternya.

Perhatikan method setDetail(). Method ini akan digunakan di adapter, kenapa diadapter?

Flownya gini : Karena data kan didapat dari activity, kemudian data dibawa ke adapter, dari adapter barulah kita set ke fragmentnya.

FragmentAdapter.java

Pada file ini akan dibuat login bagaimana caranya menampilkan fragment berdasarkan banyaknya item yang ada pada list. Kodenya seperti dibawah ini :

Perhatikan attribute fragments. Attribute tersebut dibuat array ([]), karna memang jumlah datanya bakalan dinamis, maka di fragment juga dibuat dinamis (berbentuk array).

Perhatikan lagi pada method getItem(int position). Didalamnya ada fungsi begini : dinamisFragment.setDetail(items). Method setDetail() didapat dari DinamisFragment (yang telah disampaikan sebelumnya).

MainActivity.java

File ini seperti biasanya adalah tempat dimana kita mengisi list dengan data. List tersebut akan kita lempar ke adapter. Kodenya seperti dibawah ini :

Kenapa pada file ini ada proses implements ViewPager.OnPageChangeListener?

Itu digukanan untuk mendeteksi ketika viewpager di swap/digeser. Tujuannya untuk merubah indikator yang aktif yang mana, misalnya viewpager diswap ke fragment 2, maka indikator ke 2 lah yang akan aktif.

Sekian tutorialnya, jika ada yang kurang jelas silakan ditanyakan. Semoga bermanfaat.