Dari pengkodean getaran hingga pemrograman berbantuan AI.

Kecerdasan buatan adalah asisten yang hebat bagi para programmer.

Di eartikel sebelumnya Kami mengisahkan kesialan seorang ahli Kecerdasan Buatan yang mencoba membuat aplikasi tanpa pengetahuan pemrograman sama sekali. Seperti yang dijanjikan, dalam hal ini Kita akan membahas transisi dari pengkodean berbasis intuisi ke pemrograman berbantuan AI.

Saya tidak ingin menyesatkan Anda; ini juga merupakan artikel teoretis yang membahas hal-hal umum. Saya menekankan hal ini karena sangat penting untuk menghilangkan anggapan berlebihan seputar kursus pemrograman berbasis getaran (vibe coding). Pada artikel berikutnya, kita akan membahas alat-alat spesifik dan instalasinya di Linux.

Masalah-masalah dalam pengkodean getaran (vibe coding)

Pemrograman jauh lebih luas daripada sekadar menulis kode.Ini tentang memahami masalah yang ingin Anda selesaikan, bagaimana sebuah aplikasi dapat menyelesaikannya, dan teknologi mana yang paling sesuai dari semua teknologi yang tersedia.

Salah satu faktor yang perlu dipertimbangkan adalah masalah keamanan data. Jika suatu aplikasi akan digunakan oleh banyak orang dan membutuhkan data sensitif seperti informasi kartu kredit, perlu diambil langkah-langkah untuk mencegah kebocoran dan memastikan bahwa layanan yang diberikan tidak terganggu.

Kita tidak berbicara tentang risiko hipotetis, tetapi tentang insiden yang dilaporkan. Platform layanan cloud Amazon (AWS) mengalami gangguan layanan selama 13 jam pada bulan Desember lalu. Penyebab gangguan tersebut adalah agen AI Kiro, yang memutuskan untuk menghapus dan membuat ulang sebagian lingkungannya.

Kesungguhan dari jenis insiden ini terletak pada kenyataan bahwa AWS adalah platform pilihan bagi sebagian besar internet.
Menurut para ahli keamanan siber, agen AI biasanya dikerahkan di lingkungan dengan keterbatasan dan untuk tugas-tugas spesifik, dan tidak mampu memahami apa yang mungkin terjadi ketika, misalnya, suatu sistem dihidupkan ulang atau basis data dihapus.

Tahun lalu, perusahaan Replit juga meluncurkan agen AI untuk membuat aplikasi. Namun, alih-alih melakukannya, mereka malah menghapus seluruh basis data perusahaan dan, tidak puas dengan itu, memalsukan laporan dan berbohong tentang apa yang telah mereka lakukan.

Dalam Kecerdasan Buatan Agen adalah entitas (perangkat lunak atau sistem) yang menyadari lingkungannya dan membuat keputusan tentang bagaimana bertindak terhadap lingkungan tersebut.Untuk mencapai tujuan yang ditetapkan, LLM menggunakan agen untuk memahami konteks dan mengambil tindakan untuk merespons dengan cara terbaik guna mencapai hasil yang diinginkan.

Dari pengkodean getaran hingga pemrograman berbantuan AI.

Jika masalah yang kami uraikan di artikel sebelumnya adalah kurangnya pengetahuan yang dimiliki oleh "vibe coder" tentang teknologi yang tersedia untuk membuat aplikasinya. Dalam kedua kasus yang kami sebutkan, semua masalah bermula dari kurangnya batasan yang jelas. Tidak ada instruksi khusus yang diberikan kepada agen tersebut mengenai batasan yang tidak boleh dilanggar, dan tidak ada pengamanan yang ditetapkan melalui sistem perizinan untuk mencegahnya mengakses bagian-bagian sistem yang bukan urusannya.

Kurangnya penetapan batasan yang jelas dialami oleh beberapa pengguna rumahan OpenClaw, sebuah agen yang mudah digunakan yang dapat dihosting secara lokal dan dihubungkan ke model AI. Mereka melaporkan berbagai masalah, mulai dari penghapusan file sepenuhnya hingga pengeluaran token yang berlebihan.
Langkah-langkah untuk membuat aplikasi yang dibantu oleh Kecerdasan Buatan.

