@jeremykong,
Codes work at the level of meaning — that is, words or phrases are converted into something else and this chunking generally shortens the message. A code is based on complete words or phrases. It is like a dictionary where all the words are replaced by codewords or numbers. You need a "codebook" to send or read a code.
Ciphers work at a lower level: the level of individual letters, small groups of letters, or, in modern schemes, individual bits. These are either jumbled up or replaced by other letters, numbers or symbols. Complicated ciphers involve both. Ciphers can be memorised so a codebook may not be needed.