Memilih Platform Untuk Development

Posted on Updated on

Menurut saya ada 3 platform yang pantas untuk mendapatkan perhatian untuk pengembangan aplikasi sekarang ini yaitu ASP.Net MVC, Ruby on Rails(RoR) dan Laravel (PHP). Mengapa saya memilih 3 platform tersebut salah satunya adalah kemiripan yang hampir 90%. Walaupun syntaknya beda tetapi rasanya sama.

Masing-masing memiliki kelebihan masing-masing, tetapi jika anda seorang product manager dan harus memilih salah satu untuk pengembangan. mungkin pertimbangan-pertimbangan berikut ini bisa menjadi acuan yaitu biaya, waktu dan ketersediaan sumber daya manusia yang ada. karena ke-3 hal tersebut yang menjadi kunci kualitas yang akan dihasilkan.

Asp.net mvc
jika proyek anda ingin memaksimalkan dari produk-produk Microsoft lainnya, asp.net mvc adalah pilihan yang tepat. dari segi waktu dan kualitas, asp.net mvc adalah termasuk yang terbaik. Asp.net mvc + visual studio adalah alat dengan produktivitas yang tinggi, ditambah third party control yang tersedia banyak dipasaran yang bisa menjadikan nilai tambah bagi produk anda. SDMnya cukup dipasaran kelemahannya adalah memerlukan biaya yang lebih besar dari platform lainnya.

Ruby on rails
ini adalah embahnya MVC, tidak usah diragukan lagi kualitasnya. Untuk produktifitasnya sangat tinggi di support dengan komunitas yang luas. Ror bisa jalan disemua platform, yang menjadi perhatiannya mungkin ketersediaan SDM dipasaran sehingga mungkin harganya lebih tinggi. Sebelumnya mengembangkan teliti dulu kesiapan SDM yang ada.

Laravel
Salah satu kelebihan dan kelemahan PHP adalah kemudahannya, sehingga mudah terjebak dengan “perilaku buruk”. Laravel adalah satu framework yang mengadopsi cara ala Rails di lingkungan PHP. Kekurangannya mungkin karena masih tergolong baru komponen-komponen masih kalah dibandingkan dengan Ror tetapi framework ini layak dicoba.

Kesimpulan
kesimpulannya tidak ada pemenang karena semuanya bagus.Tinggal sekarang hitung ulang, berapa nilai proyek anda. berapa untuk biaya produksi, biaya gaji dan operasional, ketersediaan SDM. Anda ingin profit margin berapa?

 

How do I “think in AngularJS” if I have a jQuery background?

Posted on

1. Don’t design your page, and then change it with DOM manipulations

In jQuery, you design a page, and then you make it dynamic. This is because jQuery was designed for augmentation and has grown incredibly from that simple premise.

But in AngularJS, you must start from the ground up with your architecture in mind. Instead of starting by thinking “I have this piece of the DOM and I want to make it do X”, you have to start with what you want to accomplish, then go about designing your application, and then finally go about designing your view.

2. Don’t augment jQuery with AngularJS

Similarly, don’t start with the idea that jQuery does X, Y, and Z, so I’ll just add AngularJS on top of that for models and controllers. This is really tempting when you’re just starting out, which is why I always recommend that new AngularJS developers don’t use jQuery at all, at least until they get used to doing things the “Angular Way”.

I’ve seen many developers here and on the mailing list create these elaborate solutions with jQuery plugins of 150 or 200 lines of code that they then glue into AngularJS with a collection of callbacks and$applys that are confusing and convoluted; but they eventually get it working! The problem is that inmost cases that jQuery plugin could be rewritten in AngularJS in a fraction of the code, where suddenly everything becomes comprehensible and straightforward.

The bottom line is this: when solutioning, first “think in AngularJS”; if you can’t think of a solution, ask the community; if after all of that there is no easy solution, then feel free to reach for the jQuery. But don’t let jQuery become a crutch or you’ll never master AngularJS.

3. Always think in terms of architecture

First know that single-page applications are applications. They’re not webpages. So we need to think like a server-side developer in addition to thinking like a client-side developer. We have to think about how to divide our application into individual, extensible, testable components.

So then how do you do that? How do you “think in AngularJS”? Here are some general principles, contrasted with jQuery.

The view is the “official record”

In jQuery, we programmatically change the view. We could have a dropdown menu defined as a ullike so:

<ul class="main-menu">
    <li class="active">
        <a href="#/home">Home</a>
    </li>
    <li>
        <a href="#/menu1">Menu 1</a>
        <ul>
            <li><a href="#/sm1">Submenu 1</a></li>
            <li><a href="#/sm2">Submenu 2</a></li>
            <li><a href="#/sm3">Submenu 3</a></li>
        </ul>
    </li>
    <li>
        <a href="#/home">Menu 2</a>
    </li>
</ul>

In jQuery, in our application logic, we would activate it with something like:

$('.main-menu').dropdownMenu();

When we just look at the view, it’s not immediately obvious that there is any functionality here. For small applications, that’s fine. But for non-trivial applications, things quickly get confusing and hard to maintain.

In AngularJS, though, the view is the official record of view-based functionality. Our ul declaration would look like this instead:

<ul class="main-menu" dropdown-menu>
    ...
</ul>

