Saya baru dalam pemrograman dan saya mencoba untuk menyelesaikan masalah besar pertama saya dan menulis program besar pertama saya. Saya telah mencari contoh kode sumber terbuka untuk dipelajari, tetapi sejauh ini hanya menemukan kode dalam bahasa yang tidak sepenuhnya saya pahami atau yang terkait tetapi masih terlalu jauh untuk saya pelajari. Saya mengalami kesulitan mengambil beberapa langkah konseptual di sini.
Saya ingin membuat perangkat lunak sederhana untuk membangun, memodifikasi, dan kemudian mewakili molekul organik kecil. Ini terutama latihan pembelajaran. Seorang pengguna akan memberikan string SMILES atau memilih dari set dasar molekul starter, dan kemudian dapat membangun molekul itu baik secara grafis atau melalui sintaks input teks. Namun, saya belum sampai pada tingkat kerumitan itu. Saya bahkan tidak dapat sepenuhnya memahami cara membuat kelas / objek untuk menyimpan molekul. Jadi, pertanyaan saya secara ringkas: Bagaimana cara menggunakan kelas / objek untuk membangun molekul sambil mempertahankan semua tingkat informasi, dan struktur data apa yang harus saya gunakan sebagai atribut ke objek mana? Dan, bisakah objek menjadi atribut ke objek lain?
Inilah pemikiran saya sejauh ini: Saya berpikir untuk memiliki kelas "Molekul", kemudian kelas / subkelas "Atom" dan subkelas "Bond", dan mungkin juga subkelas "FunctionalGroup". Itu sepertinya tempat yang bagus untuk memulai, tapi mungkin saya salah paham OOP dan ini buruk. Tapi kemudian masalah saya benar-benar membingungkan (untuk saya). Meskipun saya memiliki semua konsep / ide / kelas ini, saya tidak sepenuhnya memahami struktur data apa yang diperlukan untuk mewakili molekul. Daftar atom akan menjadi hal yang baik untuk dimiliki. Mungkinkah daftar itu menjadi daftar objek Atom? Saya juga perlu memiliki cara untuk menyimpan konektivitas. Matriks 2D sepertinya ide yang bagus, dengan urutan ikatan sebagai bilangan bulat dalam posisi matriks.
Pada titik ini saya mulai kewalahan dengan tugas. Apakah semua yang saya lakukan sejauh ini masuk akal? Melampirkan aspek tampilan / gambar di atas ini mungkin berarti bahwa saya perlu menulis ulang / mengerjakan ulang banyak hal ini, tapi saya hanya mencoba untuk sampai pada titik di mana saya setidaknya dapat menyimpan molekul dengan data yang relevan dan kemudian mengakses data yang akan diperiksa / dimodifikasi. Saya berpikir untuk melakukan ini dengan Python, jadi kode / kelas mungkin akan terlihat seperti ini: http://pastebin.com/uUi1BMzr
Mungkin ini benar-benar pertanyaan pemrograman untuk StackOverflow, tapi saya pikir itu cukup spesifik untuk pergi ke sini. Setiap bantuan akan sangat dihargai, bahkan jika Anda hanya menunjukkan di mana saya telah membuat kesalahan konseptual. Terima kasih sebelumnya.