[CAD-MAP-20]:Autolisp untuk Menampilkan Tabel Peta Bidang di Autocadmap dan Microsoft Excel

Reference : [CAD-MAP-19]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map (Lanjutan-2: Menjalankan Autolisp)
Platform : AutocadMap
Download : download
     

Pada tulisan [CAD-MAP-19]: Membuat tabel Microsoft Access dari Hasil Topology Analysis di AutoCAD Map (Lanjutan-2: Menjalankan Autolisp) tabel hasil topology analisis disimpan dalam bentuk database microsoft access. Pada tulisan kali ini akan diuraikan bagaimana cara melakukan topology analisis dengan menggunakan autolisp dan menampilkan hasilnya dalam bentuk block attribute dan spreadsheet excel.

Fungsi isi block attribute diambil dari fungsi yang dibuat oleh Lee Mac sedangkan untuk proses penulisan ke Microsoft Excel diambil dari http://cadtips.cadalyst.com/export/export-text-a-drawing-excel-spreadsheet.

Contoh aplikasi penggunaan fungsi overlay ini adalah membuat table peta bidang pada pekerjaan PTSL yaitu membuat tabel yang berisi informasi kolom / field nomer urut bidang, nomer identifikasi bidang dan luas tanah.

Secara garis besar, tahapan untuk melakukan proses pembuatan tabel bidang tanah:

  1. Persiapan dan Pengecekan Standard Layer.
  2. Melakukan Proses Overlay Topology.
  3. Membuat Tabel Daftar Tanah

1. Persiapan dan Pengecekan Standard Layer.

1.a. Copy file program autolisp dan block ke folder Support File Search Path.

Copy files dibawah ini ke salah satu folder Support File Search Path:

image

Sedangkan cara menegetahui file support path, ketik pada command: options

kemudian pilih File>>Support File Search Patah :

image

1.b. Load/Panggil program autolisp.

  • Ketik pada command:appload
  • pilih file: tab_nib.lsp
  • click Load

Agar program selalu dipanggil atau di-uploaded saat program autocadmap dijalankan, tambahakan program tab_nib.lsp di [Startup Suite]

1.c. Cek insertion point text dan standard layer

Syarat proses overlay untuk pembuatan table adalah:

No Keterangan Tindakan
1. Topology bidang sudah terbuilt sempurna atau topology dengan centroid NIB sudah bebas dari kesalahan Lakukan re-build topology sebelum proses dilakukan
2. Harus ada hanya satu NUB (Nomor Urut Bidang) dan Satu Nama di dalam gambar bidang tanah Geser insertion point text NUB dan Nama ke dalam bidang tanah, jika ditemukan insertion point NUB dan Nama ada di luar bidang tanah
3 Nama harus tertulis dalam satu baris Jika nama tertulis dalam lebih dari satu baris, maka penulisan nama tersebut harus digabung menjadi satu.
4 Layer untuk text nub: tn_nub
Layer untuk text nama: tn_nama
untuk merubah layer ke tn_nub, ketik di command:z_lu
untuk merubah ke layer tn_nama, ketik di command:z_ln

2. Melakukan Proses Overlay Topology.

Proses overlay dijalankan setelah syarat-syarat pada langkah 1.c sudah terpenuhi.

Ketik pada command:z_xdata

sehingga keluar notifikasi:

Overlay successfully created.

Hasil proses overlay ini akan terbentuk object titik pada layer [nub_nib] di tiap-tiap insertion point text NUB dan text Nama. Jika object titik tidak terlihat, ketik di command:pdmode, kemudian masukkan value=3.

Command: pdmode
Enter new value for PDMODE <3>:

image

Titik merah adalah, titik hasil topology overlay yang berisi informasi NIB, NUB, Nama dan Luas.

Untuk melihat data hasil overlay, ketik di command:adeeditdata

kemudian pilih salah satu titik di dekat nub, misal nub 18, maka akan ditampilkan informasi sebagai berikut:

image

Pada tabel di atas sudah terbentuk tabel korelasi atau link antara NIB dan NUB.

kemudian pilih juga titik di dekat text nama, maka akan ditampilkan informasi sebagai berikut:

image

Pada tabel di atas sudah terbentuk korelasi atau link antara NIB dan Nama Pemilik.

Gabungan antara NIB,NUB dan luas akan dibuat pada tahap berikutnya.

3. Membuat Tabel Daftar Tanah.

Ketik di command:Z_TABELPBT

Kemudian pilih lokasi tabel di autocadmap.

Hasil tabel di autocad dan excel:

image

==selamat mencoba===

Advertisements

[GEN-PMG-07]: Menghitung upah lembur dengan excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004) Bagian 3

Referensi : [GEN-PMG-04]:Menghitung Upah Lembur dengan Excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004)
[XLS-PMG-07]: Menghitung upah lembur dengan excel (Kep Men. NOMOR KEP. 102/MEN/VI/2004) Bagian 2
Platform : Microsoft Excel
Download : Download

 

