Kursus
Excel, Teman Lama Saya
Saya tipe orang yang memanipulasi data di spreadsheet hanya karena saya bisa. Minggu lalu, pimpinan tim saya mengirimkan daftar karyawan yang belum memperbarui daftar periksa proyek mereka, dan saya langsung membukanya, mulai membuat tabel dan memperoleh statistik ringkas per karyawan, lalu mengirimkan kepadanya beberapa data ringkasan, dipecah per karyawan. Mungkin itu sedikit membuatnya gemas, tetapi saya tidak bisa menahannya; saya menyukai analisis data dan saya menyukai Excel. Saya telah menggunakan Excel sejak 2001 dan hingga beberapa bulan lalu itu adalah alat pilihan saya untuk pengorganisasian, analisis, dan visualisasi data. Excel sangat bagus untuk mengatur data, melakukan perhitungan dan analisis, dan bahkan berfungsi sebagai basis data sederhana. Saya telah menggunakannya untuk segala hal mulai dari mencatat anggaran pribadi, pengeluaran, dan latihan hingga laporan analisis kekuatan personel multi-halaman di Angkatan Darat. Excel, sebagian besar, bekerja dengan baik di sana dan itu satu-satunya opsi. Karena alasan keamanan, saya tidak memiliki akses ke VBA, Python, atau jenis otomatisasi lainnya. Set data juga cukup kecil untuk ditangani.
Hampir setahun yang lalu saya mulai bekerja di Abilities Lab Cerner sebagai System Engineer dalam pengujian kinerja perangkat lunak. Versi singkat dari apa yang saya lakukan adalah pengujian kinerja perangkat lunak. Kami menguji perangkat lunak baru dan yang diperbarui sebelum dirilis ke klien dan kami menguji semuanya: CPU dan memori Windows dan Unix, kinerja Java Virtual Machine, waktu respons pada layanan backend dan Antarmuka Pengguna, kinerja Database, dampaknya pada perangkat lunak kami saat ini, kinerja jaringan, dan hampir semua hal lain yang dapat Anda pikirkan. Tidak ada pengujian yang terbatas pada satu mesin; sebagian besar waktunya ini merupakan kombinasi perangkat Windows dan Unix (fisik dan virtual), sistem pengguna akhir dan server. Untuk salah satu proyek yang saya ikuti, kami memiliki lebih dari 20 sistem yang harus diambil datanya.
Bergantung pada berapa lama sebuah proyek berjalan, bisa ada hingga 50 pengujian yang harus ditinjau, dianalisis, dan dilaporkan. Semua data tersebut harus diringkas ke dalam laporan akhir hasil pengujian yang diposting ke halaman proyek Jira internal untuk dikonsumsi oleh tim pengembangan perangkat lunak. Kami memang memiliki beberapa alat kustom internal yang dapat mengagregasi sebagian besar data, tetapi tidak semuanya, dan laporan yang dihasilkan di alat tersebut tidak dapat dikustomisasi sejauh yang diperlukan untuk jenis pengujian yang saya lakukan. Alat pilihan saya untuk menulis dan menyampaikan laporan ini adalah Excel, dan mengapa tidak? Saya berasal dari latar belakang Excel yang kuat dan saat itu saya yakin saya bisa membuatnya melakukan apa saja.
Excel, kita punya masalah...
Saya tidak akan membahas proses membosankan memindahkan data dari alat internal kami ke Excel, tetapi bagi saya itu adalah proses berjam-jam dan saya sangat mahir dengan Excel. Data harus disalin, dibersihkan, diurutkan, dan difilter. Bagaimanapun saya menulis rumus saya, hampir selalu harus disesuaikan, lalu tabel dan grafik harus disesuaikan tergantung pada jumlah pengujian, node, dan berbagai waktu respons yang direkam selama proyek. Setelah itu, prosesnya adalah temukan dan ganti untuk mendapatkan nama pengujian yang benar, memastikan format angka dan sorotan benar di setiap baris pada setiap halaman, dan pembersihan data umum. Saya mencoba menulis templat, makro, dan skrip VBA. Tidak ada yang cukup adaptif untuk menangani jumlah pengujian, perangkat, dan metrik kinerja yang bervariasi tanpa pembersihan serius untuk setiap pengujian. Saya memang berhasil membuat templat yang mempercepat proses, tetapi tetap saja butuh setengah hari untuk mendapatkan semuanya benar.
Saya sedikit tertawa ketika mengingat beberapa rumus dan skrip VBA yang sangat rumit yang masuk ke dalam templat itu. Keadaannya menjadi jauh lebih buruk ketika kami memperbarui versi Java dan alat internal kami tidak dapat memproses log dengan benar. Kami beralih ke alat luar bernama GC Easy yang sangat bagus mengurai log ke file JSON yang dapat dimuat ke Excel. File JSON dapat dimuat dengan PowerQuery, tetapi prosesnya lambat, membosankan, dan ketika Anda mencoba mengurai lebih dari 50 file JSON dengan masing-masing lebih dari satu juta baris, Anda akan cukup sering membuat Excel rusak. Ditambah lagi fakta bahwa saya memerlukan cara untuk mengotomatiskan proses dan saya tidak dapat menemukan cara yang baik untuk melakukannya. Bahkan ketika saya bisa memuat data ke Excel, visualisasi (grafik area bertumpuk yang merepresentasikan Heap Size dari waktu ke waktu) akan membeku dan menyebabkan lebih banyak crash. Kalaupun saya bisa menyelesaikan masalah itu, file JSON hanyalah permulaan.
Menyalin, membersihkan, dan menganalisis data secara manual akan menghasilkan kesalahan. Kita semua manusia dan kita bisa melewatkan sesuatu, terdistraksi, salah klik. Proses saya tidak berhasil dan tidak akan pernah berhasil untuk semua orang kecuali seluruh tim menjalani pelatihan Excel yang ekstensif. Mungkin karena latar belakang militer saya, mungkin juga karena kepribadian, tetapi saya selalu mencari cara untuk memperbaiki proses dan membuatnya lebih efisien, jadi saya mulai mencoba mencari cara untuk merampingkan seluruh proses.
Alat internal kami, saat itu, tidak memiliki API dan tidak ada fungsi ekspor yang berfungsi. Saya tidak punya cara untuk menarik data langsung darinya tanpa salin/tempel. Pikiran berikutnya adalah langsung ke sumber: file log dari setiap perangkat dalam pengujian. Itu berarti menelusuri direktori pengujian dan banyak subdirektori di dalamnya, menarik data dari berbagai jenis file dalam format berbeda, melakukan semua perhitungan, dan menuliskannya ke Excel dalam format yang saya butuhkan, lengkap dengan visualisasi dan pemformatan bersyarat.
Jenis file yang perlu saya uraikan adalah .txt, .csv, .json (berbagai struktur), .xml (berbagai struktur), .dat, .html, dan sebagian data harus diambil dari Oracle Database. Saya harus mempertimbangkan struktur direktori yang bervariasi, jumlah dan struktur file yang bervariasi, file .xml tanpa tag penutup, dan ukuran file lebih dari 10GB. Prosesnya juga harus mudah diikuti, diotomatisasi sejauh mungkin, dan menangani jutaan baris data. Excel jelas tidak akan memenuhi kebutuhan saya untuk semua itu, jadi saya beralih ke beberapa alat BI populer: PowerBI dan Tableau. Saya tidak ingin ini menjadi ulasan produk alat BI jadi cukup saya katakan bahwa secara kategoris alat-alat itu tidak memenuhi kebutuhan saya.
Lalu, apa alat yang bisa melakukan semua yang dapat dilakukan Excel, bisa menulis laporan di Excel, dan bisa memenuhi semua persyaratan yang saya sebutkan?
Kenalkan Teman Baru Saya, Python dan Pandas
Jika Anda akrab dengan Excel, saya yakin Anda akan sangat menyukai pandas untuk Python. pandas menghadirkan fungsionalitas Excel bersama dengan kekuatan bahasa Python. Kolom Excel menjadi Series di pandas, tabel menjadi DataFrame, dan rumus kompleks menjadi fungsi Python. pandas bisa melakukan semua yang bisa dilakukan Excel:
Membaca Data
Excel cukup baik dalam membaca file flat, dan dengan PowerQuery ia memiliki kapasitas terbatas untuk melakukan kueri basis data dan membaca file .xml serta .json tertentu. Jika Anda membaca dokumentasinya, terlihat seperti alat sempurna untuk membaca hampir semua hal, tetapi kenyataannya tidak demikian. Antarmukanya canggung dan butuh banyak penyesuaian, tidak ada cara yang baik untuk mengotomatiskan proses, dan pembersihan data hampir sama menyenangkannya dengan berkunjung ke dokter gigi. Di sisi lain, pandas membuat pembacaan data menjadi mudah.
Pustaka manipulasi data Python ini secara native dapat membaca data dari banyak sumber. Lihat halaman dokumentasi untuk daftar lengkap. Hal yang sangat hebat adalah, jika pandas tidak membacanya secara native, besar kemungkinan Anda dapat menemukan paket Python yang akan membacanya atau menulis beberapa baris kode yang akan menyelesaikan masalah. Lihat seri kursus Importing Data in Python dari DataCamp, di antara kursus lainnya, untuk membahas topik ini secara mendalam.
Saya bisa menggunakan pandas untuk membaca setiap jenis file yang saya bahas sebelumnya, termasuk file .xml tanpa tag penutup. Dengan pemrosesan bahasa alami yang kreatif saya juga dapat mengambil semua metadata pengujian dari file .txt mentah, sesuatu yang tidak bisa saya lakukan dengan Excel karena file-file itu tidak diformat sebagai data. Versi skrip yang saya gunakan sekarang tidak hanya membaca setiap jenis file yang saya butuhkan, tetapi dengan beberapa baris kode Python tambahan saya bisa otomatis mengambil log Java Garbage Collection .json dari GC Easy dengan memanggil API; sesuatu yang tidak akan pernah bisa saya lakukan dengan Excel. Bagaimana perbandingannya dengan Excel? Menggunakan pandas saya bisa menelusuri seluruh direktori pengujian dan mendapatkan semua data kembali dalam DataFrame yang rapi hanya dalam beberapa menit. Ia bahkan menangani file log yang melebihi 10GB dengan mudah. Itu mungkin tidak terlihat seperti ukuran file yang besar, tetapi coba saja membaca apa pun sebesar itu dengan Excel.
Saya bahkan mulai beralih dari membaca file flat mentah itu ke mengambil data dari Oracle Database multi-terabita. Saya tidak bisa membandingkan proses itu dengan Excel; selain percobaan singkat dengannya saya menghindari kueri basis data di Excel. Dari yang saya ingat, itu bukan pengalaman yang ingin saya ulangi. Terhubung melalui Python, bagaimanapun, sangat mudah dengan SQLAlchemy. Proses koneksinya mudah dan kecepatan kuerinya jauh mengungguli Excel. Lihat Introduction to Relational Databases in Python untuk pengenalan yang sangat baik tentang topik ini.
Membersihkan Data
Terlepas dari visualisasi, saya sangat yakin bahwa data harus berada dalam tabel yang bersih, rapi, terformat, dan berlabel. Pandas memiliki beberapa opsi hebat untuk membersihkan data dan menyajikan tabel yang terformat dengan baik. Halaman Styling di situs resmi Pandas adalah panduan favorit saya untuk memformat DataFrame. Dengan beberapa baris kode singkat Anda dapat mengatur jumlah desimal, memformat angka, menambahkan pemformatan baris dan bersyarat, dan prosesnya dapat diulang pada jumlah dokumen yang tak terbatas. Kemampuan untuk mengotomatiskan bagian tertentu dari pembersihan data, berapa pun ukurannya, telah menghemat waktu saya yang tak terhitung.
Secara adil, Anda tentu bisa membersihkan data di Excel. Excel memiliki banyak alat bawaan untuk tujuan itu, dan itulah yang harus saya lakukan setiap kali saya (akhirnya) memuat semua data yang saya butuhkan ke dalamnya. Itu adalah proses yang sebagian besar manual, melibatkan terlalu banyak klik mouse dan, sekali lagi, sangat rawan kesalahan dan memakan waktu. Bahkan jika Anda sangat mahir dengan semua alat yang ditawarkan Excel, kesalahan tetap akan terjadi. Ada cara untuk mempercepatnya dengan rumus, makro, dan skrip VBA (akan saya bahas sebentar lagi), tetapi itu jauh dari solusi yang sempurna.
Menganalisis Data
Saya akan sangat terus terang: pandas mengalahkan Excel telak dalam hal menganalisis data. Tidak ada cara adil untuk membandingkan keduanya. Anda bisa menulis rumus dan menggunakan beberapa fungsi bawaan di Excel untuk menganalisis data; saya melakukan hal itu selama bertahun-tahun dan saya membuatnya bekerja. Saya mengajar beberapa kelas analisis data di Excel, menganjurkan penggunaannya dalam beberapa kesempatan, dan mengikuti kelas statistik yang menggunakan Excel sebagai alat pilihan. Saya tidak mengatakan bahwa Excel tidak bisa digunakan untuk analisis. Namun, membandingkannya dengan pandas seperti membandingkan pensil dan kertas dengan kalkulator; tidak berada di liga yang sama.
Pada Agustus tahun lalu, Kaggle melaporkan bahwa Python telah menyalip R dalam Data Science, dan pada Desember, Quartz menyebut pandas sebagai 'alat terpenting dalam Data Science'. Saya rasa saya tidak perlu mengatakan lebih banyak tentang topik ini.
Makro dan VBA
Pada 2012 saya masih berdinas aktif dan harus pergi untuk janji temu dokter gigi rutin di Fort Bliss di El Paso, Texas. Saat saya duduk di kursi, dokter gigi menyebutkan bahwa gigi bungsu saya perlu dicabut, dan karena dia punya waktu, dia melakukan prosedurnya saat itu juga hanya dengan anestesi lokal. Itu pengalaman yang buruk dan membuat saya kesakitan selama beberapa hari. Jika saya harus memilih antara melakukan itu lagi atau bekerja dengan Excel Macros atau Visual Basic, saya rasa saya lebih memilih mencabut lebih banyak gigi.
Banyak orang yang sangat terampil di bidang tersebut dan saya telah melihat beberapa hal menakjubkan yang dilakukan dengan skrip VBA yang cerdas dan saya mengapresiasi mereka. Saya jelas bukan penggemarnya dan saya tidak merekomendasikannya kepada siapa pun, terutama ketika Anda bisa menggunakan Python sebagai gantinya. Python begitu populer sebagai alternatif VBA sehingga Microsoft mempertimbangkan untuk memasukkan Python sebagai bahasa skrip resmi di Excel.
Namun Saya Masih Perlu Menggunakan Excel
Seberapa pun saya ingin melakukan semuanya di Python, itu tidak praktis dalam situasi saya. Untuk saat ini, hasil analisis saya masih harus disampaikan dalam Excel. Untungnya, ada paket seperti OpenPyXl dan XlsxWriter yang dibuat untuk tujuan itu. Saya menggunakan XlsxWriter setiap hari untuk mengonversi DataFrame menjadi laporan yang sangat profesional di Excel yang tidak memiliki rumus, makro, atau Skrip VBA. Paket ini bahkan dapat membuat visualisasi.
Berbicara tentang memvisualkan data...
Tidak Ada Lagi Grafik Membosankan
Saya tidak pernah menjadi penggemar visualisasi data. Saya selalu lebih suka melihat data dalam baris dan kolom dengan sorotan pada area yang penting, mungkin grafik batang sesekali. Excel cukup baik dengan menyediakan banyak opsi untuk memvisualisasikan data, tetapi sejauh pengetahuan saya adalah membuat grafik area bertumpuk, grafik batang, dan grafik garis. Untuk masing-masing itu, saya memilih data, menekan “Insert Chart” dan mencari yang saya butuhkan. Dari sana, saya mungkin melakukan sedikit penyaringan dan menambahkan judul tetapi hanya sebatas itu.
Secara terbuka, ada banyak sekali opsi untuk menyesuaikan grafik di Excel tetapi prosesnya bisa sangat sulit dan kurva belajarnya curam. Saya masih tidak suka membuat grafik di Excel, tetapi dengan Python ceritanya berbeda.
Sekarang saya benar-benar percaya pada visualisasi data dan banyak berupaya menghasilkan visualisasi yang bagus untuk analisis. Ketika saya mulai mengikuti kursus di DataCamp dan diperkenalkan dengan paket seperti Matplotlib dan Bokeh, saya mulai memahami kekuatan dan tujuan sebenarnya dari visualisasi data. Dengan Matplotlib, visualisasi dapat dengan mudah dibuat dari dalam pandas atau dengan mengimpor pyplot. Daftar kemungkinan visualisasi di dalam pyplot sangat panjang, dan hampir semua aspek plot dapat dikustomisasi. Introduction to Data Visualization With Python menunjukkan cara membuat beberapa visualisasi yang sangat baik dengan Matplotlib.
Sehebat apa pun Matplotlib, saya mendapati diri saya membutuhkan sedikit lebih banyak interaktivitas dalam visualisasi. Saya menginginkan kemampuan untuk memilih, memperbesar, melayang, mengurutkan dan memfilter data dalam suatu visualisasi, dan saya tentu tidak ingin mempelajari react.js atau D3. Mempelajari Python adalah sebuah kenikmatan yang berlanjut hingga hari ini, tetapi JavaScript bukan keahlian saya. Untungnya, Python kembali menyelamatkan dengan paket seperti Bokeh dan Dash.
Bokeh, yang didukung oleh Anaconda, menggabungkan D3.js dan Python untuk membuat grafik yang sepenuhnya interaktif yang dapat diekspor sebagai dokumen html mandiri, disematkan ke halaman web, atau dijalankan di Bokeh Server. Meski memiliki kurva belajar yang lebih curam daripada Matplotlib, saya rasa Anda akan sepakat bahwa visualisasi yang dihasilkannya sepadan dengan usahanya; lihat saja Galeri mereka dan buktikan sendiri. Saya belum setengah mahir dengan Bokeh seperti yang saya rencanakan, tetapi ini telah menjadi salah satu paket visualisasi favorit saya sejak pelajaran pertama Interactive Data Visualization With Bokeh. Jika Bokeh tidak sesuai kebutuhan Anda, ada Dash dari tim Plotly.
Dash adalah alat visualisasi gratis dan sumber terbuka lainnya untuk Python yang menggabungkan React.js alih-alih D3. Saya baru-baru ini menemukan Dash dan ia juga menghasilkan beberapa visualisasi interaktif yang benar-benar fantastis tanpa harus mempelajari satu baris pun Javascript. Sulit membandingkan Dash dengan Bokeh karena keduanya mampu menghasilkan visualisasi yang hebat. Satu-satunya ganjalan saya dengan Dash sejauh ini adalah saya hanya bisa menjalankan visualisasinya di server Dash. Saya belum bisa menyematkannya dalam dokumen mandiri, halaman html, atau Jupyter notebook. Meski begitu, potensinya sangat besar seperti yang dapat Anda lihat di galerinya.
Hemat Waktu dengan Penjadwalan dan Otomatisasi Tugas
Pada musim panas 2014, kami memiliki masalah di organisasi tempat saya bekerja saat itu. Cadangan Angkatan Darat digerakkan oleh serangkaian angka yang secara kolektif disebut “Readiness”. Itu adalah persentase personel yang ditugaskan ke organisasi tertentu yang dapat dipanggil untuk penugasan. Angka tersebut ditentukan oleh beberapa kategori data termasuk medis, gigi, pendidikan, kebugaran jasmani, dan banyak angka lainnya. Saya tidak bisa memberikan angkanya di sini tetapi angka kami jauh dari yang seharusnya.
Solusi saya adalah laporan multi-halaman di Excel yang terdiri dari beberapa tabel dan bagan informasi yang dikompilasi dari berbagai basis data personel. Informasi ini mencakup data ringkasan tentang organisasi, informasi tentang setiap individu di setiap kategori pengukuran, dan proyeksi ke mana angka itu akan berada dalam tiga bulan ke depan berdasarkan tindakan yang dilakukan minggu itu. Ini sebenarnya sukses besar dan ‘Readiness’ kami meningkat secara signifikan dan bertahan lama.
Walaupun berhasil, ini berantakan. Saya datang lebih awal pada Senin pagi dan secara manual menarik informasi dari semua sumber berbeda, lalu membersihkan data dan menyalinnya ke laporan minggu itu. Saya kemudian menghabiskan setidaknya satu jam memeriksa laporan untuk kesalahan dan melakukan pembersihan data lagi. Setelah itu laporan harus dikirim melalui email ke staf administrasi agar mereka dapat memverifikasi data dan menambahkan pembaruan apa pun yang belum ada di basis data. Rata-rata, butuh tiga hari untuk mengirimkan laporan ini. Biaya jam kerja sangat berlebihan dan tidak perlu.
Dengan sedikit skrip Python saya bisa secara otomatis menarik semua data dari berbagai sumber, menyusun semuanya ke dalam DataFrame pandas, menulis seluruh laporan ke Excel, dan mengirimkannya secara otomatis ke staf administrasi. Bagian terbaiknya, ini bisa dijadwalkan untuk berjalan satu menit setelah tengah malam pada Senin pagi dan menghemat waktu kerja yang tak terhitung. Di sistem Linux, terlalu mudah untuk menjadwalkan skrip Python berjalan pada waktu tertentu dengan menambahkannya ke crontab. Di pekerjaan saya saat ini kami bekerja dengan begitu banyak sistem sehingga crontab adalah bagian penting dari pekerjaan dan penjadwalan tugas di sana adalah keterampilan penting. Jadi jika Anda perlu menarik data setiap malam pukul dua belas dan memuatnya ke dalam laporan, crontab adalah cara yang tepat di sistem Linux.
Saya penggemar Linux tetapi sebagian besar pekerjaan saya dilakukan di Windows, dan itu adalah sistem operasi pilihan saya. Dengan Windows, Anda memiliki berbagai opsi untuk menjadwalkan tugas melalui Windows Task Scheduler, Schtask.exe, atau Powershell. Dengan salah satu opsi tersebut, Anda dapat menjadwalkan skrip untuk berjalan pada jam-jam paling tidak sibuk saat sumber daya sistem paling bebas atau mengatur agar berjalan tepat setelah Anda tahu sumber data telah diperbarui. Ini adalah opsi yang hanya bisa saya harapkan saya miliki beberapa tahun lalu.
Alat Favorit Saya: Jupyter Notebooks
Setelah menggunakan Excel selama ini, mempelajari Python seperti menjalani hidup hanya dengan sepasang tang lalu suatu hari menemukan seluruh kotak peralatan penuh dengan alat baru yang mengilap. Masing-masing hebat dan punya kegunaan, tetapi jika ada satu alat yang paling sering saya gunakan dibanding yang lain, itu adalah Jupyter Notebooks. Semua yang saya tulis dalam Python telah saya tulis di Jupyter Notebook, baik untuk konsumsi langsung maupun untuk digunakan nanti sebagai skrip Python mandiri. Jupyter adalah alat hebat untuk menulis fungsi, menguji kode, melakukan analisis data eksploratori, dan bahkan menyajikan produk akhir. Jupyter bahkan dapat digunakan untuk menulis posting blog (seperti ini) atau di Github dengan Pages. Jika Anda menelusuri tutorial di DataCamp Anda dapat melihat bahwa banyak di antaranya ditulis dengan cara yang sama.
Mengapa menyebutkannya dalam diskusi tentang Excel?
Jupyter Notebooks dapat digunakan sebagai pengganti Excel sebagai produk analisis Anda. Anda dapat menulis kode, menampilkan DataFrame pandas, visualisasi, dan kesimpulan semuanya pada satu halaman yang dapat dikonversi ke HTML dengan sekali klik. Salah satu tujuan pribadi saya adalah sepenuhnya lepas dari Excel dan menggunakan Jupyter Notebooks sebagai gantinya untuk mengirim laporan yang sudah selesai. Ini menjadi opsi yang semakin layak sekarang setelah JupyterLab dirilis. Di antara itu dan widgets Anda dapat mengubah Jupyter Notebook menjadi aplikasi analisis data interaktif.
Pikiran Penutup
Saya masih menggunakan Excel setiap hari; ini adalah alat yang hebat dan mengakar di banyak organisasi, termasuk tempat saya bekerja. Hampir semua orang akrab dengannya dan dapat menggunakannya untuk mengonsumsi informasi dan melakukan analisis data sederhana. Yang saya pikir banyak orang tidak tahu adalah bahwa melakukan analisis yang sama dengan Pandas dan Python tidak hanya lebih efisien, tetapi juga lebih mudah.
Tujuan saya adalah sepenuhnya lepas dari Excel pada akhir tahun ini, dan saya akan bisa melakukannya dengan menggunakan alat yang saya sebutkan dalam artikel ini. Anda tidak akan menjadi ahli dalam semalam, tetapi hal yang sama juga berlaku untuk Excel. Saya berharap setelah membaca ini Anda terinspirasi untuk lepas darinya dan mencoba beberapa alat baru yang saya sebutkan. Ini akan membuat Anda lebih efisien, lebih produktif, dan pada akhirnya mempercepat alur kerja Anda.
