trim(), Fungsi Penolong pada Operasi String

Yudi Setiawan 3 Maret 2017

trim(), Fungsi Penolong pada Operasi String

Pengantar

Pada tulisan kali ini saya ingin berbagi sedikit pengalaman saya kepada teman-teman semua. Cerita ini sebenarnya sudah cukup lama terjadi yaitu, sekitar bulan Desember tahun 2016. Jadi, awal cerita sebenarnya saya saat itu bekerja di salah satu perusahaan swasta sebagai junior programmer dengan job desc-nya itu fokus ke aplikasi desktop. Untuk proyek pertama, saya dapat aplikasi absensi sederhana dengan fitur utamanya adalah menghitung total jam kerja si pegawai termasuklah itu jam lemburnya dan fungsi laporan rekap per individu dan per unit. Pada aplikasi ini, si pengguna tidak ada meminta buatkan untuk masalah-masalah perhitungan uangnya jadi, saya rasa ini aplikasi cukup sederhana dan mudah. Okay, singkat cerita akhirnya tiba juga masa release app-nya untuk di pasang di komputer si pengguna. 1 bulan, 2 bulan dan seterusnya sampai 5 bulan ini aplikasi ada aja errornya dari laporan si pengguna mulai dari error yang kecil(baca: mudah) sampai error yang besar(baca: serius).

Akhirnya setahun berlalu itu aplikasi fix juga akhirnya dalam artian fix disini tidak ada error-error lagi aplikasinya walaupun sebenarnya masih ada error-nya namun, belum ditemukan. Jujur pada saat itu saya senang karena, akhirnya saya memiliki pengguna juga dari aplikasi yang saya buat. Namun, sekitar 1 tahun berjalan tiba-tiba saya dapat laporan error lagi dari si pengguna. Jujur kalau saya dapat error gini saya paling senang karena, bisa melatih pola pikir saya dalam memecahkan masalah atau error tersebut. Kali ini error-nya cukup serius yakni, laporan rekap per unit-nya tidak berfungsi alias tidak menampilkan datanya. Setelah saya coba tanya-tanya kepada si pengguna ternyata 1 bulan yang lalu dia ada menambahkan data pegawai baru untuk satu unit. Dalam aplikasi tersebut, ada 2 metode untuk melakukan input data pegawai yaitu:

  • Input manual satu per satu di form aplikasi
  • Input by import from file excel

Pada aplikasi tersebut ada 3 data yang penting untuk di input sebelum melakukan laporan rekap yakni, data pegawai, data jadwal pegawai, dan data absensi dari mesin fingerprint. Karena, masalahnya kali ini laporan rekap unit tidak muncul khusus untuk pegawai baru saja berarti, ada 3 jenis data yang harus saya telusuri apakah ketiga data tersebut sudah ada atau belum. Singkat cerita, sudah saya cek dan ternyata sudah lengkap datanya. Akhirnya, saya coba masuk ke source code aplikasinya untuk mengecek apakah ada query yang salah. Dan ternyata tidak ditemukan juga letak error-nya dimana. Alhasil, satu hari itu saya fokus ke masalah error itu dan tidak menemukan letak error-nya dimana.

Keesokan harinya saya lanjut lagi untuk mencari letak kesalahannya dengan fokus saya mengarah ke source code aplikasinya karena, menurut saya datanya di database sudah benar jadi, nggak mungkin ada problem di situ. Waktu terus berjalan dan akhirnya siang hari pun tiba dan letak error-nya juga belum ketemu. Saya mulai frustasi dan sambil menikmati makan siang akhirnya saya coba berpikir-pikir kira-kira dimana letak kesalahan aplikasi mengapa laporan rekap unit-nya tidak mau tampil khusus untuk pegawai baru. Singkat cerita, setelah istirahat sholat makan saya pun lanjut ke kerjaan saya. Dan, sekitar jam 3 sore gitu akhirnya saya menemukan letak error aplikasinya. Ternyata dan ternyata error-nya itu terletak pada data pegawai di database. Jadi, error-nya itu dikarenakan pada field Unit si pengguna mengisinya dengan menambahkan karakter space pada akhir kata sehingga ketika aplikasi saya melakukan laporan rekap otomatis query-nya tidak berjalan karena, dalam query tersebut saya menggunakan operator equals sehingga data pegawai tadi tidak matched. Dan hanya ada satu kemungkinan si pengguna bisa input dengan cara seperti itu yaitu, input by import from file excel karena, kalau input dari form aplikasi saya yakin itu field Unit-nya nggak mungkin salah gitu karena di bagian form inputnya untuk field Unit dibuat dalam bentuk combo box. Dan dari mana kecurigaan saya muncul kalau letak error-nya di database. Mari saya perlihatkan datanya di database.

Data pegawai

Coba Anda perhatikan baik-baik. Kalau Anda lihat dengan teliti maka, Anda akan tahu dimana letak kesalahan dari data diatas yaitu, spasi di bagian akhir datanya. Karena, letak penyebab error-nya sudah ketemu maka, langkah selanjutnya yang harus saya kerjakan ialah mencari solusinya. Karena, datanya sudah terinput di database jadi, mau nggak mau saya terpaksa mengubah data di databasenya. Jujur saja saya kalau mau ngubah data di database itu kadang suka deg-degan karena takut salah ubah atau salah hapus gitu. Setelah saya ubah maka, spasi di bagian akhir data tersebut sudah hilang.

Fungsi String di Java

Berdasarkan cerita saya diatas bahwa untuk meng-handle spasi di bagian akhir dari sebuah kata atau di bagian awal Anda bisa menggunakan operasi trim di Java. Jadi, fungsi trim ini berfungsi untuk memotong karakter-karakter spasi pada bagian awal dan akhir sehingga fungsi ini sangat cocok untuk diterapkan pada proses input data-data yang penting seperti masalah saya diatas tadi. Selain itu, fungsi trim ini juga bisa Anda terapkan pada proses login.

Contoh Penggunaan

Untuk contoh penggunaannya, silakan Anda buat projek di Android Studio dan buat tampilan UI-nya seperti ini. Tampilan Aplikasi Selanjutnya, silakan Anda ubah di bagian java-nya menjadi seperti ini

package com.ysn.exampletrim;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText editTextUsername, editTextPassword;
    private Button buttonLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextUsername = (EditText) findViewById(R.id.edit_text_username);
        editTextPassword = (EditText) findViewById(R.id.edit_text_password);
        buttonLogin = (Button) findViewById(R.id.button_login);
        buttonLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String username = editTextUsername.getText().toString().trim();
                String password = editTextPassword.getText().toString().trim();
                if (username.equals("admin") && password.equals("admin")) {
                    Toast.makeText(MainActivity.this, "Login berhasil!", Toast.LENGTH_LONG)
                            .show();
                } else {
                    Toast.makeText(MainActivity.this, "Login gagal!", Toast.LENGTH_LONG)
                            .show();
                }
            }
        });
    }
}

Sekarang coba Anda tes running dan lihat hasilnya apabila Anda login menggunakan "admin " atau " admin " atau " admin" maka, Anda berhasil login. Mengapa? Karena, kita sudah menambahkan trim pada saat proses login-nya. Jadi, kesimpulannya adalah fungsi trim ini benar-benar bisa membantu saya pada cerita saya diatas walaupun sebenarnya datanya itu sudah di input namun, untuk kedepannya saya bisa mengantisipasi agar hal tersebut tidak terjadi lagi dengan menggunakan trim.