Pada tulisan sebelumnya telah diuraikan tahapan untuk menghitung lembur dengan kondisi 5 (lima) hari kerja/minggu dan 6 (enam) hari kerja/minggu dengan input jam kerja yang sudah diketahui. Pada tulisan ini akan saya sharing template yang pernah saya buat untuk aplikasi di suatu proyek dengan kondisi yang lebih komplek yaitu:

  • 1. Data yang dimasukkan adalah [Jam Masuk] dan [Jam Keluar].
  • 2. Jam Istirahat bisa diatur fleksibel atau bisa dirubah.
  • 3. Perhitungan lima(5) hari kerja, jika karyawan bekerja di kantor pusat dan menggunakan perhitungan 6 (enam) hari kerja jika bekerja di lapangan
  • 4. Slip gaji sudah dilengkapi dengan perhitungan BPJS dan Pajak Penghasilan (PPH21).

Berikut tutorial cara penggunaan spreadsheet excel yang sudah di download:

1. Memasukkan Setting Hari Libur di Sheet [hr_libur]

Masukkan tanggal hari libur di kolom [tgl] atau kolom [A] dengan format tanggal yang sesuai dengan settingan di windows. Contoh setting tanggal di komputer saya yang terlihat di task bar windows adalah image, maka untuk tanggal 30 Mei 2018 dimasukkan dengan format 5/30/2018 atau 5/30/18.

Setelah memasukkan tanggal sesuai dengan format yang benar, masukkan juga keterangan hari libur di kolom [Keterangan]. Bagian kolom [No] tidak perlu diisi karena kolom ini akan terisi otomatis tiap ada penambahan record atau dta baru.

2. Memasukkan Setting Jam istirahat di sheet [jm_istrht]

image

Kolom [No], [Hari] dan [Kode Hari] berisi formula. Input jam kerja dimasukkan di kolom:

[Rest01 Start], [Rest01 End] : untuk jam istirahat pertama

[Rest02 Start1], [Rest02 End] : untuk jam istirahat kedua

[Rest03 Start], [Rest03 End] : untuk jam istirahat ketiga

Jam dimasukkan dengan format hh:mm, dalam format ini jika akan memasukkan jam 1 siang atau 1:00 PM maka jam dimasukkan dengan format 13:00 demikain juga untuk jam 11:00 pm dimasukkan dengan format 23:00.

Format hh:mm ini juga berlaku saat pengisian jam masuk kerja dan jam keluar kerja.

3. Memasukkan Isian di sheet [ts] dan [slip]

Jika diinginkan format tanpa detail perhitungan gaji, dapat mengunakan format di sheet [ts] sedangkan jika diinginkan input jam kerja disertai dengan detail perhitungan gaji dapat menggunakan format di sheet [slip].

Pada prakteknya di lapangan, saya menggunakan 2 (dua) sheet tersebut untuk aplikasi yang berbeda. Sheet [ts] diberikan ke karyawan digunakan untuk mendapatkan approval dari atasan, sedangkan sheet [slip] digunakan untuk menghitung gaji atau sebagai slip gaji.

Masing-masing sheet [ts] dan [slip] terdapat kolom [Q]:[AE] yang berisi rumus bantu untuk perhitungan timesheet, Anda bisa hide kolom ini saat pencetakan atau distribusi form ke karyawan. Jangan dihapus atau dimodifikasi rumus ini, kecuali Anda benar-benar memahami isi dan maksud dari rumus tersebut.

Format sheet [ts]:

image

Isikan ID, Nama dan Posisi atau bila diperlukan bisa ditambahkan nama supervisi, department atau isian lain pada area K2:O3

Pilih Bulan dan Tahun di cell [D2] dan [E2], maka kolom [Tgl] dan [Hari] akan terisi otomatis, kolom berwarna hijau berisi formula, sehingga tidak perlu diisi kolom hijau akan otomatis terupdate jika ada perubahan tanggal termasuk perubahan warna huruf jika tanggal bertepatan dengan hari libur, jumat, sabtu dan minggu.

Kolom yang perlu diisi manual adalah:

Nama Kolom Keterangan
Kode Hari Kerja Masukkan angka 5 jika bekerja untuk 5 hari kerja/minggu dan masukkan angka 6 jika untuk bekerja 6 hari kerja / minggu
Masuk , Keluar Isikan jam masuk, jam keluar sesuai dengan format tanggal di windows
Kolom [Durasi] akan terisi otomatis jika jam masuk dan jam keluar sudah terisi. Format durasi adalah dalam satuan desima sehingga jika durasinya adalah 8 jam 30 menit, maka masukkan angka 8.5
Koreksi Isikan koreksi jam kerja jika diperlukan dalam satuan desimal. Misalnya dalam ada koreksi penambahan jam setengan jam atau 00:30 maka dimasukkan 0.5 atau sebaliknya ada pengurang jam 00:30, maka dimasukkan -0.5

Sedangkan tampilan untuk sheet [slip]:

image

Ada tambahan input yaitu:

