.
.
Sudah cukup lama, jikalau ada library yg mendukung format DOC/DOCX saat itu adalah proprietary dan komersil perlu mengeluarkan dana lumayan dan juga tidak kompatibel jika sya akan mendistribusikan code sya secara opensource. Saat ini dukungan format HTML berkembang pesat, adanya MathML dan SVG serta kemampuan browser yg canggih bahkan sampai menampilkan object 3D interactive.
.
.
.
Penggunaan Word Processor dengan OpenOffice Writer ada sedikit kendala kompatibilitas, namun dengan OpenOffice Math terlihat bekerja baik seperti tampilan dibawah. Diakhir baris disisipkan juga formula dari ODF sehingga memudahkan untuk mengingat dan mencari.
.
.
.
.
.
Pembuatan rumus biasanya dapat dilakukan pada dokumen processor, namun untuk lebih menjamin tujuan kompatibilitas dapat menggunakan Visual Math Editor atau OpenOffice Math seperti tampilan diatas. Banyak tool membantu secara tampilan, bahasa yg digunakan untuk editor tersebut diantaranya adalah LaTeX. Setelah jadi dapat disimpan dalam format mml dan disisipkan pada dokumen HTML. Integrasi dengan perhitungan otomatis dapat dibuat pada program (Python, C/C++, C# atau Java dll) sesuai kebiasaan pembuat. Dapat dilihat pada contoh, 1 (satu) baris rumus pada LaTeX diterjemahkan menjadi 61 (enampuluh satu) baris format MathML. Simplifikasi tampilan dapat dilakukan dengan folding untuk menyembunyikan sehingga dapat lebih fokus kepada hal lainnya.
.
.
.
Sedangkan untuk gambar ilustrasi atau skematis hasil perhitungan menggunakan format SVG yg sebelumnya dapat dibuat pada drawing vector processor seperti OpenOffice Draw atau Inkscape. Akurasi dapat dibuat dengan program CAD dan disimpan dalam format DXF untuk kemudian dilakukan import dan editing pada OpenOffice Draw atau Inkscape.
Hasil keluaran dari program sya yg dulu tentunya akan jauh lebih baik dengan format HTMLdibanding sebelumnya yg hanya plain text biasa yg terlihat monoton dan membosankan. Namun disisi lain ada kekurangan untuk proses editing lanjut secara manual dibandingkan dengan format DOCX/ODT dan memang kurang sya perhatikan karena tujuan program adalah otomatisasi perhitungan laporan struktur. Kelanjutan editing dapat diberikan dengan dibuatnya pilihan output keluaran dalam format LaTeX seperti yg sebelumnya telah sya coba buat untuk sebuah modul, format SVG perlu dibuat ulang untuk pembuatan gambar ilustrasi pada LaTeX, walau dapat saja file SVG disisipkan namun beresiko masalah ketergantungan jika file rujukan tersebut tidak disengaja terhapus.
.
.
.
.
Mengenai bahasa program yg digunakan sebaiknya jangan yg jenis scripting atau interpreter seperti Python atau Javascript karena dalam hal ini melakukan proses tahapan yg sangat banyak jumlah baris code dan pastinya akan sangat lambat. Sebaiknya digunakan bahasa program Ansi C/ C++ atau Fortran yg dikenal tercepat prosesnya, kemungkinan C# dan Java akan lebih lambat jika dibandingkan dalam hal ini.
Tambahan catatan berikut daftar library untuk Ansi C/C++ yg mungkin diperlukan dan juga IDE berikut Compiler.
- Reading and writing SVG files (libmsvg)
- GNU Scientific Library (GSL)
- Creating Excel files (libxlsxwriter)
- Triangle mesh generator (triangle)
- Read and write DXF files (dxflib)
- Convert HTL to PDF (wkhtmltopdf)
- Code::Blocks (webs)
Rujukan dokumentasi untuk Ansi C/C++ diantaranya sebagai berikut,
- The GNU C Reference Manual, Trevis Rothwell & James Youngman, 2015 (webs / pdf)
- The GNU C Library Reference Manual, Sandra Loosemore etal, 2023 (webs / pdf)
- The GNU C Programming Tutorial, Mark Burgess & Ron Hale-Evans, 2002 (webs / pdf)
- Learning GNU C, Ciaran O'Riordan, 2008 (webs / pdf)
- How to Think Like a Computer Scientist C/C++ Version, Allen B. Downey & Thomas Scheffler, 1999-2019 (webs /pdf / pdf)
- GNU C Language Introduction and Reference Manual, Richard Stallman & Trevis Rothwell, 2022 (webs / pdf)
Sebenarnya bahasa pemrograman bersifat bebas apa saja karena secara umum prinsip dan tujuannya adalah sama yaitu memcahkan atau menyelesaikan masalah secara otomatis dan cepat. Setiap bahasa pemrograman mempunyai kelebihan dan kekurangan masing-masing, selain kecepatan proses mungkin hal lain adalah library pendukung dan juga cross-platform. Developer suatu software memang pada umumnya menggunakan lebih dari satu bahasa pemrograman, misal pada Abaqus, SAP2000, CalculiX danOpenSees. Pernah saya mendapatkan informasi, Abaqus menggunakan Fortran untuk solver dan C++ pada FLTK untuk GUI interfaces, scripting API disediakan dengan bahasa Python. SAP2000 menggunakan Fortran pada solver dan Visual Basic atau C# pada interfaces kemungkinannya, scripting API menggunakan bahasa Basic dan Python. CalculiX menggunakan bahasa Fortan untuk solver dan Ansi C untuk interfaces. Solver elemen hingga OpenSees menggunakan bahasa C++, beberapa interface menggunakan Python dan C++ juga. Dapat dipahami perbedaan tersebut dapat disederhanakan dengan tidak perlu mengetahui detail hanya cukup menyediakan data masukan dan memanggil executable lain atau DLL jika library tidak kompatible. Microsoft membuat semacam penghubung antar bahasa program buatannya dengan Command Language Runtime (CLR) dengan teknologi .NET, library visualisasi 3D yg sya minati yaitu VTK juga menyediakan beberapa bahasa pemrograman selain aslinya yg bahasa C++ juga ada C#, Python dan Java.
.
gambar logo dan artikel sya terkait
.
Lalu bagaimana jika pengguna hanya ingin memilih satu saja? baiknya sih jangan ya, namun jika memang seperti itu dapat melihat dari gambaran beberapa developer diatas, bahasa program yg dapat bekerja sebagai solver dan interfaces adalah C++, sedangkan bahasa Ansi C masih memungkinkan disatukan untuk kompatible karena C++ itu sendiri adalah C yg ditambah tambahin :) namun akan beda ceritanya dengan bahasa C# walau terlihat mirip namanya karena ada pagar batas yg banyak. Walaupun batasan tersebut sudah mulai dibuka oleh teknologi .NET Core, ini mungkin karena terjadinya cinta terpaksa Microsoft kepada dunia Linux dan OpenSource.
0 komentar:
Posting Komentar