h1

Berbicara Efektif

November 7, 2008

“Ayah Nyebelin!!!” Kata-kata yang sering dilontarkan oleh anak saya tercinta. Saya terkadang suka merasa sebal dengan ungkapan yang meluncur dari mulutnya, dan kadang suka merasa bahwa apa yang diungkapkannya salah. Pertengkaran antara orang tua dan anak sering kali terjadi dalam sebuah keluarga, mengapa ini terjadi? Istri saya tercinta selalu memberikan saran yang baik bagi saya, salah satunya adalah “Kita yang sudah besar harusnya lebih mengerti dong!” ini tampaknya suatu pelajaran baru bagi saya.

Memahami perasaan seseorang dan menempatkan diri pada konteks yang tepat sungguh merupakan suatu hal yang berat bagi saya. bagaimana berekspresi yang tepat, memilih kata-kata yang tepat, dan mengakhiri pembicaraan dengan baik sungguh suatu hal yang berat. Terkadang saat saya menyampaikan nasihat pada Anak saya, ternyata tampak seperti memberi perintah, padahal sungguh tidak ada niat begitu. yang lebih parah lagi adalah, saya terlihat begitu serius padahal saat ini konteksnya saya mencoba bercanda.

menurut Agung (2006), beberapa aspek yang harus dipahami saat melakukan pembicaraan adalah sebagai berikut :

  1. Situasi.  Situasi yang dimaksudkan adalah hal-hal yang menyangkut keadaan atau kondisi saat pembicaraan/ceramah sedang berlangsung.
  2. Ruang. Hal ini adalah tentang tempat dimana kita sedang berbicara
  3. Waktu. Yang dimaksudkan dengan waktu disini adalah, disamping waktu yang sebenarnya yaitu apakah pagi, siang, sore atau malam, juga tentang isi materi yang akan dibicarakan, apakah hal tersebut masih aktual ataukah sudah usang atau basi.
  4. Tema. Sebuah tema sangat penting artinya dalam suatu pembicaraan, sehingga didalam pembicaraan seorang pembicara ia dapat fokus atau terarah.
  5. Isi atau Materi. Isi pembicaraan hendaknya sesuai dengan tema yang telah dipersiapkan dengan mantap sebelumnya dan menarik minat pendengar.
  6. Teknik Penyajian. Teknik yang dimaksudkan disini adalah cara-cara yang digunakan didalam berbicara, meliputi :( 1) Kemampuan menggunakan bahasa lisan dengan baik, Ekspresi (air muka) yang menarik, (2)Stressing (redance),  (3)Kemampuan memberikan refreshing (penyegaran) dengan menyelipkan intermezzo, yaitu dengan menyelingi pembicaraan dengan hal-hal lain yang berhubungan yang mengandung kelucuan, baik itu pengalaman sendiri atau sebuah anekdot, dengan tidak mengurangi nilai pembicaraan.(4) Kepribadian atau personality. Dalam hal ini yang dimaksudkan adalah disamping daya pesona atau kharismatik seseorang, juga meliputi nilai-nilai pribadi seorang pembicara, diantaranya: jujur, cerdik, berani, bijaksana, berpandangan baik, percaya diri, tegas, tahu diri, tenang dan tenggang rasa.

Ternyata faktor ke enam yang sangat berat ya, saya harus mulai melatih diri tersenyum (by default kadang wajahnya cemberut, walau hati ini selalu gembira), menyesuaikan dengan suasana, dan tentunya harus menambah wawasan dan tahu siapa lawan bicaranya. Memang berteori itu lebih menyenangkan, karena saat praktiknya, sungguh-sungguh berat :D .

Pustaka:

Arman Agung, Keterampilan berbicara rhetorika dan berbicara efektif,[unpublished],2006

h1

Pemahaman Tentang Arsitektur Aplikasi 2

November 7, 2008

Ah… setelah sekian lama tidak berkesempatan nulis akhirnya mulai lagi menulis. Pada tulisan awal, saya mengulas bahwa arsitektur sistem sangat berpengaruh pada kualitas suatu aplikasi (Q). Lalu pada pernyataan sebelumnya saya menyatakan bahwa membuat suatu arsitektur aplikasi yang baik adalah suatu hal yang mudah. Mengapa bisa seperti itu? Mari kita berkaca pada aktivitas keseharian seorang tukang bangunan yang membangun rumah.