Nama Input Keterangan
Gaji Dasar Masukkan gaji pokok atau gaji dasar /bulan
Tunjangan Tetap Masukkan Tunjangan tetap /bulan
Rate Lembur Masukkan unit rate lembur / jam.
“maaf tulisan di template masih /bulan, mohon untuk dikoreksi /jam”
Tunj. Makan Masukkan tunjangan makan /hadir
Tunj. Transport Masukkan tunjangan transport /hadir
Tunj. Kehadiran Masukkan tunjangan kehadiran /hadir
PTKP Karyawan Masukkan golongan PTKP (Penghasilan Tidak Kena Pajak) karyawan sesuai dengan peraturan yang berlaku.

Detail perhitungan gaji disertai dengan perhitungan BPJS dan PPH21 adalah:

image

Silakan dicoba dan mohon koreksinya jika ada kesalahan.

Terimakasih telah berkunjung di blog saya.

[CAD-MAP-001]: Menghitung Luas Bidang Tanah dengan Autocadmap

Referensi :  
Platform : AutocadMap
Lokasi File : tidak tersedia

Luas bidang tanah yang telah tergambar di autocadmap bisa dihitung luasnya dengan menggunakan fasilitas topologi. Ada tiga jenis topologi dalam autocadmap yaitu topology garis / network, topology titik /point dan topologi polygon. Jenis topology polygon adalah topology yang sesuai untuk proses perhitungan luas karena dalam pembuatan topologi polygon salah satu informasi yang didapat adalah luasan polygon tertutup.

Melalui "Topology Query", hasil topology tersebut bisa diexport ke text (ascii) file untuk dibuatkan daftar atau list informasi luas untuk tiap id bidang dan juga bisa menampilkan text informasi luas secara otomatis di autocadmap.

Agar memudahkan saat proses editing gambar dalam pembuatan topologi, berikut adalah syarat-syarat gambar yang akan dibuat topology polygon berdasarkan pengalaman saya:

  1. Pembatas bidang tersebut terletak di layer yang sama atau dalam satu layer
  2. Pembatas bidang bertipe line atau polyline atau lwpolyline dua (2) dimensi
  3. Tiap satu bidang tanah mempunyai satu centroid atau kode bidang bisa berupa text atau blok attribute
  4. Pembatas bidang harus tertutup

Berikut contoh gambar beberapa bidang tanah yang akan dihitung luasannya dengan topology polygon:

Syarat #1: Cek pembatas bidang terletak dalam satu layer

Pilih salah satu garis pembatas bidang kemudian rubah warna layernya sehingga warna garis berbeda dengan pembatas yang lain. Dalam contoh gambar ini, layer pembatas bidang adalah : 020100. Layer tersebut kemudian diberi warna merah.

Garis yang ditandai kuning adalah bukan pembatas bidang atau pembatas bidang tetapi belum atau tidak complete. Rubah layer garis yang ditandai tersebut menjadi layer lain.

Text berwarna merah adalah text yang seharusnya bukan menjadi pembatas bidang sehingga text tersebut harus dikeluarkan dari layer pembatas bidang.

Gambar setelah editing layer batas bidang:

Syarat #2: Pembatas bidang berupa LINE, POLYLINE atau LWPOLYLINE dua (2) dimensi

Telah dijelaskan di atas bahwa layer untuk object pembatas bidang adalah 020100 sehingga object dalam layer tersebut harus berisi object LINE, POLYLINE atau LWPOLYLINE. Cara mengecek type object dalam sebuah layer adalah sebagai berikut:

2.1. Ketik pada command: QSELECT

lakukan setting atau pilihan

Properties: Layer

Operators: = Equals

Value: 020100

kemudian click [OK]

Semua object dalam layer 020100 akan terpilh (selected)

2.2. Ketik lagi pada command:QSELECT

lakukan setting

Apply to: Current selection

Click object type

Ternyata dalam layer yang 020100 masih ada object lain selain line dan Polyline yaitu Text dan Point

Pilih Object Type Text kemudian rubah layernya

2.3. Ulang langka 2.2. sehingga object type di layer 020100 hanya terdiri dari Multiple, LINE dan POLYLINE

Syarat #3: Tiap satu bidang harus mempunyai satu (1) id sebagai centroid.

Pada contoh gambar di atas ID bidang adalah berupa text yang berisi lima digit angka yang diletakkan di layer 080201. Rubah warna layer ini sehingga mudah untuk diidentifikasi kemudian lakukan checking type object yang ada pada layer ini. Karena ID bidang berupa text, maka pada layer ini harus terdiri dari object yang berupa text saja. Lakukan langkah-langkah yang telah diuraikan di atas untuk mengecekan object.

Jika sudah dilakukan checking type object, matikan semua layer kecuali layer batas bidang (020100) dan layer id (080201)

Syarat #4: Pembatas bidang harus tertup.

Bagian yang ditandai biru adalah bidang yang belum tertutup sehingga diperlukan editing lebih lanjut pada pembatas bidang tersebut. Dalam gambar ini proses editing yang dilakukan adalah memotong (break) garis lama yang sebelumnya ada di layer 040100 menjadi layer 020100 (layer batas bidang).

