Bekerja dengan IBM i bersama IBM Bob
Jika kamu belum pernah menulis satu baris RPG pun, IBM i adalah salah satu platform produksi berskala besar yang paling menarik. Jika kamu sudah menulis beberapa juta baris darinya, kamu sudah tahu di mana letak rasa sakit sehari-hari itu berada. Post ini membahas keduanya: gambaran teknis tentang apa yang membuat IBM i unik, di mana friksi modernisasi benar-benar muncul, bagaimana IBM Bob masuk ke workflow IBM i hari ini, langkah setup untuk memulai, dan apa yang ada di roadmap platform ini berikutnya.
Sebenarnya IBM i itu apa
IBM i bukan sistem operasi legacy dalam arti "kita seharusnya rewrite ini". Ini adalah platform terintegrasi — OS, database, model keamanan, dan runtime dirancang dan dikirim sebagai satu kesatuan — yang telah menghasilkan pendapatan untuk bank, perusahaan asuransi, rumah sakit, manufaktur, dan perusahaan logistik selama beberapa dekade. Jadi, sebaiknya kita menyebutnya legendaris.
Beberapa detail yang biasanya mengejutkan developer saat melihatnya pertama kali:
- Single-level storage. RAM dan disk berbagi satu virtual address space. Object pointer tetap ada bahkan setelah reboot. OS memperlakukan memori dan storage sebagai satu lapisan tunggal dan melakukan paging di antaranya secara transparan. Kebanyakan sistem modern masih berusaha mengejar ini.
- TIMI, Technology Independent Machine Interface. Binary RPG yang dikompilasi pada hardware dari tahun 1990-an berjalan tanpa modifikasi di chip POWER saat ini. OS menerjemahkannya ulang terhadap instruction set baru di balik layar. Analogi modern terdekatnya adalah WebAssembly, hanya saja IBM i sudah melakukannya beberapa dekade lebih awal.
- Object-based OS. Program, file, queue, dan authority adalah object bertipe dengan atribut — bukan file dengan metadata yang ditempelkan. Keamanan ditegakkan di level object.
- Db2 for i terintegrasi, bukan ditempelkan. SQL dan native record-level I/O menyentuh data yang sama. Physical file berusia 40 tahun bisa di-query lewat SQL view modern tanpa proyek migrasi.
- Source bisa tinggal di sistem atau di Git — pilihan ada padamu. Secara historis, source IBM i disimpan sebagai member di dalam source physical file (QSYS), lalu dikompilasi langsung di sistem. Platform ini awalnya menempatkan LPAR sebagai source of truth. Tetapi IBM i telah berkembang: compiler dan OS kini sepenuhnya mendukung workflow modern yang berpusat pada Git, IFS stream file, dan development lokal jika kamu menginginkannya. Banyak tim masih menggunakan library QSYS, tetapi platform ini memberimu pilihan.
Platform ini juga mendukung pola delivery modern secara bawaan: engine REST API native sebagai bagian dari OS, hybrid cloud melalui Power Virtual Server, dan AI inference yang berjalan di hardware yang sama dengan transactional workload. RPG, COBOL, CL, dan SQL hidup berdampingan dengan praktik development yang sudah digunakan bagian lain organisasi engineering kamu.
Platform-nya bukan masalah. Friksinya ada di sekelilingnya.
Di mana friksi itu muncul
Empat pola muncul di hampir setiap tim IBM i. Tidak ada yang benar-benar soal RPG itu sendiri — bahasanya baik-baik saja — tetapi soal konteks di sekitar kode yang tidak pernah dituliskan, dan cara platform menyimpan serta membagikan konteks itu.
- Konteks implisit, memang by design. Program RPG yang berjalan baik bisa mencakup empat generasi bahasa dalam satu source — RPG II, RPG IV, /COPY copybook (deklarasi bersama yang diambil saat compile), dan free-format procedure — dengan sintaks yang peka terhadap kolom dan indikator bernomor (
*IN01–*IN99) yang mengambil alih peran control flow terstruktur serta boolean bernama di kebanyakan bahasa lain. Sintaksnya bisa dipelajari dalam seminggu; konvensi dan rule bisnis di sekitarnya hidup di kepala engineer senior. - Perubahan tidak pernah bersifat lokal. Tipe suatu field tidak dideklarasikan di program yang menggunakannya — tipe itu dideklarasikan di tabel database itu sendiri, di source file terpisah (DDS member). Setiap program yang membaca atau menulis tabel itu mewarisi definisi tersebut hanya dengan mereferensikan file di bagian atas. Jadi memperpanjang satu kolom dari 10 menjadi 12 digit tidak pernah sekadar edit satu program: perubahan itu menjalar ke setiap program yang menyentuh file tersebut, dan daftar program itu jarang sekali tertulis di mana pun. Setiap perubahan pada workload penting karena itu membawa risiko kontinuitas, dan modernisasi pun tersendat.
- Source jarang berada di tempat yang diharapkan tooling modern. Salinan kanonik sebuah program ada di sistem, bukan di Git repo pada laptop. Membaca kode yang ditulis orang lain lima belas tahun lalu dimulai dengan menemukannya di LPAR, mengekspornya, lalu memutuskan apakah hasil ekspor itu adalah salinan kanonik — workflow yang harus diadaptasi oleh tool mana pun yang mengasumsikan working tree lokal sebelum tool itu terasa benar-benar berguna.
- Fixed-form RPG sama sekali tidak terlihat seperti kode modern. Sebagian besar RPG produksi ditulis dalam fixed-form: sintaks peka kolom di mana operation code hidup di kolom 26–35, Factor 1 di 12–25, dan comment hanya muat setelah kolom 80. Ini terbaca seperti assembly bagi siapa pun yang tumbuh dengan Python atau JavaScript. IBM kemudian menemukan ulang bahasa ini dengan fully free-format RPG (RPG IV, lalu cukup disebut "RPG"), yang terlihat dan terasa seperti bahasa prosedural modern — blok terstruktur, variabel bernama, ekspresi standar. Kesenjangan sintaksnya nyata, tetapi bahasanya sendiri sudah berevolusi. Friksinya datang dari fakta bahwa puluhan tahun kode yang masih bekerja tetap berada dalam fixed-form, dan menulis ulangnya membawa risiko yang tidak bisa dibenarkan kebanyakan tim.
Apa yang Bob lakukan pada aplikasi RPG untuk IBM i
Arahkan Bob ke program RPG dan mulai di mode Ask:
- "Jelaskan ke saya apa yang dilakukan program ini dan file mana saja yang disentuhnya."
- "Di mana
CUSTNOdisetel, dan program mana yang membacanya setelah itu?" - "Apa yang akan rusak jika saya mengubah panjang field ini?"
Beralih ke mode Plan ketika kamu sudah punya perubahan yang ingin dilakukan: konversi ke free-format, migrasi SQL dari record-level I/O, atau memecah monolit menjadi modul. Bob menghasilkan rencana, dependency yang disentuh, dan langkah-langkah yang akan diambilnya, sebelum ada file yang diubah.
Beralih ke mode Code untuk menerapkan perubahan. Bob:
- Mengonversi fixed-format RPG ke free-format dengan pola yang bisa diulang, file demi file.
- Memigrasikan record-level I/O ke embedded SQL jika sesuai.
- Menghasilkan suite test RPGUnit terhadap procedure yang ada sehingga konversinya bisa diverifikasi, bukan sekadar bisa di-compile.
- Menghasilkan dokumentasi dalam bahasa biasa dan diagram Mermaid dari source — artefak yang bisa dicari dan dibagikan, yang bertahan lebih lama dari engineer mana pun.
Workflow yang sama menangani RPG II/III/ILE, CL, DDS, SQL, dan COBOL, sehingga karyawan baru yang membaca program yang ditulis sebelum mereka lahir tidak lagi terhalang oleh sintaks.
Buat source IBM i kamu siap untuk Bob
Saat ini Bob bekerja terhadap source di komputer lokalmu. Setup-nya singkat:
- Tarik source-mu ke lokal. Ekspor member RPG, RPGLE, CL, DDS, dan SQL ke folder lokal. Project explorer Code for i mendokumentasikan ekspor dari physical file member: migrate source
- Buka folder itu di Bob. File → Open Folder pada root source. Bob mengindeks codebase saat pertama kali dibuka.
- Install IBM i toolchain. Dari panel Extensions, tambahkan IBM i Development Pack (bundle Code for i) dan renderer Mermaid untuk diagram yang dihasilkan Bob.
- Mulai sesi di mode Ask. Pilih satu program — idealnya yang tidak sepenuhnya dipahami siapa pun di tim — lalu minta Bob menjelaskannya. Itu adalah cara tercepat untuk melihat apakah Bob layak mendapat tempat di workflow kamu.
Jika timmu datang dari SEU atau RDi, migrasinya sebagian besar hanyalah langkah ekspor di atas plus instalasi extension. Permukaan editing-nya adalah lingkungan modern keluarga VS Code dengan syntax highlighting, code completion, dan workflow AI yang dijelaskan tadi; line number tetap tersedia bagi engineer yang menginginkannya.
Apa selanjutnya untuk Bob di IBM i
Premium Package for i yang baru diumumkan menyediakan pengalaman native dan dioptimalkan untuk tim development IBM i. Premium Package for i akan tersedia secara umum pada 24 Juni.
Premium Package for i. Dengan GA tanggal 24 Juni, Bob akan terhubung langsung ke IBM i kamu. Dari satu sesi, kamu bisa membaca source member langsung dari QSYS, mengeditnya dengan workflow yang sama seperti di atas, lalu menjalankan siklus compile dan test langsung terhadap sistem. Di samping konektivitas itu, Bob juga mendapatkan skill dan workflow bawaan yang di-tune untuk development IBM i — konversi fixed-to-free, refactoring, pembuatan dokumentasi — sehingga prompt awal pada codebase RPG langsung lebih sesuai dengan konvensi IBM i dari awal. Secara konkret, itu berarti:
- Satu sesi Bob yang terhubung ke development LPAR; tidak perlu loop ekspor-edit-impor terpisah.
- Error compile dan hasil test dari IBM i muncul kembali ke percakapan Bob yang sedang kamu jalankan.
- Skill & workflow bawaan untuk pola refactoring, konversi, dan pembuatan test yang berulang dijalankan tim IBM i.
Lebih jauh lagi — SDLC end-to-end. Ada tiga jalur yang sedang aktif dirancang untuk rilis berikutnya:
- Integrasi DevOps. Bob berpartisipasi dalam build, deploy, monitor, dan CI/CD untuk workload IBM i — menjalankan regression pass terhadap test LPAR, mempromosikan perubahan lintas environment, dan membawa isu runtime kembali ke dalam sesi.
- Performa SQL. Analisis data dan optimasi index sebagai kemampuan utama, di atas pola migrasi embedded SQL yang sudah dihasilkan Bob saat ini.
- IBM i knowledge assistant. Jawaban berbasis retrieval di seluruh codebase, dokumentasi desain, dan ticket — sehingga konteks yang hidup di luar source bisa dijangkau dari percakapan yang sama.
Bagi tim yang mengadopsi Bob hari ini, workflow file lokal di atas adalah titik awal yang tepat; item dalam bagian ini menjelaskan bagaimana workflow itu akan menjadi lebih singkat dan lebih luas seiring penawaran IBM i menjadi makin matang.
Referensi pelanggan
Tim di bidang kesehatan, pertanian, enterprise IT, dan logistik sedang menggunakan Bob terhadap codebase IBM i produksi saat ini:
- MEDHOST. Aplikasi kesehatan yang mencakup berbagai generasi RPG di deployment rumah sakit AS. Tim ini menggunakan Bob untuk impact analysis dan konversi fixed-to-free, serta untuk onboarding developer baru ke program yang penulis aslinya sudah lama tidak ada.
- NI+C. Enterprise integrator Jepang dengan program RPG yang berjalan tanpa perubahan selama lebih dari satu dekade tanpa dokumentasi desain yang tersisa. Bob menghasilkan design doc dan diagram Mermaid yang cukup akurat sehingga engineer yang sebelumnya kecewa dengan AI assistant lain tetap memakainya untuk pekerjaan nyata.
- Heartland Co-op. Koperasi pertanian berbasis di Iowa yang mengalirkan data sensor IoT real-time ke lingkungan IBM i mereka untuk monitoring kualitas biji-bijian dan peralatan. Bob membantu developer bernalar melintasi interdependency antara pipeline IoT, grain accounting, dan sistem operasional inti, serta mempercepat onboarding karyawan baru.
- Carreras Grupo Logístico. Salah satu adopter enterprise Bob pertama di Spanyol, yang menggunakannya untuk menjelaskan logika program legacy, menghasilkan dokumentasi, dan melakukan refactoring lintas modul pada platform logistik.
Benang merah di keempat contoh itu sama: codebase IBM i yang ada tetap dipertahankan, dan pekerjaan penjelasan, konversi, serta dokumentasi berjalan berdampingan dengan sistem produksi alih-alih mendahului proyek penggantian.
Memulai
- Mulai free trial
- Tarik satu program RPG ke folder lokal lalu buka di Bob.
- Di mode Ask, minta penjelasan dan diagram Mermaid dari data flow-nya.
Sesi itu — satu program, satu percakapan — adalah jalur terpendek untuk mendapatkan jawaban nyata apakah Bob cocok dengan cara timmu bekerja.