These two do the same thing, but in the AngularJS version anyone looking at the template knows what’s supposed to happen. Whenever a new member of the development team comes on board, she can look at this and then know that there is a directive called dropdownMenu operating on it; she doesn’t need to intuit the right answer or sift through any code. The view told us what was supposed to happen. Much cleaner.

Developers new to AngularJS often ask a question like: how do I find all links of a specific kind and add a directive onto them. The developer is always flabbergasted when we reply: you don’t. But the reason you don’t do that is that this is like half-jQuery, half-AngularJS, and no good. The problem here is that the developer is trying to “do jQuery” in the context of AngularJS. That’s never going to work well. The view is the official record. Outside of a directive (more on this below), you never, ever, never change the DOM. And directives are applied in the view, so intent is clear.

Remember: don’t design, and then mark up. You must architect, and then design.

Data binding

This is by far one of the most awesome features of AngularJS and cuts out a lot of the need to do the kinds of DOM manipulations I mentioned in the previous section. AngularJS will automatically update your view so you don’t have to! In jQuery, we respond to events and then update content. Something like:

$.ajax({
  url: '/myEndpoint.json',
  success: function ( data, status ) {
    $('ul#log').append('<li>Data Received!</li>');
  }
});

For a view that looks like this:

<ul class="messages" id="log">
</ul>

Apart from mixing concerns, we also have the same problems of signifying intent that I mentioned before. But more importantly, we had to manually reference and update a DOM node. And if we want to delete a log entry, we have to code against the DOM for that too. How do we test the logic apart from the DOM? And what if we want to change the presentation?

This a little messy and a trifle frail. But in AngularJS, we can do this:

$http( '/myEndpoint.json' ).then( function ( response ) {
    $scope.log.push( { msg: 'Data Received!' } );
});

And our view can look like this:

<ul class="messages">
    <li ng-repeat="entry in log">{{ entry.msg }}</li>
</ul>

But for that matter, our view could look like this:

<div class="messages">
    <div class="alert" ng-repeat="entry in log">
        {{ entry.msg }}
    </div>
</div>

And now instead of using an unordered list, we’re using Bootstrap alert boxes. And we never had to change the controller code! But more importantly, no matter where or how the log gets updated, the view will change too. Automatically. Neat!

Though I didn’t show it here, the data binding is two-way. So those log messages could also be editable in the view just by doing this: <input ng-model="entry.msg" />. And there was much rejoicing.

Distinct model layer

In jQuery, the DOM is kind of like the model. But in AngularJS, we have a separate model layer that we can manage in any way we want, completely independently from the view. This helps for the above data binding, maintains separation of concerns, and introduces far greater testability. Other answers mentioned this point, so I’ll just leave it at that.

Separation of concerns

And all of the above tie into this over-arching theme: keep your concerns separate. Your view acts as the official record of what is supposed to happen (for the most part); your model represents your data; you have a service layer to perform reusable tasks; you do DOM manipulation and augment your view with directives; and you glue it all together with controllers. This was also mentioned in other answers, and the only thing I would add pertains to testability, which I discuss in another section below.

Dependency injection

To help us out with separation of concerns is dependency injection (DI). If you come from a server-side language (from Java to PHP) you’re probably familiar with this concept already, but if you’re a client-side guy coming from jQuery, this concept can seem anything from silly to superfluous to hipster. But it’s not. 🙂

From a broad perspective, DI means that you can declare components very freely and then from any other component, just ask for an instance of it and it will be granted. You don’t have to know about loading order, or file locations, or anything like that. The power may not immediately be visible, but I’ll provide just one (common) example: testing.

Let’s say in our application, we require a service that implements server-side storage through a RESTAPI and, depending on application state, local storage as well. When running tests on our controllers, we don’t want to have to communicate with the server – we’re testing the controller, after all. We can just add a mock service of the same name as our original component, and the injector will ensure that our controller gets the fake one automatically – our controller doesn’t and needn’t know the difference.

Speaking of testing…

4. Test-driven development – always

This is really part of section 3 on architecture, but it’s so important that I’m putting it as its own top-level section.

Out of all of the many jQuery plugins you’ve seen, used, or written, how many of them had an accompanying test suite? Not very many because jQuery isn’t very amenable to that. But AngularJS is.

In jQuery, the only way to test is often to create the component independently with a sample/demo page against which our tests can perform DOM manipulation. So then we have to develop a component separately and then integrate it into our application. How inconvenient! So much of the time, when developing with jQuery, we opt for iterative instead of test-driven development. And who could blame us?

But because we have separation of concerns, we can do test-driven development iteratively in AngularJS! For example, let’s say we want a super-simple directive to indicate in our menu what our current route is. We can declare what we want in our view:

<a href="/hello" when-active>Hello</a>

Okay, now we can write a test:

it( 'should add "active" when the route changes', inject(function() {
    var elm = $compile( '<a href="/hello" when-active>Hello</a>' )( $scope );

    $location.path('/not-matching');
    expect( elm.hasClass('active') ).toBeFalsey();

    $location.path( '/hello' );
    expect( elm.hasClass('active') ).toBeTruthy();
}));

We run our test and confirm that it fails. So now we can write our directive:

