Golang: Catatan belajar OOP dengan GO language

Source code di sini

Struct pada Golang adalah kumpulan dari fields dan atau properties. Struct berbeda dengan Class pada Java misalnya, karena salah satunya Struct pada Go menggunakan Composition bukan inheritance yaitu dengan meng-compose sebuah struct di struct lainnya sehingga fields dan atau properties dari sebuat struct ada di dalam struct lain yang meng-embed struct tersebut.

Composition atau juga bisa di sebut embedding bisa dikatakan sebagai pengganti penggunaan inheritance di GO ,  untuk menjadikan gambaran yang lebih jelas saya mencoba mempraktekan perilaku tersebut dalam beberapa baris bahasa GO di bawah ini, selain Composition/embedding disini juga terdapat penggunaan interface sederhana, berikut kodenya:


package main

import (
	f "fmt"
	s "strconv"
)

// 1. Manusia pada umumnya
type Manusia struct {
	nama                     string
	umur                     int
	telepon, hanphone, email string
}

// 2. Manusia berstatus Mahasiswa
type Mahasiswa struct {
	Manusia       // Embed Manusia / semacam extend di OOP Java
	kampus, kosan string
	uang_jajan    float32
}

// 3. Mahasiswa berstatus Karyawan
type Karyawan struct {
	Manusia            // Embed Manusia / semacam extend di OOP Java
	perusahaan, asrama string
	salary             float32
}

// Semua manusia pasti makan
func (m Manusia) makan(makanan string) {
	f.Printf("Makan: %s \n", makanan)
}

// Semua manusia pasti minum
func (m Manusia) minum(minuman string) {
	f.Printf("Minum: %s \n", minuman)
}

// Semua mahasiswa pasti ujian
func (m Mahasiswa) ujian(mata_kuliah string) {
	f.Printf("Ujian mata kuliah: %s \n", mata_kuliah)
}

// Semua karyawan pasti gajian
func (k Karyawan) gajian() {
	f.Printf("Gajian: $.%e ", k.salary)
}

// Interfaces untuk yang pelajar
type Pelajar interface {
	makan(makanan string)
	minum(minuman string)
	ujian(mata_kuliah string)
}

type Pekerja interface {
	makan(makanan string)
	minum(minuman string)
	gajian()
}

// Fungsi Di luar interface / ga ada di interface
func (m *Manusia) bikinHoax() {
	f.Printf(m.nama + " Bikin berita Hoax biar kacau...... ")
}