Definisikan hasilnya

Topik ini adalah titik lemah dari vibe coding. Definisi yang kurang jelas tidak terlalu menjadi masalah jika Anda mencari pengatur waktu Pomodoro. Tetapi jika Anda mencoba membuat portal e-commerce yang disesuaikan dengan kebutuhan bisnis Anda, masalah dapat muncul.
Ingat kembali kasus yang kita bahas di artikel sebelumnya. Andrej menginginkan sebuah aplikasi yang dapat menampilkan gambar hidangan yang tertera di menu restoran. Ia melakukan kesalahan dengan tidak menanyakan beberapa pertanyaan berikut kepada dirinya sendiri.

Apa kebutuhan spesifik pengguna terhadap aplikasi ini?
Kebutuhan spesifik pengguna adalah mengetahui komponen-komponen dari hidangan yang tercantum di menu (tanpa bertanya kepada pelayan).

Siapakah penggunanya?
Jelas sekali, pengembang tersebut membayangkan pengguna yang tidak memiliki pengetahuan mendalam tentang gastronomi, yang terbiasa menggunakan ponsel dan memiliki uang untuk dibelanjakan (Ia berencana menjual kredit untuk menggunakan aplikasi tersebut).

Alternatif apa saja yang tersedia saat ini?
Seperti yang saya sebutkan di artikel sebelumnya, alternatifnya adalah bertanya kepada Siri atau Gemini (pengganti Google Assistant di Android) tentang isi hidangan tersebut dan memintanya untuk menampilkan gambar. Jika Anda masih ingin membuat aplikasi, ada basis data makanan dengan API publik yang menampilkan foto.

Topik-topik berikut berkaitan dengan keputusan teknis.

Jenis antarmuka

Bagi pengguna Linux, membuat aplikasi tanpa antarmuka grafis adalah keputusan yang baik jika Anda ingin menyederhanakan pengembangan dan menghemat sumber daya. Di sisi lain, menggunakan antarmuka grafis membuatnya lebih mudah dan menarik untuk digunakan. Jenis antarmuka yang dipilih akan bergantung pada bahasa pemrograman dan lingkungan desktop.

Bahasa pemrograman.

Linux mendukung sebagian besar bahasa pemrograman populer. Namun, kemampuan model AI untuk memanfaatkannya bergantung pada jumlah dokumentasi dan contoh yang tersedia dalam basis pengetahuannya. Ini adalah topik yang akan kita bahas lebih lanjut dalam artikel mendatang.

Penanganan dan keamanan data

Poin lain yang perlu ditentukan adalah apakah aplikasi akan menyimpan data dan bagaimana cara menyimpannya. Hal ini sangat penting jika aplikasi tersebut menangani informasi sensitif seperti kata sandi atau data kartu kredit dan berinteraksi dengan layanan pihak ketiga. Jika demikian, mekanisme keamanan harus diintegrasikan.
Selain itu, penting juga untuk memberikan izin yang ketat agar aplikasi hanya mengakses fungsi dan bagian sistem operasi yang memang perlu diaksesnya.

Distribusi

Kita berbicara tentang Linux. Anda memiliki pilihan format paket asli untuk setiap distribusi, ditambah format universal Snap, Flatpak, dan AppImage. Anda juga perlu memutuskan apakah aplikasi Anda akan memiliki antarmuka grafis mandiri atau terintegrasi dengan salah satu lingkungan desktop. Dan, tentu saja, jika Anda menginginkan kontribusi komunitas untuk proyek Anda, Anda harus memutuskan platform kolaborasi mana yang akan Anda gunakan untuk mengunggahnya.
Saya berjanji ini adalah artikel teoretis terakhir; di artikel berikutnya kita akan membahas secara spesifik tentang Linux.

Penggunaan alat AI justru menimbulkan lebih banyak masalah daripada solusi ketika melakukan pemrograman.
Artikel terkait:
Soal-soal pemrograman Vibe dan cara menyelesaikannya di Linux.
Terdapat beberapa aplikasi berbasis AI yang dapat digunakan di Linux.
Artikel terkait:
Alat berbasis Kecerdasan Buatan untuk pemrograman dengan versi Linux