This survey paper focuses on modulation aspects of molecular communication, an emerging field focused on building biologically-inspired systems that embed data within chemical signals. The primary challenges in designing these systems are how to encode and modulate information onto chemical signals, and how to design a receiver that can detect and decode the information from the corrupted chemical signal observed at the destination. In this paper, we focus on modulation design for molecular communication via diffusion systems. In these systems, chemical signals are transported using diffusion, possibly assisted by flow, from the transmitter to the receiver. This tutorial presents recent advancements in modulation and demodulation schemes for molecular communication via diffusion. We compare five different modulation types: concentration-based, type-based, timing-based, spatial, and higher-order modulation techniques. The end-to-end system designs for each modulation scheme are presented. In addition, the key metrics used in the literature to evaluate the performance of these techniques are also presented. Finally, we provide a numerical bit error rate comparison of prominent modulation techniques using analytical models. We close the tutorial with a discussion of key open issues and future research directions for design of molecular communication via diffusion systems.