Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions ti-165410142/ti-165410142.capnp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
@0x934efea7f017fff0;

const qux :UInt32 = 123;

struct Mahasiswa {
id @0 :UInt32;
nama @1 :Text;
nim @2 :Text;
komplain @3 :List(KomplainNilai);

struct KomplainNilai {
mataKuliah @0 :Text;
nilaiPantas @1 :Text;
alasan @2 :Text;

}
}

struct Kcc {
people @0 :List(Mahasiswa);
}
42 changes: 42 additions & 0 deletions ti-165410142/ti-165410142.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from __future__ import print_function
import os
import capnp

capnp.remove_import_hook()
kcc_capnp = capnp.load('ti-165410142.capnp')


def writeKcc(file):
kcc = kcc_capnp.Kcc.new_message()
people = kcc.init('people', 1)

bilal = people[0]
bilal.nama = 'Muhammad Bilal Shah'
bilal.nim = '165410142'
bilalKomplain = bilal.init('komplain', 1)
bilalKomplain[0].mataKuliah = "Konsep Cloud Computing"
bilalKomplain[0].nilaiPantas = 'B'
bilalKomplain[0].alasan = 'Saya rajin berangkat, presensi saya baik, d atas 80%, selalu mengikuti kuliah dari awal sampai akhir, mendengarkan dengan baik kuliah bapak, dan beberapa teman yang sama seperti saya juga mendapatkan nilai B walau tidak maju presentasi ke depan.'


kcc.write(file)


def printKcc(file):
kcc = kcc_capnp.Kcc.read(file)

for mahasiswa in kcc.people:
print('Nama = ',mahasiswa.nama)
print('Nim = ',mahasiswa.nim)
for komplain in mahasiswa.komplain:
print('Mata Kuliah = ',komplain.mataKuliah)
print('Nilai yang pantas saya dapatkan = ',komplain.nilaiPantas)
print('Alasan = ',komplain.alasan)


if __name__ == '__main__':
f = open('hasil', 'w')
writeKcc(f)

f = open('hasil', 'r')
printKcc(f)