Saya pernah bercakap-cakap dengan mereka untuk mengetahui darimana sumber mereka belajar, jawabannya adalah dilakukan dengan melihat, membantu, dan akhirnya mencoba. Saya kemudian berkesempatan berganti-ganti tukang pada beberapa kesempatan perbaikan rumah, pada kesempatan itu saya melihat pola yang umum dan pola khusus yang mereka terapkan dalam bekerja. Lalu saya bertanya kembali pada salah seorang tukang, jawabannya menarik juga “Saya mah dulu belajar dari mandor saya, dan juga sempat sekolah STM bangunan walau enggak lulus”. Nah, tukang yang terakhir ini yang menurut saya pekerjaannya paling baik.

Dari situ saya berkesimpulan bahwa ada campuran yang baik antara landasan teori dan pembelajaran dalam proses bekerja. Apa hubungannya dengan Q dalam kasus software engineering? Nilai Q dari suatu aplikasi perangkat lunak setidaknya dapat diukur dengan melihat parameter source code quality sebagai berikut:

  • Readability
  • Ease of maintenance, testing, debugging, fixing, modification and portability
  • Low complexity
  • Low resource consumption: memory, CPU
  • Number of compilation or lint warnings
  • Robust input validation and error handling, established by software fault injection

Nah, setiap aspek tersebut sangat dipengaruhi dari arsitektur aplikasi yang diterapkan. Berkaca dari pengalaman tukang bangunan, seorang software architect (SA) tentunya harus memahami secara baik bagaimana rancang bangun dan bagaimana merekonstruksi aplikasi yang didesainnya. Sangat disayangkan jika seorang SA kurang memahami proses implementasi dari suatu aplikasi, jadi dapat dibayangkan bahwa dia mendesain sesuatu berdasarkan asumsi-asumsi yang terkandala dalam implementasinya. hal ini bisa saja terjadi karena bukan salah pendidikan yang diambil si SA, tapi dikarenakan jumlah pengalaman yang masih minim. Lha, kalau begitu gimana? masa seseorang hanya bisa menjadi seorang SA saat dia telah menjadi tua?

Jawabannya adalah tidak melulu harus seperti itu. Seorang SA yang baik tentunya harus belajar dan memahami pola desain dari aplikasi yang telah teruji dan belajar dari kepakaran para pendahulu dalam bidang pengembangan aplikasi. Sungguh beruntung bahwa pengalaman ini telah didokumentasikan dengan baik sehingga dapat menjadi sebuah pengetahuan, pengetahuan yang membantu seorang SA mengetahui dan belajar pengembangan arsitektur aplikasi adalah Architectural pattern.

definisi dari architectural pattern adalah sebagai berikut “are software patterns that offer well-established solutions to architectural problems in software engineering“.  Dari sisi implementasi dari rancang bangun itu sendiri SA pun diharap mampu memahami pola solusi masalah yang lebih “grainy”, yaitu design pattern. Dengan dua senjata inilah seorang SA mulai bermain dengan arsitektur aplikasi. Penjelasan tentang apa itu architecural pattern dan design pattern saya lanjutkan nanti.

h1

Papercraft, Part I

January 24, 2008

Papercraft adalah sebuah hobi yang lumayan menarik. terutama untuk mengisi waktu dan juga melatih kesabaran. Secara umum, papercraft adalah suatu teknik menggunting kertas dengan pola-pola tertentu, kemudian dilipat dan dibentuk menjadi suatu bangun tertentu. Bentuk bangun yang tersedia sangatlah bervariasi, mulai dari bentuk robot, motor, mobil, karakter anime, rumah-rumahan, dan banyak lagi.  Pada bagian selanjutnya saya akan tunjukkan contoh-contoh hasil papercraft.