.directive( 'whenActive', function ( $location ) {
    return {
        scope: true,
        link: function ( scope, element, attrs ) {
            scope.$on( '$routeChangeSuccess', function () {
                if ( $location.path() == element.attr( 'href' ) ) {
                    element.addClass( 'active' );
                }
                else {
                    element.removeClass( 'active' );
                }
            });
        }
    };
});

Our test now passes and our menu performs as requested. Our development is both iterative and test-driven. Wicked-cool.

5. Conceptually, directives are not packaged jQuery

You’ll often hear “only do DOM manipulation in a directive”. This is a necessity. Treat it with due deference!

But let’s dive a little deeper…

Some directives just decorate what’s already in the view (think ngClass) and therefore sometimes do DOM manipulation straight away and then are basically done. But if a directive is like a “widget” and has a template, it should also respect separation of concerns. That is, the template too should remain largely independent from its implementation in the link and controller functions.

AngularJS comes with an entire set of tools to make this very easy; with ngClass we can dynamically update the class; ngBind allows two-way data binding; ngShow and ngHide programmatically show or hide an element; and many more – including the ones we write ourselves. In other words, we can do all kinds of awesomeness without DOM manipulation. The less DOM manipulation, the easier directives are to test, the easier they are to style, the easier they are to change in the future, and the more re-usable and distributable they are.

I see lots of developers new to AngularJS using directives as the place to throw a bunch of jQuery. In other words, they think “since I can’t do DOM manipulation in the controller, I’ll take that code put it in a directive”. While that certainly is much better, it’s often still wrong.

Think of the logger we programmed in section 3. Even if we put that in a directive, we still want to do it the “Angular Way”. It still doesn’t take any DOM manipulation! There are lots of times when DOM manipulation is necessary, but it’s a lot rarer than you think! Before doing DOM manipulation anywherein your application, ask yourself if you really need to. There might be a better way.

Here’s a quick example that shows the pattern I see most frequently. We want a toggleable button. (Note: this example is a little contrived and a skosh verbose to represent more complicated cases that are solved in exactly the same way.)

.directive( 'myDirective', function () {
    return {
        template: '<a>Toggle me!</a>',
        link: function ( scope, element, attrs ) {
            var on = false;

            $(element).click( function () {
                if ( on ) {
                    $(element).removeClass( 'active' );
                }
                else {
                    $(element).addClass( 'active' );
                }

                on = !on;
            });
        }
    };
});

There are a few things wrong with this. First, jQuery was never necessary. There’s nothing we did here that needed jQuery at all! Second, even if we already have jQuery on our page, there’s no reason to use it here; we can simply use angular.element and our component will still work when dropped into a project that doesn’t have jQuery. Third, even assuming jQuery was required for this directive to work, jqLite (angular.element) will always use jQuery if it was loaded! So we needn’t use the $ – we can just use angular.element. Fourth, closely related to the third, is that jqLite elements needn’t be wrapped in $ – the element that is passed to the link function would already be a jQuery element! And fifth, which we’ve mentioned in previous sections, why are we mixing template stuff into our logic?

This directive can be rewritten (even for very complicated cases!) much more simply like so:

.directive( 'myDirective', function () {
    return {
        scope: true,
        template: '<a ng-class="{active: on}" ng-click="toggle()">Toggle me!</a>',
        link: function ( scope, element, attrs ) {
            scope.on = false;

            scope.toggle = function () {
                scope.on = !scope.on;
            };
        }
    };
});

Again, the template stuff is in the template, so you (or your users) can easily swap it out for one that meets any style necessary, and the logic never had to be touched. Reusability – boom!

And there are still all those other benefits, like testing – it’s easy! No matter what’s in the template, the directive’s internal API is never touched, so refactoring is easy. You can change the template as much as you want without touching the directive. And no matter what you change, your tests still pass.

w00t!

So if directives aren’t just collections of jQuery-like functions, what are they? Directives are actuallyextensions of HTML. If HTML doesn’t do something you need it to do, you write a directive to do it for you, and then use it just as if it was part of HTML.

Put another way, if AngularJS doesn’t do something out of the box, think how the team would accomplish it to fit right in with ngClickngClass, et al.

Summary

Don’t even use jQuery. Don’t even include it. It will hold you back. And when you come to a problem that you think you know how to solve in jQuery already, before you reach for the $, try to think about how to do it within the confines the AngularJS. If you don’t know, ask! 19 times out of 20, the best way to do it doesn’t need jQuery and to try to solve it with jQuery results in more work for you.

sumber : http://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background?rq=1

Curhat Reformasi Birokrasi…

Posted on

Saya bukan pelaku atau aktor yang terlibat dalam reformasi atau transformasi suatu organisasi /birokrasi di suatu organisasi. Tetapi lebih tepatnya adalah saksi hidup . Saya ada disetiap rapat tetapi di meja belakang, lebih tepatnya adalah disebelah meja cemilan.

Reformasi atau transformasi itu kalo di kamus bahasa Indonesia ada beberapa baris kalimat tetapi kalo di kamus saya cuma 3 kata “Menjadi Lebih Baik”. Karena itu perlu disusun suatu cara yang sistematis yang sesuai dengan kaedah-kaedah ilmu manajemen modern. Harus orang-orang yang pinter yang menyusunnya, kalo perlu orang-orang setengah dewa. Kalo yang menyusun setengah dewa yang menjalankannya harus orang dengan tingkatkan setangah dewa juga.Minimal agak kedewa-dewaan sedikit lah.