Gambar menjadi:

Gambar di atas sudah siap dilakukan proses pembuatan polygon topology dengan tahapan sebagai berikut:

  1. Cleaning Gambar
    1. Ketik pada command: MAPCLEAN
    • Pilih [Select All]
    • Pada Layers masukkan layer batas bidang (120100)
    • Click [Next
    1. Clean up options, pilih cleanup actions:
    • Delete Duplicates: untuk menghapus garis atau polyline yang duplicates
    • Erase Short Objects: menghapus object garis yang sangat pendek
    • Break Crossing Object: otomatis break garis jika saling berpotongan
    • Snap Clustered Nodes: node yang berdekatan akan otomatis bersatu.

    click [Next]

    1. Pilih [Modify original objects] di [Cleanup Method]
    2. Click [Finish]
  2. Pembuatan Topologi
    1. Ketik pada command: MAPWSPACE

      kemudian pilih [On]

      Setelah proses ini, task pan autocadmap akan ditampilkan seperti gambar di samping

      Pilih Tab [Map Explorer]

    1. Click kanan [Topologies], kemudian pilih [Create]
     
    1. Pilih Topology Type: Polygon
      1. Topology Name (misal):bd
      2. Click tombol [Next]
     
    1. Pilih Select All
      1. Click simbol layer, kemudian pilih layer pembatas bidang 020100
      2. Click tombol [Next]
    1. Select Nodes. Pilih Select All
      1. Click tombol [Next]
     
    1. Create New Nodes, uncheck pilhan create new nodes
      1. Click [Next]
    1. Select Centroids. Pilh Select All
      1. Click simbol layer, kemudian pilih layer yang berisi text di bidang (080201)
      2. Click [Next]
    1. Create New Centroid. Uncheck pilihan create missing centroids
      1. Click [Next]
    1. Error Markers:
    • Polygon tanpa ID ditandai dengan Rhombus warna Cyan
    • Polyon yang saling berpotongan ditandai dengan octagon warna Green
    • Polygon dengan ID lebih dari satu ditandai dengan square warna red
    • Polygon yang tidak menutup tidandai dengan triangle warna yellow

    Clck [Finish]

    1. Setelah click [Finish], jika ada kesalahan polygon, autocadmap memunculkan kotak peringatan.

      Pada contoh kali ini diidentifikasi sebagai polygon yang saling berpotongan atau (intersections detected)

      click [Close]

      kemudian cari symbol octagon yang berwarna green atau hijau.

    1. Pada gambar disamping ternyata ada double polygon atau batas bidang yang bertumpuk.

      Saya hapus bidang yang double tersebut sehingga tidak ada double

    1. Ulangi langkah 1-18

      setelah diulang langkah di atas, pesan error yang muncul adalah Link doesn’t belong to any polygon

      Error ini menandakan bahwa ada polygon yang belum menutup atau belum ada break line di perpotongan garis. Error ditandai dengan segitiga warna kuning.

    1. Contoh error dan koreksinya:
    • Ditemukan polygon yang tidak menutup sempurna (lingkaran hijau) sehingga menyebabkan polygon terbuka.
    • Lakukan trim garis di lingkaran hijau
    1. Gambar setelah dikoreksi
    1. Contoh garis yang harus di-break
    • Pada gambar disamping garis yang terpilih harus dipecah atau break
    • Gunakan perintah break sehingga garis yang terpilih menjadi dua garis seperti gambar di bawahnya.’

    setelah diedit:

    1. Jika tidak ada error, maka ada tambahan topology di map explorer
    1. Untuk mengetahui informasi luas dari hasil topology polygon:
    • Click icon atau ketik di command: ADEEDITDATA
    • Pilih ID bidang (text di layer 080201)

Sampai pada tahap ini proses pembuatan topologi telah selesai. Tahap selanjutnya adalah mengexport list informasi luas tersebut ke text file melalui tahapan berikut:

  1. Klik kanan nama topology di map explorer kemudian pilih Analysis>>Topology Query
  1. Lakukan setting di Topology Query:
  • Topology Type: None
  • Click [Define Query]
 
  1. Set di [Define Query Topology]:
  • Click [Location], kemudian pilih [Boundary Type]: All
  • [Query Mode]: Report
  • Click [Options]
  1. Pada [Output Report Options], click [Expression…]
  • Pada group [Properties], pilih String] kemudian clik [OK] lalu click [Add]
  • Click lagi [Expression…], kemudian di bawah group [Topologies] pilih Topology Polygon:bd
  • Pada group [Polygon Centroid], pilih [Area]
  • Click [OK]
  • Clik [Add]
  • Click [Browse], kemudian pilih folder tempat menyimpan hasil report query
  1. Output Report Options menjadi

Hasil report akan disimpan dalam file peta_bidang.txt dalam format comma delimeted dengan susunan kolom pertama (.STRING) adalah nomer ID Bidang dan kolom kedua (.AREA@TPMCNTR_bd) adalah informasi luas dari topology bd

  • Click [OK]
  • Click [Execute Query]
  1. Hasil report query di file peta_bidang.txt
  • File tersebut bisa juga dibuka dengan mirosoft excel ataupun diimport ke Microsoft access atau file database lainnya