// Main function
func main() {
	f.Println(`بِسْــــــــــــــــــمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ`)

	// Implementasi Struct di atas adalah sebagai berikut

	// 1. Mahasiswa
	joni := Mahasiswa{Manusia{"Joni", 20, "0214353454", "098342342", "jonni@example.com"}, "Prapatan University", "Kosan ibu Nuri", 200}
	var joni_mahasiswa Pelajar // Interface
	f.Println(`Nama:` + joni.nama)
	f.Println(`Nama:` + s.Itoa(joni.umur))
	f.Println(`Nama:` + joni.telepon)
	f.Println(`Nama:` + joni.hanphone)
	f.Println(`Nama:` + joni.email)

	joni_mahasiswa = joni
	joni_mahasiswa.makan(`Nasi padang`)
	joni_mahasiswa.minum(`Es Campur`)
	joni_mahasiswa.ujian(`Sastra Rusia`)
	// Kalo tidak di komen fungsi di bawah akan ada error: joni_mahasiswa.bikinHoax undefined (type Pelajar has no field or method bikinHoax)
	// joni_mahasiswa.bikinHoax() // Ya iya lah masa Mahasiswa bikin Hoax, bego di piara mah ga usah kuliah...
	joni.bikinHoax() //Joni sebagai manusia bisa khilaf, jadi ini akan jalan

	f.Println(``)
	f.Println(`------------------------`)
	f.Println(``)

	// 2. Karyawan
	kokom := Karyawan{Manusia{"Kokom Komariyah", 27, "02199999", "0888902343", "kokok-cute@example.com"}, "PT. Telekokom Tbbek", "Rumah dinas Telekokom", 20000}
	var kokom_karyawan Pekerja // Interface
	f.Println(`Nama:` + kokom.nama)
	f.Println(`Nama:` + s.Itoa(kokom.umur))
	f.Println(`Nama:` + kokom.telepon)
	f.Println(`Nama:` + kokom.hanphone)
	f.Println(`Nama:` + kokom.email)

	kokom_karyawan = kokom
	kokom_karyawan.makan(`Steak Kerbau Buleng`)
	kokom_karyawan.minum(`Vodka Bridenk`)
	kokom_karyawan.gajian()
	f.Println(``)
	// Kalo tidak di komen fungsi di bawah akan ada error: kokom_karyawan.bikinHoax undefined (type Pelajar has no field or method bikinHoax)
	// kokom_karyawan.bikinHoax() // masa Professional bikin Hoax...
	kokom.bikinHoax() //Kokom sebagai manusia bisa khilaf, jadi ini jalan
	f.Println(``)
	f.Println(`----------------------------
	f.Println(``)
	// Manusia biasa
	manusia := Manusia{"Entahlah", 27, "02100", "08000", "teuing@ex.com"}
	f.Println(`Nama:` + manusia.nama)
	f.Println(`Nama:` + s.Itoa(manusia.umur))
	f.Println(`Nama:` + manusia.telepon)
	f.Println(`Nama:` + manusia.hanphone)
	f.Println(`Nama:` + manusia.email)
	manusia.bikinHoax() // Wajar namanya manusia
}

Golang: GPM ERROR: Failed to compile. Check the logs

I got following error during go 1.8 installation using GVM ( Golang Version Manager) :

yusuf@yusuf-he:~/htdocs/xxx*$ gvm install go1.8
Downloading Go source…
Installing go1.8…
* Compiling…
ERROR: Failed to compile. Check the logs at /home/yusuf/.gvm/logs/go-go1.8-compile.log
ERROR: Failed to use installed version

My current system go version is:

go version go1.7.3 linux/amd64

and my OS is:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

Solution that proven to work on my machine above was by following the instruction at the following url

gvm install go1.4 
gvm use go1.4 
export GOROOT_BOOTSTRAP=$GOROOT 
gvm install go1.5   (or another higher go version)

The reason why the error happened

You will need go1.4 installed before you can install go1.5 (since this is compiling from go source and 1.5 doesnt use C anymore) run gvm install go1.4 gvm use go1.4 export GOROOT_BOOTSTRAP=$GOROOTthen run gvm install go1.5 . This should be fixed in pull #154

 

 

Kuliah Kelas Karyawan Jarak Jauh Untuk Bandung Dan Jakarta

harukaedu2

Untuk mereka yang sibuk bekerja dan ingin melanjutkan kuliah yang bisa dilakukan secara jarak jauh di  Jakarta atau Bandung bisa bergabung di HarukaEDU, sebuah platform kuliah dan belajar online yang memungkin mahasiswa untuk melakukan perkuliah secara online dengan Ijazah yang di terbitkan dari perguruan swasta terkemuka.

Responding to the fast growth of online education in the world, HarukaEdu was established in 2013 by a team of individuals with a lot of passion and experience in higher education. Our vision is “To provide a brighter future for Indonesians through quality, affordable, accessible, and sociable online education“. We believe online learning is one of the best solutions for solving higher education problems in Indonesia.

logo-harukaedu.png

Keuntungan melakukan kuliah online di HarukaEdu

  • Komputasi di Awan (Cloud Computing)
    Fasilitas dan infrastruktur teknologi informasi yang dapat digunakan secara bersama-sama oleh beberapa universitas. Dengan begitu, biaya dapat ditanggung bersama untuk mengurangi biaya pendidikan.
  • Analisa Hasil Belajar (Learning Analytics)
    Penggunaan teknologi informasi untuk memonitor proses dan hasil belajar setiap individu. Siswa dapat mengulang bagian yang belum mereka mengerti hingga paham sepenuhnya. Pendidik dapat mengetahui keefektifan proses dan materi pengajaran untuk meningkatkan kualitas hasil belajar.
  • Pembelajaran Berbasis Permainan (Game-based Learning)
    Metode pengajaran yang menerapkan beragam bentuk “permainan” untuk meningkatkan interaksi, retensi, dan motivasi peserta didik untuk terus belajar dengan giat. Salah satu bentuknya adalah kompetisi untuk mendapatkan poin dari tugas dan kuis serta memberikan penghargaan untuk siswa dengan poin terbanyak.
  • Pembelajaran Personal (Personalized Learning Environments)
    Tidak semua peserta didik memiliki kemampuan daya tangkap yang sama. Dengan metode kuliah online, jadwal, proses dan kecepatan mengajar dapat ditentukan sesuai dengan kebutuhan masing-masing peserta didik.
  • Konten Terbuka (Open Content)
    Materi belajar yang dapat digunakan bersama-sama dalam proses pembelajaran oleh beberapa pendidik. Diharapkan, dalam jangan panjang, kualitas materi belajar dapat disetarakan dan mengurangi biaya.
  • Pembelajaran Mobile (Mobile Learning)
    Peserta didik dapat mengikuti kuliah mereka di mana saja dan kapan saja, selama mereka memiliki koneksi Internet. Beberapa materi kuliah bahkan dapat diakses walaupun tidak ada koneksi internet.

harukaedu3

Informasi Tekait penerimaan mahasiswa di HarukaEDU

 

LSPR

STIKOM The London School of Public Relations

london-school

1. Lebih dari separuh kurikulan di LSPR merupakan kurikulum internasional

2. Silabus, jadwal dan ujian-ujiannya mengacu pada London Chamber of Commerce and Industry Examination Board, UK, The City and Guilds of London Institute, UK dan University of Cambridge Internasional Examination, UK

3. LSPR bekerja sama dengan Institude of Public Relations of Singapore, Institute of Public Relations of Malaysia, Edith Cowan University, Perth Australia dan Shanghai Public Relations Association dalam penyelenggaraan seminar, workshop dan exchange program

Nah kalau kamu tertarik untuk berkuliah di LSPR, yuk cari tau selengkapnya di sini elearning.lspr.edu/organic

lspr1

 

UWIN

Universitas Wiraswasta Indonesia

uwin1

Universitas Wiraswasta Indonesia (UWIN) didirikan pada tahun 1982 di Jakarta oleh Bapak Halim S. Tirtamadja, Ph.D. Pada awal berdirinya, UWIN dipimpin oleh seorang Rektor bernama Prof. Mr. Sunaryo (Alm), mantan Menteri Luar Negeri Republik Indonesia. Salah satu pencetus dan pelaksana Sumpah Pemuda 28 Oktober 1928 ini banyak memberikan pesan pendidikan untuk mencintai bangsa dan negara.

UWIN adalah lembaga pendidikan yang dibina oleh Yayasan Pendidikan Wiraswasta Indonesia. UWIN menyelenggarakan Program Pendidikan Sarjana (Strata 1 / S1) yang terdiri dari:

 

ITHB

ithb

Institut Teknologi Harapan Bangsa didirikan pada tahun 2002 di bawah naungan Yayasan Petra Harapan Bangsa. Visi ITHB adalah menjadi perguruan tinggi yang dikenal dalam skala regional sebagai lembaga yang mendidik pemimpin masa depan yang memiliki potensi berstandar global, karakter unggul, dan komitmen pada panggilan hidup yang jelas.

Mengurus Kehilangan Kartu ATM Bank BCA atau CIMB Niaga

Saya adalah nasabah Bank CIMB Niaga dan BCA dan sangat puas dengan pelayanan dan fitur kedua bank ini, cuma masalah saya adalah saya sering kehilangan kedua kartu ATM dari dua bank tersebut karena tertelan oleh ATM, nah untuk mengurus kehilangan Kartu ATM kedua bank ini sangat mudah karena bisa dicabang manapun di seluruh Indonesia.

Untuk mengurus ATM kedua bank ini tinggal datang ke kantor cabang manapun lalu minta pembuatan ATM baru dengan bermodalkan KTP dan buku tabungan, Untuk CIMB niaga saya beberapa kali bisa buat ATM Baru tanpa membawa buku tabungan karena memang akun tabungan CIMB Niaga syariah saya saat itu tidak menggunakan buku tabungan alias hanya online Banking saja.

Untuk biaya biasanya hanya dikenakan biaya ganti kartu senilai 10-20 rubu rupiah dan tidak ada biaya lain itupun bisa di debet dari rekening kita saat itu, so kalo kehilangan kartu ATM karena tertelah atau hilang tidak usah panik, karena tinggal bikin saja di kantor cabang Bank terdekat.

CIMB Niaga Transfer Ke Rekening Ponsel Error / Gagal

Seingat saya sewaktu saya buka rekening di bank CIMB Niaga jalan Dago Bandung saya sudah mengaktifkan Rekening Ponsel CIMB Niaga saya dan mencobanya bersama dengan petugas teller dan berfungsi, tapi saat ini saya mendapatkan masalah saat mengirim uang ke Rekening Ponsel CIMB Niaga saya.

Error yang saya dapat saat mengirim uang ke Rekening ponsel saya adalah sebagai berikut:

ERROR ISO0007

Transaction failed.

Please try again later.Sorry for the inconvenience. If problem persists, please call 14041(local calls)/62-21-14041(overseas calls) mentioning the error code written on the top of your error message screen.

ponsel1ponsel4ponsel2ponsel5-error-iso0007

Saya sudah menghubungi pihak CIMB Niaga untuk mengetahuai bagaimana cara menyelesaikan masalah ini dan akan update pada post ini bila sudah ada solusi dan masukan dari pihak Bank CIMB Niaga.

Email balasan dari CIMB Niaga terkait error di Rekening Ponsel:

cimbniaga-balasanemail

 

Kelanjutannya akan saya update bila ada kabar terbaru dari pihak Bank CIMB Niaga.

 

nah setelah berhari-hari saya dapet lagi email dari CIMB Niaga jawabannya seperti ini:

Nomor Referensi  : e20170303-000351

Yth.Bapak. Yusuf Ibr.,

 

Menindaklanjuti email Bapak, kami informasikan bahwa proses tindak lanjut telah dilakukan dengan hasil sebagai berikut:

Mohon maaf atas kendala akses yang Bapak alami.

Mohon konfirmasinya kendala yang Bapak alami apakah untuk transaksi Cimb Clicks atau Go Mobile ? dan apakah masih mengalami kendala hingga saat ini ?

Bapak dapat memberikan balasan melalui email ini dalam kurun waktu 3 (tiga) hari kerja apabila terdapat hal yang ingin disampaikan.

Terima kasih atas kepercayaan Bapak kepada kami. Melayani Bapak merupakan kebanggaan bagi kami.

 

Hormat kami,    `

CIMB Niaga

————————————————————————————————————————————–

Original_mail

=============================================================================

cimbniaga_email1

 

 

Kill processes that run on specific port

Sometime we need to kill processes on specified port in order to run another new processes on the locked port / used port.

Some error regarding locaked port issues

Error: That port is already in use.

 

Failed to listen on localhost:8000 (reason: Address already in use)

 

Solution for errors above

sudo fuser -k 8000/tcp

sudo fuser -k 8000/tcp