Menurut katanya para ahli, syarat organisasi terletak di manusia. Manusia seperti apa? Manusia yang terdidik, terlatih dan berakhlak mulia. Seperti PNS atau karyawan BUMN kita lah. Berpendidikan tinggi (JPNS/Karyawan BUMN sekarang rata-rata S2). Malah banyak yang lulusan dari Kanada, Belanda, Perancis dll. IQ?? IQ mereka diatas rata-rata karena saya terlibat di scoring-nya . Terlatih??? Sangat terlatih sekali. Mereka rata-rata ikut pelatihan bermacam-macam. Sehingga 1 orang kalau menulis CV-nya bisa mencapai 30 lembar untuk daftar pelatihannya. berakhlak mulia? Ini saya agak sulit menjawabnya. Karena yang berhak menjawabnya itu adalah Tuhan. Tetapi dari pengamatan mata manusia saya sebenarnya banyak yang sholeh. Saya kenal beberapa eselon 1 dan 2, dan banyak PNS yang muda-muda yang bekerja penuh dengan idealisme.

Kembali ke reformasi birokrasi atau singkat saja RB. RB ini bertujuan untuk Menciptakan birokrasi pemerintah yang profesional dengan karakteristik, berintegrasi, berkinerja tinggi, bebas dan bersih KKN, mampu melayani publik, netral, sejahtera, berdedikasi, dan memegang teguh nilai-nilai dasar dan kode etik aparatur negara. Mantapkan? Diatas kertas tidak ada yang salah di negeri ini. Semua Kementerian/Pemda akan melakukan penilaian mandiri. Yang diukur adalah 9 aspek, yaitu Manajemen Perubahan,Mentoring dan Evaluasi,Peningkatan Kualitas Pelayanan Publik,Penguatan Akuntabilitas Kinerja,Penguatan Pengawasan,Penataan Sistem Manajemen SDM Aparatur,Penataan Tatalaksana,Penataan dan Penguatan Organisasi dan Penataan Peraturan Perundang-undangan. Sekali lagi mantapkan?? Masing-masing aspek akan diturunkan lagi kriteria-kriterianya dan cara pengukurannya.Sekali lagi… mantap kan?????

Kemudian masuklah ke soal berikut ini. Framework unggul + manusia unggul=? (akan berhasil). Jujur saya tidak mengetahui jawabannya. Iseng-iseng saya tanya ke seorang Ibu disebelah. Saya tanya. “RB itu kalo sukses jika gimana ya bu?”. Kalo saya sudah mendapatkan renumerasi mas he3…

Dan saya kembali mengambil cemilan disebelah meja,membuat kopi dan menghidupan wifi (lumayan gratis). RB hari ini dikatakan berhasil jika saya sudah menerima amplop coklat.

Menampilkan JSON di Internet Explorer (IE)

Posted on Updated on

Jika anda ingin menampiklan format json di Internet Explorer untuk mencoba REST service yang anda buat, terkadang IE tidak menampilkannya tetapi yang muncul adalah opsi download. untu menampikankan berikut ini langkah-langkahnya. buka notepad, kemudian copy paste kode dibawah ini:

Windows Registry Editor Version 5.00; ; Tell IE 7,8,9,10 to open JSON documents in the browser on Windows XP and later. ; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" . ; [HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json] "CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}" "Encoding"=hex:08,00,00,00 

simpan dengan akhiran .reg seperti fixjsonie.reg, jangan lupa pada save as pilih save as type=all files. kemudian double klik file yang telah dibuat tadi.

OpenERP 7 (1)

Posted on Updated on

Mengenal OpenERP 7

Apa itu ERP

ERP disini adalah Enterprise Resource Planning, yaitu suatu program aplikasi yang digunakan oleh organisasi yang terdiri dari modul-modul fungsional yang saling terintegrasi.Seperti modul sales,purchasing,inventory,CRM,MRP sampai Keuangan. Tidak itu ERP juga tersedia modul untuk tugas-tugas HRD seperti  rekrutment,pengelolaan karyawan,penggajian,penilaian kinerja ,leave manajemen dll.

Apa yang membedakan dengan software-software lainya

Yang membedakan software ERP dengan software-software  lainnya adalah kemampuan untuk di kustomisasi atau disesuaikan dengan bisnis proses yang ada. User dapat merubah flow proses dari modul-modul yang ada atau menambah modul yang ada.

Mengapa OpenERP 7

Image
Modul-modul OpenERP 7

Ada banyak software-software ERP yang ada di pasaran seperti SAP,Dinamic AX/GP,Netsuite dan lain-lain. ERP yang open source juga banyak ada Compiere,Adempiere dan lain-lain juga. Silahkan google … Kembali mengapa OpenERP 7 layak dipertimbakangkan.Selain gratis, OpenERP 7 secara fungsional  lengkap, terdiri dari modul sales,purchasing,inventory,CRM,MRP,Keuangan,HR,employee directory, timesheet,proses rekruitment dan masih banyak lagi. Ada beberapa modul yang menurut saya cukup  keren yaitu social network, lunch order ,project management,fleet management. Sedangkan secara teknikal  OpenERP 7 dibuat dengan bahasa pemrograman  Python, dengan database PostgreSQL .