Untuk menampilkan text informasi luas di autocadmap lakukan langkah-langkah seperti berikut:

  1. Buat Layer baru khusus untuk text informasi luas. Misal txtLuas
 
  1. Lakukan seperti langkah 1 & 2 seperti di atas
 
  1. Setting di [Define Query Topology]
  • Click [Clear Query] untuk menghilangkan query sebelumnya
  • Click [Location]>>[Boundary Type]:All
  • [Query Mode]: Draw
  • Check opsi sebelah kiri [Alter Properties…]
  • Click [Alter Properties..]
  • Pada group [Select Property], click [Text]
  1. Seeting di [Define Text]:
  • Click [Expression]
  • Pada [Text Value Expression] pilih [Topologies]>>[Polygon:bd]>>[Polygon Centroid]>>[Area]
  • Click [OK]

bd adalah nama topology polygon yang telah dibuat.

Hasil Text Value disamping adalah mencetak informasi luas di layer:txtLuas dengan banyaknya angka di belakang tanda desimal sebanyak 13 digit seperti seperti hasil report query pada langkah 6 di atas.

  1. Merubah tampilan text luas.
  • Rubah text value seperti petunjuk di samping
  • Click [OK]
Text value semula

:AREA@TPMCNTR_bd

Menjadi

(STRCAT "LUAS : " (FIX :AREA@TPMCNTR_bd) " M2")

Property Alteration menjadi:

  1. Click [Execute] di [Define of Query Topology]
  • Tampilan setelah ada informasi luas
  • Text luas berhimpit dengan text id bidang
  1. Agar tampilan luas berada di bawah nomor ID bidang. Lakukan Langkah berikut:
  • Ketik di command:QSELECT
  • Properties: Layer
  • Operator: = Equal
  • Value: txtLuas
  • Click [OK]
  • Ketik command: MOVE
  • Geser ke Bawah

Posting berikutnya akan dicoba untuk me-link-an antara database yang tersimpan dalam database access atau excel yang berisi daftar nama dan informasi lain sehingga dalam file autocadmap bisa disajikan peta tematik tematik yang lebih informative.

===Selamat mencoba===

[XLS-PMG-08]: Fungsi Terbilang di Excel Tanpa Macro Versi Mega Formula Rev.03

Referensi :
[XLS-PMG-06]:Fungsi Terbilang Di Excel Tanpa Macro (Versi Mega Formula) Rev.02
Platform : Excel 2007
Lokasi File : Download

Tulisan ini adalah revisi ketiga dari posting sebelumnya dengan melakukan beberapa perubahan antara lain:

 

Rev.02

Rev.03

Panjang rumus konversi angka ke huruf:    
— Versi bahasa indonesia

1741

1362

— Versi bahasa inggris tanpa cents

2187

— Versi bahasa indonesia dengan sen  

1620

— Versi bahsa inggris dengan cents  

1376

Secara garis besar urutan untuk merubah angka menjadi huruf adalah:

A. VERSI KONVERSI TANPA ANGKA DESIMAL

Secara umum urutan yang saya pakai untuk merubah angka menjadi huruf adalah:

1. Proses pembacaan angka ke huruf dengan menggunakan bantuan 3 (tiga) “Named Range” yaitu:

— Named Range untuk memformat angka: _frm=REPT("0",12)

— Named Range larik/array angka: _angka={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,30,40,50,60,70,80,90}

–Named Range larik/array huruf: _huruf={"","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan","sepuluh","sebelas","dua belas","tiga belas","empat belas","lima belas","enam belas","tujuh belas","delapan belas","sembilan belas","dua puluh","tiga puluh","empat puluh","lima puluh","enam puluh","tujuh puluh","delapan puluh","sembilan puluh"}

 

2. Format angka menjadi format text dengan panjang 12 karakter.

Misal angka di cell [A1] berisi angka 111456789876 (12 karakter), maka dengan menggunakan fungsi  =TEXT(A1,_frm) menjadi 111456789876 (12 karakter)

 

3. Angka digrupkan atau dibagi menjadi 4 (empat) yaitu : [Grup Milyar]= 111, [Grup Juta]= 457, [Grup Ribu]= 898 dan [Grup Satuan]= 876

 

4. Proses konversi dimulai berurutan dari [Grup Milyar], [Grup Juta],[Grup Ribu] dan [Grup Satuan]. Masing-masing grup terdiri dari [Ratusan] dan [Puluhan].

4.1 Konver Angka Milyar-an atau [Grup Milyar]

[Grup Milyar]=111 terdiri dari [Ratusan]= 1 dan [Puluhan]= 11

A. Konversi Angka Ratusan ke Huruf

Angka [Ratusan] diambil dengan rumus =MID(TEXT(A2,_frm),1,1) 