Untuk memulai hobby ini terdapat beberapa hal yang harus disiapkan:

  1. Kertas, Bagian utama dari hobi papercraft. Saya coba eksperimen dengan menggunakan kertas HVS 80 gram, kertas buffalo 100 gram, dan terakhir menggunakan kertas manila. Kesimpulannya: Kertas <100 gram cocok untuk membuat obyek yang tidak membutuhkan ketahanan konstruksi, contoh: karakter anime, bunga. Untuk kertas Manilai >110 Gram, ini sangat baik untuk membuat karakter robot, mobil, pesawat, motor dsb.
  2. Gunting dan cutter. Gunting serta cutter yang bagus seperti merek kenko
  3. Cutting Mat (Nah, ini penting sekali.. pada awalnya saya menggunakan kaca sebagai alas saat memotong, ternyata kurang baik karena membuat ujung cutter menjadi cepat tumpul). Harga cutting mat bervariasi antara 23.000 sampai 180.000,- tergantung ukurannya. Bisa di beli di Gramedia atau toko alat tulis.
  4. Sumpit plastik Bekas, digunakan untuk membantu saat membuat pola lipatan melingkar.
  5. Liner, hmm… apa ya bahasa indonesianya?? Sebenarnya apapun bisa digunakan, dari ujung ballpoint yang sudah habis, hingga mechanic pencill. Gunanya untuk membantu membuat pola lipatan.
  6. Lem Kertas, Jangan menggunakan lem kertas cair atau stick. saya sarankan gunakan lem kayu, atau lem kertas khusus untuk craft. bisa dibeli di gramedia, kisaran harga 6.000-16.000 Rupiah.
  7. Printer Warna atau monochrome. Digunakan untuk mencetak pola, jika Anda sangat rajin, bisa dicetak pola tanpa warna, dan selanjutnya diwarnai secara terpisah. Nah, kalau saya memilih mencetak warna saja :D .
  8. Cat pelapis. saya pikir untuk para penghobi serius, biasa menggunakan final coating untuk hasil karnyanya, supaya tampak kinclong dan tahan lama. Terima kasih buat pak Koko atas sarannya untuk menggunakan pylox clear yang disemportkan pada pola sebelum dilipat. Karena kualitas tinta yang kurang ok, kadang-kadang malah luntur saat dilipat karena terkena keringat.

Pada bagian selanjutnya, saya akan jelaskan tahapan demi tahapan untuk membuat papercraft ini. FYI, saya menghabiskan 20-30.000 rupiah untuk 1 model sederhana, dan butuh waktu 1-2 bulan sampai hasil jadi. Lho? kok lama sekali? soalnya dikerjakannya 15 menit dalam 1 hari yaitu sehabis pulang kerja :D .

h1

Pemahaman tentang Arsitektur Aplikasi Part 1.

January 24, 2008

SOA (Service Oriented Architecture) hmm… sebuah terminologi baru dalam memandang pola konstrusi sebuah perangkat lunak. Masih teringat ucapan saya saat mengajar dikelas rekayasa perangkat lunak yaitu “Konstruksi modular adalah langkah awal dalam pengembangan sebuah aplikasi yang berkualitas”. Sepintas saya memandang mata rekan-rekan mahasiswa yang ada dikelas itu, dan saya sadar bahwa mereka tidak paham dengan apa yang saya ucapkan. Kenapa mereka bisa tidak paham ya? Tampaknya, jawabannya adalah masih kurangnya pengalaman rekan-rekan mahasiswa dalam mengembangkan aplikasi.

Saya menyadari bahwa pemahaman seorang programmer tentang konstruksi sebuah aplikasi sangat bergantung pada seberapa banyak pengalaman dia mengembangkan aplikasi. Saya ingat benar saat pertama kali membuat aplikasi dengan bahasa pascal dan C, saya masih berkutat dengan hasil yang dikeluarkan oleh sistem dan tidak memperdulikan seberapa efektif program itu berjalan.

Nah, belakangan setelah berkesempatan mengembangkan aplikasi lebih banyak lagi, saya mulai dihadapkan pada:

  1. Batasan Waktu pengerjaan (T)
  2. Biaya yang tersedia dalam melakukan pekerjaan (C)
  3. Kualitas yang menjadi standar baku bagaimana software itu dibuat (Q).

Tiga parameter ini yang dulu saya tidak pahami benar apa maksudnya. Nah, sekarang saya baru tahu bahwa tiga variabel kunci ini yang harus “dimainkan” untuk menghasilkan sebuah produk aplikasi yang berkualitas.

Nah, apa hubungannya semua ini dengan arsitektur sistem? Jelas akan sangat berhubungan. Parameter Q sangat dipengaruhi oleh arsitektur yang dibangun, dan arsitektur yang dipilih tentunya harus membuat nilai T dan C yang sekecil mungkin. Saya pernah berkelakar di kelas soal seberapa cepat nanti software dikembangkan “Saya pikir suatu saat kita cukup ‘merem’ dan langsung jadi tuh software”, mean to create by imagination. Tampaknya ini bukan sekedar khayalan dan kelakar, justru semua sudah menuju kearah sana. CASE Tools sudah semakin canggih, dan semakin membuat para programmer dimudahkan dalam mengembangkan aplikasi.

Nah, berarti tidak sulit lagi dong? Benar sekali, memang tidak sulit membuat software yang tampak canggih, tapi tetap sulit untuk menghasilkan sebuah aplikasi yang berasitektur canggih. Nah, apa itu arsitektur canggih? Apapun yang membawa peningkatan variabel Q dan menurunkan nilai T dan C. Saya akan sambung lagi nanti :)