Instalasi OpenERP 7

Untuk proses instalasi silahkan unduh dari https://www.openerp.com/start?download. Jika anda ingin mencobanya secara online bisa daftar di cloudnya. OpenERP menyediaakan secara Cuma-Cuma secara gratis selama 15 hari. Sedangkan jika ingin berlangganan versi cloudnya, biaya adalah 39 dollar per-user/bulan. Anda juga bisa mendownoad free-booknya di https://www.facebook.com/OpenERP/app_220150904689418

Apa selanjutnya

Setelah OpenERP 7 terinstall di komputer  anda tahap selanjutnya adalah explore modul-modul yang ada. Gunakan google untuk mengetahui  fungsi-fungsi yang ada . OpenERP 7 tidak kalah dengan ERP-ERP lainnya.  Ditulisan berikutnya penulis akan berusaha menjelaskan modul-permodul. Karena kebetulan saya pernah terlibat dibeberapa project implementasi ERP (dengan merk lain).Baru kemudian mencoba kustom beberapa modul atau menambah modul. Selamat menikmati OpenERP 7, saya yakin tidak akan mengecewakan .

Mengapa Konsultan HR di bayar lebih tinggi dari konsultan IT

Posted on Updated on

Memang tidak semuanya, konsultan HR dibayar lebih tinggi dari konsultan IT. Tetapi ada perbedaan cara orang HR “meng-uang-kan” keahlian mereka dibandingkan dengan orang IT. Sebagai seorang programmer yang sehari-hari bergaul dengan orang HR, berikut ini pengamatan saya.

1. Pengguna konsultan HR rata-rata adalah top manajemen.

mereka punya hak budget yang lebih besar daripada karyawan biasa.Beda dengan proyek IT yang beragam, dari kebutuhan penunjang operasional level pelaksana.Akhirnya nilai projectnya beragam walaupun kadang dari tingkat kesulitan atau lama pengerjaan tidak jauh berbeda.

2. Kebutuhan konsultasi HR adalah untuk menemukan solusi managerial.

Seperti yang di No.1 kalo yang tandatangan itu level direktur uang 200jt itu mah kecil.Coba kalo projek IT sudah ditawar habis-habisan.

3. Ilmu HR itu ilmu pelit.

Dibandingkan dengan ilmu IT yang tutorialnya seabreg-abreg.Coba cari tutorial mendesain Organisasi atau KPI atau Job Desc atau Struktur Upah.Sample Balanced Scorecard,alat ukur psikometrik, talent manajement. Minim dan gak jelas. 

4. Training HR lebih mahal dari IT.

Menindak lanjuti no.3, akhirnya training HR lebih mahal dari IT. Training HR seharga 3jt itu biasa dan laris manis. Coba training IT? gratis saja jarang yang datang. 

5. Jangka waktu pengerjaan HR lebih singkat dan aman dibandingkan dengan proyek IT.

 Di HR gak ada debugging,implementasi,unknown error,gak butuh framework,gak butuh license. Itu mungkin yang menyebabkan proyek HR lebih profitable.

 Sekali lagi ini relatif, paling tidak kita bisa belajar bagaimana mencari dan menghargai  sebuah project.

Sandal Jepit

Posted on Updated on

sandaljepit

“Heh, kenapa pakai sendal jepit masuk kuliah? Keluar kamu!”

“Apa salahnya jika saya masuk memakai sendal jepit Pak?” Mahasiswa itu tampak gerah ketika dosen mengusirnya.

“Tidak sopan!”

“Hah! Tidak sopan? Dimana letak ketidaksopanannya? Lucu yah Bapak ini, Master tapi kok tidak bisa berpikir rasional sih. Apa hubungannya ketidaksopanan dengan sendal jepit Pak? Maunya Bapak lebih mempertanyakan apakah saya kerja tugas, apakah saya baca buku, atau sampai dimana diskusi saya mengenai mata kuliah ini!”

“Banyak bicara kamu! Tutup pintu dari luar…!” Wajah sang dosen tampak kemerahan.

Tanpa pikir panjang, mahasiswa itu segera berdiri dari tempat duduknya. Ia melenggang seenaknya, tampangnya begitu kesal dengan sikap dosen yang mengusirnya. Salah satu tangannya memegang sebuah binder berisi kertas seadanya sedangkan tangan lainnya mengurut kepalanya yang mungkin pening. Dosen baru saja mengusirnya dari ruangan, ia tidak berhak mengikuti kuliah kali ini. Tetapi mahasiswa yang menggunakanku ini tampaknya tidak peduli dengan pengusiran tersebut, ia mengayunkan aku sesuka hati keluar dari ruangan. Tampak begitu cuek dengan tatapan mahasiswa lain yang menggenakan sepatu. Dia tidak peduli.