Dengan menggunakan fungsi  =INDEX(_huruf,[Ratusan]+1) atau =INDEX(_huruf,1+1) akan mengambil isi array _huruf yang ke 2 yaitu kata “satu” kemudian ditambahkan kata “ratus” sehingga rumusnya menjadi =INDEX(_huruf,1+1) & “ ratus”

Karena bahasa indonesia tidak mengenal kalimat “satu ratus”, maka rumus =INDEX(_huruf,1+1) & “ ratus” hanya berlaku jika [Ratusan]>1 sehinga jika  [Ratusan]= 1 tidak dilakukan pengambilan isi array _huruf tetapi langsung dirubah menjadi kata “seratus”.

Fungsi –MID(TEXT(A1,_frm),1,1)=1 untuk mengecek [Ratusan]=1, sedangkan –MID(TEXT(A1,_frm),1,1)>1 untuk mengecek [Ratusan]>1. Tanda double minus “–“ di depan MID berfungsi untuk merubah text “1” dari fungsi MID(TEXT(A1,_frm),1,1) menjadi angka 1.

Sedangkan untuk menampilkan menampilkan angka [Ratusan]=1 menggunakan fungsi

=REPT("seratus ",–MID(TEXT(A1,_frm),1,1)=1)

dan fungsi

=REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),1,1)) &" ratus",–MID(TEXT(A1,_frm),1,1)>1)

untuk menampilkan [Ratusan]>1

Apabila digabungkan Fungsi [Ratusan] menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),1,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),1,1)) &" ratus",–MID(TEXT(A1,_frm),1,1)>1)

B. Konversi Angka Puluhan ke Huruf

Angka [Puluhan] diambil dengan fungsi =MID(TEXT(A1,_frm),2,2).

Hasil rumus ini kemudian dicek lagi jika [Puluhan]<=19, maka proses konversi langsung mengambil index dari array/larik _huruf dengan fungsi:

=INDEX(_huruf,1+MID(TEXT(A1,_frm),2,2)

sedangkan jika [Puluhan]>19, maka proses konversi dua tahap yaitu mengambil angka bulan puluhan di tambah dengan angka satuannya.

Fungsi untuk mengambil angka bulat untuk [Puluhan]>19

=LOOKUP(–MID(TEXT(A1,_frm),2,2),_angka,_huruf)

dan untuk mengambil angka satuannya:

=INDEX(_huruf,1+MID(TEXT(A1,_frm),3,1))

Gabungan fungsi [Puluhan] menjadi:

=IF(–MID(TEXT(A1,_frm),2,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),2,2)),LOOKUP(–MID(TEXT(A1,_frm),2,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),3,1)))

 

Sedangkan fungsi gabungan [Ratusan] dan [Puluhan] menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),1,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),1,1)) &" ratus",–MID(TEXT(A1,_frm),1,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),2,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),2,2)),LOOKUP(–MID(TEXT(A1,_frm),2,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),3,1)))

Fungsi di atas akan ditambahkan kata “milyar” jika nilai angka yang akan dikonversi lebih lebih dari satu milyar. Rumus untuk mengecek angka mencapai milyaran adalah:

=REPT(" milyar",(TEXT(A1,_frm)/10^9)>1)

Sehingga untuk grup [Milyar] dengan akhiran “ milyar” fungsinya menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),1,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),1,1)) &" ratus",–MID(TEXT(A1,_frm),1,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),2,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),2,2)),LOOKUP(–MID(TEXT(A1,_frm),2,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),3,1)))&REPT(" milyar",(TEXT(A1,_frm)/10^9)>1)

4.2 Konversi Angka Juta-an atau [Grup Juta]

Angka juta-an atau [Grup Juta] didapat dengan  memodifikasi fungsi / rumus MID() dari fungsi di atas.

=MID(TEXT(A1,_frm),1,1), artinya mengambil huruf dari text A1 yang telah diformat mulai dari huruf ke-1 sebanyak 1 huruf. Jika pengambilan karakter dimulai dari huruf ke 4 atau huruf ke-(1+3) akan didapat huruf ratusan dari [Grup Jutaan].

kemudian dengan memodifikasi REPT(" milyar",(TEXT(A1,_frm)/10^9)>1) menjadi REPT(" juta",(TEXT(A1,_frm)/10^3)>1) maka akan merubah akhiran “ milyar” menjadi “ juta”

Fungsi [Grup Juta] menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),4,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),4,1)) &" ratus",–MID(TEXT(A1,_frm),4,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),5,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),5,2)),LOOKUP(–MID(TEXT(A1,_frm),5,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),6,1)))&REPT(" juta",(TEXT(A1,_frm)/10^6)>1)

4.3 Konversi Angka Ribua-an atau [Grup Ribu]

Dengan memodifikasi fungsi [Grup Juta], fungsi [Grup Ribu] menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),7,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),7,1)) &" ratus",–MID(TEXT(A1,_frm),7,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),8,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),8,2)),LOOKUP(–MID(TEXT(A1,_frm),8,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),9,1)))&REPT(" ribu",(TEXT(A1,_frm)/10^3)>1)

