Analisis Kasus
Adminitrasi persuratan di sebuah kantor dibuat dengan aturan khusus. Berikut contohnya : SRT123/OP/1/SA/I/2004 , tertanggal 23 Januari 2004, penjelasannya adalah:
Jenis-XXX/KU/kelompok/UM/bulan/tahun
Page 2
Kode UM OP DK PM
Kode 1
Divisi Baru Keuangan dan Umum Operasional Keuangan dan Umum Pemasaran
Kode Lama UM OP DK PM
Kode Baru KU OP KU PM
Page 3
Perihal Kebutuhan SDM Baru Laporan Kegiatan Bulanan Penghapusan Aset Permintaan Data Keamanan Gedung Undangan Rapat
nomor surat = ND-001/UM/1/UM/I /2005, seharusnya penomoran surat yang benar adalah = ND-001/KU/1/UM/I /2005
Page 4
Kesalahan
NomorSurat ND-001/KU/1/ KU /I/2005 ND-002/ KU /1/ KU /I/2005 PENG-001/ KU /1/ KU /I/2005 SRT-001/ KU /1/ KU /I/2005 SRT-002/ KU /2/ KU /I/2005 UND-001/ KU /2/ KU /I/205 Tanggal 03/01/2005 03/01/2005 03/01/2005 03/01/2005 03/01/2005 03/01/2005 Perihal Kebutuhan SDM Baru Laporan Kegiatan Bulanan Penghapusan Aset Permintaan Data Keamanan Gedung Undangan Rapat
Update LogSurat set NomorSurat = REPLACE(NomorSurat,'UM','KU') where year(Tanggal) = 2005 Select * from LogSurat
Perubahan yang ia lakukan justru membuat penomoran menjadi kacau. Ia bermaksud mengganti kode divisi UM dengan kode divisi KU, tetapi kode nama UM (Umi Munawar) ikut berubah pula menjadi KU.
Update LogSurat set NomorSurat = REPLACE(NomorSurat, KU,'UM') where year(Tanggal) = 2005
Page 5
Pemecahan Kasus
Kesalahan yang dibuat oleh Sekretaris adalah menggunakan fungsi string REPLACE. Fungsi REPLACE akan mengganti seluruh ekspresi yang ada di dalam kumpulan ekspresi dengan sebuah ekspresi baru. Pada kasus di atas, seluruh karakter UM yang ditemukan pada teks NomorSurat diganti semua dengan KU. Fungsi REPLACE harus digunakan secara hati-hati. Ada dua hal penting yang harus dilakukan untuk memperbaiki nomor surat di atas, yaitu 1. menentukan posisi ekspresi UM yang harus diganti pada NomorSurat 2. melakukan perintah updating kode yang salah dengan kode yang baru Free Powerpoint Templates
Page 6
PosisiKarakter 8 8 10 9 9 9
Page 7
Page 8
Frasa CharIndex('UM',NomorSurat,1)
menemukan Karakter UM, pada karakter yang ada di kolom NomorSurat. Pencarian tersebut dimulai dari karakter posisi ke 1 jika dimulai dari karakter ke 10 misalnya, maka akan ditemukan UM yang merupakan singkatan dari nama Umi Munawar. Bukan ini yang kita cari. Perhatikan baris 1 result set di atas, pada NomorSurat = ND- 001/UM/1/UM/I/2005, karakter UM pertama yang merupakan kode divisi ditemukan pada posisi karakter ke 8. Perhatikan baris 3, pada NomorSurat = PENG001/UM/1/UM/I/2005, karakter UM pertama ditemukan pada posisi karakter ke 10.
Page 9
Updating kode yang salah dengan kode yang baru Tindakan selanjutnya adalah merubah karakter UM yang
merupakan kode divisi menjadi KU. Untuk melakukan penggantian ini bisa menggunakan fungsi STUFF. Fungsi ini akan menghapus karakter dengan panjang tertentu dan menyisipkan karakter lain yang dimulai dari titik tertentu. STUFF (karakter_dihapus , mulai , panjang , karakter_disisipkan ) karakter_dihapus = menyatakan karakter yang akan dihapus mulai = nilai angka integer yang menyatakan titik lokasi mulai dilakukan penghapusan panjang = nilai angka integer yang menyatakan jumlah dari karakter yang akan dihapus karakter_disisipkan = menyatakan karakter yang akan Free Powerpoint Templates disisipkan
Page 10
Karakter_disisipkan KU
Kesimpulan = nilai mulai harus berubah sesuai dengan posisi dari nilai karakter UM. Nilai mulai yang merupakan variable ini bisa didapat dengan menggunakan ekpresi CharIndex('UM',NomorSurat,1)
Page 11
Page 12
Page 13