Belum cukup sejam aku mengalasi kaki. Aku terpilih untuk ditukar dengan uang, mengalahkan sainganku yang lain di warung mace, sebuah warung kecil di samping pondokan tempat mahasiswa ini tinggal. Aku sebenarnya tidak tahu persis nama tuan pemilik warung tempat diriku di jual, tetapi begitulah yang sering aku dengar, mace, yah mahasiswa yang berbelanja di warung kecil itu kerap memanggil pemilik warung dengan sebutan mace. Beberapa hari yang lalu aku akhirnya tau kalau mace itu adalah panggilan gaul untuk mama atau ibu. Mungkin mahasiswa perantau itu merindukan sosok ibu mereka di kampung, dan mace yang menyediakan warung makan sekaligus barang kebutuhan sehari-hari itu bisa menepis sedikit rindu mereka. Di warung itu mereka bisa makan, makanan seperti masakan di rumah, dan jika kirimin belum datang kadang-kadang mereka mengutang dulu.

Orang yang melihatku pasti akan tahu persis kalau diriku masih baru, belum lama keluar dari plastik yang membungkusku. Setiap permukaanku masih keset, bahkan tak jarang menghasilkan suara mencicit. Warnaku yang terdiri atas dua warna masih sangat cerah, tidak kumal. Karetnya masih tebal. Tetapi mengapa dosen itu melarangnya masuk mengikuti kuliah hanya karena memakaiku? Bukankah aku jauh lebih bersih di bandingkan sepatu-sepatu yang dikenakan mahasiswa-mahasiswa lain?

Mungkin di pondokan sana, tempat mahasiswa ini tinggal, orang yang membeliku di warung mace tengah kelimpungan mencariku. Tadi setelah ia membeliku, ia sempat memakaiku masuk ke kamar mandi. Setelah itu ia masuk kamar dan menutup pintunya. Karena buru-buru hendak masuk kuliah, orang ini langsung saja menyambarku. Aku yang baru saja di beli telah raib di gunakan oleh mahasiswa yang bermaksud baik ingin mencari ilmu, tetapi malah di usir karena mengenakanku. Bisa jadi ia mendapatkan karma karena telah memakai barang yang bukan miliknya. Aku rasa bukan itu, aku menjadi terlarang karena manusia-manusia itu membuat aturan yang menyesakkan, etika bersepatu yang entah perbuatan siapa, mungkin hanya isu yang sengaja di sebar pembuat sepatu agar produknya laku.

Pijakanku memasuki sebuah gedung. Isi gedung terlihat agak berantakan. Di tempat ini, lebih banyak mahasiswa yang menggunakan teman-temanku, sesama sendal jepit. Beberapa di antara teman-temanku itu sudah tua dan usang bahkan telah menipis. Beberapa di antaranya meski sudah tua tapi masih bersih, tampaknya sang pemilik begitu merawatnya. Dan beberapa lainnya bertuliskan nama sang pemilik sebagai sebuah identitas.

Mahasiswa itu memarkirku di depan pintu. Melepasnya begitu saja hingga membuatku tergeletak tak beraturan, bahkan bagian kiriku tertelungkup karena di lepas bebas, tampaknya ia melepasku dengan rasa jengkel yang membuncah dan di lampiaskannya padaku. Ia pun memasuki sebuah ruangan tanpa alas kaki, ruangan yang di penuhi mahasiswa.

“Kok lesuh?” Tanya mahasiswa lain di dalam ruangan.

“Di usir dosen gara-gara memakai sendal jepit. Huh kesalnya…” Ia pun duduk di atas tikar tepat di samping temannya. “Kenapa sih dilarang masuk kuliah kalau memakai sendal jepit?”

“Hehe… Katanya sendal jepit tidak mencirikan intelektualitas. Tidak berkelas. Tapi kita ini kan mahasiswa, kenapa harus mengikuti aturan yang tak jelas seperti itu. Hehehe…”

“Iya, masalahnya pembatasan tidak logis itu membuat kita tak mampu mengaktualisasikan diri.

“Sudahlah! Oh iya tadi kamu di cari ketua himpunan, katanya proposal untuk kegiatan besok kamu simpan dimana?”

Percakapan merekapun berlanjut, tampak begitu serius.

###

“Sendal jepit siapa ini? Pinjam ya!” Belum juga ada jawaban dari pertanyaannya, mahasiswa lain segera mengenakanku. Membawaku berjalan menyusuri koridor hingga tiba di depan ruangan lain yang juga di huni oleh beberapa mahasiswa. Di dalam sana, ia di sambut tiga rekannya yang akan mengajaknya bermain domino.

“Malas pakai sepatu! Gerah!” Ucap seorang mahasiswa di depan pintu ruangan lain, ruangan yang berhadapan dengan tempatku di parkir. Tampak ia menjinjing sepatu yang telah usang.

“Jadi? Bukannya kamu tidak membawa sendal?” ucap mahasiswa lainnya yang tengah memegang map transparan berwarna hijau yang tampaknya berisi kertas-kertas.

Mahasiswa pertama melihatku, melihat arah mata temannya, mahasiswa lainnya ikut memandangiku. Mahasiswa pertama melangkah dengan hati-hati. Ia melirik ke dalam ruangan, yang dia lihat hanya empat orang yang disibukkan dengan kartu domino. Segera ia mengenakanku dan segera berjalan meninggalkan gedung itu bersama temannya.

Kaki dari kedua mahasiswa itu terdengar jelas menghentak lantai-lantai kampus. Menghentakkan dua pasang sendal jepit menelusuri koridor. Membawaku berjalan menjejaki tempat-tempat baru tapi mungkin tidak bagi sendal jepit di sebelahku yang tampak telah tua dan menipis.