Karena dalam bahasa indonesia tidak ada kalimat “satu ribu” maka diperlukan ditambahkan fungsi SUBSTITUTE () untuk merubah “satu ribu” menjadi “seribu”

=SUBSTITUTE(REPT("seratus ",–MID(TEXT(A1,_frm),7,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),7,1)) &" ratus",–MID(TEXT(A1,_frm),7,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),8,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),8,2)),LOOKUP(–MID(TEXT(A1,_frm),8,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),9,1)))&REPT(" ribu",(TEXT(A1,_frm)/10^3)>1),"satu ribu","seribu")

4.4. Konversi Angka Satuan [Grup Satuan]

Hasil modifikasi [Grup Ribu], funsi [Grup Satuan] menjadi:

=REPT("seratus ",–MID(TEXT(A1,_frm),10,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),10,1)) &" ratus",–MID(TEXT(A1,_frm),10,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),11,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),11,2)),LOOKUP(–MID(TEXT(A1,_frm),11,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),12,1)))

Rumus lengkap konversi angka ke huruf tanpa angka desimal:

=TRIM(REPT("seratus ",–MID(TEXT(A7,_frm),1,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A7,_frm),1,1)) &" ratus",–MID(TEXT(A7,_frm),1,1)>1)&" "
&IF(–MID(TEXT(A7,_frm),2,2)<=19,INDEX(_huruf,1+MID(TEXT(A7,_frm),2,2)),LOOKUP(–MID(TEXT(A7,_frm),2,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A7,_frm),3,1)))&REPT(" milyar",(TEXT(A7,_frm)/10^9)>1)&" "

&REPT("seratus ",–MID(TEXT(A7,_frm),4,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A7,_frm),4,1)) &" ratus",–MID(TEXT(A7,_frm),4,1)>1)&" "
&IF(–MID(TEXT(A7,_frm),5,2)<=19,INDEX(_huruf,1+MID(TEXT(A7,_frm),5,2)),LOOKUP(–MID(TEXT(A7,_frm),5,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A7,_frm),6,1)))&REPT(" juta",(TEXT(A7,_frm)/10^6)>1)&" "

&SUBSTITUTE(
REPT("seratus ",–MID(TEXT(A7,_frm),7,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A7,_frm),7,1)) &" ratus",–MID(TEXT(A7,_frm),7,1)>1)&" "
&IF(–MID(TEXT(A7,_frm),8,2)<=19,INDEX(_huruf,1+MID(TEXT(A7,_frm),8,2)),LOOKUP(–MID(TEXT(A7,_frm),8,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A7,_frm),9,1)))&REPT(" ribu",(TEXT(A7,_frm)/10^3)>1),"satu ribu","seribu")&" "

&REPT("seratus ",–MID(TEXT(A7,_frm),10,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A7,_frm),10,1)) &" ratus",–MID(TEXT(A7,_frm),10,1)>1)&" "
&IF(–MID(TEXT(A7,_frm),11,2)<=19,INDEX(_huruf,1+MID(TEXT(A7,_frm),11,2)),LOOKUP(–MID(TEXT(A7,_frm),11,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A7,_frm),12,1))))

 

B. VERSI KONVERSI DENGAN ANGKA DUA ANGKA DESIMAL (ANGKA DENGAN SEN)

Dengan merubah named range semula _frm=REPT("0",12) menjadi _frm=REPT("0",12)&MID(1/10,2,1)&"00" dan menambahkan fungsi di akhir rumus VERSI KONVERSI TANPA ANGKA DESIMAL:

&REPT(IF(–MID(TEXT(A1,_frm),14,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),14,2)),LOOKUP(–MID(TEXT(A1,_frm),14,2),_angka,_huruf)&" "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),15,1))) &" sen",–MID(TEXT(A1,_frm),14,2)>0)

Rumus lengkap konversi angka ke huruf dengan dua angka desimal (sen):

=TRIM(REPT("seratus ",–MID(TEXT(A1,_frm),1,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),1,1)) &" ratus",–MID(TEXT(A1,_frm),1,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),2,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),2,2)),LOOKUP(–MID(TEXT(A1,_frm),2,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),3,1)))&REPT(" milyar",(TEXT(A1,_frm)/10^9)>1)&" "

&REPT("seratus ",–MID(TEXT(A1,_frm),4,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),4,1)) &" ratus",–MID(TEXT(A1,_frm),4,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),5,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),5,2)),LOOKUP(–MID(TEXT(A1,_frm),5,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),6,1)))&REPT(" juta",(TEXT(A1,_frm)/10^6)>1)&" "

&SUBSTITUTE(
REPT("seratus ",–MID(TEXT(A1,_frm),7,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),7,1)) &" ratus",–MID(TEXT(A1,_frm),7,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),8,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),8,2)),LOOKUP(–MID(TEXT(A1,_frm),8,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),9,1)))&REPT(" ribu",(TEXT(A1,_frm)/10^3)>1),"satu ribu","seribu")&" "

