It is not contradictory; it's actually a pretty basic idea in OOD. Most of OOD principles relate to one another.
Cohesion relates to how well a given functionality is modeled in a system; if that functionality is only implemented in a single module, then that module is highly cohesive. On the other hand, if a certain functionality is scattered among many modules, then those modules have a weak cohesion. As a concrete example on measuring the cohesion of a class, consider a maximum cohesive class one that uses all its instance fields in all the methods. However in practice this is not always achievable nor desirable.
Coupling derives from how many interconnections are between modules and how strong those interconnections are. If modules heavily rely on one another then a change in a module leads to change in multiple modules.
As a relation between them if a functionality is represented by multiple modules (cohesion) then those modules are tightly coupled in order to achieve that functionality. This also relates to Single Responsibility Principle (and many other principles) which states that only one modules should have only one reason to change, leading to the idea that one module should have one functionality.
As OOD reference book I recommend Object Oriented Analysis and Design by Grady Booch et al.