“Aku lebih suka memakai sendal jepit, lebih nyaman. Sepatu adalah penyiksaan dan penindasan!”

“Aku rasa semua orang akan sependapat dengan hal itu. Aku juga tak begitu menyukai barang yang sangat menggerahkan itu. Memakainya berjam-jam membuat kakiku terasa terbakar.”

“Lihat sendal jepitku ini memang sudah butut tapi masalah pengalaman jangan di tanya, dia sudah senior, sudah makan asam garam jalanan jenis apapun! Malah kalau kamu tanya alamat ke dia pasti dia bakal mengantarkan kamu kesana.”

“Hallah… kamu ada-ada saja. Entah sendal jepit siapa ini, kayaknya masih baru, masih mulus.”

“Hahahaha…” Keduanya tertawa begitu renyah.

###

Aku sangat bahagia di ciptakan sebagai sendal jepit, walaupun di letakkan di bawah dan di injak-injak, setidaknya aku berguna bagi manusia. Aku melapisi antara kaki dengan sesuatu yang akan dipijaknya. Dengan harga yang terjangkau, aku bisa dimiliki oleh semua orang. Baik kaya ataupun miskin. Tak mengenal derajat bangsawan ataupun masyarakat biasa. Tidak memandang profesi, petani, pekerja kantor, ibu rumah tangga, mahasiswa dan lainnya.

Kami di produksi untuk siap menghadapi cuaca basah ataupun kering. Tak pernah mengeluh ketika di penuhi kuman kaki. Tak marah ketika di hitamkan debu. Lagipula apa gunanya aku marah dan mengeluh jika akhirnya masuk tong sampah juga. Ketika salah satu taliku putus atau ketika aku telah usang dan menipis.

Kami tercipta untuk menemani langkah kaki ke pantai. Sang pemilik bercerita dengan laut sedangkan kami akan bermesraan dengan pasir. Atau setia mengawali langkah menuju puncak gunung. Sang pemilik akan berbahagia mencapai puncak sedangkan kami bercinta dengan lumut basah. Juga tak pernah letih menghabiskan waktu untuk bersua dengan lantai atau bersahabat dengan karpet. Semua siap kami jejaki.

Tetapi banyak hal yang membuat orang-orang ini harus mewaspadai memakaiku. Mereka memakaiku dengan mencengkram tali penunjang kehidupanku menggunakan dua jarinya, cengkraman yang terlalu sering tersebut dapat menyebabkan jarinya bengkok. Tali karet yang menggesek di antara dua jari kaki juga bisa menyebabkan kulit kaki menjadi melepuh. Dan aku di desain tidak memiliki lengkungan pendukung yang bisa menyebabkan tumit sakit jika memakainya berjalan jauh. Aku tidak memiliki penutup sehingga bisa menyebabkan kulit sang pemakai menjadi belang jika di gunakan di bawah terik matahari.

Paling tidak resiko itu jauh lebih kecil dibandingkan dengan menggunakan sepatu. Sepatu bisa menyebabkan kaki panas bahkan bisa menghasilkan bau apek. Apalagi sepatu berhak tinggi, benda ini dapat menyebabkan betis dan tumit menjadi sakit bahkan bisa menyebabkan varisies yang bisa mengakibatkan seseorang sulit untuk berjalan bahkan berdiri.

Walaupun terkadang aku di nista tapi tak dipungkiri kalau aku sangat dibutuhkan. Lucunya, walaupun hargaku cukup terjangkau, tak jarang aku diambil orang secara sengaja atau pun tidak sengaja. Seperti hari ini, meski umurku belum lama tetapi aku telah dikenakan oleh empat orang sekaligus. Mungkin ke empat orang itu memiliki hubungan tetapi mereka tak saling tahu kalau aku dikenakan satu dan lainnya. Jika keadaannya begini, kadang aku sedih karena tercipta dan menyebabkan dosa.

###

Kedua pemuda itu memasuki sebuah gedung yang memiliki bentuk berbeda dari pada gedung-gedung yang telah aku jejaki sebelumnya. Gedung ini lebih megah dengan desain interior yang sangat menarik. Keramik-keramik yang lebih mewah. Lebih enak di pijak.

DILARANG MEMAKAI KAOS OBLONG DAN SENDAL JEPIT

Mahasiswa yang mengenakanku membaca pengumuman itu. Pengumuman yang tertera di depan ruangan. Di tulis dengan huruf Arial berukuran 80 yang di cetak di atas kertas A4 di tempel tepat di tengah pintu kaca.

“Gimana ini?” Tanyanya sambil melihatku.

“Tidak apa-apa!”

“Kamu yakin?”

Temannya tidak menjawab.

Mereka pun membuka pintu kaca itu. Seorang lelaki sedang sibuk dengan surat-surat, ia tampaknya menyadari kehadiran kedua mahasiswa tersebut.

“Mau apa kalian?”

“Mau ketemu Pembantu Rektor bagian Kemahasiswaan Pak.”

“Kalian baca tulisan di depan, memakai kaos oblong dan sendal jepit di larang masuk?” Pertanyaannya terdengar sinis.

“Memangnya kenapa Pak, kalau kami pakai kaos oblong dan sendal jepit?

“Itu berarti tidak sopan.”