&REPT("seratus ",–MID(TEXT(A1,_frm),10,1)=1)&REPT(INDEX(_huruf,1+MID(TEXT(A1,_frm),10,1)) &" ratus",–MID(TEXT(A1,_frm),10,1)>1)&" "
&IF(–MID(TEXT(A1,_frm),11,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),11,2)),LOOKUP(–MID(TEXT(A1,_frm),11,2),_angka,_huruf) & " "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),12,1))))&" rupiah "

&REPT(IF(–MID(TEXT(A1,_frm),14,2)<=19,INDEX(_huruf,1+MID(TEXT(A1,_frm),14,2)),LOOKUP(–MID(TEXT(A1,_frm),14,2),_angka,_huruf)&" "
&INDEX(_huruf,1+MID(TEXT(A1,_frm),15,1))) &" sen",–MID(TEXT(A1,_frm),14,2)>0)

Dengan metode atau cara yang sama bisa dikembangkan untuk konversi ke bahasa inggris atau bahasa lainnya.

==semoga bermanfaat==

The name ‘_’ already exist……

The name already exist

Jika saat copy sheet Microsoft excel muncul pesan di atas, sehingga harus berkali-kali menekan tombol [Yes] berkali-kali.

Berikut solusinya:

  1. Sebelum copy sheet, aktifkan VBA Excel atau tekan tombol kombinasi [Alt+F8]
  2. Click [ThisWokbook], kemudian ketik vba code seperti dalam gambar:
  3. Names.PNG
  4. Letakkan kursor di bawah tulisan sub kemudian tekan [F5] untuk menjalankan vba
  5. Hapus VBA Code, bisa juga disimpan di notepad jika sewaktu-waktu dibutuhkan.
  6. Tutup VBA Editor atau tekan tombol kombinasai [Alt+Q]
  7. Pilih Menu [Formula], kemudian pilih [Name Manager]
  8. Name Manager
  9. Block semua Name, kemudian tekan [Delete] disusul dengan [Close]
  10. Lakukan copy sheet, maka pesan “the name already exist …” sudah tidak ada.

Trik ini juga bias digunakan apabila ada link ke external file yang tidak bias di putus (broken links)

Selamat mencoba

[XLS-SVY-24]: Plotting Cross section dari Excel ke Autocad Versi 1.2

Referensi : [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1
Platform :  
Lokasi File : download

 

Tulisan ini adalah tindak lanjut dari beberapa comments/komentar dari posting [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1. Walaupun tidak semua harapan pembaca terpenuhi

Perbaikan pada versi ini adalah :

  1. Nama program diganti dengan extensi *.xlam dan contoh file dalam format *.xlsx
  2. Mengganti menu dengan menggunakan “Custom UI Editor” sehingga menu baru ditampilkan dalam Ribbon Menu dan bisa di jalankan oleh Microsoft Excel 2007 ke atas.
  3. Merubah coding program menjadi metode “late binding” sehingga diharapkan program bisa dijalankan di Autocad 2000 ke atas tanpa harus setting Autocad Library.

Seperti halnya saat menjalankan program vba excel, pilih “Enable Macro” jika akan menggunakan program

Tampilan menu di Microsoft Excel 2016 :

image

Cara menjalankan program masih sama dengan tulisan pada [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1:

 

~~ selamat mencoba ~~

[XLS-SVY-23]: Spreadsheet Excel untuk Menentukan Pusat dan Jari-Jari Lingkaran dari Koordinat

Referensi : Least-Squares Circle Fit by R. Bullock
Lokasi File : download
Platform : Microsoft Excel

Salah satu member di landsurveyorunited.com menanyakan program dalam spreadsheet excel untuk menentukan koordinat pusat lingkaran dan jari-jarinya dari hasil pengukuran minimal 3(tiga) koordinat di sepanjang lingkaran. Pengukuran semacam ini biasanya digunakan untuk menentukan as built tangki, pile ataupun untuk menentukan jari-jari kelengkungan suatu alignment horisontal.

Dari beberapa metode perhitungan, hitungan yang saya “anggap” paling mudah untuk diterapkan dalam spreadsheet excel adalah metode least square atau kuadrat terkecil yang ditulis oleh R. Bullock. Rumus dan tahapan perhitungan dalam spreadsheet akan mengacu ke rumus yang diuraikan dalam paper Least-Squares Circle Fit by R. Bullock

Mengacu ke contoh koordinat dalam paper tersebut, jika diplot dalam chart excel:

List Koordinat Chart di Excel
image image

Bentuk spreadsheet dalam excel dengan hasil hitungan dan chart:

image

Range Keterangan
[A6:A12] berisi nomer urut titik hasil ukuran
[B6:C12] Koordinat hasil pengukuran
[A4] Hitungan Jumlah titik pengukuran
[B4] Hiutngan Rata-rata koordinat X
[C4] Hitungan Rata-rata koordinat Y
[E:Z] Kolom tahapan perhitungan sesuai dengan paper R. Bullock
[D6] Hasil Koordinat X pusat lingkaran
[E6] Hasil Koordinat Y pusat lingkaran
[F6] Hasil jari-jari lingkaran

 

=silakan dicoba=