Tugas 6 Kuliah KI – Steganography

Coba anda cari pesan tersembunyi pada gambar di sini. Tidak ada password dalam pemecahannya. 😀

Jawaban bisa dilihat di sini.

Advertisements

Tugas 5 Kuliah KI – Self Replicating Code

Tugas ini berisi tentang bagaimana membuat program yang akan memberitahukan isi source codenya sendiri secara lengkap. Program semacam ini biasa disebut juga quine. Informasi tentang quine bisa ditemui pada halaman wikipedia berikut, http://en.wikipedia.org/wiki/Quine_(computing).

Di sini, penulis akan mencoba mengaplikasikan quine dengan kode pembatas “Dor”. Pertama, duplikat program ditulis pada array karakter seperti biasa. Lalu, pada bagian yang akan diisi oleh dirinya sendiri, kita bisa memberikan kode pembatas.

void replicate(const char *s) {
int i;
for (i=0; s[i]; ++i) {
if (s[i] == ‘\n’)
printf(“\\n”);
else if (s[i] == ‘\t’)
printf(“\\t”);
else
printf(“%c”,s[i]);
}
}

int main() {
const char source[] = “void replicate(const char *s) {\n\tint i;\n\tfor (i=0; s[i]; ++i) {\n\t\tif (s[i] == ‘\n’)\n\t\t\tprintf(\”\\n\”);\n\t\telse if (s[i] == ‘\t’)\n\t\t\tprintf(\”\\t\”);\n\t\telse\n\t\t\tprintf(\”%c\”,s[i]);\n\t}\n}\n\nint main() {\n\tconst char source[] = \”Dor\”;\n\tint i;\n\tfor (i=0; source[i]; ++i) {\n\t\tif (source[i]==’D’ && source[i+1]==’o’ && source[i+2]==’r’)\n\t\t\treplicate(source);\n\t\telse\n\t\t\tprintf(\”%c\”,source[i]);\n\t}\n}\n”;
int i;
for (i=0; source[i]; ++i) {
if (source[i]==’D’ && source[i+1]==’o’ && source[i+2]==’r’)
replicate(source);
else
printf(“%c”,source[i]);
}
}

Quine Result

Quine Result

Secara garis besar, kita cukup membuat program yang akan menuliskan seluruh isi karakter array berisi script program. Kemudian jika pembacaan isi array ditemukan kode pembatas, dalam program ini “Dor”, maka program akan menulis ulang seluruh isi array karakter apa adanya tanpa perlu mengkhawatirkan adanya kode pembatas “Dor” lagi.