Aaah… lagi-lagi masalah ketidaksopanan. Mengapa dengan mengenakanku, seseorang dikatakan tidak sopan? Apakah karena mengenakanku diasosiakan dengan pergi ke kamar mandi atau WC? Atau karena hargaku yang terlalu murah? Apakah kesopanan di dunia manusia sebatas materi?

“Bukannya kami tidak sopan Pak, tapi…

“Kami merasa terhina kalau kalian menggunakan sendal jepit.” Bapak itu langsung memotong pembicaraan sang mahasiswa.

Heh… dimana letak keterhinaannya? Aku yakin dia memakai sendal jepit bukan bermaksud menghina, begitu pula orang yang memakaiku untuk masuk kuliah, ia memakai sendal jepit tidak bermaksud menganggu jalannya perkuliahan.

“Siapa yang mau menghina Pak? Kami hanya ingin bertemu Bapak Pembantu Rektor. Kami menghormati beliau dan sepatu hanyalah teori etiket modern yang tidak harus digunakan. Hanya formalitas Pak!”

Yah tradisi bersepatu hanya teori etiket modern yang menyesatkan yang entah di buat oleh siapa dan sejak kapan. Jika batasan akan kesopanan itu masih problematik, lalu bagaimana mungkin kesopanan yang sifatnya sangat subjektik di pakai untuk aturan kolektif? Mahasiswa memang baik, selalu membelaku.

“Dengan gaya berpakaian kalian itu berarti kalian menganggap remeh Pak PR dan institusi kita.”

“Awalnya tidak sopan, kemudian menghina sekarang menganggap remeh. Bapak ini ada-ada saja. Apa hubungannya semua itu? Itu hanya perasaan Bapak saja sebagai individu bukan sebuah penghormatan terhadap birokrasi. Bapak berpikir pakai apa sih?”

“Dasar, mahasiswa-mahasiswa tak berakhlak!”

“Tunggu dulu Pak. Apa hubungan akhlak dengan sendal jepit. Memangnya Tuhan menilai seseorang dari apa yang dikenakannya? Katanya ini kampus, katanya tempat ini adalah sarangnya orang intelektual, namun kenapa malah banyak yang berpikiran dangkal seperti Bapak? Bapak pasti lebih suka memakai sendal daripada sepatu yang membuat kaki berbau apek kan?”

“Kalian betul-betul mahasiswa kurang ajar! Keluar!” Suaranya terdengar begitu lantang. Menggema. Memantul di antara tembok-tembok bercat putih di ruangan tersebut.

“Ada apa ini?” Seorang lelaki bertubuh tinggi dan besar keluar dari sebuah ruangan. Ia mengenakan pakaian safari dan kakinya di alasi sendal jepit.

“Ini Pak, ada mahasiswa mau ketemu Bapak tapi mereka memakai kaos oblong dan sendal jepit, makanya saya larang masuk.”

“Hanya karena kami memakai kaos oblong dan sendal jepit dilarang ketemu Bapak, malah kami di katakan tidak sopan, menghina bahkan meremehkan. Saya heran Pak!”

“Bukankah jauh lebih banyak yang lebih menyukai memakai sendal jepit daripada sepatu. Seharusnya asas demokrasi di mulai dari sini Pak. Sendal jepit tidak layak menjadi alasan tata krama atau sejumlah etika yang sebenarnya bukan milik kita ” Sambung mahasiswa lainnya.

“Iya Pak, Bapak sendiri memakai sendal jepit, kenapa kami tidak bisa.”

“Itu dia Pak, Bapak pasti merasa lebih nyaman dengan menggunakan sendal itu. Sekarang,terlalu banyak barang yang dikomsumsi bukan berdasarkan fungsi tetapi hanyalah symbol belaka. Apalah guna mahasiswa berpakain bagus, rapi dan bersepatu tetapi tak berguna bagi masyarakat.”

Sang Bapak tampak kelimpungan mendapat serangan bertubi-tubi tersebut.

“Saya baru dari kamar kecil, jadi saya menggunakan ini agar tidak repot. Kami tidak bermaksud membelenggu kreativitas kalian dengan pelarangan menggunakan sendal jepit. Kami menyadari, birokrasi hanyalah manusia, tidak bersih dari nafsu, tetapi di tempat ini kami telah menyepakati untuk berpakaian rapi dan indikatornya itu tanpa kaos oblong dan sendal jepit. Saya tak usah menyampaikan banyak pembenaran mengenai ini. Sebenarnya maksud kalian menemui saya untuk apa?”

“Hmm… begini Pak, kami mau…”

“Kami mau mengurus beasiswa Pak!”

“Iya Pak, bagaimana caranya kami membeli sepatu, kalau biaya kos saja masih nunggak, makan pun harus ngutang.”

“Kalau begitu silahkan masuk!”

Kedua mahasiswa itu saling berpandangan, tampak begitu sumringah. Bapak yang di temuinya di awal tampak mencibir ke arah mereka. Namun mereka tidak peduli mereka segera masuk ke ruangan Bapak Pembantu Rektor.

Aku pikir mereka ikhlas membelaku rupanya mereka juga menginginkan sepatu. Benda yang nantinya akan meletakkan pada posisi terhina.

6 September 2008

Penulis: Winarni K.S
(http://inart.wordpress.com)