Ruang Lingkup Penelitian ini terdiri atas dua bagian yakni: mendaftarkan kode struktur serta menghitung jumlah isomer senyawa dan konversi kode SMILES menjadi nama IUPAC. Pembentukan kode senyawa dilakukan oleh perangkat lunak garuna.py (generator alkana dan turunannya) sedangkan hiaruna.py (penghitung isomer alkana dan turunannya) hanya menghitung jumlah isomer senyawa. Konversi kode SMILES menjadi nama IUPAC dilakukan oleh nu.py (nama IUPAC). Tabel 1 Cara penggabungan kode alkil untuk membentuk kode senyawa Homolog Penggabungan kode Alkil [C](R2)(R3)R1 Alkana R2C(R3)(R4)R1 Alkena R2=R1 Alkuna R2C#CR1 Alkohol OR Eter O(R2)R1 Aldehida O=CR Keton O=C(R2)R1 Asam karboksilat O=C(O)R Ester O=C(OR2)R1 Algoritma garuna Pembentukan kode senyawa dimulai dengan menentukan homolog rumus molekul yang dimasukkan. Hal ini dilakukan dengan membandingkan jumlah atom karbon, hidrogen, dan oksigen dalam rumus molekul yang dimasukkan dengan rumus molekul homolog. Selanjutnya garuna membuat kode alkil yang diperlukan sesuai senyawa yang akan dibuat. Gugus fungsi diperlakukan sebagai pusat sehingga kode senyawa dibuat dengan menggabungkan kode alkil-alkil dengan kode gugus fungsi seperti terlihat pada Tabel 1. Kode dengan warna merah adalah pusat senyawa. Setelah selesai membuat kode senyawa garuna dapat menyimpan kode tersebut dalam berkas. Penentuan Waktu Perhitungan Garuna Waktu perhitungan garuna adalah selang waktu antara proses mulai dijalankan hingga garuna selesai membuat semua struktur yang mungkin. Penentuan waktu perhitungan garuna dilakukan dengan menjalankan garuna.py dengan bantuan cmd.exe. Garuna dijalankan dengan perintah garuna.py [rumus molekul]. Perintah ini akan menjalankan python.exe yang bertugas mengerjakan perintah dalam garuna.py. Homolog, jumlah atom karbon, jumlah isomer, dan waktu proses yang diperoleh garuna dicatat dalam berkas log.txt. Algoritma Hiaruna Cara kerja hiaruna mirip dengan garuna, pertama perangkat lunak akan menentukan homolog rumus molekul yang dimasukkan. Selanjutnya hiaruna akan memuat data jumlah isomer alkil. Data tersebut akan dimanfaatkan untuk menghitung jumlah isomer senyawa yang dicari berdasarkan cara penggabungan alkil-alkil untuk membentuk senyawa tersebut. Algoritma Nu (Konversi Kode SMILES Menjadi Nama IUPAC) Konversi kode SMILES menjadi nama IUPAC diawali dengan mencari kode yang menjadi pusat dari kode yang dimasukkan. Berdasarkan kode tersebut perangkat lunak akan menentukan homolog dan memecah kode menjadi kode alkil-alkil pembangunnya. Selanjutnya perangkat lunak menentukan panjang, cabang dan posisi cabang tiap alkil. Parameter tersebut berguna untuk menentukan urutan prioritas alkil. Alkil yang lebih panjang akan memiliki prioritas lebih tinggi. Jika panjang alkil sama maka alkil dengan jumlah cabang lebih banyak akan memiliki prioritas lebih tinggi. Jika jumlah cabangnya sama maka alkil dengan jumlah posisi lebih sedikit akan memiliki prioritas lebih tinggi. Rantai utama dibentuk dari dua alkil dengan prioritas tertinggi. Alkil lainnya diperlakukan sebagai cabang. Posisi cabang yang dimiliki alkil yang membentuk rantai utama akan disesuaikan berdasarkan posisinya pada rantai utama. Berdasarkan nama cabang dan nama rantai utama yang diperoleh, nama IUPAC senyawa disusun. HASIL DAN PEMBAHASAN Pembentukan Kode Struktur Senyawa Alkil yang dibutuhkan untuk membentuk senyawa tergantung pada homolog senyawa yang dicari. Berdasarkan cara penggabungan kode alkil pada Tabel 1, alkil yang dibutuhkan untuk membuat senyawa dengan n atom karbon ditampilkan pada Tabel 2. Misalkan untuk membuat kode struktur CnH2n-2 alkil 5 yang dibutuhkan adalah metil hingga CnH2n-3 karena kode pusatnya memiliki dua atom karbon. Tabel 2 Alkil yang diperlukan untuk membuat senyawa dengan n atom karbon Homolog Alkil yang diperlukan Alkil 1 hingga n-1 Alkana 1 hingga k Alkena 1 hingga n-1 Alkuna 1 hingga n-2 Alkohol 1 hingga n Eter 1 hingga n-1 Aldehida 1 hingga n-1 Keton 1 hingga n-2 Asam karboksilat 1 hingga n-1 Ester 1 hingga n-2 Cara penggabungan kode alkil juga menentukan partisi yang digunakan. Misalnya saat membuat alkana diperlukan dua hingga empat alkil sehingga jumlah bilangan dalam partisi adalah dua hingga empat. Jika a, b, c, d adalah bilangan asli dan a > b > c > d maka pola partisi yang digunakan untuk membuat suatu senyawa ditunjukkan oleh Tabel 3. Khusus untuk ester nilai a bisa kurang dari b. Garuna berhasil mendaftarkan semua kode struktur isomer alkana dari CH4 hingga C24H50. Hal ini diketahui dari jumlah kode struktur yang dihasilkan garuna sama dengan jumlah isomer alkana menurut referensi. Berdasarkan Tabel 3 dapat diketahui bahwa pola partisi alkohol, aldehida dan asam karboksilat sama. Hal ini disebabkan oleh cara pembentukan ketiga senyawa homolog tersebut sama. Karena gugus fungsi aldehida dan asam karboksilat mengandung satu atom karbon untuk membuat senyawa dengan n atom karbon hanya diperlukan alkil hingga Cn-1H2n-1 sedangkan untuk alkohol garuna memerlukan alkil hingga CnH2n+1. Akibatnya jumlah isomer alkil dengan n atom karbon sama dengan jumlah isomer alkohol dengan n atom karbon sama dengan jumlah isomer aldehida dengan n+1 atom karbon dan sama dengan jumlah isomer asam karboksilat dengan n+1 atom karbon. Selain itu karena alkil yang digunakan sangat banyak, dalam penelitian ini garuna hanya dapat menghasilkan struktur alkohol hingga 20 atom karbon, serta aldehida dan asam karboksilat hingga 21 atom karbon. Tabel 3 Daftar pola partisi untuk membuat suatu homolog Homolog Pola partisi Alkil (a), (a, b), (a, a), (a, b, c), (a, a, b), (a, a, a) Alkana (a, a), (a, b, c), (a, a, b), (a, a, a), (a, b, c, d), (a, a, b, c), (a, a, b, b), (a, a, a, b), (a, a, a, a) Alkena (a, b), (a, a) Alkuna (a), (a, b), (a, a) Alkohol (a) Eter (a, b), (a, a) Aldehida (a) Keton (a, b), (a, a) Asam karboksilat (a) Ester (a), (a, b) Alkena, eter dan keton juga memiliki pola partisi yang sama. Karena gugus fungsi keton mengandung satu atom karbon sehingga untuk membuat keton dengan n atom karbon hanya diperlukan alkil hingga Cn-2H2n-3 sedangkan dua lainnya memerlukan alkil hingga Cn-1H2n-1. Karena itu garuna dapat menghasilkan struktur keton hingga 21 atom karbon. Struktur alkena dapat diperoleh hingga C 21H42 karena jumlah isomernya relatif sedikit dibandingkan eter. Struktur eter hanya dapat dihasilkan hingga 20 atom karbon. Alkuna sedikit istimewa karena boleh mengikat atom H sehingga bisa mengikat nol, satu atau dua alkil. Akibatnya untuk membuat alkuna dengan n atom karbon diperlukan alkil hingga Cn-2H2n-3 sehingga strukturnya dapat dibentuk hingga C22H42. Ester juga istimewa karena gugus fungsinya tidak simetris seperti pada keton. Akibatnya rantai induk boleh lebih pendek dari rantai cabang sehingga a boleh kurang dari b tapi tidak boleh nol. Struktur ester hanya dapat dibentuk hingga C20H40O2 karena memiliki jumlah isomer paling banyak dibandingkan homolog lainnya. Waktu Perhitungan Garuna Gambar 4 menunjukkan waktu yang diperlukan untuk menghasilkan struktur alkana yang dilakukan garuna dan beberapa generator yang telah dibuat oleh peneliti lain. Berdasarkan gambar tersebut laju pembentukan oleh garuna adalah yang paling 6 besar, yakni sebesar 28000 isomer per detik. Hal ini disebabkan oleh komputer yang digunakan paling cepat. KP, AHM dan HPVK dijalankan pada sistem Silicon Graphics Indingo 4000, processor RISC IP20 100 MHz sedangkan generator Ballard dijalankan pada sistem dengan prosesor Intel® Pentium® 1.6 GHz. Gambar 4 Grafik waktu perhitungan lima generator alkana. Gambar 5 menunjukkan waktu pembentukan homolog selain alkana oleh garuna hingga 19 atom karbon. Batas tersebut ditetapkan karena pada saat itu memori virtual belum digunakan. Hal ini dapat dilihat dari bentuk grafik yang lurus. Berdasarkan gambar tersebut laju pembentukan ester paling cepat yakni sebesar 527.000 isomer per detik. Laju pembentukan alkohol, eter, aldehida, keton dan asam karboksilat sebesar 367.000 isomer per detik. Laju pembentukan alkuna dan alkena masing masing sebesar 185.000 dan 67.000 isomer per detik. Laju pembentukan alkena paling lambat karena alkena hanya bisa dibuat dari alkil primer dan sekunder. Laju pembentukan ester paling cepat karena tersedia lebih banyak partisi dengan pola yang sama. Gambar 12 menunjukkan perlambatan laju pembentukan delapan yang ditunjukkan oleh pelengkungan kurva ke kanan. Hal ini disebabkan oleh penggunaan memori virtual yang memiliki laju lebih rendah dari memori RAM. Jumlah Isomer Jumlah isomer senyawa dihitung dari pola partisi yang digunakan. Karena bilangan dalam partisi menunjukkan jumlah atom karbon dalam alkil maka jumlah isomer adalah jumlah semua kombinasi yang mungkin dibuat dari tiap pola partisi. Rumus untuk tiap pola partisi dapat dilihat pada lampiran x. berdasarkan cara tersebut hiaruna dapat menghitung jumlah isomer tiap homolog hingga 300 atom karbon dan hasilnya sesuai dengan referensi. Gambar 5 Grafik waktu pembentukan homolog selain alkana hingga 19 atom karbon. Gambar 6 Grafik waktu perhitungan garuna. Konversi SMILES Menjadi Nama IUPAC Perangkat lunak nu menyusun nama senyawa berdasarkan prioritas alkil yang membangun senyawa tersebut. Meskipun saat ini nu dapat menentukan nama IUPAC senyawa yang kodekan SMILES tetapi masih terbatas hingga sepuluh atom karbon. Batasan ini karena pada senyawa yang memiliki jumlah atom yang lebih banyak akan ditemukan alkil yang berbeda tetapi memiliki jumlah posisi cabang yang sama.